diff --git a/Vagrantfile b/Vagrantfile
index 410ba874eb079f21830e539ab81b11b00ad7001e..63292bd13c1c5447991ce31781452eae5f89293b 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -31,7 +31,7 @@ SUPPORTED_OS = {
   "rockylinux8"         => {box: "generic/rocky8",             user: "vagrant"},
   "fedora35"            => {box: "fedora/35-cloud-base",       user: "vagrant"},
   "fedora36"            => {box: "fedora/36-cloud-base",       user: "vagrant"},
-  "opensuse"            => {box: "opensuse/Leap-15.3.x86_64",  user: "vagrant"},
+  "opensuse"            => {box: "opensuse/Leap-15.4.x86_64",  user: "vagrant"},
   "opensuse-tumbleweed" => {box: "opensuse/Tumbleweed.x86_64", user: "vagrant"},
   "oraclelinux"         => {box: "generic/oracle7",            user: "vagrant"},
   "oraclelinux8"        => {box: "generic/oracle8",            user: "vagrant"},
diff --git a/roles/bootstrap-os/tasks/bootstrap-opensuse.yml b/roles/bootstrap-os/tasks/bootstrap-opensuse.yml
index c036c21f68ed9d8cd637bb7c3d24403b988ce92a..c833bfd0d5f1a50f2af2d7026ba502bee1688a54 100644
--- a/roles/bootstrap-os/tasks/bootstrap-opensuse.yml
+++ b/roles/bootstrap-os/tasks/bootstrap-opensuse.yml
@@ -1,5 +1,9 @@
 ---
 # OpenSUSE ships with Python installed
+- name: Gather host facts to get ansible_distribution_version ansible_distribution_major_version
+  setup:
+    gather_subset: '!all'
+    filter: ansible_distribution_*version
 
 - name: Check that /etc/sysconfig/proxy file exists
   stat:
@@ -59,6 +63,17 @@
     state: present
     update_cache: true
   become: true
+  when:
+    - ansible_distribution_version is version('15.4', '<')
+
+- name: Install python3-cryptography
+  zypper:
+    name: python3-cryptography
+    state: present
+    update_cache: true
+  become: true
+  when:
+    - ansible_distribution_version is version('15.4', '>=')
 
 # Nerdctl needs some basic packages to get an environment up
 - name: Install basic dependencies
diff --git a/roles/container-engine/containerd/molecule/default/molecule.yml b/roles/container-engine/containerd/molecule/default/molecule.yml
index 3071d265c27a2320d827d4468aab6ea582054a01..5e17a4256fe0e538b40ae914f91ef1e53de919d0 100644
--- a/roles/container-engine/containerd/molecule/default/molecule.yml
+++ b/roles/container-engine/containerd/molecule/default/molecule.yml
@@ -32,7 +32,7 @@ platforms:
       - kube_node
       - k8s_cluster
   - name: opensuse
-    box: opensuse/Leap-15.3.x86_64
+    box: opensuse/Leap-15.4.x86_64
     cpus: 1
     memory: 1024
     groups: