diff --git a/roles/container-engine/cri-o/defaults/main.yml b/roles/container-engine/cri-o/defaults/main.yml
index 6bc0d72380eaeb22c60abd5a7992fcb75f8be728..ffbb0cfb26b280c3f9cd072aa2a5dad4651a48b7 100644
--- a/roles/container-engine/cri-o/defaults/main.yml
+++ b/roles/container-engine/cri-o/defaults/main.yml
@@ -2,6 +2,7 @@
 
 crio_cgroup_manager: "{{ kubelet_cgroup_driver | default('systemd') }}"
 crio_conmon: "{{ bin_dir }}/conmon"
+crio_libexec_dir: "/usr/libexec/crio"
 crio_enable_metrics: false
 crio_log_level: "info"
 crio_metrics_port: "9090"
@@ -40,7 +41,7 @@ crio_required_version: "{{ kube_version | regex_replace('^v(?P<major>\\d+).(?P<m
 # The crio_runtimes variable defines a list of OCI compatible runtimes.
 crio_runtimes:
   - name: runc
-    path: "{{ bin_dir }}/runc"
+    path: "{{ crio_runtime_bin_dir }}/runc"
     type: oci
     root: /run/runc
 
@@ -58,7 +59,7 @@ kata_runtimes:
 # crun is a fast and low-memory footprint OCI Container Runtime fully written in C.
 crun_runtime:
   name: crun
-  path: "{{ bin_dir }}/crun"
+  path: "{{ crio_runtime_bin_dir }}/crun"
   type: oci
   root: /run/crun
 
diff --git a/roles/container-engine/cri-o/tasks/main.yaml b/roles/container-engine/cri-o/tasks/main.yaml
index bde2e075623471c9ae507960ab5f1e877d315160..cdcd1f41954e42e8dcb7ce94848c58ab684b9e8c 100644
--- a/roles/container-engine/cri-o/tasks/main.yaml
+++ b/roles/container-engine/cri-o/tasks/main.yaml
@@ -82,6 +82,23 @@
     - "{{ crio_bin_files }}"
   notify: Restart crio
 
+- name: Cri-o | create directory for libexec
+  file:
+    path: "{{ crio_libexec_dir }}"
+    state: directory
+    owner: root
+    mode: "0755"
+
+- name: Cri-o | copy libexec
+  copy:
+    src: "{{ local_release_dir }}/cri-o/bin/{{ item }}"
+    dest: "{{ crio_libexec_dir }}/{{ item }}"
+    mode: "0755"
+    remote_src: true
+  with_items:
+    - "{{ crio_libexec_files }}"
+  notify: Restart crio
+
 - name: Cri-o | copy service file
   copy:
     src: "{{ local_release_dir }}/cri-o/contrib/crio.service"
diff --git a/roles/container-engine/cri-o/tasks/reset.yml b/roles/container-engine/cri-o/tasks/reset.yml
index 53d47143477727324087e7f42e1a33d712d21d81..7f573ead4b0282d4a2824cd0e63fd9ea45a66fa9 100644
--- a/roles/container-engine/cri-o/tasks/reset.yml
+++ b/roles/container-engine/cri-o/tasks/reset.yml
@@ -88,3 +88,11 @@
   with_items: "{{ crio_bin_files }}"
   tags:
     - reset_crio
+
+- name: CRI-O | Remove CRI-O libexec
+  file:
+    name: "{{ item }}"
+    state: absent
+  with_items: "{{ crio_libexec_files }}"
+  tags:
+    - reset_crio
diff --git a/roles/container-engine/cri-o/vars/v1.28.yml b/roles/container-engine/cri-o/vars/v1.28.yml
index a6a8b673da8173b7e9d17f8c21975784eb49740b..865a12e92b8187c7cbd6892ed5c4836f0a79bb5f 100644
--- a/roles/container-engine/cri-o/vars/v1.28.yml
+++ b/roles/container-engine/cri-o/vars/v1.28.yml
@@ -1,4 +1,6 @@
 ---
+crio_runtime_bin_dir: "{{ bin_dir }}"
+
 # cri-o binary files
 crio_bin_files:
   - conmon
diff --git a/roles/container-engine/cri-o/vars/v1.29.yml b/roles/container-engine/cri-o/vars/v1.29.yml
index ddf34c73f116c37745981059c1f960063fad981a..d8e6ccf22721b33129a73bf37ed6faca1c219c91 100644
--- a/roles/container-engine/cri-o/vars/v1.29.yml
+++ b/roles/container-engine/cri-o/vars/v1.29.yml
@@ -1,5 +1,6 @@
 ---
 crio_conmon: "{{ bin_dir }}/crio-conmon"
+crio_runtime_bin_dir: "{{ bin_dir }}"
 
 # cri-o binary files
 crio_bin_files:
diff --git a/roles/container-engine/cri-o/vars/v1.31.yml b/roles/container-engine/cri-o/vars/v1.31.yml
index 2461109ccbfd6365864821796910e79e5dc7e10a..d84e00ef3dd860f133097a4ad5558abe152bc43e 100644
--- a/roles/container-engine/cri-o/vars/v1.31.yml
+++ b/roles/container-engine/cri-o/vars/v1.31.yml
@@ -1,13 +1,16 @@
 ---
-crio_conmon: "{{ bin_dir }}/conmon"
+crio_conmon: "{{ crio_libexec_dir }}/conmon"
+crio_runtime_bin_dir: "{{ crio_libexec_dir }}"
 
 # cri-o binary files
 crio_bin_files:
+  - crio
+  - pinns
+
+crio_libexec_files:
   - conmon
   - conmonrs
   - crun
   - runc
-  - crio
-  - pinns
 
 crio_status_command: crio status
diff --git a/roles/container-engine/youki/tasks/main.yml b/roles/container-engine/youki/tasks/main.yml
index 86182a3663e975f70aada4b9bbc78414964d2a9b..7750c65b8d299f9992d4dffbb33aefee616c2049 100644
--- a/roles/container-engine/youki/tasks/main.yml
+++ b/roles/container-engine/youki/tasks/main.yml
@@ -6,7 +6,7 @@
 
 - name: Youki | Copy youki binary from download dir
   copy:
-    src: "{{ local_release_dir }}/youki_{{ youki_version | regex_replace('\\.', '_') }}_linux/youki-{{ youki_version }}/youki"
+    src: "{{ local_release_dir }}/youki"
     dest: "{{ youki_bin_dir }}/youki"
     mode: "0755"
     remote_src: true
diff --git a/roles/kubespray-defaults/defaults/main/checksums.yml b/roles/kubespray-defaults/defaults/main/checksums.yml
index 5bf3204088a822fa8ba68f62bdaa95944a9a039d..41cf204be63d77262a0a2ad75408b449cce9cb3b 100644
--- a/roles/kubespray-defaults/defaults/main/checksums.yml
+++ b/roles/kubespray-defaults/defaults/main/checksums.yml
@@ -900,37 +900,37 @@ crun_checksums:
     1.9.2: 0
 youki_checksums:
   arm:
+    0.4.1: 0
+    0.4.0: 0
     0.3.2: 0
     0.3.1: 0
     0.3.0: 0
     0.2.0: 0
     0.1.0: 0
-    0.0.5: 0
-    0.0.4: 0
   arm64:
+    0.4.1: 0
+    0.4.0: 0
     0.3.2: 0
     0.3.1: 0
     0.3.0: 0
     0.2.0: 0
     0.1.0: 0
-    0.0.5: 0
-    0.0.4: 0
   amd64:
-    0.3.2: 0
-    0.3.1: 0
+    0.4.1: 6504a43c28710d2cb3dd6535ae9222c0570e954a799a787ccf5e5d611996bf11
+    0.4.0: a9fb31c7388ed786a2a1b6361cf4aaa7c3e3b62be4c3d36dc15331416a3d6290
+    0.3.2: fe80475ad6e727a50f7c0b89e26e4632dd55e477c99bbca192ad1d5fee065377
+    0.3.1: 8a92304312982246d5ad9c00da367868dcc4d331fd992ca89dada8eff9cbdeaf
     0.3.0: 741ba3cd85d768bebba02598cedcf3b15a2160e4d6ce33a3d5c4e1b3080f9c1c
     0.2.0: b268689a91db07feebfd41d5806b10c7d051fbcbf7efb15076e2228763ac0762
     0.1.0: f00677e9674215b44f140f0c0f4b79b0001c72c073d2c5bb514b7a9dcb13bdbc
