Skip to content

[FEATURE] Implement image index for multi-arch images #2076

Description

@adambkaplan

Overview

This task implements the logic to create an image index containing each architecture-specific image digest, as described in SHIP-0043.

Description

After all architecture-specific builds complete successfully, create an OCI image index that references the individual architecture-specific image digests:

  • Collecting image references from all architecture-specific builds
  • Creating a manifest list (OCI Image Index) that references all architecture-specific images
  • Pushing the image index to the registry
  • Handling errors if manifest index creation fails
  • Handling cases where some architectures fail (fail the build)

Acceptance Criteria

  • Logic to collect image references from all architecture builds
  • Multi-arch manifest list (OCI Image Index) creation
  • Manifest list push to registry
  • Error handling for manifest index creation failures
  • Handling of partial failures (some architectures succeed, others fail - should fail the build)
  • Unit tests pass with >80% coverage for new code
  • Integration tests verify image index creation completes successfully
  • E2E tests for complete multi-arch build workflow including image index creation

Dependencies

  • Blocked by: Implement multi-arch build API, orchestration, and node selection
  • Blocks: Documentation and examples

Technical Notes

  • Use container image libraries (e.g., github.com/containers/image) for manifest operations
  • Manifest list should follow OCI Image Index specification
  • Consider using a final task in the PipelineRun to create the image index
  • Handle cases where some architectures fail (this should fail the build)
  • Image index creation should happen after all successful architecture builds complete
  • Ensure manifest list includes proper architecture annotations for each image

Generated-by: Cursor

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.

    Fields

    No fields configured for Feature.

    Projects

    Status
    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions