Skip to content

Add multi-architecture build support and infrastructure improvements#9

Merged
chadmf merged 1 commit into
mainfrom
multiarch
Apr 4, 2026
Merged

Add multi-architecture build support and infrastructure improvements#9
chadmf merged 1 commit into
mainfrom
multiarch

Conversation

@chadmf

@chadmf chadmf commented Apr 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add multi-architecture build support (amd64 and arm64) with automated build scripts
  • Implement comprehensive build automation for Podman, Docker, and OpenShift
  • Add architectural decision records (ADRs) documenting design choices
  • Create CI/CD workflows for validation and E2E testing
  • Enhance deployment scripts and documentation for OpenShift environments

Key Changes

Multi-Architecture Support

  • build/build-provider-multi-arch.sh: New script for building both amd64 and arm64 images using Docker buildx or Podman manifest
  • build/build-provider-image-podman.sh: Podman-based build workflow for single-arch or multi-arch images
  • build/build-provider-openshift.sh: OpenShift BuildConfig-based builds with S2I

Build Automation

  • docs/build/BUILD-PROVIDER-IMAGE.md: Comprehensive guide for building provider controller images
  • docs/build/CROSSPLANE-PACKAGE-IMAGE.md: Documentation for Crossplane package (xpkg) creation
  • build/provider-aap-buildconfig.yaml: OpenShift BuildConfig for building in-cluster

Documentation & ADRs

  • docs/adr/ADR-001-upjet-vs-native.md: Decision to use Upjet over native controllers
  • docs/adr/ADR-002-job-crd-semantics.md: Job CRD design decisions
  • docs/ROADMAP.md: Project roadmap and future plans
  • DEPLOYMENT_TEST_REPORT.md: Deployment validation report

CI/CD & Testing

  • .github/workflows/ci.yml: Automated CI validation workflow
  • .github/workflows/e2e-tests.yml: End-to-end test automation
  • test/e2e/run-e2e-tests.sh: Comprehensive E2E test suite

Post-Generate Fixes

  • hack/post-generate-fixes.sh: Automated fixes for Upjet-generated code
  • hack/apply-post-generate-fixes.sh: Apply fixes to generated APIs and controllers

Deployment Support

  • deploy/create-aap-credentials-secret.sh: AAP credentials secret creation
  • deploy/crossplane-values-openshift.yaml: Crossplane Helm values for OpenShift
  • deploy/deployment-runtime-config-openshift.yaml: Runtime configuration for OpenShift

Architecture

The multi-arch build script supports:

  • Platforms: linux/amd64, linux/arm64
  • Container tools: Docker (with buildx) or Podman (with manifest)
  • Registry push: Optional --push flag for automated registry uploads
  • Build verification: Automated inspection of multi-arch manifests

Test Plan

  • Multi-arch build script tested on macOS (arm64) and Linux (amd64)
  • Provider images successfully pushed to Quay.io
  • Deployment validated on OpenShift (CRC and full cluster)
  • E2E tests pass for Job, Inventory, and InventoryHost resources
  • CI workflow validates builds on PR creation

Breaking Changes

None - this is additive functionality that doesn't change existing interfaces.

Migration Notes

For users building custom provider images:

  1. Use ./build/build-provider-multi-arch.sh <image-tag> --push for multi-arch builds
  2. Update Provider spec.package to point to your registry image
  3. See docs/build/BUILD-PROVIDER-IMAGE.md for detailed instructions

🤖 Generated with Claude Code

… method. Updated the command to use 'cut' for better clarity and reliability in retrieving the module path from go.mod.
@chadmf chadmf merged commit 5d91a8e into main Apr 4, 2026
2 of 3 checks passed
@chadmf chadmf deleted the multiarch branch April 4, 2026 06:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant