Skip to content

v2.28 runc installer fails, wron file name assumption #12261

@infinity202

Description

@infinity202

What happened?

The deployment of runc downloads https://github.com/opencontainers/runc/releases/download/v1.2.6/runc.amd6.
This results in the file runc.amd in /tmp/releases/
But later the deployment tries to move /tmp/releases/runc.v1.2.6.amd64 to /usr/bin (or something like that)
as the file does not exist on the origin the script fails.

ChatGPT is not helpful in resolving this matter, it starts hallucinating and makes up multiple non-existing files to resolve the issue.

What did you expect to happen?

download https://github.com/opencontainers/runc/releases/download/v1.2.6/runc.amd6 to /tmp/releases (additional bug: this directory is not created by the installer)
move/copy runc.amd64 to / usr/local/bin/runc

How can we reproduce it (as minimally and precisely as possible)?

docker run --rm -it --mount type=bind,source="$(pwd)"/inventory/sample,dst=/inventory
--mount type=bind,source="${HOME}"/.ssh/id_rsa,dst=/root/.ssh/id_rsa
quay.io/kubespray/kubespray:v2.28.0 bash

Inside the container you may now run the kubespray playbooks:

ansible-playbook -i /inventory/inventory.ini --private-key /root/.ssh/id_rsa cluster.yml

OS

Rocky Linux 9

Version of Ansible

from docker

Version of Python

Python 3.9.21

Version of Kubespray (commit)

92e8ac9

Network plugin used

calico

Full inventory with variables

ansible -i inventory/sample/inventory.ini all -m debug -a "var=hostvars[inventory_hostname]"
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
[WARNING]: Skipping callback plugin 'ara_default', unable to load

Command used to invoke ansible

ansible-playbook -i /inventory/inventory.ini --private-key /root/.ssh/id_rsa cluster.yml --check

Output of ansible run

TASK [container-engine/runc : Runc | Download runc binary] *******************************************************************************
included: /kubespray/roles/container-engine/runc/tasks/../../../download/tasks/download_file.yml for node4, node5, node6, node7, node1, node2, node3
Monday 26 May 2025 06:25:02 +0000 (0:00:00.138) 0:01:04.842 ************

TASK [container-engine/runc : Prep_download | Set a few facts] ***************************************************************************
ok: [node5]
ok: [node6]
ok: [node7]
ok: [node1]
ok: [node4]
ok: [node2]
ok: [node3]
Monday 26 May 2025 06:25:03 +0000 (0:00:00.793) 0:01:05.636 ************

TASK [container-engine/runc : Download_file | Show url of file to download] **************************************************************
ok: [node5] => {
"msg": "https://github.com/opencontainers/runc/releases/download/v1.2.6/runc.amd64"
}
ok: [node6] => {
"msg": "https://github.com/opencontainers/runc/releases/download/v1.2.6/runc.amd64"
}
ok: [node7] => {
"msg": "https://github.com/opencontainers/runc/releases/download/v1.2.6/runc.amd64"
}
ok: [node4] => {
"msg": "https://github.com/opencontainers/runc/releases/download/v1.2.6/runc.amd64"
}
ok: [node1] => {
"msg": "https://github.com/opencontainers/runc/releases/download/v1.2.6/runc.amd64"
}
ok: [node2] => {
"msg": "https://github.com/opencontainers/runc/releases/download/v1.2.6/runc.amd64"
}
ok: [node3] => {
"msg": "https://github.com/opencontainers/runc/releases/download/v1.2.6/runc.amd64"
}
Monday 26 May 2025 06:25:04 +0000 (0:00:01.429) 0:01:07.066 ************

TASK [container-engine/runc : Download_file | Set pathname of cached file] ***************************************************************
ok: [node4]
ok: [node5]
ok: [node6]
ok: [node7]
ok: [node1]
ok: [node2]
ok: [node3]
Monday 26 May 2025 06:25:06 +0000 (0:00:01.408) 0:01:08.474 ************

TASK [container-engine/runc : Download_file | Create dest directory on node] *************************************************************
ok: [node4]
ok: [node5]
ok: [node6]
ok: [node1]
changed: [node7]
ok: [node3]
ok: [node2]
Monday 26 May 2025 06:25:08 +0000 (0:00:02.368) 0:01:10.842 ************
Monday 26 May 2025 06:25:08 +0000 (0:00:00.026) 0:01:10.869 ************
Monday 26 May 2025 06:25:08 +0000 (0:00:00.029) 0:01:10.898 ************

TASK [container-engine/runc : Download_file | Download item] *****************************************************************************
changed: [node4]
changed: [node1]
changed: [node6]
changed: [node5]
changed: [node7]
changed: [node2]
changed: [node3]
Monday 26 May 2025 06:25:17 +0000 (0:00:09.326) 0:01:20.224 ************
Monday 26 May 2025 06:25:18 +0000 (0:00:00.156) 0:01:20.381 ************
Monday 26 May 2025 06:25:18 +0000 (0:00:00.092) 0:01:20.474 ************
Monday 26 May 2025 06:25:18 +0000 (0:00:00.098) 0:01:20.573 ************

TASK [container-engine/runc : Download_file | Extract file archives] *********************************************************************
included: /kubespray/roles/download/tasks/extract_file.yml for node4, node5, node6, node7, node1, node2, node3
Monday 26 May 2025 06:25:18 +0000 (0:00:00.144) 0:01:20.717 ************
Monday 26 May 2025 06:25:19 +0000 (0:00:00.819) 0:01:21.537 ************

TASK [container-engine/runc : Copy runc binary from download dir] ************************************************************************
fatal: [node7]: FAILED! => {"changed": false, "msg": "Source /tmp/releases/runc-1.2.6.amd64 not found"}
fatal: [node1]: FAILED! => {"changed": false, "msg": "Source /tmp/releases/runc-1.2.6.amd64 not found"}
fatal: [node6]: FAILED! => {"changed": false, "msg": "Source /tmp/releases/runc-1.2.6.amd64 not found"}
fatal: [node5]: FAILED! => {"changed": false, "msg": "Source /tmp/releases/runc-1.2.6.amd64 not found"}
fatal: [node4]: FAILED! => {"changed": false, "msg": "Source /tmp/releases/runc-1.2.6.amd64 not found"}
fatal: [node2]: FAILED! => {"changed": false, "msg": "Source /tmp/releases/runc-1.2.6.amd64 not found"}
fatal: [node3]: FAILED! => {"changed": false, "msg": "Source /tmp/releases/runc-1.2.6.amd64 not found"}

NO MORE HOSTS LEFT ***********************************************************************************************************************

PLAY RECAP *******************************************************************************************************************************
node1 : ok=104 changed=17 unreachable=0 failed=1 skipped=182 rescued=0 ignored=0
node2 : ok=104 changed=17 unreachable=0 failed=1 skipped=182 rescued=0 ignored=0
node3 : ok=104 changed=17 unreachable=0 failed=1 skipped=182 rescued=0 ignored=0
node4 : ok=126 changed=16 unreachable=0 failed=1 skipped=207 rescued=0 ignored=0
node5 : ok=102 changed=16 unreachable=0 failed=1 skipped=184 rescued=0 ignored=0
node6 : ok=102 changed=16 unreachable=0 failed=1 skipped=184 rescued=0 ignored=0
node7 : ok=102 changed=17 unreachable=0 failed=1 skipped=184 rescued=0 ignored=0

Monday 26 May 2025 06:25:20 +0000 (0:00:01.362) 0:01:22.900 ************

container-engine/runc : Download_file | Download item ----------------------------------------------------------------------------- 9.33s
container-engine/validate-container-engine : Populate service facts --------------------------------------------------------------- 2.66s
container-engine/runc : Download_file | Create dest directory on node ------------------------------------------------------------- 2.37s
system_packages : Manage packages ------------------------------------------------------------------------------------------------- 2.18s
kubernetes/preinstall : Ensure kubelet expected parameters are set ---------------------------------------------------------------- 2.01s
container-engine/runc : Download_file | Show url of file to download -------------------------------------------------------------- 1.43s
container-engine/runc : Download_file | Set pathname of cached file --------------------------------------------------------------- 1.41s
container-engine/gvisor : GVisor | Copy binaries ---------------------------------------------------------------------------------- 1.41s
container-engine/runc : Copy runc binary from download dir ------------------------------------------------------------------------ 1.36s
kubernetes/preinstall : Create kubernetes directories ----------------------------------------------------------------------------- 1.29s
Gather necessary facts (hardware) ------------------------------------------------------------------------------------------------- 1.20s
container-engine/runc : Runc | Uninstall runc package managed by package manager -------------------------------------------------- 1.03s
system_packages : Gather OS information ------------------------------------------------------------------------------------------- 0.92s
bootstrap_os : Assign inventory name to unconfigured hostnames (non-CoreOS, non-Flatcar, Suse and ClearLinux, non-Fedora) --------- 0.91s
kubernetes/preinstall : Preinstall | reload NetworkManager ------------------------------------------------------------------------ 0.84s
container-engine/runc : Extract_file | Unpacking archive -------------------------------------------------------------------------- 0.82s
kubernetes/preinstall : Remove swapfile from /etc/fstab --------------------------------------------------------------------------- 0.80s
container-engine/runc : Prep_download | Set a few facts --------------------------------------------------------------------------- 0.79s
kubernetes/preinstall : Hosts | Update (if necessary) hosts file ------------------------------------------------------------------ 0.78s
kubernetes/preinstall : Mask swap.target (persist swapoff) ------------------------------------------------------------------------ 0.76s
root@05b0a369e981:/kubespray#

Anything else we need to know

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Rocky Linux 9kind/bugCategorizes issue or PR as related to a bug.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions