aboutsummaryrefslogtreecommitdiff
path: root/gcloud-image-publish.aww
diff options
context:
space:
mode:
Diffstat (limited to 'gcloud-image-publish.aww')
-rw-r--r--gcloud-image-publish.aww27
1 files changed, 27 insertions, 0 deletions
diff --git a/gcloud-image-publish.aww b/gcloud-image-publish.aww
new file mode 100644
index 0000000..d16e0f8
--- /dev/null
+++ b/gcloud-image-publish.aww
@@ -0,0 +1,27 @@
+## Script to publish builded image to public.
+
+#require: gcloud config configurations activate {{.Val "gcloud::config"}}
+
+gsutil cp {{.Val "host::image"}}.tar.gz gs://arch-builder-a/image/
+
+gcloud compute images delete {{.Val "host::image"}} --quiet || exit 0
+
+gcloud compute images create {{.Val "host::image"}} \
+ --source-uri=gs://arch-builder-a/image/{{.Val "host::image"}}.tar.gz \
+ --family=arch \
+ --guest-os-features=GVNIC,UEFI_COMPATIBLE,VIRTIO_SCSI_MULTIQUEUE \
+ --description="Arch linux image with ops-agent. See https://github.com/shuLhan/compute-archlinux-image-builder"
+
+gcloud compute images list --no-standard-images
+gcloud compute images describe {{.Val "host::image"}}
+
+## Share the image publicly with authenticated users.
+
+gcloud compute images add-iam-policy-binding {{.Val "host::image"}} \
+ --member='allAuthenticatedUsers' \
+ --role='roles/compute.imageUser'
+
+## Delete the image on storage.
+
+gsutil rm -a gs://arch-builder-a/image/**
+gsutil ls gs://arch-builder-a/