Enable pipeline to build for multiple architectures
Further work on !1368 (closed) by @shiyin0413 adding infrastructure pieces and ironing out backend.
Related issues
What does this MR do?
- Introduces
buildx
into container builds - Adds necessary pipeline changes to use multi-arch builds (based on !1368 (closed))
- Adds infrastructure integration to be used with
buildx
kubernetes cluster
- Adds infrastructure integration to be used with
- Adds/modifies corresponding image metrics
-
Enforces target platform for upstream images during build (resolving issue of possible pulling of "incorrect" platform image during build with subsequent job failure)!1455 (merged) - changes computation of
CONTAINER_VERSION
adding platform identificator to avoid image collisions for different platforms ( see also [CNG] Revisit how we compute CONTAINER_VERSION (#322) ) - Allows run-time specification of target platforms via
ARCH_LIST
variable - Fall back to single-node
buildx
operation when kuberentes cluster is undefined
Acceptance criteria
-
Appropriate scaling of buildx
deployments has been determined (how many replicas each pod should have) -
buildx
pods are cleaned up each time after use -
functional caching technique implemented -
pipeline executes reliably (no need for manual interventions) -
FIPS containers have been tested in chart deployment FIPS on arm64-
FIPS on amd64
-
UBI containers have been tested in chart deployment UBI on arm64-
UBI on amd64
-
Chart pipeline passes for amd64 clusters
Edited by Dmytro Makovey