Container image pull/export issue using nerdctl (pull) and ctr (export)
#13235 opened on May 6, 2026
Description
What happened?
Hi all,
we are trying setting up our airgapped cluster using:
- KUBESPRAY 2.31.0
- K8S: 1.35.0
Our cluster is not open to internet public registries and uses an AZURE ACR as pull-through cache. Due to this infrastructure configuration we are working with following variables:
download_run_once: true
download_localhost: true
download_force_cache: true
download_cache_dir: /opt/gitlab-runner/ansible/kubespray_cache
download_container: true
Containerd is hosted on our ansible controller host and always succeeds pulling from acr.
Some months ago we have tried to setup and upgrade the cluster with kubespray 2.29 and 2.30, but always failed at download container time with error like the following:
ctr: failed to get reader: content digest sha256:045fc1c20da893bef6d0ed64e92b243213b0cebcd478389573bdfb095e212a98: not found
We have added some tasks before kubespray playbook execution to be sure to have the registry completely clean/empty and then we succeeded.
We were pretty sure to have solved the issue, but this time with K8S1.35/KUBESPRAY2.31 no luck at all.
2026-05-06T09:35:29.301503Z 01O TASK [kubernetes_sigs.kubespray.download : Download_container | Download image if required] ***
2026-05-06T09:35:29.301504Z 01O task path: /opt/gitlab-runner/builds/bKpUow5MT/0/components/fabrick-it/devopstool/kubespray/ansible/collections/ansible_collections/kubernetes_sigs/kubespray/roles/download/tasks/download_container.yml:57
2026-05-06T09:35:29.301506Z 01O Wednesday 06 May 2026 11:35:24 +0200 (0:00:00.506) 0:20:31.574 *********
2026-05-06T09:35:29.301507Z 01O changed: [fbktek8sctl01.sg.gbs.tst -> localhost] => changed=true
2026-05-06T09:35:29.301509Z 01O attempts: 1
2026-05-06T09:35:29.301510Z 01O cmd:
2026-05-06T09:35:29.301510Z 01O - /usr/bin/nerdctl
2026-05-06T09:35:29.301511Z 01O - -n
2026-05-06T09:35:29.301512Z 01O - k8s.io
2026-05-06T09:35:29.301513Z 01O - pull
2026-05-06T09:35:29.301514Z 01O - --quiet
2026-05-06T09:35:29.301515Z 01O - acrfbkpronpci01.azurecr.io/k8s/kube-apiserver:v1.35.0
2026-05-06T09:35:29.301516Z 01O delta: '0:00:02.248485'
2026-05-06T09:35:29.301517Z 01O end: '2026-05-06 11:35:26.745802'
2026-05-06T09:35:29.301518Z 01O msg: ''
2026-05-06T09:35:29.301519Z 01O rc: 0
2026-05-06T09:35:29.301520Z 01O start: '2026-05-06 11:35:24.497317'
2026-05-06T09:35:29.301521Z 01O stderr: ''
2026-05-06T09:35:29.301522Z 01O stderr_lines: <omitted>
2026-05-06T09:35:29.301523Z 01O stdout: ''
2026-05-06T09:35:29.301524Z 01O stdout_lines: <omitted>
2026-05-06T09:35:29.301525Z 01O
2026-05-06T09:35:29.301526Z 01O TASK [kubernetes_sigs.kubespray.download : Download_container | Save and compress image] ***
2026-05-06T09:35:29.301527Z 01O task path: /opt/gitlab-runner/builds/bKpUow5MT/0/components/fabrick-it/devopstool/kubespray/ansible/collections/ansible_collections/kubernetes_sigs/kubespray/roles/download/tasks/download_container.yml:72
2026-05-06T09:35:29.301529Z 01O Wednesday 06 May 2026 11:35:26 +0200 (0:00:02.615) 0:20:34.190 *********
2026-05-06T09:35:29.301531Z 01O [DEPRECATION WARNING]: Conditional result at location /opt/gitlab-
2026-05-06T09:35:29.301537Z 01O runner/builds/bKpUow5MT/0/components/fabrick-it/devopstool/kubespray/ansible/co
2026-05-06T09:35:29.301539Z 01O llections/ansible_collections/kubernetes_sigs/kubespray/roles/download/tasks/do
2026-05-06T09:35:29.301540Z 01O wnload_container.yml 77:20 was of type 'AnsibleUnsafeText'. Conditional results
2026-05-06T09:35:29.301541Z 01O should only be True or False. The result was interpreted as True. This feature
2026-05-06T09:35:29.301543Z 01O will be removed in version 2.19. Deprecation warnings can be disabled by
2026-05-06T09:35:29.301544Z 01O setting deprecation_warnings=False in ansible.cfg.
2026-05-06T09:35:29.301545Z 01O fatal: [fbktek8sctl01.sg.gbs.tst -> localhost]: FAILED! => changed=true
2026-05-06T09:35:29.301547Z 01O cmd: /usr/bin/ctr -n k8s.io image export --platform linux/amd64 /opt/gitlab-runner/ansible/kubespray_cache/images/acrfbkpronpci01.azurecr.io_k8s_kube-apiserver_v1.35.0.tar acrfbkpronpci01.azurecr.io/k8s/kube-apiserver:v1.35.0
2026-05-06T09:35:29.301549Z 01O delta: '0:00:00.043001'
2026-05-06T09:35:29.301550Z 01O end: '2026-05-06 11:35:27.125362'
2026-05-06T09:35:29.301551Z 01O failed_when_result: true
2026-05-06T09:35:29.301552Z 01O msg: non-zero return code
2026-05-06T09:35:29.301553Z 01O rc: 1
2026-05-06T09:35:29.301553Z 01O start: '2026-05-06 11:35:27.082361'
2026-05-06T09:35:29.301554Z 01O stderr: 'ctr: failed to get reader: content digest sha256:045fc1c20da893bef6d0ed64e92b243213b0cebcd478389573bdfb095e212a98: not found'
2026-05-06T09:35:29.301556Z 01O stderr_lines: <omitted>
2026-05-06T09:35:29.301557Z 01O stdout: ''
2026-05-06T09:35:29.301558Z 01O stdout_lines: <omitted>
Checking manually integrity of ansible controller registry at failure time I can see what follow:
[root@************]ctr -n k8s.io image export --platform linux/amd64 /tmp/test-export-ctr.tar acr.azurecr.io/k8s/kube-apiserver:v1.35.0
ctr: failed to get reader: content digest sha256:045fc1c20da893bef6d0ed64e92b243213b0cebcd478389573bdfb095e212a98: not found
[root@************]nerdctl -n k8s.io save -o /tmp/test-export-nerdctl.tar acr.azurecr.io/k8s/kube-apiserver:v1.35.0
acr.azurecr.io/k8s/kube-apiserver:v1.35.0: resolved |++++++++++++++++++++++++++++++++++++++|
index-sha256:32f98b308862e1cf98c900927d84630fb86a836a480f02752a779eb85c1489f3: exists |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:50e01ce089b6b6508e2f68ba0da943a3bc4134596e7e2afaac27dd26f71aca7a: exists |++++++++++++++++++++++++++++++++++++++|
layer-sha256:5d5772cea92929b7b055616254863006804d8a87de637d1fc55301843739fb33: exists |++++++++++++++++++++++++++++++++++++++|
layer-sha256:7c12895b777bcaa8ccae0605b4de635b68fc32d60fa08f421dc3818bf55ee212: exists |++++++++++++++++++++++++++++++++++++++|
layer-sha256:bfb59b82a9b65e47d485e53b3e815bca3b3e21a095bd0cb88ced9ac0b48062bf: exists |++++++++++++++++++++++++++++++++++++++|
layer-sha256:62de241dac5fe19d5f8f4defe034289006ddaa0f2cca735db4718fe2a23e504e: exists |++++++++++++++++++++++++++++++++++++++|
layer-sha256:017886f7e1764618ffad6fbd503c42a60076c63adc16355cac80f0f311cae4c9: exists |++++++++++++++++++++++++++++++++++++++|
layer-sha256:fd4aa3667332c2a4837e1b5f395b0555b3c4ec299e38166ae93ee84bad01befa: done |++++++++++++++++++++++++++++++++++++++|
layer-sha256:2780920e5dbfbe103d03a583ed75345306e572ec5a48cb10361f046767d9f29a: exists |++++++++++++++++++++++++++++++++++++++|
config-sha256:5c6acd67e9cd10eb60a246cd233db251ef62ea97e6572f897e873f0cb648f499: exists |++++++++++++++++++++++++++++++++++++++|
layer-sha256:5664b15f108bf9436ce3312090a767300800edbbfd4511aa1a6d64357024d5dd: done |++++++++++++++++++++++++++++++++++++++|
layer-sha256:da7816fa955ea24533c388143c78804c28682eef99b4ee3723b548c70148bba6: done |++++++++++++++++++++++++++++++++++++++|
layer-sha256:aa4c344abb026d1e243c1dae45c14b41fee10af4567ac393f39113c3df81565c: exists |++++++++++++++++++++++++++++++++++++++|
layer-sha256:3214acf345c0cc6bbdb56b698a41ccdefc624a09d6beb0d38b5de0b2303ecaf4: exists |++++++++++++++++++++++++++++++++++++++|
layer-sha256:045fc1c20da893bef6d0ed64e92b243213b0cebcd478389573bdfb095e212a98: done |++++++++++++++++++++++++++++++++++++++|
layer-sha256:ddf74a63f7d8b7d157e5db1a45675a58e304b4c1d425b05c28c835b987623395: done |++++++++++++++++++++++++++++++++++++++|
layer-sha256:4aa0ea1413d37a58615488592a0b827ea4b2e48fa5a77cf707d0e35f025e613f: exists |++++++++++++++++++++++++++++++++++++++|
elapsed: 2.0 s
Tryning manually same command of kubespray playbook I got a big failure, but using nerdctl idempotent command it succeeds.
What did you expect to happen?
We would want to have a dirty quick way to override "image_save_command_on_localhost" variable, avoiding to use ansible external vars, if this is the only solution can be applied.
If not possible, could you please explain which is the cause of nerdctl/ctr command use instead of just one of them?
How can we reproduce it (as minimally and precisely as possible)?
Airgapped target cluster with ansible controller cache and registry pull-through.
OS
RHEL 9
Version of Ansible
ansible [core 2.18.16]
config file = None
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /opt/python3_12_0/venvs/kubespray_main/lib64/python3.12/site-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = ./ansible
python version = 3.12.1 (main, Nov 25 2025, 00:00:00) [GCC 11.4.1 20231218 (Red Hat 11.4.1-4)] (/opt/python3_12_0/venvs/kubespray_main/bin/python3)
jinja version = 3.1.6
libyaml = True
Version of Python
Python 3.12.1
Version of Kubespray (commit)
2.31.0
Network plugin used
calico
Full inventory with variables
---
#####################################
upgrade_infra: false
reset_infra: false
#####################################
ansible_user: k8sansible
ansible_ssh_private_key_file: ./secrets/.ssh/k8sansiblersa
ansible_timeout: 120
ansible_become_timeout: 120
ansible_ssh_extra_args: >-
-o ServerAliveInterval=30
-o ServerAliveCountMax=10
-o StrictHostKeyChecking=no
-o ControlMaster=auto
-o ControlPersist=30m
-o ControlPath=/tmp/ansible-ssh-%h-%p-%r
# Debug var
unsafe_show_logs: true
################################
## KUBESPRAY vars
kubespray:
python:
version: "3.12.0"
download_run_once: true
download_localhost: true
download_force_cache: true # MUST be set to TRUE to use ansible CONTROLLER as CACHE
download_cache_dir: /opt/gitlab-runner/ansible/kubespray_cache
download_container: true
kube_image_repo: acr.azurecr.io/k8s
quay_image_repo: acr.azurecr.io/quayiok8s
docker_image_repo: acr.azurecr.io/dockeriok8s
################################
## K8S vars
bin_dir: /usr/bin
kube_version: 1.35.0
kube_network_plugin: calico
kube_log_level: 2
disable_ipv6: true
disable_ipv6_dns: true
disable_selinux: true
etcd_deployment_type: host
k8s_image_pull_policy: IfNotPresent
# Container management
container_manager: containerd
containerd_storage_dir: /opt/containerd/images
containerd_state_dir: /opt/containerd/state
containerd_registries_mirrors:
- prefix: acr.azurecr.io
mirrors:
- host: https://acr.azurecr.io
capabilities: ["pull", "resolve"]
skip_verify: false
header:
Authorization: "Basic *************************************************************************************"
################################
## DNS CONFIGURATION
# NO CHANGES MUST be APLLIED to nodes /etc/resolv.conf cause company DNS servers cannot be overridden.
# They ARE MANDATORY to all commands underlying lookup to AD and DS for authentication and authorization of nodes and users.
resolvconf_mode: none
# Upstream DNS servers for early cluster deployment and fallback
# If an infrastructure service (outside of cluster) are defined through FQDN somewhere
# following DNS will be the only one used, otherwise timeout.
upstream_dns_servers:
- 172.17.8.105
# CoreDNS static host entries for Azure ACR using dns_etchosts
# This is used by both CoreDNS and NodeLocalDNS
# dns_etchosts: |
# 10.163.68.69 acr.azurecr.io
# 10.163.68.68 acrfbkpronpci01.germanywestcentral.data.azurecr.io
# /etc/hosts custom entries for static host resolutions (for node-level resolution)
custom_etc_hosts:
# Azure ACR - static IP resolution via /etc/hosts (Private Endpoint IP)
- domain: "acr.azurecr.io"
ip: "10.163.68.69"
################################
## ADDONS
dashboard_enabled: true
metrics_server_enabled: true
helm_enabled: true
cert_manager_enabled: true
# Override cert-manager image repo (default: quay.io/jetstack)
jetstack_image_repo: acr.azurecr.io/quayiok8s/jetstack
################################
## METALLB configuration
# EXAMPLE: https://github.com/TayoG/Kubernetes-kubespray/blob/master/docs/metallb.md
kube_proxy_strict_arp: true
metallb_enabled: true
metallb_speaker_enabled: true
metallb_namespace: metallb
metallb_config:
address_pools:
primary:
ip_range:
- 172.17.253.8-172.17.253.10
metallb_auto_assign: true
layer2:
- primary
#abilitare InPlacePodVerticalScaling
kube_feature_gates:
- InPlacePodVerticalScaling=true
# Kubernetes etcd encryption at rest
kube_encrypt_secret_data: true
kube_encryption_resources_dir: /etc/kubernetes/enc
kube_apiserver_encryption_provider_config: |
apiVersion: apiserver.config.k8s.io/v1
kind: EncryptionConfiguration
resources:
- resources:
- secrets
providers:
- aesgcm:
keys:
- name: k8s-secrets-encryption
secret: "Ih1XNQrTYa4zhy2tmoz5GPNOB+YJws7Dww+oIJ63sb4="
- identity: {}
- resources:
- configmaps
providers:
- aesgcm:
keys:
- name: k8s-configmaps-encryption
secret: "Zg7iTnJAtLzkVwzkddIjKq6FbtsGtuJ05SE13UumNIE="
- identity: {}
- resources:
- '*.*'
providers:
- identity: {}
Command used to invoke ansible
$kubespray_home/bin/ansible-playbook -vv -i $inventory --become --become-user root $wd/../ansible/kubespray_setup.yml
Output of ansible run
... ... ...
2026-05-06T09:35:29.301182Z 01O TASK [kubernetes_sigs.kubespray.download : Download_container | Prepare container download] ***
2026-05-06T09:35:29.301188Z 01O task path: /opt/gitlab-runner/builds/bKpUow5MT/0/components/company-it/devopstool/kubespray/ansible/collections/ansible_collections/kubernetes_sigs/kubespray/roles/download/tasks/download_container.yml:18
2026-05-06T09:35:29.301190Z 01O Wednesday 06 May 2026 11:35:12 +0200 (0:00:00.841) 0:20:19.627 *********
2026-05-06T09:35:29.301191Z 01O included: /opt/gitlab-runner/builds/bKpUow5MT/0/components/company-it/devopstool/kubespray/ansible/collections/ansible_collections/kubernetes_sigs/kubespray/roles/download/tasks/check_pull_required.yml for ctl01.tst, ctl02.tst, ctl03.tst, wrk01.tst, wrk02.tst, wrk03.tst, wrk04.tst
2026-05-06T09:35:29.301194Z 01O
2026-05-06T09:35:29.301195Z 01O TASK [kubernetes_sigs.kubespray.download : Check_pull_required | Generate a list of information about the images on a node] ***
2026-05-06T09:35:29.301196Z 01O task path: /opt/gitlab-runner/builds/bKpUow5MT/0/components/company-it/devopstool/kubespray/ansible/collections/ansible_collections/kubernetes_sigs/kubespray/roles/download/tasks/check_pull_required.yml:4
2026-05-06T09:35:29.301199Z 01O Wednesday 06 May 2026 11:35:13 +0200 (0:00:01.171) 0:20:20.799 *********
2026-05-06T09:35:29.301200Z 01O ok: [ctl01.tst] => changed=false
2026-05-06T09:35:29.301201Z 01O cmd: |-
2026-05-06T09:35:29.301202Z 01O /usr/bin/nerdctl -n k8s.io images --format '{{ .Repository }}:{{ .Tag }}' 2>/dev/null | grep -v ^:$ | tr '
2026-05-06T09:35:29.301203Z 01O ' ','
2026-05-06T09:35:29.301204Z 01O delta: '0:00:00.109894'
2026-05-06T09:35:29.301205Z 01O end: '2026-05-06 11:35:14.773023'
2026-05-06T09:35:29.301206Z 01O msg: ''
2026-05-06T09:35:29.301207Z 01O rc: 0
2026-05-06T09:35:29.301208Z 01O start: '2026-05-06 11:35:14.663129'
2026-05-06T09:35:29.301209Z 01O stderr: ''
2026-05-06T09:35:29.301210Z 01O stderr_lines: <omitted>
2026-05-06T09:35:29.301211Z 01O stdout: <none>:<none>,acr.azurecr.io/quayiok8s/metallb/controller:v0.13.9,<none>:<none>,acr.azurecr.io/quayiok8s/metallb/speaker:v0.13.9,<none>:<none>,acr.azurecr.io/k8s/metrics-server/metrics-server:v0.8.1,<none>:<none>,acr.azurecr.io/k8s/cpa/cluster-proportional-autoscaler:v1.8.8,<none>:<none>,acr.azurecr.io/k8s/dns/k8s-dns-node-cache:1.25.0,<none>:<none>,acr.azurecr.io/k8s/coredns/coredns:v1.12.4,<none>:<none>,acr.azurecr.io/k8s/pause:3.10.1,<none>:<none>,acr.azurecr.io/quayiok8s/calico/kube-controllers:v3.31.5,<none>:<none>,acr.azurecr.io/quayiok8s/calico/cni:v3.31.5,<none>:<none>,acr.azurecr.io/quayiok8s/calico/node:v3.31.5,
2026-05-06T09:35:29.301216Z 01O stdout_lines: <omitted>
2026-05-06T09:35:29.301217Z 01O ok: [ctl02.tst] => changed=false
2026-05-06T09:35:29.301218Z 01O cmd: |-
2026-05-06T09:35:29.301219Z 01O /usr/bin/nerdctl -n k8s.io images --format '{{ .Repository }}:{{ .Tag }}' 2>/dev/null | grep -v ^:$ | tr '
2026-05-06T09:35:29.301220Z 01O ' ','
2026-05-06T09:35:29.301221Z 01O delta: '0:00:00.119582'
2026-05-06T09:35:29.301222Z 01O end: '2026-05-06 11:35:14.813282'
2026-05-06T09:35:29.301223Z 01O msg: ''
2026-05-06T09:35:29.301224Z 01O rc: 0
2026-05-06T09:35:29.301225Z 01O start: '2026-05-06 11:35:14.693700'
2026-05-06T09:35:29.301226Z 01O stderr: ''
2026-05-06T09:35:29.301227Z 01O stderr_lines: <omitted>
2026-05-06T09:35:29.301228Z 01O stdout: <none>:<none>,acr.azurecr.io/quayiok8s/metallb/controller:v0.13.9,<none>:<none>,acr.azurecr.io/quayiok8s/metallb/speaker:v0.13.9,<none>:<none>,acr.azurecr.io/k8s/metrics-server/metrics-server:v0.8.1,<none>:<none>,acr.azurecr.io/k8s/cpa/cluster-proportional-autoscaler:v1.8.8,<none>:<none>,acr.azurecr.io/k8s/dns/k8s-dns-node-cache:1.25.0,<none>:<none>,acr.azurecr.io/k8s/coredns/coredns:v1.12.4,<none>:<none>,acr.azurecr.io/k8s/pause:3.10.1,<none>:<none>,acr.azurecr.io/quayiok8s/calico/kube-controllers:v3.31.5,<none>:<none>,acr.azurecr.io/quayiok8s/calico/cni:v3.31.5,<none>:<none>,acr.azurecr.io/quayiok8s/calico/node:v3.31.5,
2026-05-06T09:35:29.301242Z 01O stdout_lines: <omitted>
2026-05-06T09:35:29.301243Z 01O ok: [ctl03.tst] => changed=false
2026-05-06T09:35:29.301244Z 01O cmd: |-
2026-05-06T09:35:29.301245Z 01O /usr/bin/nerdctl -n k8s.io images --format '{{ .Repository }}:{{ .Tag }}' 2>/dev/null | grep -v ^:$ | tr '
2026-05-06T09:35:29.301247Z 01O ' ','
2026-05-06T09:35:29.301248Z 01O delta: '0:00:00.103430'
2026-05-06T09:35:29.301248Z 01O end: '2026-05-06 11:35:14.928665'
2026-05-06T09:35:29.301249Z 01O msg: ''
2026-05-06T09:35:29.301250Z 01O rc: 0
2026-05-06T09:35:29.301251Z 01O start: '2026-05-06 11:35:14.825235'
2026-05-06T09:35:29.301252Z 01O stderr: ''
2026-05-06T09:35:29.301253Z 01O stderr_lines: <omitted>
2026-05-06T09:35:29.301254Z 01O stdout: <none>:<none>,acr.azurecr.io/quayiok8s/metallb/controller:v0.13.9,<none>:<none>,acr.azurecr.io/quayiok8s/metallb/speaker:v0.13.9,<none>:<none>,acr.azurecr.io/k8s/metrics-server/metrics-server:v0.8.1,<none>:<none>,acr.azurecr.io/k8s/cpa/cluster-proportional-autoscaler:v1.8.8,<none>:<none>,acr.azurecr.io/k8s/dns/k8s-dns-node-cache:1.25.0,<none>:<none>,acr.azurecr.io/k8s/coredns/coredns:v1.12.4,<none>:<none>,acr.azurecr.io/k8s/pause:3.10.1,<none>:<none>,acr.azurecr.io/quayiok8s/calico/kube-controllers:v3.31.5,<none>:<none>,acr.azurecr.io/quayiok8s/calico/cni:v3.31.5,<none>:<none>,acr.azurecr.io/quayiok8s/calico/node:v3.31.5,
2026-05-06T09:35:29.301259Z 01O stdout_lines: <omitted>
2026-05-06T09:35:29.301260Z 01O ok: [wrk01.tst] => changed=false
2026-05-06T09:35:29.301261Z 01O cmd: |-
2026-05-06T09:35:29.301262Z 01O /usr/bin/nerdctl -n k8s.io images --format '{{ .Repository }}:{{ .Tag }}' 2>/dev/null | grep -v ^:$ | tr '
2026-05-06T09:35:29.301264Z 01O ' ','
2026-05-06T09:35:29.301265Z 01O delta: '0:00:00.074121'
2026-05-06T09:35:29.301266Z 01O end: '2026-05-06 11:35:18.076264'
2026-05-06T09:35:29.301267Z 01O msg: ''
2026-05-06T09:35:29.301267Z 01O rc: 0
2026-05-06T09:35:29.301268Z 01O start: '2026-05-06 11:35:18.002143'
2026-05-06T09:35:29.301269Z 01O stderr: ''
2026-05-06T09:35:29.301270Z 01O stderr_lines: <omitted>
2026-05-06T09:35:29.301271Z 01O stdout: <none>:<none>,acr.azurecr.io/k8s/dns/k8s-dns-node-cache:1.25.0,<none>:<none>,acr.azurecr.io/k8s/coredns/coredns:v1.12.4,<none>:<none>,acr.azurecr.io/k8s/pause:3.10.1,<none>:<none>,acr.azurecr.io/quayiok8s/calico/kube-controllers:v3.31.5,<none>:<none>,acr.azurecr.io/quayiok8s/calico/cni:v3.31.5,<none>:<none>,acr.azurecr.io/quayiok8s/calico/node:v3.31.5,
2026-05-06T09:35:29.301274Z 01O stdout_lines: <omitted>
2026-05-06T09:35:29.301275Z 01O ok: [wrk02.tst] => changed=false
2026-05-06T09:35:29.301276Z 01O cmd: |-
2026-05-06T09:35:29.301277Z 01O /usr/bin/nerdctl -n k8s.io images --format '{{ .Repository }}:{{ .Tag }}' 2>/dev/null | grep -v ^:$ | tr '
2026-05-06T09:35:29.301279Z 01O ' ','
2026-05-06T09:35:29.301280Z 01O delta: '0:00:00.094081'
2026-05-06T09:35:29.301281Z 01O end: '2026-05-06 11:35:18.269064'
2026-05-06T09:35:29.301282Z 01O msg: ''
2026-05-06T09:35:29.301283Z 01O rc: 0
2026-05-06T09:35:29.301283Z 01O start: '2026-05-06 11:35:18.174983'
2026-05-06T09:35:29.301285Z 01O stderr: ''
2026-05-06T09:35:29.301285Z 01O stderr_lines: <omitted>
2026-05-06T09:35:29.301286Z 01O stdout: <none>:<none>,acr.azurecr.io/k8s/dns/k8s-dns-node-cache:1.25.0,<none>:<none>,acr.azurecr.io/k8s/coredns/coredns:v1.12.4,<none>:<none>,acr.azurecr.io/k8s/pause:3.10.1,<none>:<none>,acr.azurecr.io/quayiok8s/calico/kube-controllers:v3.31.5,<none>:<none>,acr.azurecr.io/quayiok8s/calico/cni:v3.31.5,<none>:<none>,acr.azurecr.io/quayiok8s/calico/node:v3.31.5,
2026-05-06T09:35:29.301294Z 01O stdout_lines: <omitted>
2026-05-06T09:35:29.301295Z 01O ok: [wrk03.tst] => changed=false
2026-05-06T09:35:29.301297Z 01O cmd: |-
2026-05-06T09:35:29.301297Z 01O /usr/bin/nerdctl -n k8s.io images --format '{{ .Repository }}:{{ .Tag }}' 2>/dev/null | grep -v ^:$ | tr '
2026-05-06T09:35:29.301299Z 01O ' ','
2026-05-06T09:35:29.301300Z 01O delta: '0:00:00.086641'
2026-05-06T09:35:29.301301Z 01O end: '2026-05-06 11:35:19.286911'
2026-05-06T09:35:29.301302Z 01O msg: ''
2026-05-06T09:35:29.301303Z 01O rc: 0
2026-05-06T09:35:29.301304Z 01O start: '2026-05-06 11:35:19.200270'
2026-05-06T09:35:29.301305Z 01O stderr: ''
2026-05-06T09:35:29.301305Z 01O stderr_lines: <omitted>
2026-05-06T09:35:29.301306Z 01O stdout: <none>:<none>,acr.azurecr.io/k8s/dns/k8s-dns-node-cache:1.25.0,<none>:<none>,acr.azurecr.io/k8s/coredns/coredns:v1.12.4,<none>:<none>,acr.azurecr.io/k8s/pause:3.10.1,<none>:<none>,acr.azurecr.io/quayiok8s/calico/kube-controllers:v3.31.5,<none>:<none>,acr.azurecr.io/quayiok8s/calico/cni:v3.31.5,<none>:<none>,acr.azurecr.io/quayiok8s/calico/node:v3.31.5,
2026-05-06T09:35:29.301310Z 01O stdout_lines: <omitted>
2026-05-06T09:35:29.301311Z 01O ok: [wrk04.tst] => changed=false
2026-05-06T09:35:29.301312Z 01O cmd: |-
2026-05-06T09:35:29.301313Z 01O /usr/bin/nerdctl -n k8s.io images --format '{{ .Repository }}:{{ .Tag }}' 2>/dev/null | grep -v ^:$ | tr '
2026-05-06T09:35:29.301314Z 01O ' ','
2026-05-06T09:35:29.301315Z 01O delta: '0:00:00.111601'
2026-05-06T09:35:29.301316Z 01O end: '2026-05-06 11:35:19.554065'
2026-05-06T09:35:29.301317Z 01O msg: ''
2026-05-06T09:35:29.301318Z 01O rc: 0
2026-05-06T09:35:29.301319Z 01O start: '2026-05-06 11:35:19.442464'
2026-05-06T09:35:29.301320Z 01O stderr: ''
2026-05-06T09:35:29.301321Z 01O stderr_lines: <omitted>
2026-05-06T09:35:29.301322Z 01O stdout: <none>:<none>,acr.azurecr.io/k8s/dns/k8s-dns-node-cache:1.25.0,<none>:<none>,acr.azurecr.io/k8s/coredns/coredns:v1.12.4,<none>:<none>,acr.azurecr.io/k8s/pause:3.10.1,<none>:<none>,acr.azurecr.io/quayiok8s/calico/kube-controllers:v3.31.5,<none>:<none>,acr.azurecr.io/quayiok8s/calico/cni:v3.31.5,<none>:<none>,acr.azurecr.io/quayiok8s/calico/node:v3.31.5,
2026-05-06T09:35:29.301325Z 01O stdout_lines: <omitted>
2026-05-06T09:35:29.301326Z 01O
2026-05-06T09:35:29.301327Z 01O TASK [kubernetes_sigs.kubespray.download : Check_pull_required | Set pull_required if the desired image is not yet loaded] ***
2026-05-06T09:35:29.301328Z 01O task path: /opt/gitlab-runner/builds/bKpUow5MT/0/components/company-it/devopstool/kubespray/ansible/collections/ansible_collections/kubernetes_sigs/kubespray/roles/download/tasks/check_pull_required.yml:11
2026-05-06T09:35:29.301330Z 01O Wednesday 06 May 2026 11:35:19 +0200 (0:00:06.360) 0:20:27.160 *********
2026-05-06T09:35:29.301332Z 01O ok: [ctl01.tst] => changed=false
2026-05-06T09:35:29.301333Z 01O ansible_facts:
2026-05-06T09:35:29.301334Z 01O pull_required: true
2026-05-06T09:35:29.301335Z 01O ok: [ctl02.tst] => changed=false
2026-05-06T09:35:29.301336Z 01O ansible_facts:
2026-05-06T09:35:29.301337Z 01O pull_required: true
2026-05-06T09:35:29.301338Z 01O ok: [ctl03.tst] => changed=false
2026-05-06T09:35:29.301339Z 01O ansible_facts:
2026-05-06T09:35:29.301340Z 01O pull_required: true
2026-05-06T09:35:29.301341Z 01O ok: [wrk01.tst] => changed=false
2026-05-06T09:35:29.301342Z 01O ansible_facts:
2026-05-06T09:35:29.301343Z 01O pull_required: true
2026-05-06T09:35:29.301344Z 01O ok: [wrk02.tst] => changed=false
2026-05-06T09:35:29.301345Z 01O ansible_facts:
2026-05-06T09:35:29.301346Z 01O pull_required: true
2026-05-06T09:35:29.301352Z 01O ok: [wrk03.tst] => changed=false
2026-05-06T09:35:29.301353Z 01O ansible_facts:
2026-05-06T09:35:29.301354Z 01O pull_required: true
2026-05-06T09:35:29.301355Z 01O ok: [wrk04.tst] => changed=false
2026-05-06T09:35:29.301356Z 01O ansible_facts:
2026-05-06T09:35:29.301357Z 01O pull_required: true
2026-05-06T09:35:29.301357Z 01O
2026-05-06T09:35:29.301358Z 01O TASK [kubernetes_sigs.kubespray.download : Check_pull_required | Check that the local digest sha256 corresponds to the given image tag] ***
2026-05-06T09:35:29.301360Z 01O task path: /opt/gitlab-runner/builds/bKpUow5MT/0/components/company-it/devopstool/kubespray/ansible/collections/ansible_collections/kubernetes_sigs/kubespray/roles/download/tasks/check_pull_required.yml:17
2026-05-06T09:35:29.301362Z 01O Wednesday 06 May 2026 11:35:20 +0200 (0:00:00.896) 0:20:28.057 *********
2026-05-06T09:35:29.301363Z 01O skipping: [ctl01.tst] => changed=false
2026-05-06T09:35:29.301364Z 01O false_condition: not pull_required
2026-05-06T09:35:29.301366Z 01O skip_reason: Conditional result was False
2026-05-06T09:35:29.301367Z 01O skipping: [ctl02.tst] => changed=false
2026-05-06T09:35:29.301368Z 01O false_condition: not pull_required
2026-05-06T09:35:29.301369Z 01O skip_reason: Conditional result was False
2026-05-06T09:35:29.301370Z 01O skipping: [ctl03.tst] => changed=false
2026-05-06T09:35:29.301371Z 01O false_condition: not pull_required
2026-05-06T09:35:29.301372Z 01O skip_reason: Conditional result was False
2026-05-06T09:35:29.301373Z 01O skipping: [wrk01.tst] => changed=false
2026-05-06T09:35:29.301375Z 01O false_condition: not pull_required
2026-05-06T09:35:29.301376Z 01O skip_reason: Conditional result was False
2026-05-06T09:35:29.301377Z 01O skipping: [wrk02.tst] => changed=false
2026-05-06T09:35:29.301378Z 01O false_condition: not pull_required
2026-05-06T09:35:29.301379Z 01O skip_reason: Conditional result was False
2026-05-06T09:35:29.301380Z 01O skipping: [wrk03.tst] => changed=false
2026-05-06T09:35:29.301381Z 01O false_condition: not pull_required
2026-05-06T09:35:29.301382Z 01O skip_reason: Conditional result was False
2026-05-06T09:35:29.301383Z 01O skipping: [wrk04.tst] => changed=false
2026-05-06T09:35:29.301384Z 01O false_condition: not pull_required
2026-05-06T09:35:29.301385Z 01O skip_reason: Conditional result was False
2026-05-06T09:35:29.301387Z 01O
2026-05-06T09:35:29.301387Z 01O TASK [kubernetes_sigs.kubespray.download : debug] ******************************
2026-05-06T09:35:29.301389Z 01O task path: /opt/gitlab-runner/builds/bKpUow5MT/0/components/company-it/devopstool/kubespray/ansible/collections/ansible_collections/kubernetes_sigs/kubespray/roles/download/tasks/download_container.yml:23
2026-05-06T09:35:29.301391Z 01O Wednesday 06 May 2026 11:35:21 +0200 (0:00:00.531) 0:20:28.588 *********
2026-05-06T09:35:29.301392Z 01O ok: [ctl01.tst] =>
2026-05-06T09:35:29.301393Z 01O msg: 'Pull acr.azurecr.io/k8s/kube-apiserver:v1.35.0 required is: True'
2026-05-06T09:35:29.301395Z 01O ok: [ctl02.tst] =>
2026-05-06T09:35:29.301396Z 01O msg: 'Pull acr.azurecr.io/k8s/kube-apiserver:v1.35.0 required is: True'
2026-05-06T09:35:29.301397Z 01O ok: [ctl03.tst] =>
2026-05-06T09:35:29.301398Z 01O msg: 'Pull acr.azurecr.io/k8s/kube-apiserver:v1.35.0 required is: True'
2026-05-06T09:35:29.301400Z 01O ok: [wrk01.tst] =>
2026-05-06T09:35:29.301401Z 01O msg: 'Pull acr.azurecr.io/k8s/kube-apiserver:v1.35.0 required is: True'
2026-05-06T09:35:29.301402Z 01O ok: [wrk02.tst] =>
2026-05-06T09:35:29.301403Z 01O msg: 'Pull acr.azurecr.io/k8s/kube-apiserver:v1.35.0 required is: True'
2026-05-06T09:35:29.301404Z 01O ok: [wrk03.tst] =>
2026-05-06T09:35:29.301405Z 01O msg: 'Pull acr.azurecr.io/k8s/kube-apiserver:v1.35.0 required is: True'
2026-05-06T09:35:29.301411Z 01O ok: [wrk04.tst] =>
2026-05-06T09:35:29.301412Z 01O msg: 'Pull acr.azurecr.io/k8s/kube-apiserver:v1.35.0 required is: True'
2026-05-06T09:35:29.301414Z 01O
2026-05-06T09:35:29.301414Z 01O TASK [kubernetes_sigs.kubespray.download : Download_container | Determine if image is in cache] ***
2026-05-06T09:35:29.301416Z 01O task path: /opt/gitlab-runner/builds/bKpUow5MT/0/components/company-it/devopstool/kubespray/ansible/collections/ansible_collections/kubernetes_sigs/kubespray/roles/download/tasks/download_container.yml:26
2026-05-06T09:35:29.301418Z 01O Wednesday 06 May 2026 11:35:22 +0200 (0:00:00.853) 0:20:29.441 *********
2026-05-06T09:35:29.301419Z 01O ok: [ctl01.tst -> localhost] => changed=false
2026-05-06T09:35:29.301420Z 01O stat:
2026-05-06T09:35:29.301421Z 01O exists: false
2026-05-06T09:35:29.301422Z 01O ok: [ctl02.tst -> localhost] => changed=false
2026-05-06T09:35:29.301423Z 01O stat:
2026-05-06T09:35:29.301424Z 01O exists: false
2026-05-06T09:35:29.301425Z 01O ok: [ctl03.tst -> localhost] => changed=false
2026-05-06T09:35:29.301426Z 01O stat:
2026-05-06T09:35:29.301427Z 01O exists: false
2026-05-06T09:35:29.301428Z 01O ok: [wrk01.tst -> localhost] => changed=false
2026-05-06T09:35:29.301429Z 01O stat:
2026-05-06T09:35:29.301430Z 01O exists: false
2026-05-06T09:35:29.301431Z 01O ok: [wrk02.tst -> localhost] => changed=false
2026-05-06T09:35:29.301432Z 01O stat:
2026-05-06T09:35:29.301433Z 01O exists: false
2026-05-06T09:35:29.301434Z 01O ok: [wrk03.tst -> localhost] => changed=false
2026-05-06T09:35:29.301435Z 01O stat:
2026-05-06T09:35:29.301436Z 01O exists: false
2026-05-06T09:35:29.301437Z 01O ok: [wrk04.tst -> localhost] => changed=false
2026-05-06T09:35:29.301438Z 01O stat:
2026-05-06T09:35:29.301439Z 01O exists: false
2026-05-06T09:35:29.301440Z 01O
2026-05-06T09:35:29.301441Z 01O TASK [kubernetes_sigs.kubespray.download : Download_container | Set fact indicating if image is in cache] ***
2026-05-06T09:35:29.301443Z 01O task path: /opt/gitlab-runner/builds/bKpUow5MT/0/components/company-it/devopstool/kubespray/ansible/collections/ansible_collections/kubernetes_sigs/kubespray/roles/download/tasks/download_container.yml:41
2026-05-06T09:35:29.301444Z 01O Wednesday 06 May 2026 11:35:22 +0200 (0:00:00.748) 0:20:30.190 *********
2026-05-06T09:35:29.301446Z 01O ok: [ctl01.tst] => changed=false
2026-05-06T09:35:29.301447Z 01O ansible_facts:
2026-05-06T09:35:29.301448Z 01O image_is_cached: false
2026-05-06T09:35:29.301449Z 01O ok: [ctl02.tst] => changed=false
2026-05-06T09:35:29.301450Z 01O ansible_facts:
2026-05-06T09:35:29.301451Z 01O image_is_cached: false
2026-05-06T09:35:29.301452Z 01O ok: [ctl03.tst] => changed=false
2026-05-06T09:35:29.301453Z 01O ansible_facts:
2026-05-06T09:35:29.301454Z 01O image_is_cached: false
2026-05-06T09:35:29.301455Z 01O ok: [wrk01.tst] => changed=false
2026-05-06T09:35:29.301456Z 01O ansible_facts:
2026-05-06T09:35:29.301457Z 01O image_is_cached: false
2026-05-06T09:35:29.301458Z 01O ok: [wrk02.tst] => changed=false
2026-05-06T09:35:29.301460Z 01O ansible_facts:
2026-05-06T09:35:29.301460Z 01O image_is_cached: false
2026-05-06T09:35:29.301461Z 01O ok: [wrk03.tst] => changed=false
2026-05-06T09:35:29.301462Z 01O ansible_facts:
2026-05-06T09:35:29.301463Z 01O image_is_cached: false
2026-05-06T09:35:29.301464Z 01O ok: [wrk04.tst] => changed=false
2026-05-06T09:35:29.301466Z 01O ansible_facts:
2026-05-06T09:35:29.301466Z 01O image_is_cached: false
2026-05-06T09:35:29.301468Z 01O
2026-05-06T09:35:29.301468Z 01O TASK [kubernetes_sigs.kubespray.download : Stop if image not in cache on ansible host when download_force_cache=true] ***
2026-05-06T09:35:29.301475Z 01O task path: /opt/gitlab-runner/builds/bKpUow5MT/0/components/company-it/devopstool/kubespray/ansible/collections/ansible_collections/kubernetes_sigs/kubespray/roles/download/tasks/download_container.yml:49
2026-05-06T09:35:29.301477Z 01O Wednesday 06 May 2026 11:35:23 +0200 (0:00:00.877) 0:20:31.067 *********
2026-05-06T09:35:29.301478Z 01O skipping: [ctl01.tst] => changed=false
2026-05-06T09:35:29.301479Z 01O false_condition: not download_run_once
2026-05-06T09:35:29.301480Z 01O skip_reason: Conditional result was False
2026-05-06T09:35:29.301482Z 01O skipping: [ctl02.tst] => changed=false
2026-05-06T09:35:29.301483Z 01O false_condition: not download_run_once
2026-05-06T09:35:29.301484Z 01O skip_reason: Conditional result was False
2026-05-06T09:35:29.301485Z 01O skipping: [ctl03.tst] => changed=false
2026-05-06T09:35:29.301486Z 01O false_condition: not download_run_once
2026-05-06T09:35:29.301487Z 01O skip_reason: Conditional result was False
2026-05-06T09:35:29.301488Z 01O skipping: [wrk01.tst] => changed=false
2026-05-06T09:35:29.301489Z 01O false_condition: not download_run_once
2026-05-06T09:35:29.301490Z 01O skip_reason: Conditional result was False
2026-05-06T09:35:29.301491Z 01O skipping: [wrk02.tst] => changed=false
2026-05-06T09:35:29.301493Z 01O false_condition: not download_run_once
2026-05-06T09:35:29.301494Z 01O skip_reason: Conditional result was False
2026-05-06T09:35:29.301495Z 01O skipping: [wrk03.tst] => changed=false
2026-05-06T09:35:29.301496Z 01O false_condition: not download_run_once
2026-05-06T09:35:29.301497Z 01O skip_reason: Conditional result was False
2026-05-06T09:35:29.301498Z 01O skipping: [wrk04.tst] => changed=false
2026-05-06T09:35:29.301500Z 01O false_condition: not download_run_once
2026-05-06T09:35:29.301501Z 01O skip_reason: Conditional result was False
2026-05-06T09:35:29.301502Z 01O
2026-05-06T09:35:29.301503Z 01O TASK [kubernetes_sigs.kubespray.download : Download_container | Download image if required] ***
2026-05-06T09:35:29.301504Z 01O task path: /opt/gitlab-runner/builds/bKpUow5MT/0/components/company-it/devopstool/kubespray/ansible/collections/ansible_collections/kubernetes_sigs/kubespray/roles/download/tasks/download_container.yml:57
2026-05-06T09:35:29.301506Z 01O Wednesday 06 May 2026 11:35:24 +0200 (0:00:00.506) 0:20:31.574 *********
2026-05-06T09:35:29.301507Z 01O changed: [ctl01.tst -> localhost] => changed=true
2026-05-06T09:35:29.301509Z 01O attempts: 1
2026-05-06T09:35:29.301510Z 01O cmd:
2026-05-06T09:35:29.301510Z 01O - /usr/bin/nerdctl
2026-05-06T09:35:29.301511Z 01O - -n
2026-05-06T09:35:29.301512Z 01O - k8s.io
2026-05-06T09:35:29.301513Z 01O - pull
2026-05-06T09:35:29.301514Z 01O - --quiet
2026-05-06T09:35:29.301515Z 01O - acr.azurecr.io/k8s/kube-apiserver:v1.35.0
2026-05-06T09:35:29.301516Z 01O delta: '0:00:02.248485'
2026-05-06T09:35:29.301517Z 01O end: '2026-05-06 11:35:26.745802'
2026-05-06T09:35:29.301518Z 01O msg: ''
2026-05-06T09:35:29.301519Z 01O rc: 0
2026-05-06T09:35:29.301520Z 01O start: '2026-05-06 11:35:24.497317'
2026-05-06T09:35:29.301521Z 01O stderr: ''
2026-05-06T09:35:29.301522Z 01O stderr_lines: <omitted>
2026-05-06T09:35:29.301523Z 01O stdout: ''
2026-05-06T09:35:29.301524Z 01O stdout_lines: <omitted>
2026-05-06T09:35:29.301525Z 01O
2026-05-06T09:35:29.301526Z 01O TASK [kubernetes_sigs.kubespray.download : Download_container | Save and compress image] ***
2026-05-06T09:35:29.301527Z 01O task path: /opt/gitlab-runner/builds/bKpUow5MT/0/components/company-it/devopstool/kubespray/ansible/collections/ansible_collections/kubernetes_sigs/kubespray/roles/download/tasks/download_container.yml:72
2026-05-06T09:35:29.301529Z 01O Wednesday 06 May 2026 11:35:26 +0200 (0:00:02.615) 0:20:34.190 *********
2026-05-06T09:35:29.301531Z 01O [DEPRECATION WARNING]: Conditional result at location /opt/gitlab-
2026-05-06T09:35:29.301537Z 01O runner/builds/bKpUow5MT/0/components/company-it/devopstool/kubespray/ansible/co
2026-05-06T09:35:29.301539Z 01O llections/ansible_collections/kubernetes_sigs/kubespray/roles/download/tasks/do
2026-05-06T09:35:29.301540Z 01O wnload_container.yml 77:20 was of type 'AnsibleUnsafeText'. Conditional results
2026-05-06T09:35:29.301541Z 01O should only be True or False. The result was interpreted as True. This feature
2026-05-06T09:35:29.301543Z 01O will be removed in version 2.19. Deprecation warnings can be disabled by
2026-05-06T09:35:29.301544Z 01O setting deprecation_warnings=False in ansible.cfg.
2026-05-06T09:35:29.301545Z 01O fatal: [ctl01.tst -> localhost]: FAILED! => changed=true
2026-05-06T09:35:29.301547Z 01O cmd: /usr/bin/ctr -n k8s.io image export --platform linux/amd64 /opt/gitlab-runner/ansible/kubespray_cache/images/acr.azurecr.io_k8s_kube-apiserver_v1.35.0.tar acr.azurecr.io/k8s/kube-apiserver:v1.35.0
2026-05-06T09:35:29.301549Z 01O delta: '0:00:00.043001'
2026-05-06T09:35:29.301550Z 01O end: '2026-05-06 11:35:27.125362'
2026-05-06T09:35:29.301551Z 01O failed_when_result: true
2026-05-06T09:35:29.301552Z 01O msg: non-zero return code
2026-05-06T09:35:29.301553Z 01O rc: 1
2026-05-06T09:35:29.301553Z 01O start: '2026-05-06 11:35:27.082361'
2026-05-06T09:35:29.301554Z 01O stderr: 'ctr: failed to get reader: content digest sha256:045fc1c20da893bef6d0ed64e92b243213b0cebcd478389573bdfb095e212a98: not found'
2026-05-06T09:35:29.301556Z 01O stderr_lines: <omitted>
2026-05-06T09:35:29.301557Z 01O stdout: ''
2026-05-06T09:35:29.301558Z 01O stdout_lines: <omitted>
2026-05-06T09:35:29.301559Z 01O
2026-05-06T09:35:29.301560Z 01O PLAY RECAP *********************************************************************
2026-05-06T09:35:29.301561Z 01O ctl01.tst : ok=554 changed=79 unreachable=0 failed=1 skipped=298 rescued=0 ignored=1
2026-05-06T09:35:29.301563Z 01O ctl02.tst : ok=447 changed=39 unreachable=0 failed=0 skipped=260 rescued=0 ignored=0
2026-05-06T09:35:29.301565Z 01O ctl03.tst : ok=447 changed=39 unreachable=0 failed=0 skipped=260 rescued=0 ignored=0
2026-05-06T09:35:29.301566Z 01O wrk01.tst : ok=334 changed=29 unreachable=0 failed=0 skipped=214 rescued=0 ignored=0
2026-05-06T09:35:29.301568Z 01O wrk02.tst : ok=334 changed=29 unreachable=0 failed=0 skipped=214 rescued=0 ignored=0
2026-05-06T09:35:29.301569Z 01O wrk03.tst : ok=334 changed=29 unreachable=0 failed=0 skipped=214 rescued=0 ignored=0
2026-05-06T09:35:29.301571Z 01O wrk04.tst : ok=334 changed=29 unreachable=0 failed=0 skipped=214 rescued=0 ignored=0
2026-05-06T09:35:29.301572Z 01O localhost : ok=0 changed=0 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
Anything else we need to know
No response