[arm] Add manifest steps to base-images (#8271)

Related: #8164
This commit is contained in:
jonathanmetzman 2022-08-23 10:54:20 -04:00 committed by GitHub
parent c64628826f
commit a2e5a2d2f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 49 additions and 0 deletions

View File

@ -110,6 +110,51 @@ def run_build(steps, images, tags=None, build_version=MAJOR_TAG):
use_build_pool=False)
def get_images_architecture_manifest_steps():
"""Returns steps to create manifests for ARM and x86_64 versions of
base-runner and base-builder."""
images = [f'{TAG_PREFIX}/base-builder', f'{TAG_PREFIX}/base-runner']
steps = []
for image in images:
steps.extend(get_image_push_architecture_manifest_steps(image))
return steps
def get_image_push_architecture_manifest_steps(image):
"""Returns the steps to push a manifest pointing to ARM64 and AMD64 versions
of |image|."""
arm_testing_image = f'{image}-testing-arm'
amd64_manifest_image = f'{image}:manifest-amd64'
arm64_manifest_image = f'{image}:manifest-arm64v8'
steps = [
{
'name': 'gcr.io/cloud-builders/docker',
'args': ['tag', image, amd64_manifest_image],
},
{
'name': 'gcr.io/cloud-builders/docker',
'args': ['pull', arm_testing_image],
},
{
'name': 'gcr.io/cloud-builders/docker',
'args': ['tag', arm_testing_image, arm64_manifest_image],
},
{
'name':
'gcr.io/cloud-builders/docker',
'args': [
'tag', 'manifest', 'create', image, '--amend',
arm64_manifest_image, '--amend', amd64_manifest_image
],
},
{
'name': 'gcr.io/cloud-builders/docker',
'args': ['manifest', 'push', image]
},
]
return steps
def base_builder(event, context):
"""Cloud function to build base images."""
del event, context
@ -119,6 +164,10 @@ def base_builder(event, context):
images = [TAG_PREFIX + base_image for base_image in BASE_IMAGES]
run_build(steps, images)
steps = get_images_architecture_manifest_steps()
images = ['base-builder', 'base-runner']
run_build(steps, images)
introspector_steps = _get_introspector_base_images_steps()
introspector_images = [
TAG_PREFIX + base_image for base_image in INTROSPECTOR_BASE_IMAGES