Skip to content

apko-plan: support multiple apko configs per image - #58

Merged
falcorocks merged 1 commit into
mainfrom
falcorocks/apko-dev-variant
Aug 17, 2026
Merged

falcorocks merged 1 commit into
mainfrom
falcorocks/apko-dev-variant

Conversation

@falcorocks

Copy link
Copy Markdown
Collaborator

What

Let an image in the apko catalog declare apko_configs — a list of apko YAML files to build for that image. The plan fans out one apko publish leg per config (default [apko/<service>.yaml], so existing catalogs are unchanged).

The image tag suffix is derived from the config filename stem (apko/<svc>-<suffix>.yaml → -<suffix>) and passed with the config path to apko-publish, which appends it to both the SHA and publish tags. Smoke tests run for the default config only.

Safety

  • Backwards compatible: no apko_configs ⇒ identical to today's single-config behaviour.
  • Melange legs are keyed on needs_melange and unaffected — extra apko configs reuse the same prebuilt APKs, they don't fork the build.

Tests

apko-plan.test.sh gains variant-fan-out coverage: one row per config, filename-derived suffix, default-only smoke, single melange leg.

Fan out one apko publish leg per config listed in an image's
apko_configs (default: [apko/<service>.yaml], so existing catalogs are
unchanged). The image tag suffix is derived from the config filename
stem (apko/<svc>-<suffix>.yaml -> -<suffix>) and passed with the config
path to apko-publish, which appends the suffix to both the SHA and
publish tags. Smoke tests run for the default config only.

Melange build legs are keyed on needs_melange and unaffected: extra
apko configs reuse the same prebuilt APKs, they do not fork the build.
@falcorocks
falcorocks requested review from a team as code owners August 17, 2026 12:07
@falcorocks falcorocks self-assigned this Aug 17, 2026
@falcorocks
falcorocks merged commit c134f32 into main Aug 17, 2026
1 check passed
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