Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support multi-arch config outputs #421

Merged
merged 1 commit into from
Dec 10, 2024

Conversation

jonjohnsonjr
Copy link
Contributor

Prior to this change, apko_config had a single "config" property that contained an apko config, where the package list was the intersection of the arch-specific package lists.

Most of the time, the package list is identical across architectures, but architecture-specific dependencies (like libatomic) can lead to divergence. Since we only include the intersection, we would omit these architecture specific packages. When apko_build re-solved the locked package list, it would add the missing packages back, so this worked out, but was suboptimal.

We want to solve this mostly because this information being incomplete prevents us from relying on it, but this also solves an annoying hole in our reproducibility story, because the missing packages would not be pinned to any version and could float.

In the future, we may want to upgrade these locked versions (e.g. "foo=1.2.3-r4") to locked hashes (e.g. "foo><sha1hashgoeshere") for the architecture-specific configs, but apko does not currently support that and there would be quite a lot of prep work we'd need to do, but at least we have a place to do it now.

Prior to this change, apko_config had a single "config" property that
contained an apko config, where the package list was the intersection
of the arch-specific package lists.

Most of the time, the package list is identical across architectures,
but architecture-specific dependencies (like libatomic) can lead to
divergence. Since we only include the intersection, we would omit these
architecture specific packages. When apko_build re-solved the locked
package list, it would add the missing packages back, so this worked
out, but was suboptimal.

We want to solve this mostly because this information being incomplete
prevents us from relying on it, but this also solves an annoying hole in
our reproducibility story, because the missing packages would not be
pinned to any version and could float.

In the future, we may want to upgrade these locked versions (e.g.
"foo=1.2.3-r4") to locked hashes (e.g. "foo><sha1hashgoeshere") for the
architecture-specific configs, but apko does not currently support that
and there would be quite a lot of prep work we'd need to do, but at
least we have a place to do it now.

Signed-off-by: Jon Johnson <[email protected]>
@jonjohnsonjr
Copy link
Contributor Author

See chainguard-dev/terraform-publisher-apko#52 for how this will be used.

@jonjohnsonjr jonjohnsonjr merged commit 521bf98 into chainguard-dev:main Dec 10, 2024
12 checks 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.

2 participants