Skip to content

Commit e66a908

Browse files
author
anindyatahsin
authored
Merge pull request #519 from GoogleCloudPlatform/all_components_staging
add an image with all existing components and push it to the scanning repo…
2 parents bd7a3cb + c457710 commit e66a908

File tree

4 files changed

+86
-1
lines changed

4 files changed

+86
-1
lines changed

all_components/Dockerfile

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
FROM marketplace.gcr.io/google/debian12:latest
2+
ARG CLOUD_SDK_VERSION
3+
ENV CLOUD_SDK_VERSION=$CLOUD_SDK_VERSION
4+
ENV PATH /google-cloud-sdk/bin:$PATH
5+
RUN groupadd -r -g 1000 cloudsdk && \
6+
useradd -r -u 1000 -m -s /bin/bash -g cloudsdk cloudsdk
7+
RUN apt-get update -qqy && apt-get -qqy upgrade && apt-get install -qqy \
8+
curl \
9+
gcc \
10+
python3-dev \
11+
python3-pip \
12+
python3-crcmod \
13+
apt-transport-https \
14+
lsb-release \
15+
openssh-client \
16+
git \
17+
make \
18+
gnupg \
19+
openjdk-17-jre-headless
20+
RUN if [ `uname -m` = 'x86_64' ]; then echo -n "x86_64" > /tmp/arch; else echo -n "arm" > /tmp/arch; fi;
21+
RUN ARCH=`cat /tmp/arch` && curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz && \
22+
tar xzf google-cloud-cli-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz && \
23+
rm google-cloud-cli-${CLOUD_SDK_VERSION}-linux-${ARCH}.tar.gz
24+
RUN echo -n "app-engine-java app-engine-python alpha beta pubsub-emulator cloud-datastore-emulator app-engine-go bigtable cbt app-engine-python-extras kubectl gke-gcloud-auth-plugin kustomize minikube skaffold kpt local-extract appctl cloud-sql-proxy docker-credential-gcr package-go-module cloud-firestore-emulator cloud-run-proxy cloud-spanner-emulator harbourbridge log-streaming managed-flink-client spanner-migration-tool terraform-tools config-connector enterprise-certificate-proxy istioctl kubectl-oidc pkg" > /tmp/additional_components
25+
# These components are not available on ARM right now.
26+
RUN if [ `uname -m` = 'x86_64' ]; then echo -n " appctl nomos anthos-auth" >> /tmp/additional_components; fi;
27+
RUN /google-cloud-sdk/install.sh --bash-completion=false --path-update=true --usage-reporting=false \
28+
--additional-components `cat /tmp/additional_components` && rm -rf /google-cloud-sdk/.install/.backup
29+
RUN git config --system credential.'https://source.developers.google.com'.helper gcloud.sh
30+
VOLUME ["/root/.config", "/root/.kube"]

cloudbuild-hotfix.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ steps:
3232
- 'inspect'
3333
- '--bootstrap'
3434
waitFor: ['multi_arch_step2']
35+
- name: 'gcr.io/cloud-builders/docker'
36+
id: scanning_all_components
37+
args: ['build', '--build-arg', 'CLOUD_SDK_VERSION=$_CLI_VERSION', '-t', 'us-docker.pkg.dev/google.com/cloudsdktool/scanning/google-cloud-cli:all_components', 'all_components/']
38+
waitFor: ['-']
3539
- name: 'gcr.io/cloud-builders/docker'
3640
id: alpine
3741
args: ['build', '--build-arg', 'CLOUD_SDK_VERSION=$_CLI_VERSION', '-t', 'google/cloud-sdk:alpine', '-t', 'google/cloud-sdk:$TAG_NAME-alpine-$_DATE', '-t', 'us-docker.pkg.dev/google.com/cloudsdktool/gcr.io/cloud-sdk:alpine', '-t', 'us-docker.pkg.dev/google.com/cloudsdktool/gcr.io/cloud-sdk:$TAG_NAME-alpine-$_DATE', '-t', 'us-docker.pkg.dev/google.com/cloudsdktool/us.gcr.io/cloud-sdk:alpine', '-t', 'us-docker.pkg.dev/google.com/cloudsdktool/us.gcr.io/cloud-sdk:$TAG_NAME-alpine-$_DATE', '-t', 'europe-docker.pkg.dev/google.com/cloudsdktool/eu.gcr.io/cloud-sdk:alpine', '-t', 'europe-docker.pkg.dev/google.com/cloudsdktool/eu.gcr.io/cloud-sdk:$TAG_NAME-alpine-$_DATE', '-t', 'asia-docker.pkg.dev/google.com/cloudsdktool/asia.gcr.io/cloud-sdk:alpine', '-t', 'asia-docker.pkg.dev/google.com/cloudsdktool/asia.gcr.io/cloud-sdk:$TAG_NAME-alpine-$_DATE', 'alpine/']
@@ -161,6 +165,7 @@ images:
161165
- 'us-docker.pkg.dev/google.com/cloudsdktool/gcr.io/cloud-sdk:stable'
162166
- 'us-docker.pkg.dev/google.com/cloudsdktool/gcr.io/google-cloud-cli:$TAG_NAME-$_DATE'
163167
- 'us-docker.pkg.dev/google.com/cloudsdktool/gcr.io/google-cloud-cli:latest'
168+
- 'us-docker.pkg.dev/google.com/cloudsdktool/scanning/google-cloud-cli:all_components'
164169
- 'us-docker.pkg.dev/google.com/cloudsdktool/us.gcr.io/cloud-sdk:$TAG_NAME-$_DATE'
165170
- 'us-docker.pkg.dev/google.com/cloudsdktool/us.gcr.io/cloud-sdk:$TAG_NAME-alpine-$_DATE'
166171
- 'us-docker.pkg.dev/google.com/cloudsdktool/us.gcr.io/cloud-sdk:$TAG_NAME-debian_component_based-$_DATE'

cloudbuild.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ steps:
3131
- 'inspect'
3232
- '--bootstrap'
3333
waitFor: ['multi_arch_step2']
34+
- name: 'gcr.io/cloud-builders/docker'
35+
id: scanning_all_components
36+
args: ['build', '--build-arg', 'CLOUD_SDK_VERSION=$_CLI_VERSION', '-t', 'us-docker.pkg.dev/google.com/cloudsdktool/scanning/google-cloud-cli:all_components', 'all_components/']
37+
waitFor: ['-']
3438
- name: 'gcr.io/cloud-builders/docker'
3539
id: alpine
3640
args: ['build', '--build-arg', 'CLOUD_SDK_VERSION=$_CLI_VERSION', '-t', 'google/cloud-sdk:alpine', '-t', 'google/cloud-sdk:$TAG_NAME-alpine', '-t', 'us-docker.pkg.dev/google.com/cloudsdktool/gcr.io/cloud-sdk:alpine', '-t', 'us-docker.pkg.dev/google.com/cloudsdktool/gcr.io/cloud-sdk:$TAG_NAME-alpine', '-t', 'us-docker.pkg.dev/google.com/cloudsdktool/gcr.io/cloud-sdk:$TAG_NAME-alpine-$_DATE', '-t', 'us-docker.pkg.dev/google.com/cloudsdktool/us.gcr.io/cloud-sdk:alpine', '-t', 'us-docker.pkg.dev/google.com/cloudsdktool/us.gcr.io/cloud-sdk:$TAG_NAME-alpine', '-t', 'us-docker.pkg.dev/google.com/cloudsdktool/us.gcr.io/cloud-sdk:$TAG_NAME-alpine-$_DATE', '-t', 'europe-docker.pkg.dev/google.com/cloudsdktool/eu.gcr.io/cloud-sdk:alpine', '-t', 'europe-docker.pkg.dev/google.com/cloudsdktool/eu.gcr.io/cloud-sdk:$TAG_NAME-alpine', '-t', 'europe-docker.pkg.dev/google.com/cloudsdktool/eu.gcr.io/cloud-sdk:$TAG_NAME-alpine-$_DATE', '-t', 'asia-docker.pkg.dev/google.com/cloudsdktool/asia.gcr.io/cloud-sdk:alpine', '-t', 'asia-docker.pkg.dev/google.com/cloudsdktool/asia.gcr.io/cloud-sdk:$TAG_NAME-alpine', '-t', 'asia-docker.pkg.dev/google.com/cloudsdktool/asia.gcr.io/cloud-sdk:$TAG_NAME-alpine-$_DATE', 'alpine/']
@@ -181,6 +185,7 @@ images:
181185
- 'us-docker.pkg.dev/google.com/cloudsdktool/gcr.io/google-cloud-cli:$TAG_NAME'
182186
- 'us-docker.pkg.dev/google.com/cloudsdktool/gcr.io/google-cloud-cli:$TAG_NAME-$_DATE'
183187
- 'us-docker.pkg.dev/google.com/cloudsdktool/gcr.io/google-cloud-cli:latest'
188+
- 'us-docker.pkg.dev/google.com/cloudsdktool/scanning/google-cloud-cli:all_components'
184189
- 'us-docker.pkg.dev/google.com/cloudsdktool/us.gcr.io/cloud-sdk:$TAG_NAME'
185190
- 'us-docker.pkg.dev/google.com/cloudsdktool/us.gcr.io/cloud-sdk:$TAG_NAME-$_DATE'
186191
- 'us-docker.pkg.dev/google.com/cloudsdktool/us.gcr.io/cloud-sdk:$TAG_NAME-alpine'

