Skip to content

Commit 120bcc3

Browse files
authored
Update cloud build configs to build nomulus images (#2650)
Also do appropriate text replacements for each environment.
1 parent 8987fd3 commit 120bcc3

File tree

3 files changed

+128
-66
lines changed

3 files changed

+128
-66
lines changed

release/cloudbuild-dev-resource.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,21 @@
1010
# https://cloud.google.com/cloud-build/docs/running-builds/automate-builds
1111
steps:
1212
# Compile javadoc
13-
- name: 'gcr.io/${PROJECT_ID}/builder'
13+
- name: 'gcr.io/${PROJECT_ID}/builder:latest'
1414
entrypoint: /bin/bash
1515
args: ['./gradlew', ':javadoc']
1616
# Upload the files to GCS
1717
# We don't use GCB's built-in artifacts uploader because we want to delete
1818
# the existing files in the bucket first, and we want to parallelize the
1919
# uploading process.
20-
- name: 'gcr.io/${PROJECT_ID}/builder'
20+
- name: 'gcr.io/${PROJECT_ID}/builder:latest'
2121
entrypoint: /bin/bash
2222
args: ['gsutil', '-m', 'rsync', '-d', '-r', 'build/docs/javadoc', 'gs://${PROJECT_ID}-javadoc']
2323
# Upload the files to GCS
2424
# We don't use GCB's built-in artifacts uploader because we want to delete
2525
# the existing files in the bucket first, and we want to parallelize the
2626
# uploading process.
27-
- name: 'gcr.io/${PROJECT_ID}/builder'
27+
- name: 'gcr.io/${PROJECT_ID}/builder:latest'
2828
entrypoint: /bin/bash
2929
args: ['gsutil', '-m', 'rsync', '-d', '-r', 'db/src/main/resources/sql/er_diagram',
3030
'gs://${PROJECT_ID}-er-diagram']

release/cloudbuild-nomulus.yaml

Lines changed: 54 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,53 @@ steps:
3636
# informational. It makes it easier to tell the tag of the current 'live' release.
3737
- name: 'gcr.io/${PROJECT_ID}/builder:latest'
3838
entrypoint: /bin/bash
39-
args: [ '-c', 'echo ${TAG_NAME} > output/tag_name']
40-
# Tag the tool image and push it to the registry.
39+
args: [ '-c', 'echo ${TAG_NAME} > output/tag_name' ]
40+
# Build Nomulus, tool and proxy image, them upload them to GCR.
4141
- name: 'gcr.io/${PROJECT_ID}/builder:latest'
42+
# Set home for Gradle caches. Must be consistent with last step below
43+
# and ./build_nomulus_for_env.sh
44+
env: [ 'GRADLE_USER_HOME=/workspace/cloudbuild-caches' ]
4245
entrypoint: /bin/bash
4346
args:
4447
- -c
4548
- |
46-
set -e
49+
./gradlew :jetty:buildNomulusImage :proxy:buildProxyImage :core:buildToolImage\
50+
-PmavenUrl=gcs://domain-registry-maven-repository/maven \
51+
-PpluginsUrl=gcs://domain-registry-maven-repository/plugins
52+
docker tag nomulus gcr.io/${PROJECT_ID}/nomulus:${TAG_NAME}
53+
docker tag nomulus gcr.io/${PROJECT_ID}/nomulus:latest
54+
docker push gcr.io/${PROJECT_ID}/nomulus:${TAG_NAME}
55+
docker push gcr.io/${PROJECT_ID}/nomulus:latest
56+
docker tag proxy gcr.io/${PROJECT_ID}/proxy:${TAG_NAME}
57+
docker tag proxy gcr.io/${PROJECT_ID}/proxy:latest
58+
docker push gcr.io/${PROJECT_ID}/proxy:${TAG_NAME}
59+
docker push gcr.io/${PROJECT_ID}/proxy:latest
4760
docker tag nomulus-tool gcr.io/${PROJECT_ID}/nomulus-tool:${TAG_NAME}
4861
docker tag nomulus-tool gcr.io/${PROJECT_ID}/nomulus-tool:latest
4962
docker push gcr.io/${PROJECT_ID}/nomulus-tool:${TAG_NAME}
5063
docker push gcr.io/${PROJECT_ID}/nomulus-tool:latest
64+
# Sign nomulus and proxy images.
65+
- name: 'gcr.io/${PROJECT_ID}/builder:latest'
66+
entrypoint: /bin/bash
67+
args:
68+
- -c
69+
- |
70+
nomulus_digest=$(gcloud container images list-tags gcr.io/${PROJECT_ID}/nomulus \
71+
--format="get(digest)" --filter="tags = ${TAG_NAME}")
72+
proxy_digest=$(gcloud container images list-tags gcr.io/${PROJECT_ID}/proxy \
73+
--format="get(digest)" --filter="tags = ${TAG_NAME}")
74+
gcloud --project=${PROJECT_ID} beta container binauthz attestations \
75+
sign-and-create --artifact-url=gcr.io/${PROJECT_ID}/nomulus@$nomulus_digest \
76+
--attestor=build-attestor --attestor-project=${PROJECT_ID} \
77+
--keyversion-project=${PROJECT_ID} --keyversion-location=global \
78+
--keyversion-keyring=attestor-keys --keyversion-key=signing \
79+
--keyversion=1
80+
gcloud --project=${PROJECT_ID} beta container binauthz attestations \
81+
sign-and-create --artifact-url=gcr.io/${PROJECT_ID}/proxy@$proxy_digest \
82+
--attestor=build-attestor --attestor-project=${PROJECT_ID} \
83+
--keyversion-project=${PROJECT_ID} --keyversion-location=global \
84+
--keyversion-keyring=attestor-keys --keyversion-key=signing \
85+
--keyversion=1
5186
# Get the tool image digest and substitute in the digest in other GCB files.
5287
- name: 'gcr.io/${PROJECT_ID}/builder:latest'
5388
entrypoint: /bin/bash
@@ -62,9 +97,9 @@ steps:
6297
sed -i s/'nomulus-tool:latest'/nomulus-tool@$digest/g release/cloudbuild-deploy-*.yaml
6398
# schema-deploy and schema-verify scripts
6499
sed -i s/'nomulus-tool:latest'/nomulus-tool@$digest/g release/cloudbuild-schema-*.yaml
65-
# Build the prober_cert_updater image and upload it to GCR. This image extends
66-
# from the `builder` and the nomulus.jar built earlier.
67-
- name: 'gcr.io/cloud-builders/docker'
100+
# Build and upload the prober_cert_updater image. This image extends from the `builder` and the
101+
# nomulus.jar built earlier.
102+
- name: 'gcr.io/${PROJECT_ID}/builder:latest'
68103
entrypoint: /bin/bash
69104
args:
70105
- -c
@@ -76,8 +111,8 @@ steps:
76111
--build-arg TAG_NAME=${TAG_NAME} --build-arg PROJECT_ID=${PROJECT_ID} .
77112
docker tag gcr.io/${PROJECT_ID}/prober_cert_updater:${TAG_NAME} \
78113
gcr.io/${PROJECT_ID}/prober_cert_updater:latest
79-
docker push gcr.io/${PROJECT_ID}/prober_cert_updater:latest
80114
docker push gcr.io/${PROJECT_ID}/prober_cert_updater:${TAG_NAME}
115+
docker push gcr.io/${PROJECT_ID}/prober_cert_updater:latest
81116
dir: 'release/prober-cert-updater/'
82117
# Update the prober_updater image digest in relevant GCB files.
83118
- name: 'gcr.io/${PROJECT_ID}/builder:latest'
@@ -86,14 +121,13 @@ steps:
86121
- -c
87122
- |
88123
set -e
89-
digest=$(gcloud container images list-tags \
90-
gcr.io/${PROJECT_ID}/prober_cert_updater \
91-
--format="get(digest)" --filter="tags = ${TAG_NAME}")
92-
sed -i s/'prober_cert_updater:latest'/prober_cert_updater@$digest/g \
124+
digest=$(gcloud container images list-tags gcr.io/${PROJECT_ID}/prober_cert_updater \
125+
--format="get(digest)" --filter="tags = ${TAG_NAME}")
126+
sed -i s/prober_cert_updater:latest/prober_cert_updater@$digest/g \
93127
release/cloudbuild-renew-prober-certs-*.yaml
94-
# Build the db_object_updater image and upload it to GCR. This image extends
95-
# from the `builder` and the nomulus.jar built earlier.
96-
- name: 'gcr.io/cloud-builders/docker'
128+
# Build and upload the db_object_updater image. This image extends from the `builder` and the
129+
# nomulus.jar built earlier.
130+
- name: 'gcr.io/${PROJECT_ID}/builder:latest'
97131
entrypoint: /bin/bash
98132
args:
99133
- -c
@@ -105,8 +139,8 @@ steps:
105139
--build-arg TAG_NAME=${TAG_NAME} --build-arg PROJECT_ID=${PROJECT_ID} .
106140
docker tag gcr.io/${PROJECT_ID}/db_object_updater:${TAG_NAME} \
107141
gcr.io/${PROJECT_ID}/db_object_updater:latest
108-
docker push gcr.io/${PROJECT_ID}/db_object_updater:latest
109142
docker push gcr.io/${PROJECT_ID}/db_object_updater:${TAG_NAME}
143+
docker push gcr.io/${PROJECT_ID}/db_object_updater:latest
110144
dir: 'release/db-object-updater/'
111145
# Update the db_object_updater image digest in relevant GCB files.
112146
- name: 'gcr.io/${PROJECT_ID}/builder:latest'
@@ -115,15 +149,14 @@ steps:
115149
- -c
116150
- |
117151
set -e
118-
digest=$(gcloud container images list-tags \
119-
gcr.io/${PROJECT_ID}/db_object_updater \
152+
digest=$(gcloud container images list-tags gcr.io/${PROJECT_ID}/db_object_updater \
120153
--format="get(digest)" --filter="tags = ${TAG_NAME}")
121-
sed -i s/'db_object_updater:latest'/db_object_updater@$digest/g \
154+
sed -i s/db_object_updater:latest/db_object_updater@$digest/g \
122155
release/cloudbuild-sync-db-objects-*.yaml
123156
# Build and stage Dataflow Flex templates.
124157
- name: 'gcr.io/${PROJECT_ID}/builder:latest'
125158
entrypoint: /bin/bash
126-
# Set home for Gradle caches. Must be consistent with previous steps above
159+
# Set home for Gradle caches. Must be consistent with the previous steps above
127160
# and ./build_nomulus_for_env.sh
128161
env: [ 'GRADLE_USER_HOME=/workspace/cloudbuild-caches' ]
129162
args:
@@ -146,9 +179,8 @@ steps:
146179
google/registry/beam/resave_all_epp_resources_pipeline_metadata.json \
147180
google.registry.beam.wipeout.WipeOutContactHistoryPiiPipeline \
148181
google/registry/beam/wipe_out_contact_history_pii_pipeline_metadata.json
149-
# Tentatively build and publish Cloud SQL schema jar here, before schema release
150-
# process is finalized. Also publish nomulus:core jars that are needed for
151-
# server/schema compatibility tests.
182+
# Tentatively build and publish Cloud SQL schema jar here, before the schema release process is
183+
# finalized. Also publish nomulus:core jars that are needed for server/schema compatibility tests.
152184
- name: 'gcr.io/${PROJECT_ID}/builder:latest'
153185
entrypoint: /bin/bash
154186
# Set home for Gradle caches. Must be consistent with previous steps above
@@ -191,7 +223,6 @@ artifacts:
191223
- 'release/cloudbuild-schema-deploy-*.yaml'
192224
- 'release/cloudbuild-schema-verify-*.yaml'
193225
- 'release/cloudbuild-sync-db-objects-*.yaml'
194-
195226
timeout: 7200s
196227
options:
197228
machineType: 'E2_HIGHCPU_32'

release/cloudbuild-release.yaml

Lines changed: 71 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#
88
# This pipeline prepares a release. The pipeline should be run against the Nomulus public repo on
99
# GitHub. It builds the builder and base images, and hard codes the sha256 hashes of the resulting
10-
# images in the merged code base (internal + public) , which is tagged and pushed into the release
10+
# images in the merged code base (internal + public), which is tagged and pushed into the release
1111
# repo. Actual release artifacts are built from the release repo, ensuring reproducibility.
1212
steps:
1313
# Check the out internal repo.
@@ -42,7 +42,7 @@ steps:
4242
rm -rf .git && rm -rf nomulus-internal/.git
4343
cp -rf nomulus-internal/* .
4444
rm -rf nomulus-internal
45-
# Build the builder image and tag the proxy base image, then upload them to GCR.
45+
# Build the builder image and pull the base images, them upload them to GCR.
4646
- name: 'gcr.io/cloud-builders/docker'
4747
entrypoint: /bin/bash
4848
args:
@@ -51,18 +51,18 @@ steps:
5151
set -e
5252
docker build -t gcr.io/${PROJECT_ID}/builder:${TAG_NAME} .
5353
docker tag gcr.io/${PROJECT_ID}/builder:${TAG_NAME} gcr.io/${PROJECT_ID}/builder:latest
54-
docker pull gcr.io/distroless/java
55-
docker tag gcr.io/distroless/java gcr.io/${PROJECT_ID}/base:${TAG_NAME}
56-
docker tag gcr.io/distroless/java gcr.io/${PROJECT_ID}/base:latest
57-
docker pull gcr.io/distroless/java:debug
58-
docker tag gcr.io/distroless/java:debug gcr.io/${PROJECT_ID}/base-debug:${TAG_NAME}
59-
docker tag gcr.io/distroless/java:debug gcr.io/${PROJECT_ID}/base-debug:latest
60-
docker push gcr.io/${PROJECT_ID}/builder:latest
6154
docker push gcr.io/${PROJECT_ID}/builder:${TAG_NAME}
62-
docker push gcr.io/${PROJECT_ID}/base:latest
63-
docker push gcr.io/${PROJECT_ID}/base:${TAG_NAME}
64-
docker push gcr.io/${PROJECT_ID}/base-debug:latest
65-
docker push gcr.io/${PROJECT_ID}/base-debug:${TAG_NAME}
55+
docker push gcr.io/${PROJECT_ID}/builder:latest
56+
docker pull jetty:12-jdk21
57+
docker tag jetty:12-jdk21 gcr.io/${PROJECT_ID}/jetty:${TAG_NAME}
58+
docker tag jetty:12-jdk21 gcr.io/${PROJECT_ID}/jetty:latest
59+
docker push gcr.io/${PROJECT_ID}/jetty:${TAG_NAME}
60+
docker push gcr.io/${PROJECT_ID}/jetty:latest
61+
docker pull eclipse-temurin:21
62+
docker tag eclipse-temurin:21 gcr.io/${PROJECT_ID}/temurin:${TAG_NAME}
63+
docker tag eclipse-temurin:21 gcr.io/${PROJECT_ID}/temurin:latest
64+
docker push gcr.io/${PROJECT_ID}/temurin:${TAG_NAME}
65+
docker push gcr.io/${PROJECT_ID}/temurin:latest
6666
dir: 'release/builder/'
6767
# Do text replacement in the merged repo, hardcoding image digests.
6868
- name: 'gcr.io/cloud-builders/gcloud'
@@ -73,27 +73,31 @@ steps:
7373
set -e
7474
builder_digest=$(gcloud container images list-tags gcr.io/${PROJECT_ID}/builder \
7575
--format='get(digest)' --filter='tags = ${TAG_NAME}')
76-
base_digest=$(gcloud container images list-tags gcr.io/${PROJECT_ID}/base \
76+
jetty_digest=$(gcloud container images list-tags gcr.io/${PROJECT_ID}/jetty \
7777
--format='get(digest)' --filter='tags = ${TAG_NAME}')
78-
debug_digest=$(gcloud container images list-tags gcr.io/${PROJECT_ID}/base-debug \
78+
temurin_digest=$(gcloud container images list-tags gcr.io/${PROJECT_ID}/temurin \
7979
--format='get(digest)' --filter='tags = ${TAG_NAME}')
80-
sed -i s%distroless/java%${PROJECT_ID}/base@$base_digest% proxy/Dockerfile
81-
sed -i s%distroless/java:debug%${PROJECT_ID}/base-debug@$debug_digest% core/Dockerfile
80+
sed -i s%eclipse-temurin:21%gcr.io/${PROJECT_ID}/temurin@$temurin_digest%g proxy/Dockerfile
81+
sed -i s%eclipse-temurin:21%gcr.io/${PROJECT_ID}/temurin@$temurin_digest%g core/Dockerfile
82+
sed -i s%jetty:12-jdk21%gcr.io/${PROJECT_ID}/jetty@$jetty_digest%g jetty/Dockerfile
8283
sed -i s/builder:latest/builder@$builder_digest/g release/cloudbuild-proxy.yaml
8384
sed -i s/builder:latest/builder@$builder_digest/g release/cloudbuild-nomulus.yaml
8485
sed -i s/builder:latest/builder@$builder_digest/g release/cloudbuild-deploy.yaml
8586
sed -i s/builder:latest/builder@$builder_digest/g release/cloudbuild-sync.yaml
8687
sed -i s/builder:latest/builder@$builder_digest/g release/cloudbuild-tag.yaml
88+
sed -i s/builder:latest/builder@$builder_digest/g release/cloudbuild-schema-deploy.yaml
89+
sed -i s/builder:latest/builder@$builder_digest/g release/cloudbuild-schema-verify.yaml
90+
sed -i s/builder:latest/builder@$builder_digest/g release/cloudbuild-delete.yaml
8791
sed -i s/GCP_PROJECT/${PROJECT_ID}/ proxy/kubernetes/proxy-*.yaml
8892
sed -i s/'$${TAG_NAME}'/${TAG_NAME}/g release/cloudbuild-sync.yaml
8993
sed -i s/'$${TAG_NAME}'/${TAG_NAME}/g release/cloudbuild-deploy.yaml
90-
for environment in alpha crash sandbox production; do
94+
for environment in alpha crash qa sandbox production; do
9195
sed s/'$${_ENV}'/${environment}/g release/cloudbuild-deploy.yaml \
9296
> release/cloudbuild-deploy-${environment}.yaml
9397
sed s/'$${_ENV}'/${environment}/g release/cloudbuild-delete.yaml \
9498
> release/cloudbuild-delete-${environment}.yaml
9599
done
96-
# Build the schema_deployer image and upload it to GCR.
100+
# Build and upload the schema_deployer image.
97101
- name: 'gcr.io/cloud-builders/docker'
98102
entrypoint: /bin/bash
99103
args:
@@ -103,10 +107,10 @@ steps:
103107
docker build -t gcr.io/${PROJECT_ID}/schema_deployer:${TAG_NAME} --build-arg TAG_NAME=${TAG_NAME} --build-arg PROJECT_ID=${PROJECT_ID} .
104108
docker tag gcr.io/${PROJECT_ID}/schema_deployer:${TAG_NAME} \
105109
gcr.io/${PROJECT_ID}/schema_deployer:latest
106-
docker push gcr.io/${PROJECT_ID}/schema_deployer:latest
107110
docker push gcr.io/${PROJECT_ID}/schema_deployer:${TAG_NAME}
111+
docker push gcr.io/${PROJECT_ID}/schema_deployer:latest
108112
dir: 'release/schema-deployer/'
109-
# Build the schema_verifier image and upload it to GCR.
113+
# Build and upload the schema_verifier image.
110114
- name: 'gcr.io/cloud-builders/docker'
111115
entrypoint: /bin/bash
112116
args:
@@ -116,33 +120,21 @@ steps:
116120
docker build -t gcr.io/${PROJECT_ID}/schema_verifier:${TAG_NAME} --build-arg TAG_NAME=${TAG_NAME} --build-arg PROJECT_ID=${PROJECT_ID} .
117121
docker tag gcr.io/${PROJECT_ID}/schema_verifier:${TAG_NAME} \
118122
gcr.io/${PROJECT_ID}/schema_verifier:latest
119-
docker push gcr.io/${PROJECT_ID}/schema_verifier:latest
120123
docker push gcr.io/${PROJECT_ID}/schema_verifier:${TAG_NAME}
124+
docker push gcr.io/${PROJECT_ID}/schema_verifier:latest
121125
dir: 'release/schema-verifier/'
122-
# Do text replacement in the schema-deploy, schema-verify and
123-
# prober_cert_updater configs.
126+
# Do text replacement in the cloud build YAML files.
124127
- name: 'gcr.io/cloud-builders/gcloud'
125128
entrypoint: /bin/bash
126129
args:
127130
- -c
128131
- |
129132
set -e
130-
builder_digest=$( \
131-
gcloud container images list-tags gcr.io/${PROJECT_ID}/builder \
132-
--format='get(digest)' --filter='tags = ${TAG_NAME}')
133-
schema_deployer_digest=$( \
134-
gcloud container images list-tags gcr.io/${PROJECT_ID}/schema_deployer \
135-
--format='get(digest)' --filter='tags = ${TAG_NAME}')
136-
schema_verifier_digest=$( \
137-
gcloud container images list-tags gcr.io/${PROJECT_ID}/schema_verifier \
133+
builder_digest=$(gcloud container images list-tags gcr.io/${PROJECT_ID}/builder \
138134
--format='get(digest)' --filter='tags = ${TAG_NAME}')
139-
prober_cert_updater_digest=$( \
140-
gcloud container images list-tags \
141-
gcr.io/${PROJECT_ID}/prober_cert_updater \
135+
schema_deployer_digest=$(gcloud container images list-tags gcr.io/${PROJECT_ID}/schema_deployer \
142136
--format='get(digest)' --filter='tags = ${TAG_NAME}')
143-
db_object_updater_digest=$( \
144-
gcloud container images list-tags \
145-
gcr.io/${PROJECT_ID}/db_object_updater \
137+
schema_verifier_digest=$(gcloud container images list-tags gcr.io/${PROJECT_ID}/schema_verifier \
146138
--format='get(digest)' --filter='tags = ${TAG_NAME}')
147139
sed -i s/builder:latest/builder@$builder_digest/g \
148140
release/cloudbuild-schema-deploy.yaml
@@ -157,7 +149,7 @@ steps:
157149
sed -i s/schema_verifier:latest/schema_verifier@$schema_verifier_digest/g \
158150
release/cloudbuild-schema-verify.yaml
159151
sed -i s/'$${TAG_NAME}'/${TAG_NAME}/g release/cloudbuild-schema-deploy.yaml
160-
for environment in alpha crash sandbox production; do
152+
for environment in alpha crash qa sandbox production; do
161153
sed s/'$${_ENV}'/${environment}/g release/cloudbuild-schema-deploy.yaml \
162154
> release/cloudbuild-schema-deploy-${environment}.yaml
163155
sed s/'$${_ENV}'/${environment}/g release/cloudbuild-schema-verify.yaml \
@@ -167,7 +159,46 @@ steps:
167159
sed s/'$${_ENV}'/${environment}/g release/cloudbuild-sync-db-objects.yaml \
168160
> release/cloudbuild-sync-db-objects-${environment}.yaml
169161
done
170-
# Upload the gradle binary to GCS if it does not exist and point URL in gradle wrapper to it.
162+
# Do text replacement in the k8s manifests.
163+
- name: 'gcr.io/cloud-builders/gcloud'
164+
entrypoint: /bin/bash
165+
args:
166+
- -c
167+
- |
168+
set -e
169+
for env in alpha crash qa sandbox production
170+
do
171+
based_domain=$(grep baseDomain \
172+
./core/src/main/java/google/registry/config/files/nomulus-config-${env}.yaml | \
173+
awk '{print $2}')
174+
for service in frontend backend pubapi console
175+
do
176+
# non-canary
177+
sed s/GCP_PROJECT/${PROJECT_ID}/g ./jetty/kubernetes/nomulus-${service}.yaml | \
178+
sed s/ENVIRONMENT/${env}/g | \
179+
sed s/PROXY_ENV/${env}/g | \
180+
sed s/EPP/epp/g | \
181+
sed s/WHOIS/whois/g > ./jetty/kubernetes/nomulus-${env}-${service}.yaml
182+
# canary
183+
sed s/GCP_PROJECT/${PROJECT_ID}/g ./jetty/kubernetes/nomulus-${service}.yaml | \
184+
sed s/ENVIRONMENT/${env}/g | \
185+
sed s/PROXY_ENV/${env}_canary/g | \
186+
sed s/EPP/epp-canary/g | \
187+
sed s/WHOIS/whois-canary/g | \
188+
sed s/${service}/${service}-canary/g \
189+
> ./jetty/kubernetes/nomulus-${env}-${service}-canary.yaml
190+
# gateway
191+
sed s/BASE_DOMAIN/${base_domain}/g \
192+
./jetty/kubernetes/gateway/nomulus-route-${service}.yaml \
193+
> ./jetty/kubernetes/gateway/nomulus-route-${env}-${service}.yaml
194+
# IAP
195+
sed s/SERVICE/${service}/g ./jetty/kubernetes/gateway/nomulus-iap-${env}.yaml \
196+
> ./jetty/kubernetes/gateway/nomulus-iap-${env}-${service}.yaml
197+
sed s/SERVICE/${service}-canary/g ./jetty/kubernetes/gateway/nomulus-iap-${env}.yaml \
198+
> ./jetty/kubernetes/gateway/nomulus-iap-${env}-${service}-canary.yaml
199+
done
200+
done
201+
# Upload the Gradle binary to GCS if it does not exist and point URL in Gradle wrapper to it.
171202
- name: 'gcr.io/cloud-builders/gsutil'
172203
entrypoint: /bin/bash
173204
args:

0 commit comments

Comments
 (0)