Skip to content

Enable pipeline to build for multiple architectures

Dmytro Makovey requested to merge shiyin0413-enable_pipeline_with_multiarch into master

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/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

Merge request reports