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 docker driver for s390x #11993

Closed
vivkong opened this issue Jul 16, 2021 · 7 comments
Closed

Support docker driver for s390x #11993

vivkong opened this issue Jul 16, 2021 · 7 comments
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. priority/backlog Higher priority than priority/awaiting-more-evidence.

Comments

@vivkong
Copy link

vivkong commented Jul 16, 2021

I am able to build the kicbase image on s390x and use it to start minikube:

$docker build -t local/kicbase:latest -f ./deploy/kicbase/Dockerfile .

$minikube start --driver docker --base-image=local/kicbase:latest
😄  minikube v1.21.0 on Ubuntu 20.04 (s390x)
🎉  minikube 1.22.0 is available! Download it: https://github.com/kubernetes/minikube/releases/tag/v1.22.0
💡  To disable this notice, run: 'minikube config set WantUpdateNotification false'

✨  Using the docker driver based on user configuration
👍  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
🔥  Creating docker container (CPUs=2, Memory=2200MB) ...
    > kubectl.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
    > kubelet: 104.81 MiB / 104.81 MiB [-----------] 100.00% 32.08 MiB p/s 3.5s                                                                                                           
    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...
    ▪ Configuring RBAC rules ...
🔎  Verifying Kubernetes components...
    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟  Enabled addons: storage-provisioner, default-storageclass
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

$ kubectl get po -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE
kube-system   coredns-74ff55c5b-g64r6            1/1     Running   0          85s
kube-system   etcd-minikube                      1/1     Running   0          93s
kube-system   kube-apiserver-minikube            1/1     Running   0          93s
kube-system   kube-controller-manager-minikube   1/1     Running   0          93s
kube-system   kube-proxy-wml2h                   1/1     Running   0          85s
kube-system   kube-scheduler-minikube            1/1     Running   0          93s
kube-system   storage-provisioner                1/1     Running   0          98s

Wondering what is required to make the docker driver available for s390x? I am happy to contribute code changes and help.

I tried to follow the tutorial but like #11107, the echoserver image does not work out of the box on s390. I was able to build my own echoserver image to continue the tutorial. How can I contribute an image for s390x and reference it in the docs?

Thanks!

@afbjorklund
Copy link
Collaborator

afbjorklund commented Jul 16, 2021

Similar to #11658, hopefully supporting arm64 in full (beyond amd64 only) also means better support for other exotic architectures.

But testing is a bit of a problem. Hopefully cross-compiling for additional architectures is enough, after testing on amd64 and arm64.

@afbjorklund afbjorklund added the kind/feature Categorizes issue or PR as related to a new feature. label Jul 16, 2021
@spowelljr spowelljr added the priority/backlog Higher priority than priority/awaiting-more-evidence. label Jul 16, 2021
@spowelljr spowelljr changed the title docker driver for s390x Support docker driver for s390x Jul 16, 2021
@vivkong
Copy link
Author

vivkong commented Jul 20, 2021

Thanks for the explanation - does that mean adding support for non-amd64/arm64 architectures will only be done once cross-compiling is implemented?

Would you know which project uploaded the echoserver image to the k8s.gcr.io repository? I wanted to see if it's possible to have a new version with multi-arch so that it will work on non-amd64 archs. I understand it comes from kubernetes tests but wasn't sure if they are the one maintaining the image. Thanks!

@afbjorklund
Copy link
Collaborator

I posted what I could find on the "echoserver" in: #11107 (comment)

It now lives on as: gcr.io/kubernetes-e2e-test-images/echoserver

@afbjorklund
Copy link
Collaborator

afbjorklund commented Jul 20, 2021

Thanks for the explanation - does that mean adding support for non-amd64/arm64 architectures will only be done once cross-compiling is implemented?

I meant that minikube can only test amd64 and arm64 in CI, the other architectures will have to be cross-compiled and "as-is"

Currently just doing that for the program binary itself, but possibly it could also work for the images (with upstream support etc)

@vivkong
Copy link
Author

vivkong commented Jul 20, 2021

Thanks @afbjorklund. That makes sense. I'm trying to understand how the build process work to see if the s390x image can be built with the current setup before I submit a PR. Thanks.

@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 Oct 18, 2021
@vivkong
Copy link
Author

vivkong commented Oct 25, 2021

Hi @afbjorklund , I see that the kicbase image is now built for s390x as well (#12079) which allows me to run minikube with docker driver on s390x. I'm closing this.

@vivkong vivkong closed this as completed Oct 25, 2021
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/stale Denotes an issue or PR has remained open with no activity and has become stale. priority/backlog Higher priority than priority/awaiting-more-evidence.
Projects
None yet
Development

No branches or pull requests

5 participants