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

proposal: CRI-O to graduation #917

Merged
merged 1 commit into from
Jul 19, 2023
Merged

Conversation

haircommander
Copy link
Contributor

CRI-O has been an incubating project for 3 years, and has been adopted by a number of organizations for their implementation of the Kubernetes container runtime interface. The CRI-O community believes it's graduation time 😎

@haircommander will be the main contact here.

TIA for your time and attention

@haircommander
Copy link
Contributor Author

cc @saschagrunert @mrunalp @angellk

@amye amye added this to Needs TOC Triage & Public Comment Kickoff in Graduating Projects Backlog Sep 20, 2022
@nikhita nikhita self-assigned this Mar 7, 2023
@dims dims removed their assignment Mar 18, 2023
@TheFoxAtWork TheFoxAtWork moved this from Needs TOC Triage & Public Comment Kickoff to In discussion & Adopter Interviews in Graduating Projects Backlog May 2, 2023
@haircommander haircommander force-pushed the graduate-cri-o branch 2 times, most recently from ef5db36 to 498234d Compare May 23, 2023 17:40
@TheFoxAtWork TheFoxAtWork moved this from In discussion & Adopter Interviews to In Public Comment Period in Graduating Projects Backlog May 23, 2023
Copy link

@saschagrunert saschagrunert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@humblec
Copy link

humblec commented Jun 7, 2023

+1

There are two pieces of the CRI: the image service and runtime service.

The image service is responsible for image related operations, like pulling, listing and removing images.
CRI-O uses the OCI registry authentication definition, and the OCI image definition to conform to industry-standard image moving and storing methods.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CRI-O uses the OCI registry authentication definition

Can this be hyperlinked to said definition?

The image service is responsible for image related operations, like pulling, listing and removing images.
CRI-O uses the OCI registry authentication definition, and the OCI image definition to conform to industry-standard image moving and storing methods.
In addition to docker registry authentication, CRI-O also has the option to query [sigstore](sigstore.dev) to verify image signatures.
CRI-O uses the [containers image](github.com/containers/image) library to do this image pulling, which is a library shared by projects like
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
CRI-O uses the [containers image](github.com/containers/image) library to do this image pulling, which is a library shared by projects like
CRI-O uses the [containers image](https://github.com/containers/image) library to do this image pulling, which is a library shared by projects like


The image service is responsible for image related operations, like pulling, listing and removing images.
CRI-O uses the OCI registry authentication definition, and the OCI image definition to conform to industry-standard image moving and storing methods.
In addition to docker registry authentication, CRI-O also has the option to query [sigstore](sigstore.dev) to verify image signatures.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In addition to docker registry authentication, CRI-O also has the option to query [sigstore](sigstore.dev) to verify image signatures.
In addition to docker registry authentication, CRI-O also has the option to query [sigstore](https://sigstore.dev) to verify image signatures.


The runtime service is responsible for both container and pod related operations, for instance running and removing pods,
and creating, starting and removing containers. It uses a utility called [pinns](https://github.com/cri-o/cri-o/tree/release-1.26/pinns)
to create namespaces for the pods, and [CNI](cni.dev) to create the networking resources for pods.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
to create namespaces for the pods, and [CNI](cni.dev) to create the networking resources for pods.
to create namespaces for the pods, and [CNI](https://cni.dev) to create the networking resources for pods.

to create namespaces for the pods, and [CNI](cni.dev) to create the networking resources for pods.
It also uses an OCI compliant runtime like [runC](https://github.com/opencontainers/runc), [crun](https://github.com/containers/crun)
or [Kata Containers](https://katacontainers.io/) to do many container operations.
It also uses a utility called [conmon](github.com/containers/conmon), or its successor [conmon-rs](github.com/containers/conmon-rs)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
It also uses a utility called [conmon](github.com/containers/conmon), or its successor [conmon-rs](github.com/containers/conmon-rs)
It also uses a utility called [conmon](https://github.com/containers/conmon), or its successor [conmon-rs](https://github.com/containers/conmon-rs)


This customization applies to its security posture:

* Since CRI-O only supports Kubernetes, the only avenue a unprivileged malicious user has to attack it is to trick the Kubelet into causing CRI-O to perform the exploit. This severely limits CRI-O’s attack surface.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Since CRI-O only supports Kubernetes, the only avenue a unprivileged malicious user has to attack it is to trick the Kubelet into causing CRI-O to perform the exploit. This severely limits CRI-O’s attack surface.
* Since CRI-O only supports Kubernetes, the only avenue an unprivileged malicious user has to attack it is to trick the Kubelet into causing CRI-O to perform the exploit. This severely limits CRI-O’s attack surface.


### Alignment with other CNCF projects

CRI-O occupies the same piece of the Kubernetes stack as other implementations of the CRI–most notably [containerd](https://containerd.io).
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
CRI-O occupies the same piece of the Kubernetes stack as other implementations of the CRImost notably [containerd](https://containerd.io).
CRI-O occupies the same piece of the Kubernetes stack as other implementations of the CRImost notably [containerd](https://containerd.io).

@haircommander
Copy link
Contributor Author

thanks @makkes updates as suggested!

@amye amye moved this from In Public Comment Period to In TOC Voting in Graduating Projects Backlog Jun 13, 2023
@jeefy jeefy merged commit 8523e20 into cncf:main Jul 19, 2023
1 check passed
Graduating Projects Backlog automation moved this from In TOC Voting to Done Jul 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

None yet

9 participants