From eb4bd7f128b66facf8f63a60a28b846e5d862189 Mon Sep 17 00:00:00 2001 From: Wojciech Grzelak Date: Sun, 3 Mar 2019 16:47:52 +0100 Subject: [PATCH 1/6] Add more options to cloudbuild.yaml file --- cloudbuild.yaml | 4 ++++ examples/packer/templates/sample-app/packer.in.json | 1 + 2 files changed, 5 insertions(+) diff --git a/cloudbuild.yaml b/cloudbuild.yaml index 088577e..03f4e95 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -28,6 +28,10 @@ steps: - --env=BUCKET=${_LOGS_BUCKET} - --env=SOLUTION_NAME=sample-app - --env=RUN_TESTS=true + - --env=ATTACH_LICENSE=true + - --env=LICENSE_PROJECT_NAME=${PROJECT_ID} + - --env=USE_INTERNAL_IP=true + - --env=PUBLISH_TO_PROJECT=${PROJECT_ID} - --volume=/workspace/examples/chef:/chef:ro - --volume=/workspace/examples/packer:/packer:ro - --volume=/workspace/examples/tests:/tests:ro diff --git a/examples/packer/templates/sample-app/packer.in.json b/examples/packer/templates/sample-app/packer.in.json index 42710f0..621040b 100644 --- a/examples/packer/templates/sample-app/packer.in.json +++ b/examples/packer/templates/sample-app/packer.in.json @@ -1,4 +1,5 @@ { + "license": "imagebuilder-license", "source_image_family": "debian-9", "chef": { "run_list": [ "sample-app" ] From e9260d49d9b2e53c845bbac58fe2297ff7aff908 Mon Sep 17 00:00:00 2001 From: Wojciech Grzelak Date: Sun, 3 Mar 2019 16:54:40 +0100 Subject: [PATCH 2/6] Simplify publishing the image step --- scripts/publish.sh | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/scripts/publish.sh b/scripts/publish.sh index c4e67c3..7d7b2be 100755 --- a/scripts/publish.sh +++ b/scripts/publish.sh @@ -16,7 +16,7 @@ set -eu # Ensure all required env vars are supplied. -for var in PROJECT FINAL_IMAGE ZONE PUBLISH_TO_PROJECT; do +for var in PROJECT FINAL_IMAGE PUBLISH_TO_PROJECT; do if ! [[ -v "${var}" ]]; then echo "${var} env variable is required" exit 1 @@ -25,25 +25,9 @@ done echo "==> Publishing image ${FINAL_IMAGE} to ${PUBLISH_TO_PROJECT}" -readonly DISK_NAME="${FINAL_IMAGE}-disk" - -echo "--> Creating disk in the target project..." -gcloud beta compute disks create "${DISK_NAME}" \ - --image="${FINAL_IMAGE}" \ - --image-project="${PROJECT}" \ - --zone="${ZONE}" \ - --project="${PUBLISH_TO_PROJECT}" \ - --labels="auto=publish" - -echo "--> Creating image in the target project..." gcloud compute images create "${FINAL_IMAGE}" \ - --source-disk="${DISK_NAME}" \ - --source-disk-zone="${ZONE}" \ - --project="${PUBLISH_TO_PROJECT}" - -echo "--> Deleting disk..." -gcloud -q compute disks delete "${DISK_NAME}" \ - --zone="${ZONE}" \ + --source-image="${FINAL_IMAGE}" \ + --source-image-project="${PROJECT}" \ --project="${PUBLISH_TO_PROJECT}" echo "==> Image ${FINAL_IMAGE} published to ${PUBLISH_TO_PROJECT}!" From a52f7df7f42ccd5d8185e065ec78850938f6b1db Mon Sep 17 00:00:00 2001 From: Wojciech Grzelak Date: Sun, 3 Mar 2019 17:01:16 +0100 Subject: [PATCH 3/6] Simplify license attach step --- scripts/attach-license.sh | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/scripts/attach-license.sh b/scripts/attach-license.sh index 24083fa..ce052d5 100755 --- a/scripts/attach-license.sh +++ b/scripts/attach-license.sh @@ -16,7 +16,7 @@ set -eu # Ensure all required env vars are supplied. -for var in PRE_IMAGE FINAL_IMAGE ZONE LICENSE LICENSE_PROJECT_NAME; do +for var in PRE_IMAGE FINAL_IMAGE LICENSE LICENSE_PROJECT_NAME; do if ! [[ -v "${var}" ]]; then echo "${var} env variable is required" exit 1 @@ -25,20 +25,10 @@ done echo "==> Creating a new image with license attached" -readonly DISK_NAME="${PRE_IMAGE}-disk" -echo "--> Creating disk with the pre-image..." -gcloud beta compute disks create "${DISK_NAME}" \ - --image="${PRE_IMAGE}" \ - --zone="${ZONE}" \ - --labels="auto=pre" - -echo "--> Creating the image with license..." -gcloud beta compute images create "${FINAL_IMAGE}" \ - --source-disk="${DISK_NAME}" \ - --source-disk-zone="${ZONE}" \ +gcloud compute images create "${FINAL_IMAGE}" \ + --source-image="${PRE_IMAGE}" \ --licenses="https://www.googleapis.com/compute/v1/projects/${LICENSE_PROJECT_NAME}/global/licenses/${LICENSE}" \ --labels="auto=final" -echo "--> Deleting disk and pre-image..." -gcloud -q compute disks delete "${DISK_NAME}" --zone="${ZONE}" +echo "--> Deleting pre-image..." gcloud -q compute images delete "${PRE_IMAGE}" From 00a79365cec3acfecb5f8e83d42c8da77eae3de9 Mon Sep 17 00:00:00 2001 From: wgrzelak Date: Sun, 3 Mar 2019 17:08:09 +0100 Subject: [PATCH 4/6] Update packer.in.json --- examples/packer/templates/sample-app/packer.in.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/packer/templates/sample-app/packer.in.json b/examples/packer/templates/sample-app/packer.in.json index 621040b..d52bc58 100644 --- a/examples/packer/templates/sample-app/packer.in.json +++ b/examples/packer/templates/sample-app/packer.in.json @@ -1,5 +1,5 @@ { - "license": "imagebuilder-license", + "license": "imagebuilder-test", "source_image_family": "debian-9", "chef": { "run_list": [ "sample-app" ] From dc4231ba6020b8926c58bad5f40447ffb81e26bd Mon Sep 17 00:00:00 2001 From: wgrzelak Date: Sun, 3 Mar 2019 17:14:36 +0100 Subject: [PATCH 5/6] Use custom worker pools --- cloudbuild.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cloudbuild.yaml b/cloudbuild.yaml index 03f4e95..2043c7e 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -1,4 +1,6 @@ timeout: 600s +options: + workerPool: cloud-marketplace-ops-test/gcb-workers-pool steps: - id: Build imagebuilder From a47b4ba07a8124b61d6b5b02ffd44bea846ae746 Mon Sep 17 00:00:00 2001 From: wgrzelak Date: Sun, 3 Mar 2019 17:39:42 +0100 Subject: [PATCH 6/6] Update cloudbuild.yaml --- cloudbuild.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/cloudbuild.yaml b/cloudbuild.yaml index 2043c7e..a93a8d2 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -33,7 +33,6 @@ steps: - --env=ATTACH_LICENSE=true - --env=LICENSE_PROJECT_NAME=${PROJECT_ID} - --env=USE_INTERNAL_IP=true - - --env=PUBLISH_TO_PROJECT=${PROJECT_ID} - --volume=/workspace/examples/chef:/chef:ro - --volume=/workspace/examples/packer:/packer:ro - --volume=/workspace/examples/tests:/tests:ro