-    0.0.5: 8504f4c35a24b96782b9e0feb7813aba4e7262c55a39b8368e94c80c9a4ec564
-    0.0.4: c213376393cb16462ef56586e68fef9ec5b5dd80787e7152f911d7cfd72d952e
   ppc64le:
+    0.4.1: 0
+    0.4.0: 0
     0.3.2: 0
     0.3.1: 0
     0.3.0: 0
     0.2.0: 0
     0.1.0: 0
-    0.0.5: 0
-    0.0.4: 0
 kata_containers_binary_checksums:
   arm:
     3.2.0: 0
diff --git a/roles/kubespray-defaults/defaults/main/download.yml b/roles/kubespray-defaults/defaults/main/download.yml
index 5425f7351481f86879cf51126f7b9092e3eef63f..afd41debc9551db8fe805619dcc98eeeff24dbaf 100644
--- a/roles/kubespray-defaults/defaults/main/download.yml
+++ b/roles/kubespray-defaults/defaults/main/download.yml
@@ -77,7 +77,7 @@ image_arch: "{{ host_architecture | default('amd64') }}"
 crun_version: 1.14.4
 runc_version: v1.1.14
 kata_containers_version: 3.1.3
-youki_version: 0.1.0
+youki_version: 0.4.1
 gvisor_version: 20240305
 containerd_version: 1.7.22
 cri_dockerd_version: 0.3.11
@@ -188,7 +188,7 @@ crio_download_url: "{{ storage_googleapis_url }}/cri-o/artifacts/cri-o.{{ image_
 helm_download_url: "{{ get_helm_url }}/helm-{{ helm_version }}-linux-{{ image_arch }}.tar.gz"
 runc_download_url: "{{ github_url }}/opencontainers/runc/releases/download/{{ runc_version }}/runc.{{ image_arch }}"
 crun_download_url: "{{ github_url }}/containers/crun/releases/download/{{ crun_version }}/crun-{{ crun_version }}-linux-{{ image_arch }}"
-youki_download_url: "{{ github_url }}/containers/youki/releases/download/v{{ youki_version }}/youki_{{ youki_version | regex_replace('\\.', '_') }}_linux.tar.gz"
+youki_download_url: "{{ github_url }}/containers/youki/releases/download/v{{ youki_version }}/youki-{{ youki_version }}-{{ ansible_architecture }}-musl.tar.gz"
 kata_containers_download_url: "{{ github_url }}/kata-containers/kata-containers/releases/download/{{ kata_containers_version }}/kata-static-{{ kata_containers_version }}-{{ ansible_architecture }}.tar.xz"
 # gVisor only supports amd64 and uses x86_64 to in the download link
 gvisor_runsc_download_url: "{{ storage_googleapis_url }}/gvisor/releases/release/{{ gvisor_version }}/{{ ansible_architecture }}/runsc"
@@ -524,7 +524,7 @@ downloads:
     file: true
     enabled: "{{ container_manager == 'crio' }}"
     version: "{{ crio_version }}"
-    dest: "{{ local_release_dir }}/cri-o.{{ image_arch }}.{{ crio_version }}tar.gz"
+    dest: "{{ local_release_dir }}/cri-o.{{ image_arch }}.{{ crio_version }}.tar.gz"
     sha256: "{{ crio_archive_checksum }}"
     url: "{{ crio_download_url }}"
     unarchive: true
@@ -565,7 +565,7 @@ downloads:
     file: true
     enabled: "{{ youki_enabled }}"
     version: "{{ youki_version }}"
-    dest: "{{ local_release_dir }}/youki_{{ youki_version | regex_replace('\\.', '_') }}_linux.tar.gz"
+    dest: "{{ local_release_dir }}/youki-{{ youki_version }}-{{ ansible_architecture }}.tar.gz"
     sha256: "{{ youki_archive_checksum }}"
     url: "{{ youki_download_url }}"
     unarchive: true