Skip to content

Commit

Permalink
merging source
Browse files Browse the repository at this point in the history
  • Loading branch information
arnol377 committed Aug 16, 2024
2 parents 9b84f8e + 1a6bbd5 commit 8651c37
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 1 deletion.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ override.tf.json
*_override.tf
*_override.tf.json

# Ignore transient lock info files created by terraform apply
.terraform.tfstate.lock.info

# Include override files you do wish to add to version control using negated pattern
# !example_override.tf

Expand Down
2 changes: 2 additions & 0 deletions CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# These owners will be the default owners for everything in the repo. Unless a later match takes precedence
* @HappyPathway/terraform-reviewers
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# docker-image-pipeline
Template repo for windows image pipelines
repo for docker image pipelines
87 changes: 87 additions & 0 deletions build.pkr.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
packer {
required_plugins {
# Amazon plugin for Packer
docker = {
source = "github.com/hashicorp/docker"
version = "~> 1"
}
# Ansible plugin for Packer
ansible = {
version = "v1.1.1"
source = "github.com/hashicorp/ansible"
}
}
}

variable ansible_dir {
type = string
default = "./"
}

variable project_name {
type = string
default = "my-project"
}

# ecr_repository_name
data amazon-parameterstore ecr_repository_name {
name = "/image-pipeline/${var.project_name}/ecr_repository_name"
}

data amazon-parameterstore aws_region {
name = "/image-pipeline/${var.project_name}/region"
}

data amazon-parameterstore aws_account_id {
name = "/image-pipeline/${var.project_name}/aws_account_id"
}

data amazon-parameterstore playbook {
name = "/image-pipeline/${var.project_name}/playbook"
}

data amazon-parameterstore source_image {
name = "/image-pipeline/${var.project_name}/source_ami"
}

data amazon-parameterstore image_tag {
name = "/image-pipeline/${var.project_name}/image_tag"
}

locals {
aws_account_id = data.amazon-parameterstore.aws_account_id.value
aws_region = data.amazon-parameterstore.aws_region.value
tag = data.amazon-parameterstore.image_tag.value
ecr_repo = data.amazon-parameterstore.ecr_repository_name.value
}

source "docker" "docker" {
image = data.amazon-parameterstore.source_image.value
commit = true
}

build {
sources = ["source.docker.docker"]

# Provisioner to run the Ansible playbook
provisioner "ansible" {
command = "/root/.local/bin/ansible-playbook"
playbook_file = "${var.ansible_dir}/${data.amazon-parameterstore.playbook.value}"
roles_path = "${var.ansible_dir}/roles"
ansible_env_vars = ["ANSIBLE_STDOUT_CALLBACK=yaml", "ANSIBLE_NOCOLOR=True"]
}

post-processor "docker-tag" {
repository = local.ecr_repo
tag = local.tag
}

post-processor "docker-push" {
ecr_login = true
// login_username = "AWS"
// login_password = data.amazon-secretsmanager.aws_secret_key.secret_string
login_server = "${local.aws_account_id}.dkr.ecr.${local.aws_region}.amazonaws.com"
repository = var.project_name
tag = local.tag
}
}

0 comments on commit 8651c37

Please sign in to comment.