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

Tutorials should aim to use multi-arch container images with source code transparency #45822

Open
spurin opened this issue Apr 10, 2024 · 4 comments
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/backlog Higher priority than priority/awaiting-more-evidence. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@spurin
Copy link
Contributor

spurin commented Apr 10, 2024

This is a Feature Request

What would you like to be added

Kubernetes documentation tutorials should integrate multi-architecture container images alongside full source code transparency.

This approach provides universal accessibility of tutorials across amd64, ARM-based, and other Kubernetes-supported architectures, therefore ensuring a consistent learning experience.

Utilising images with open access to their source code is also beneficial. It improves transparency, facilitates auditing and independent builds whilst improving trust and security within the Kubernetes community.

From an implementation perspective, automating this process would be benefical. Upon detecting an image in a request, the system could automatically verify the image's multi-arch support or prompt for additional labels or notes before approval. For instance, images could be referenced as image=linux/amd64, image=linux/arm/v7, image=linux/arm/v8, linux/arm64 and/or require the inclusion of a note for the image source code. This approach could significantly enhance future efficiency and compliance.

Why is this needed

Issues have emerged where tutorial examples do not work for users using architectures beyond the traditional amd64 CPU instruction set as highlighted in the issue: #45809.

In the referenced issue, the image registry.k8s.io/liveness, last updated in 2014, supports only amd64. I have also been unsuccessful in identifying the source code for this image at present.

Reports of related issues can also be found in #45420 and #45783

@spurin spurin added the kind/feature Categorizes issue or PR as related to a new feature. label Apr 10, 2024
@k8s-ci-robot k8s-ci-robot added the needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. label Apr 10, 2024
@sftim
Copy link
Contributor

sftim commented Apr 10, 2024

Seems very reasonable

/triage accepted
/priority backlog
/lifecycle frozen

@k8s-ci-robot k8s-ci-robot added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. triage/accepted Indicates an issue or PR is ready to be actively worked on. priority/backlog Higher priority than priority/awaiting-more-evidence. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Apr 10, 2024
@sftim
Copy link
Contributor

sftim commented Apr 10, 2024

BTW, we already have some tests for verifying example manifests; we could extend those to report on whether referenced images are multi-arch (or multi-arch enough), and someone with capacity could change the PR process to run these automatically.

There's a good chance that other SIGs can help out with work in this area (eg SIG Release, SIG Testing).

@spurin
Copy link
Contributor Author

spurin commented Apr 10, 2024

The available architectures that are available in the pause container image may be a good starting point given that this represents a namespace in which containers will run alongside in a pod. Using the convenient google container registry explorer: https://explore.ggcr.dev/?image=registry.k8s.io%2Fpause%3A3.9

The linux supported architectures are -

  • linux/amd64
  • linux/arm/v7
  • linux/arm64
  • linux/ppc64le
  • linux/s390x

There are also two windows ones listed as

  • windows/amd64 (OS Version: 10.0.17763.2928)
  • windows/amd64 (OS Version: 10.0.20348.707)

I'm guessing and open to constructive feedback that the windows specific ones are possibly not a strict requirement in this and are there from a pause viewpoint for support.

Regarding help from SIG Release and SIG Testing, is there a preferred way to start discussions in this space, i.e. via this feature request or via communication on slack?

@sftim
Copy link
Contributor

sftim commented Apr 11, 2024

Slack's a good place to start.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/backlog Higher priority than priority/awaiting-more-evidence. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
None yet
Development

No branches or pull requests

3 participants