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

Add functional test for system versions of container engines #10089

Closed
afbjorklund opened this issue Jan 4, 2021 · 14 comments
Closed

Add functional test for system versions of container engines #10089

afbjorklund opened this issue Jan 4, 2021 · 14 comments
Labels
area/testing co/docker-driver Issues related to kubernetes in container co/podman-driver podman driver issues help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. os/linux priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.

Comments

@afbjorklund
Copy link
Collaborator

afbjorklund commented Jan 4, 2021

(This is issue is about KIC on Linux)

Currently we are testing with the vendor versions of the container engines:

But maybe we also need to test with the system versions, in the distributions:

Or at least add some documentation, as to which "variants" are supported.

Currently users expect to be able to install the packages from anywhere...


Note that this issue is about the container engine to be used for the node:

  • Docker
  • Podman

It's not about the container runtime to be used inside the container node:

  • Docker (dockershim/cri-dockerd)
  • CRI-O
  • containerd

For those we still only support the vendor versions, as per Kubernetes upstream.
There are system versions in some other dedicated Kubernetes operating systems.
But we don't use those, so it is up to each Kubernetes distribution to support them.
Example is our own custom Buildroot distribution for the ISO, with system packages.

@afbjorklund afbjorklund added kind/feature Categorizes issue or PR as related to a new feature. area/testing priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. triage/discuss Items for discussion co/docker-driver Issues related to kubernetes in container co/podman-driver podman driver issues labels Jan 4, 2021
@afbjorklund
Copy link
Collaborator Author

Otherwise we risk seeing distribution-specific issues like #10088

Could also be a good idea to document supported versions: #9077

@afbjorklund
Copy link
Collaborator Author

Using vagrant for regression/release testing is a great idea.

Unfortunately it only works for real servers, not nested VMs.

@afbjorklund
Copy link
Collaborator Author

Partly related to #3552, for adding support for fedora/centos.

Also need some good way to aggregate/present the results ?

@afbjorklund
Copy link
Collaborator Author

afbjorklund commented Jan 6, 2021

I started on some test infrastructure, for generic: #4733

Should clean it up and make it general... #9545 (comment)

Ubuntu 16.04
Ubuntu 18.04
Ubuntu 20.04
CentOS 7
CentOS 8
Fedora 32
Debian 9
Debian 10

One Vagrantfile for each environment, multiplied by above.

@medyagh
Copy link
Member

medyagh commented Jan 6, 2021

do u mind adding more clarificaiton, I am a bit confused, if you are talking about the inside minikube podman engine?

@afbjorklund
Copy link
Collaborator Author

do u mind adding more clarificaiton, I am a bit confused, if you are talking about the inside minikube podman engine?

I tried to clarify:

Note that this issue is about the container engine to be used for the node.

It's not about the container runtime to be used inside the container node.

When using docker-in-docker, it can easilly get confusing which is "docker" and which is "docker". 🙂

We control the inside, and there we only run the vendor variant. Not whatever is in the distribution.
This is the same as kubernetes upstream* (kubeadm), except we don't have the same version lock.

* https://kubernetes.io/docs/setup/production-environment/container-runtimes/

Except for the "none" driver, but there are really no guarantees if you try to use something else...
Ultimately we should probably always provision the runtime - also for the none and generic drivers.

So this issue was all about the outside, if we should support the distribution versions as well ?

@afbjorklund
Copy link
Collaborator Author

afbjorklund commented Jan 6, 2021

Main reason to support the standard versions, would be to make it simpler for the user.

sudo apt install docker.io

vs

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

It also makes it easier to access the source code, and to integrate with other packages.

That is important to some people, especially Debian users. They don't want the binaries.


More details: https://www.collabora.com/news-and-blog/blog/2018/07/04/docker-io-debian-package-back-to-life/

The story for podman is more or less the same, even though it is from another distribution rather than a company...

@medyagh
Copy link
Member

medyagh commented Jan 20, 2021

this is a good idea ! for the starting point we should at least add ubuntu 20.04 and 18.04 test to our matrix. @afbjorklund

For a starting point we could add 3 new functional test on Gihtub Action. for 3 different versions of ubuntu.

https://docs.github.com/en/actions/reference/specifications-for-github-hosted-runners#:~:text=GitHub%20offers%20runners%20with%20Linux,each%20job%20in%20a%20workflow.

@afbjorklund
Copy link
Collaborator Author

afbjorklund commented Jan 20, 2021

Maybe weigh the test matrix, against what minikube users are actually using ? Like after doing a poll, or opt-in registration

@ilya-zuyev ilya-zuyev added help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. and removed triage/discuss Items for discussion labels Feb 3, 2021
@ilya-zuyev ilya-zuyev changed the title Add testing for system versions of the container engines ? Add functional test for older versions of Ubuntu on GitHub Actions Feb 3, 2021
@ilya-zuyev
Copy link
Contributor

We need to add functional tests for older versions of ubuntu and included docker versions

@afbjorklund afbjorklund changed the title Add functional test for older versions of Ubuntu on GitHub Actions Add functional test for system versions of container engines on GitHub Actions Apr 11, 2021
@afbjorklund
Copy link
Collaborator Author

Actually this issue doesn't have so much to do with the OS versions that minikube is doing the testing with.

It was about testing with the system package of the container runtimes, as well as the vendor packages ?

@afbjorklund afbjorklund changed the title Add functional test for system versions of container engines on GitHub Actions Add functional test for system versions of container engines May 14, 2021
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Aug 12, 2021
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Sep 11, 2021
@medyagh
Copy link
Member

medyagh commented Sep 15, 2021

I dont know if we have ifnra bandwith to add more tests infra just for this. if Github Actions would provide older OS or Debian we could add functioan on github action if not we could close this issue for now till that infra is available for us

@medyagh medyagh closed this as completed Sep 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/testing co/docker-driver Issues related to kubernetes in container co/podman-driver podman driver issues help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. os/linux priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Projects
None yet
Development

No branches or pull requests

5 participants