generate_cloudbuild.py

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
- 'inspect'
3939
- '--bootstrap'
4040
waitFor: ['multi_arch_step2']
41+
{SCANNINGSTEPS}
4142
{BUILDSTEPS}
4243
# END OF PROD BUILDING STEPS
4344
{MULTIARCH_BUILDSTEPS}
@@ -59,20 +60,35 @@
5960

6061
GCRIO_PROJECT='google.com/cloudsdktool'
6162
GCR_PREFIXES = [('us-docker.pkg.dev', 'gcr.io'), ('us-docker.pkg.dev', 'us.gcr.io'), ('europe-docker.pkg.dev','eu.gcr.io'), ('asia-docker.pkg.dev', 'asia.gcr.io')]
63+
SCANNING_PREFIXES = [('us-docker.pkg.dev', 'scanning')]
6264
DOCKERHUB_PREFIX='google'
6365
OLD_NAME='cloud-sdk'
6466
REBRAND_NAME='google-cloud-cli'
6567
IMAGES=['alpine', 'debian_slim', 'default', 'debian_component_based', 'emulators', 'stable']
6668
MULTI_ARCH=['debian_slim', 'debian_component_based', 'alpine', 'emulators', 'stable']
69+
SCANNING_IMAGES=['all_components']
6770
LABEL_FOR_IMAGE={
6871
'alpine': 'alpine',
6972
'debian_slim': 'slim',
7073
'default': '',
7174
'debian_component_based': 'debian_component_based',
7275
'emulators': 'emulators',
73-
'stable': 'stable' # change it to stable when the image is ready to release.
76+
'stable': 'stable',
77+
'all_components': 'all_components'
7478
}
7579

80+
def MakeScanningTags (label):
81+
t = []
82+
for gcr_prefix, gcr_suffix in SCANNING_PREFIXES:
83+
t.append(
84+
'\'{gcrprefix}/{gcrio_project}/{gcrio_suffix}/{rebrand_name}:{label}\''
85+
.format(gcrprefix=gcr_prefix,
86+
gcrio_project=GCRIO_PROJECT,
87+
gcrio_suffix=gcr_suffix,
88+
rebrand_name=REBRAND_NAME,
89+
label=label))
90+
return t
91+
7692
def MakeGcrTags(label_without_tag,
7793
label_with_tag,
7894
maybe_hypen,
@@ -178,6 +194,32 @@ def MakeGcrTags(label_without_tag,
178194
label_with_tag,
179195
maybe_hypen,
180196
include_old_name=False))
197+
# Make scanning tags and save them
198+
scanning_tags={}
199+
for i in SCANNING_IMAGES:
200+
scanning_tags[i]=[]
201+
label_name = LABEL_FOR_IMAGE[i]
202+
if i == 'default':
203+
label_name = 'latest'
204+
scanning_tags[i].extend(MakeScanningTags(label_name))
205+
206+
scanning_steps=''
207+
for i in SCANNING_IMAGES:
208+
image_directory = '{}/'.format(i)
209+
if i == 'default':
210+
image_directory = '.'
211+
212+
scanning_step = """- name: 'gcr.io/cloud-builders/docker'
213+
id: scanning_{image_name}
214+
args: ['build', '--build-arg', 'CLOUD_SDK_VERSION=$_CLI_VERSION', {scanning_tags}, '{image_directory}']
215+
waitFor: ['-']"""
216+
output_scanning_step = scanning_step.format(
217+
image_name=i,
218+
scanning_tags=', '.join(['\'-t\', {}'.format(t) for t in scanning_tags[i]]),
219+
image_directory=image_directory)
220+
if len(scanning_steps) > 0:
221+
scanning_steps+='\n'
222+
scanning_steps+=output_scanning_step
181223

182224
build_steps=''
183225
for i in IMAGES:
@@ -230,12 +272,15 @@ def MakeGcrTags(label_without_tag,
230272
all_images_tags=[]
231273
for i in IMAGES:
232274
all_images_tags.extend([t for t in tags[i] if not t.startswith('\'google/cloud-sdk')])
275+
for i in SCANNING_IMAGES:
276+
all_images_tags.extend(t for t in scanning_tags[i])
233277
for tag in sorted(all_images_tags):
234278
if len(all_gcr_io_tags_for_images) > 0:
235279
all_gcr_io_tags_for_images+='\n'
236280
all_gcr_io_tags_for_images+='- {}'.format(tag)
237281

238282
print(MAIN_TEMPLATE.format(
283+
SCANNINGSTEPS=scanning_steps,
239284
BUILDSTEPS=build_steps,
240285
MULTIARCH_BUILDSTEPS=multi_arch_build_steps,
241286
DOCKER_PUSHSTEPS=docker_push_steps,

0 commit comments

Comments
 (0)