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
buildxinto container builds - Adds necessary pipeline changes to use multi-arch builds (based on !1368 (closed))
- Adds infrastructure integration to be used with
buildxkubernetes 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_VERSIONadding 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_LISTvariable - Fall back to single-node
buildxoperation when kuberentes cluster is undefined
Acceptance criteria
-
Appropriate scaling of buildxdeployments has been determined (how many replicas each pod should have) -
buildxpods 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