[satlab]: Cloud build config to tag containers with release labels
Bug:202019867
Test: Manually run gcloud builds
Change-Id: Idb836ffc06922e4687353048b2cabe4963ac8f71
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/satlab/+/3270599
Reviewed-by: Ivan Brovkovich <ivanbrovkovich@chromium.org>
Reviewed-by: Anh Le <anhdle@chromium.org>
Commit-Queue: Prasad Vuppalapu <prasadv@chromium.org>
Tested-by: Prasad Vuppalapu <prasadv@chromium.org>
diff --git a/.gitignore b/.gitignore
index 9945326..b9a89be 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,6 +17,5 @@
*pb*.ts
*pb*.js
.vscode/*
-.env
*dist/
diff --git a/src/cloudbuild_release.yaml b/src/cloudbuild_release.yaml
new file mode 100644
index 0000000..070c2b0
--- /dev/null
+++ b/src/cloudbuild_release.yaml
@@ -0,0 +1,217 @@
+substitutions:
+ _BASE_REGISTRY_URI: us-docker.pkg.dev/chromeos-partner-moblab/base-containers
+ _COMMON_CORE_URI: gcr.io/chromeos-partner-moblab
+ _REGISTRY_URI: us-docker.pkg.dev/chromeos-partner-moblab/satlab
+ _SATLAB_REGISTRY_URI: gcr.io/satlab-images
+ _SSH_PORT: "22"
+ _COMMON_CORE_LABEL: ""
+ # Satlab drone, cache server images to use
+ _SATLAB_STABLE_IMAGE: ""
+ __LABEL: ""
+ __BUILD_VERSION: ""
+
+ # These labels/tags are part of satlab-compose
+ _CONF_CREATOR: "${__BUILD_VERSION}"
+ _GSA_SERVER: "${__BUILD_VERSION}"
+ _OPENSSH_SERVER: "${__BUILD_VERSION}"
+ _NGINX: "${__BUILD_VERSION}"
+ _SATLAB_DRONE: "${__BUILD_VERSION}"
+ _SATLAB_SECRETS: "${__BUILD_VERSION}"
+ _WATCHTOWER_CMD: --enable-lifecycle-hooks --interval 60 --include-restarting
+steps:
+ - id: docker-compose
+ name: "gcr.io/cloud-builders/docker"
+ args: ["pull", "${_BASE_REGISTRY_URI}/docker/compose:alpine-1.27.4"]
+ waitFor: ['-']
+ - id: moblab-common
+ name: "gcr.io/cloud-builders/docker"
+ args: ["pull", "${_COMMON_CORE_URI}/moblab_common:${_COMMON_CORE_LABEL}"]
+ waitFor: ['-']
+ - id: remote-access
+ name: "gcr.io/cloud-builders/docker"
+ args: ["pull", "${_COMMON_CORE_URI}/remote_access:${_COMMON_CORE_LABEL}"]
+ waitFor: ['-']
+
+ - id: drone-pull
+ name: "gcr.io/cloud-builders/docker"
+ args:
+ [
+ "pull",
+ "${_SATLAB_REGISTRY_URI}/drone:${_SATLAB_STABLE_IMAGE}",
+ ]
+ waitFor: ['-']
+ - id: drone
+ name: "gcr.io/cloud-builders/docker"
+ args:
+ [
+ "tag",
+ "${_SATLAB_REGISTRY_URI}/drone:${_SATLAB_STABLE_IMAGE}",
+ "${_SATLAB_REGISTRY_URI}/drone:${__BUILD_VERSION}"
+ ]
+ waitFor:
+ - "drone-pull"
+ - id: gsa-server-pull
+ name: "gcr.io/cloud-builders/docker"
+ args:
+ [
+ "pull",
+ "${_SATLAB_REGISTRY_URI}/gsa_server:${_SATLAB_STABLE_IMAGE}",
+ ]
+ waitFor: ['-']
+ - id: gsa-server
+ name: "gcr.io/cloud-builders/docker"
+ args:
+ [
+ "tag",
+ "${_SATLAB_REGISTRY_URI}/gsa_server:${_SATLAB_STABLE_IMAGE}",
+ "${_SATLAB_REGISTRY_URI}/gsa_server:${__BUILD_VERSION}"
+ ]
+ waitFor:
+ - "gsa-server-pull"
+ - id: nginx-pull
+ name: "gcr.io/cloud-builders/docker"
+ args:
+ [
+ "pull",
+ "${_SATLAB_REGISTRY_URI}/nginx:${_SATLAB_STABLE_IMAGE}",
+ ]
+ waitFor: ['-']
+ - id: nginx
+ name: "gcr.io/cloud-builders/docker"
+ args:
+ [
+ "tag",
+ "${_SATLAB_REGISTRY_URI}/nginx:${_SATLAB_STABLE_IMAGE}",
+ "${_SATLAB_REGISTRY_URI}/nginx:${__BUILD_VERSION}"
+ ]
+ waitFor:
+ - nginx-pull
+ - id: conf-creator-pull
+ name: "gcr.io/cloud-builders/docker"
+ args:
+ [
+ "pull",
+ "${_SATLAB_REGISTRY_URI}/conf_creator:${_SATLAB_STABLE_IMAGE}",
+ ]
+ waitFor: ['-']
+ - id: conf-creator
+ name: "gcr.io/cloud-builders/docker"
+ args:
+ [
+ "tag",
+ "${_SATLAB_REGISTRY_URI}/conf_creator:${_SATLAB_STABLE_IMAGE}",
+ "${_SATLAB_REGISTRY_URI}/conf_creator:${__BUILD_VERSION}"
+ ]
+ waitFor:
+ - conf-creator-pull
+ - id: satlab-secrets-pull
+ name: "gcr.io/cloud-builders/docker"
+ args:
+ [
+ "pull",
+ "${_SATLAB_REGISTRY_URI}/satlab_secrets:${_SATLAB_STABLE_IMAGE}",
+ ]
+ waitFor: ['-']
+ - id: satlab-secrets
+ name: "gcr.io/cloud-builders/docker"
+ args:
+ [
+ "tag",
+ "${_SATLAB_REGISTRY_URI}/satlab_secrets:${_SATLAB_STABLE_IMAGE}",
+ "${_SATLAB_REGISTRY_URI}/satlab_secrets:${__BUILD_VERSION}"
+ ]
+ waitFor:
+ - satlab-secrets-pull
+ - id: openssh-server-pull
+ name: "gcr.io/cloud-builders/docker"
+ args:
+ [
+ "pull",
+ "${_SATLAB_REGISTRY_URI}/openssh_server:${_SATLAB_STABLE_IMAGE}",
+ ]
+ - id: openssh-server
+ name: "gcr.io/cloud-builders/docker"
+ args:
+ [
+ "tag",
+ "${_SATLAB_REGISTRY_URI}/openssh_server:${_SATLAB_STABLE_IMAGE}",
+ "${_SATLAB_REGISTRY_URI}/openssh_server:${__BUILD_VERSION}"
+ ]
+ waitFor:
+ - openssh-server-pull
+ - id: compose
+ name: "gcr.io/cloud-builders/docker"
+ dir: src
+ args:
+ [
+ "build",
+ "--build-arg", "CONF_CREATOR_VER=${_CONF_CREATOR}",
+ "--build-arg", "GSA_SERVER_VER=${_GSA_SERVER}",
+ "--build-arg", "NGINX_VER=${_NGINX}",
+ "--build-arg", "SATLAB_DRONE_VER=${_SATLAB_DRONE}",
+ "--build-arg", "SATLAB_SECRETS_VER=${_SATLAB_SECRETS}",
+ "--build-arg", "REGISTRY_URI=${_REGISTRY_URI}",
+ "--build-arg", "SATLAB_REGISTRY_URI=${_SATLAB_REGISTRY_URI}",
+ "--build-arg", "LABEL=${__LABEL}",
+ "--build-arg", "COMMON_CORE_LABEL=${_COMMON_CORE_LABEL}",
+ "--build-arg", "COMMON_CORE_URI=${_COMMON_CORE_URI}",
+ "--build-arg", "BASE_REGISTRY_URI=${_BASE_REGISTRY_URI}",
+ "--build-arg", "BUILD_VERSION=${__BUILD_VERSION}",
+ "--label=version=${__BUILD_VERSION}",
+ "-t", "${_REGISTRY_URI}/satlab-compose:${__LABEL}",
+ "-f", "dockerfiles/compose/Dockerfile",
+ "."
+ ]
+ env:
+ - "DOCKER_BUILDKIT=1"
+ - "WATCHTOWER_CMD=${_WATCHTOWER_CMD}"
+ waitFor:
+ - "docker-compose"
+ - "moblab-common"
+ - drone
+ - gsa-server
+ - nginx
+ - conf-creator
+ - satlab-secrets
+ - id: satlab-remote-access
+ name: "gcr.io/cloud-builders/docker"
+ dir: src
+ args:
+ [
+ "build",
+ "--build-arg", "REGISTRY_URI=${_REGISTRY_URI}",
+ "--build-arg", "SATLAB_REGISTRY_URI=${_SATLAB_REGISTRY_URI}",
+ "--build-arg", "LABEL=${__LABEL}",
+ "--build-arg", "COMMON_CORE_LABEL=${_COMMON_CORE_LABEL}",
+ "--build-arg", "COMMON_CORE_URI=${_COMMON_CORE_URI}",
+ "--build-arg", "BASE_REGISTRY_URI=${_BASE_REGISTRY_URI}",
+ "--build-arg", "BUILD_VERSION=${__BUILD_VERSION}",
+ "-t", "${_REGISTRY_URI}/satlab_remote_access:${__LABEL}",
+ "-f", "dockerfiles/satlab_remote_access/Dockerfile",
+ "."
+ ]
+ env:
+ - "DOCKER_BUILDKIT=1"
+ - "SSH_PORT=${_SSH_PORT}"
+ waitFor:
+ - "remote-access"
+
+images:
+ [
+ "${_REGISTRY_URI}/satlab-compose:${__LABEL}",
+ "${_REGISTRY_URI}/satlab_remote_access:${__LABEL}",
+ "${_SATLAB_REGISTRY_URI}/drone:${__BUILD_VERSION}",
+ "${_SATLAB_REGISTRY_URI}/gsa_server:${__BUILD_VERSION}",
+ "${_SATLAB_REGISTRY_URI}/nginx:${__BUILD_VERSION}",
+ "${_SATLAB_REGISTRY_URI}/conf_creator:${__BUILD_VERSION}",
+ "${_SATLAB_REGISTRY_URI}/satlab_secrets:${__BUILD_VERSION}",
+ "${_SATLAB_REGISTRY_URI}/openssh_server:${__BUILD_VERSION}",
+ ]
+
+options:
+ # Use higher CPU machines so the caching and build steps are faster.
+ machineType: "N1_HIGHCPU_32"
+ dynamic_substitutions: true
+ substitution_option: "ALLOW_LOOSE"
+
+timeout: 18000s
\ No newline at end of file
diff --git a/src/dockerfiles/compose/.env b/src/dockerfiles/compose/.env
index 5faeb3b..d888cdf 100644
--- a/src/dockerfiles/compose/.env
+++ b/src/dockerfiles/compose/.env
@@ -5,4 +5,4 @@
SATLAB_DRONE=stable
SATLAB_SECRETS=stable
DNS=${COMMON_CORE_LABEL}
-WATCHTOWER=${COMMON_CORE_LABEL}
\ No newline at end of file
+WATCHTOWER=release
\ No newline at end of file
diff --git a/src/dockerfiles/compose/Dockerfile b/src/dockerfiles/compose/Dockerfile
index 58598d5..615b731 100644
--- a/src/dockerfiles/compose/Dockerfile
+++ b/src/dockerfiles/compose/Dockerfile
@@ -36,6 +36,7 @@
ARG GSA_SERVER_VER
ARG NGINX_VER
ARG SATLAB_SECRETS_VER
+ARG OPENSSH_SERVER_VER
# These are re-defined because ARG has a different scope
# before and after the FROM instruction.
@@ -84,6 +85,7 @@
RUN ./override_service_version.sh NGINX ${NGINX_VER:-${BUILD_VERSION}}
RUN ./override_service_version.sh SATLAB_DRONE ${SATLAB_DRONE_VER:-${BUILD_VERSION}}
RUN ./override_service_version.sh SATLAB_SECRETS ${SATLAB_SECRETS_VER:-${BUILD_VERSION}}
+RUN ./override_service_version.sh OPENSSH_SERVER ${OPENSSH_SERVER_VER:-${BUILD_VERSION}}
ENTRYPOINT ["/compose_startup.sh"]