-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
load add image-load, support podman load #3109
base: main
Are you sure you want to change the base?
load add image-load, support podman load #3109
Conversation
Welcome @helen-frank! |
Hi @helen-frank. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Signed-off-by: helen <haitao.zhang@daocloud.io>
7607f6b
to
0902e2b
Compare
how is this different than current one that is not working in podman because of podman limitations to load images? |
My current implementation is feasible, I have tested it, and this problem is also found by wanting to use kwok on the kind-podman podman pull docker.io/kindest/node:v1.25.0 ─╯
Trying to pull docker.io/kindest/node:v1.25.0...
Getting image source signatures
Copying blob 9602ae1e967a done
Copying blob 405bac4f49ab done
Copying config d3da246e12 done
Writing manifest to image destination
Storing signatures
d3da246e125a0644c137ffd5ecaea7658d4875581a82891b955b319aa6341d11
╭─ ~ took 40s with root@10-29-16-89 at 10:32:24 ─╮
╰─❯ podman version ─╯
Version: 3.4.4
API Version: 3.4.4
Go Version: go1.17.3
Built: Thu Jan 1 00:00:00 1970
OS/Arch: linux/amd64
╭─ ~ with root@10-29-16-89 at 10:32:29 ─╮
╰─❯ podman ps ─╯
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
508321ce6a0f docker.io/kindest/node@sha256:f52781bc0d7a19fb6c405c2af83abfeb311f130707a0e219175677e366cc45d1 7 days ago Up 2 days ago multi-node-worker2
49270a353240 docker.io/kindest/node@sha256:f52781bc0d7a19fb6c405c2af83abfeb311f130707a0e219175677e366cc45d1 7 days ago Up 2 days ago multi-node-worker
c9f635cd7edd docker.io/kindest/node@sha256:f52781bc0d7a19fb6c405c2af83abfeb311f130707a0e219175677e366cc45d1 7 days ago Up 2 days ago 10.29.16.89:41201->6443/tcp multi-node-control-plane
a67d9f6f893b docker.io/kindest/node:v1.26.0 11 minutes ago Up 11 minutes ago 0.0.0.0:39493->6443/tcp kwok-m1-control-plane
╭─ ~ with root@10-29-16-89 at 10:32:41 ─╮
╰─❯ kind load image-load --name kwok-m1 docker.io/kindest/node:v1.25.0 ─╯
enabling experimental podman provider
Image: "docker.io/kindest/node:v1.25.0" with ID "d3da246e125a0644c137ffd5ecaea7658d4875581a82891b955b319aa6341d11" not yet present on node "kwok-m1-control-plane", loading...
╭─ ~ took 50s with root@10-29-16-89 at 10:33:57 ─╮
╰─❯ podman exec a67d9f6f893b crictl images ls | grep "docker.io/kindest/node" ─╯
docker.io/kindest/node v1.25.0 d3da246e125a0 875MB |
yeah, I was curious what is the difference with current docker-image command that makes this works and the other not 😄 |
In fact, the difference between The naming of docker-image prevents me from writing this logic to the boot It's hard to predict how much of an impact image-load would have if it replaced docker-image So I chose to create a new command, preferably using |
do you mean that podman has changed something and now the if you do |
if _, err := osexec.LookPath("podman"); err != nil { | ||
return "", err | ||
} | ||
return "podman", nil |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this the difference?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
because this was not working before #2760
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tried to use docker-image in the form of soft links, and I succeeded.
❯ ln -s /usr/bin/podman /usr/bin/docker
❯ kind load docker-image --name kwok-m1 docker.io/kindest/node:v1.24.0
enabling experimental podman provider
Image: "docker.io/kindest/node:v1.24.0" with ID "a7d31d743aca47d4cdb00d6f61ba58b2423a1ead57dffa234f8d4f402f0a049d" not yet present on node "kwok-m1-control-plane", loading...
❯ podman exec a67d9f6f893b crictl images ls | grep "docker.io/kindest/node"
docker.io/kindest/node v1.24.0 a7d31d743aca4 915MB
docker.io/kindest/node v1.25.0 d3da246e125a0 875MB
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❯ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this the difference?
Yeah, simple and effective, I didn't find podman has the problem of preventing ctr from writing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
something seems to have changed in podman or my memory is confused 😄
@BenTheElder it seems we can have the common load-image with no effort
@aojea Can you give me an ok-to-test label? |
/ok-to-test |
/retest |
Can we continue?😀 @aojea @danderson @BenTheElder
|
erm, Please see: #2038, we should be discussing approaches to new features in the feature issues, per our contributing docs. https://kind.sigs.k8s.io/docs/contributing/getting-started/#4-reaching-out I'm sorry, but all hands on deck with Keeping the Kubernetes project funded right now (See SIG K8s Infra). The next thing up for the kind project is a release with all the existing bug fixes, when @aojea gets time. We need to get the API right before introducing a new command, people will begin depending on it immediately. If podman is actually working drop-in compatible here and we don't want to do all of #2038, we can design a third command (see the existing proposal) and give it a better name. |
@mimani68: changing LGTM is restricted to collaborators In response to this: Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: helen-frank, mimani68 The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like podman does have the necessary commands now. So from what I can tell, this should be good just swapping out docker
for podman
when needed.
If we have a general common command for this, should we add a note to load docker-image
that it is deprecated and this new command should be used instead?
We probably shouldn't deprecate docker-image, it's more specific and widely used. We really need a discussed approach (preferably in a tracking issue) that also considers nerdctl / other runtimes. |
/kind feature
Kind load add command image-load, extension supports podman load