diff --git a/images/calicoctl-utility/Dockerfile.ubuntu_jammy b/images/calicoctl-utility/Dockerfile.ubuntu_jammy
index 488df5e8..f8c6152b 100644
--- a/images/calicoctl-utility/Dockerfile.ubuntu_jammy
+++ b/images/calicoctl-utility/Dockerfile.ubuntu_jammy
@@ -1,4 +1,4 @@
-ARG FROM=docker.io/ubuntu:jammy
+ARG FROM=quay.io/airshipit/ubuntu:jammy
 ARG DOCKER_REGISTRY=quay.io
 ARG CALICOCTL_IMAGE_PREFIX=calico/ctl
 ARG CALICOCTL_VERSION=v3.28.1
@@ -33,7 +33,7 @@ RUN set -xe \
          python3-pip \
     && curl -s https://bootstrap.pypa.io/get-pip.py | python3 \
     && pip3 install --no-cache-dir \
-         oslo.rootwrap==7.0.1 \
+         oslo.rootwrap==7.2.0 \
     && rm -rf /var/lib/apt/lists/*
 
 RUN PYTHON_LOCATION=$(pip3 show oslo.rootwrap|grep Location|awk '{print $2}') \
diff --git a/images/calicoctl-utility/Dockerfile_calicoq_calicoctl.ubuntu_jammy b/images/calicoctl-utility/Dockerfile_calicoq_calicoctl.ubuntu_jammy
index 35ba93d4..605c3b4c 100644
--- a/images/calicoctl-utility/Dockerfile_calicoq_calicoctl.ubuntu_jammy
+++ b/images/calicoctl-utility/Dockerfile_calicoq_calicoctl.ubuntu_jammy
@@ -1,4 +1,4 @@
-ARG FROM=docker.io/ubuntu:jammy
+ARG FROM=quay.io/airshipit/ubuntu:jammy
 ARG DOCKER_REGISTRY=quay.io
 ARG CALICOCTL_IMAGE_PREFIX=tigera/calicoctl
 ARG CALICOCTL_VERSION=v3.28.1
diff --git a/images/ceph-utility/Dockerfile.ubuntu_jammy b/images/ceph-utility/Dockerfile.ubuntu_jammy
index 1029f495..ad7b3a92 100644
--- a/images/ceph-utility/Dockerfile.ubuntu_jammy
+++ b/images/ceph-utility/Dockerfile.ubuntu_jammy
@@ -1,4 +1,4 @@
-ARG FROM=docker.io/ubuntu:jammy
+ARG FROM=quay.io/airshipit/ubuntu:jammy
 FROM ${FROM}
 
 LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode' \
@@ -11,7 +11,7 @@ LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc
 # Reef 18.2.2
 ARG CEPH_RELEASE=reef
 ARG CEPH_RELEASE_TAG=18.2.2-1~jammy
-ARG KUBE_VERSION=1.31.0
+ARG KUBE_VERSION=1.32.0
 
 ARG CEPH_REPO=https://mirror.mirantis.com/acicd/ceph/debian-18.2.2.patch1/jammy/
 ARG CEPH_KEY=https://mirror.mirantis.com/acicd/ceph/debian-18.2.2.patch1/jammy/release.asc
@@ -51,7 +51,7 @@ RUN set -xe \
          orphan-sysvinit-scripts \
     && curl -s https://bootstrap.pypa.io/get-pip.py | python3 \
     && pip3 install --no-cache-dir \
-         oslo.rootwrap==7.0.1 \
+         oslo.rootwrap==7.2.0 \
     && curl --silent -L https://dl.k8s.io/v${KUBE_VERSION}/kubernetes-client-linux-amd64.tar.gz \
        | tar -zC /usr/bin --strip-components=3 --wildcards -x "*/*/*/kubectl" \
     && rm -rf /var/lib/apt/lists/*
diff --git a/images/compute-utility/Dockerfile.ubuntu_jammy b/images/compute-utility/Dockerfile.ubuntu_jammy
index c704c5d4..4301e5ab 100644
--- a/images/compute-utility/Dockerfile.ubuntu_jammy
+++ b/images/compute-utility/Dockerfile.ubuntu_jammy
@@ -1,4 +1,4 @@
-ARG FROM=docker.io/ubuntu:jammy
+ARG FROM=quay.io/airshipit/ubuntu:jammy
 FROM ${FROM}
 
 LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode' \
@@ -8,7 +8,7 @@ LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc
       org.opencontainers.image.vendor='The Airship Authors' \
       org.opencontainers.image.licenses='Apache-2.0'
 
-ARG KUBE_VERSION=1.31.0
+ARG KUBE_VERSION=1.32.0
 
 ARG DEBIAN_FRONTEND=noninteractive
 
@@ -38,7 +38,7 @@ RUN set -xe \
          orphan-sysvinit-scripts \
     && curl -s https://bootstrap.pypa.io/get-pip.py | python3 \
     && pip3 install --no-cache-dir \
-         oslo.rootwrap==7.0.1 \
+         oslo.rootwrap==7.2.0 \
     && curl --silent -L https://dl.k8s.io/v${KUBE_VERSION}/kubernetes-client-linux-amd64.tar.gz \
        | tar -zC /usr/bin --strip-components=3 --wildcards -x "*/*/*/kubectl" \
     && rm -rf /var/lib/apt/lists/*
diff --git a/images/etcdctl-utility/Dockerfile.ubuntu_jammy b/images/etcdctl-utility/Dockerfile.ubuntu_jammy
index 29eb2a6d..bd2c4567 100644
--- a/images/etcdctl-utility/Dockerfile.ubuntu_jammy
+++ b/images/etcdctl-utility/Dockerfile.ubuntu_jammy
@@ -1,4 +1,4 @@
-ARG FROM=docker.io/ubuntu:jammy
+ARG FROM=quay.io/airshipit/ubuntu:jammy
 FROM ${FROM}
 
 LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode' \
@@ -9,7 +9,7 @@ LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc
       org.opencontainers.image.licenses='Apache-2.0'
 
 ARG ETCDCTL_VERSION=3.5.12
-ARG KUBE_VERSION=1.31.0
+ARG KUBE_VERSION=1.32.0
 
 ENV GOOGLE_URL=https://storage.googleapis.com/etcd
 ENV GITHUB_URL=https://github.com/etcd-io/etcd/releases/download
@@ -39,9 +39,9 @@ RUN set -xe \
     && pip3 install --no-cache-dir \
           munch \
           simplejson \
-          oslo.rootwrap==7.0.1 \
-          python-openstackclient==6.2.0 \
-          python-swiftclient==4.2.0 \
+          oslo.rootwrap==7.2.0 \
+          python-openstackclient==6.6.1 \
+          python-swiftclient==4.5.0 \
     && curl --silent -L  "${DOWNLOAD_URL}/v${ETCDCTL_VERSION}/etcd-v${ETCDCTL_VERSION}-linux-amd64.tar.gz" \
        | tar -zC /usr/local/bin --strip-components=1 --wildcards -x "*/etcdctl" \
     && curl --silent -L https://dl.k8s.io/v${KUBE_VERSION}/kubernetes-client-linux-amd64.tar.gz \
diff --git a/images/mysqlclient-utility/Dockerfile.ubuntu_jammy b/images/mysqlclient-utility/Dockerfile.ubuntu_jammy
index d49e09e2..4931da78 100644
--- a/images/mysqlclient-utility/Dockerfile.ubuntu_jammy
+++ b/images/mysqlclient-utility/Dockerfile.ubuntu_jammy
@@ -1,4 +1,4 @@
-ARG FROM=docker.io/ubuntu:jammy
+ARG FROM=quay.io/airshipit/ubuntu:jammy
 FROM ${FROM}
 
 LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode' \
@@ -8,7 +8,7 @@ LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc
       org.opencontainers.image.vendor='The Airship Authors' \
       org.opencontainers.image.licenses='Apache-2.0'
 
-ARG KUBE_VERSION=1.31.0
+ARG KUBE_VERSION=1.32.0
 ARG MARIADB_VERSION=10.6
 ARG PERCONA_TOOLKIT_VERSION=3.5.7
 
@@ -45,9 +45,9 @@ RUN set -xe \
     && pip3 install --no-cache-dir \
           munch \
           simplejson \
-          oslo.rootwrap==7.0.1 \
-          python-openstackclient==6.2.0 \
-          python-swiftclient==4.2.0 \
+          oslo.rootwrap==7.2.0 \
+          python-openstackclient==6.6.1 \
+          python-swiftclient==4.5.0 \
     && sed -i 's/$PrivDropToUser syslog/$PrivDropToUser nobody/' /etc/rsyslog.conf \
     && curl --silent -L https://dl.k8s.io/v${KUBE_VERSION}/kubernetes-client-linux-amd64.tar.gz \
        | tar -zC /usr/bin --strip-components=3 --wildcards -x "*/*/*/kubectl" \
diff --git a/images/openstack-utility/Dockerfile.ubuntu_jammy b/images/openstack-utility/Dockerfile.ubuntu_jammy
index 86447296..8d75b9bb 100644
--- a/images/openstack-utility/Dockerfile.ubuntu_jammy
+++ b/images/openstack-utility/Dockerfile.ubuntu_jammy
@@ -1,4 +1,4 @@
-ARG FROM=docker.io/ubuntu:jammy
+ARG FROM=quay.io/airshipit/ubuntu:jammy
 FROM ${FROM}
 
 LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode' \
@@ -27,15 +27,15 @@ RUN set -xe \
     && pip3 install --no-cache-dir \
          munch \
          simplejson \
-         oslo.rootwrap==7.0.1 \
-         python-openstackclient==6.2.0 \
-         python-glanceclient==4.3.0 \
-         python-novaclient==18.3.0 \
-         python-neutronclient==9.0.0 \
-         python-cinderclient==9.3.0 \
-         python-heatclient==3.2.0 \
-         python-swiftclient==4.2.0 \
-         osc-placement \
+         oslo.rootwrap==7.2.0 \
+         python-openstackclient==6.6.1 \
+         python-swiftclient==4.5.0 \
+         python-glanceclient==4.5.0 \
+         python-novaclient==18.6.0 \
+         python-neutronclient==11.2.0 \
+         python-cinderclient==9.5.0 \
+         python-heatclient==3.5.0 \
+         osc-placement==4.3.0 \
     && rm -rf /var/lib/apt/lists/*
 
 RUN PYTHON_LOCATION=$(pip3 show oslo.rootwrap|grep Location|awk '{print $2}') \
diff --git a/images/postgresql-utility/Dockerfile.ubuntu_jammy b/images/postgresql-utility/Dockerfile.ubuntu_jammy
index 9940dab9..48b2e048 100644
--- a/images/postgresql-utility/Dockerfile.ubuntu_jammy
+++ b/images/postgresql-utility/Dockerfile.ubuntu_jammy
@@ -1,4 +1,4 @@
-ARG FROM=docker.io/ubuntu:jammy
+ARG FROM=quay.io/airshipit/ubuntu:jammy
 FROM ${FROM}
 
 LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode' \
@@ -8,7 +8,7 @@ LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc
       org.opencontainers.image.vendor='The Airship Authors' \
       org.opencontainers.image.licenses='Apache-2.0'
 
-ARG KUBE_VERSION=1.31.0
+ARG KUBE_VERSION=1.32.0
 
 ARG DEBIAN_FRONTEND=noninteractive
 
@@ -40,9 +40,9 @@ RUN set -xe \
     && pip3 install --no-cache-dir \
          munch \
          simplejson \
-         oslo.rootwrap==7.0.1 \
-         python-openstackclient==6.2.0 \
-         python-swiftclient==4.2.0 \
+         oslo.rootwrap==7.2.0 \
+         python-openstackclient==6.6.1 \
+         python-swiftclient==4.5.0 \
     && curl --silent -L https://dl.k8s.io/v${KUBE_VERSION}/kubernetes-client-linux-amd64.tar.gz \
        | tar -zC /usr/bin --strip-components=3 --wildcards -x "*/*/*/kubectl" \
     && curl -o /tmp/rclone.deb https://downloads.rclone.org/rclone-current-linux-amd64.deb \
diff --git a/kube_utility_container/services/utility_container_client.py b/kube_utility_container/services/utility_container_client.py
index 3516cf9d..85724801 100644
--- a/kube_utility_container/services/utility_container_client.py
+++ b/kube_utility_container/services/utility_container_client.py
@@ -109,19 +109,17 @@ class UtilityContainerClient(object):
             raise KubeEnvVarException(kube_server_key)
 
         if os.environ.get(region_key) is not None:
-            conf.set_cluster(
-                name=os.environ.get(region_key),
-                server=server,
-                insecure_skip_tls_verify=True)
+            conf.set_cluster(name=os.environ.get(region_key),
+                             server=server,
+                             insecure_skip_tls_verify=True)
         else:
             raise KubeEnvVarException(region_key)
         username_key = 'OS_USERNAME'
         if os.environ.get(username_key) is not None:
-            conf.set_context(
-                name='context_uc',
-                user=os.environ.get(username_key),
-                namespace='utility',
-                cluster=os.environ.get(region_key))
+            conf.set_context(name='context_uc',
+                             user=os.environ.get(username_key),
+                             namespace='utility',
+                             cluster=os.environ.get(region_key))
         else:
             raise KubeEnvVarException(username_key)
         conf.use_context('context_uc')
@@ -158,8 +156,8 @@ class UtilityContainerClient(object):
             # Get the selectors from the deployment object returned.
             selector_dict = deployment[0].spec.selector.match_labels
             # Convert the selector dictionary to a string object.
-            selectors = ', '.join(
-                "{!s}={!s}".format(k, v) for (k, v) in selector_dict.items())
+            selectors = ', '.join("{!s}={!s}".format(k, v)
+                                  for (k, v) in selector_dict.items())
             return selectors
         else:
             raise KubeDeploymentNotFoundException(
diff --git a/kube_utility_container/tests/unit/services/test_utility_container_client.py b/kube_utility_container/tests/unit/services/test_utility_container_client.py
index ce2ec880..4e3f170f 100644
--- a/kube_utility_container/tests/unit/services/test_utility_container_client.py
+++ b/kube_utility_container/tests/unit/services/test_utility_container_client.py
@@ -36,17 +36,14 @@ class TestUtilityContainerClient(unittest.TestCase):
     @patch('kube_utility_container.services.utility_container_client.'
            'UtilityContainerClient._get_exec_cmd_output')
     def test_exec_cmd(self, mock_get_exec_cmd_output, mock_utility_container):
-        v1_container_obj = Mock(
-            spec=client.V1Container(
-                name='ceph_utility', image='sha', image_pull_policy='Always'))
+        v1_container_obj = Mock(spec=client.V1Container(
+            name='ceph_utility', image='sha', image_pull_policy='Always'))
         v1_spec_obj = Mock(spec=client.V1PodSpec(containers=v1_container_obj))
-        v1_meta_obj = Mock(
-            spec=client.V1ObjectMeta(
-                name='clcp-ceph-utility-5454794df8-xqwj5', labels='app=ceph'))
+        v1_meta_obj = Mock(spec=client.V1ObjectMeta(
+            name='clcp-ceph-utility-5454794df8-xqwj5', labels='app=ceph'))
 
-        v1_pod_obj = Mock(
-            spec=client.V1Pod(
-                api_version='v1', metadata=v1_meta_obj, spec=v1_spec_obj))
+        v1_pod_obj = Mock(spec=client.V1Pod(
+            api_version='v1', metadata=v1_meta_obj, spec=v1_spec_obj))
         mock_utility_container.return_value = v1_pod_obj
         mock_get_exec_cmd_output.return_value = "Health OK"
 
@@ -58,9 +55,10 @@ class TestUtilityContainerClient(unittest.TestCase):
         self.assertIsInstance(response, str)
         self.assertEqual(response, mock_get_exec_cmd_output.return_value)
 
-    @patch('kube_utility_container.services.utility_container_client.'
-           'UtilityContainerClient._get_utility_container',
-           side_effect=KubePodNotFoundException('utility'))
+    @patch(
+        'kube_utility_container.services.utility_container_client.'
+        'UtilityContainerClient._get_utility_container',
+        side_effect=KubePodNotFoundException('utility'))
     def test_exec_cmd_no_utility_pods_returned(self, mock_list_pods):
         mock_list_pods.return_value = []
         utility_container_client = UtilityContainerClient()
@@ -68,9 +66,10 @@ class TestUtilityContainerClient(unittest.TestCase):
             utility_container_client.exec_cmd('clcp-utility',
                                               ['utilscli', 'ceph', 'status'])
 
-    @patch('kube_utility_container.services.utility_container_client.'
-           'UtilityContainerClient._get_deployment_selectors',
-           side_effect=KubeDeploymentNotFoundException('utility'))
+    @patch(
+        'kube_utility_container.services.utility_container_client.'
+        'UtilityContainerClient._get_deployment_selectors',
+        side_effect=KubeDeploymentNotFoundException('utility'))
     @patch('kube_utility_container.services.utility_container_client.'
            'UtilityContainerClient._corev1api_api_client')
     def test_exec_cmd_no_deployments_returned(self, deployment, api_client):
@@ -81,12 +80,14 @@ class TestUtilityContainerClient(unittest.TestCase):
             utility_container_client.exec_cmd('clcp-ceph-utility',
                                               ['utilscli', 'ceph', 'status'])
 
-    @patch('kube_utility_container.services.utility_container_client.'
-           'UtilityContainerClient._get_deployment_selectors',
-           side_effect=KubeEnvVarException('utility'))
-    @patch('kube_utility_container.services.utility_container_client.'
-           'UtilityContainerClient._appsv1api_api_client',
-           side_effect=KubeEnvVarException('KUBECONFIG'))
+    @patch(
+        'kube_utility_container.services.utility_container_client.'
+        'UtilityContainerClient._get_deployment_selectors',
+        side_effect=KubeEnvVarException('utility'))
+    @patch(
+        'kube_utility_container.services.utility_container_client.'
+        'UtilityContainerClient._appsv1api_api_client',
+        side_effect=KubeEnvVarException('KUBECONFIG'))
     def test_env_var_kubeconfig_not_set_raises_exception(
             self, deployment, api_client):
         deployment.return_value = []
diff --git a/kube_utility_container/tests/utility/base.py b/kube_utility_container/tests/utility/base.py
index 350a2e7a..8da82fa2 100644
--- a/kube_utility_container/tests/utility/base.py
+++ b/kube_utility_container/tests/utility/base.py
@@ -21,6 +21,7 @@ from kube_utility_container.services.dataloader import \
 
 
 class TestBase(unittest.TestCase):
+
     @classmethod
     def setUpClass(cls):
         cls.client = UtilityContainerClient()
diff --git a/kube_utility_container/tests/utility/calico/test_calico_utility_container.py b/kube_utility_container/tests/utility/calico/test_calico_utility_container.py
index 0cdac13c..e662f726 100644
--- a/kube_utility_container/tests/utility/calico/test_calico_utility_container.py
+++ b/kube_utility_container/tests/utility/calico/test_calico_utility_container.py
@@ -23,6 +23,7 @@ from kube_utility_container.tests.utility.base import TestBase
 
 
 class TestCalicoUtilityContainer(TestBase):
+
     @classmethod
     def setUpClass(cls):
         cls.deployment_name = cls._get_deployment_name("calicoctl-utility")
@@ -88,9 +89,10 @@ class TestCalicoUtilityContainer(TestBase):
                                 f"is not having expected apparmor profile set")
         self.assertEqual(0, len(failures), failures)
 
-    @patch('kube_utility_container.services.utility_container_client.'
-           'UtilityContainerClient._get_utility_container',
-           side_effect=KubePodNotFoundException('utility'))
+    @patch(
+        'kube_utility_container.services.utility_container_client.'
+        'UtilityContainerClient._get_utility_container',
+        side_effect=KubePodNotFoundException('utility'))
     def test_exec_cmd_no_calicoctl_utility_pods_returned(self, mock_list_pods):
         mock_list_pods.return_value = []
         utility_container_client = UtilityContainerClient()
diff --git a/kube_utility_container/tests/utility/ceph/test_ceph_utility_container.py b/kube_utility_container/tests/utility/ceph/test_ceph_utility_container.py
index b165a97a..31dea504 100644
--- a/kube_utility_container/tests/utility/ceph/test_ceph_utility_container.py
+++ b/kube_utility_container/tests/utility/ceph/test_ceph_utility_container.py
@@ -16,6 +16,7 @@ from kube_utility_container.tests.utility.base import TestBase
 
 
 class TestCephUtilityContainer(TestBase):
+
     @classmethod
     def setUpClass(cls):
         cls.deployment_name = cls._get_deployment_name("ceph-utility")
diff --git a/kube_utility_container/tests/utility/compute/test_compute_utility_container.py b/kube_utility_container/tests/utility/compute/test_compute_utility_container.py
index 8bbba35e..ff920032 100644
--- a/kube_utility_container/tests/utility/compute/test_compute_utility_container.py
+++ b/kube_utility_container/tests/utility/compute/test_compute_utility_container.py
@@ -27,6 +27,7 @@ node = os.uname().nodename
 
 
 class TestComputeUtilityContainer(TestBase):
+
     @classmethod
     def setUpClass(cls):
         cls.deployment_name = cls._get_deployment_name("compute-utility")
@@ -105,9 +106,10 @@ class TestComputeUtilityContainer(TestBase):
                                 f"is not having expected apparmor profile set")
         self.assertEqual(0, len(failures), failures)
 
-    @patch('kube_utility_container.services.utility_container_client.'
-           'UtilityContainerClient._get_utility_container',
-           side_effect=KubePodNotFoundException('utility'))
+    @patch(
+        'kube_utility_container.services.utility_container_client.'
+        'UtilityContainerClient._get_utility_container',
+        side_effect=KubePodNotFoundException('utility'))
     def test_exec_cmd_no_compute_utility_pods_returned(self, mock_list_pods):
         mock_list_pods.return_value = []
         utility_container_client = UtilityContainerClient()
diff --git a/kube_utility_container/tests/utility/etcd/test_etcd_utility_container.py b/kube_utility_container/tests/utility/etcd/test_etcd_utility_container.py
index 555867e5..7b42770d 100644
--- a/kube_utility_container/tests/utility/etcd/test_etcd_utility_container.py
+++ b/kube_utility_container/tests/utility/etcd/test_etcd_utility_container.py
@@ -25,6 +25,7 @@ from kube_utility_container.tests.utility.base import TestBase
 
 
 class TestEtcdUtilityContainer(TestBase):
+
     @classmethod
     def setUpClass(cls):
         cls.deployment_name = cls._get_deployment_name("etcdctl-utility")
@@ -100,9 +101,10 @@ class TestEtcdUtilityContainer(TestBase):
         self.assertNotEqual(0, len(latest_pod_logs),
                             "Not able to get the latest logs")
 
-    @patch('kube_utility_container.services.utility_container_client.'
-           'UtilityContainerClient._get_utility_container',
-           side_effect=KubePodNotFoundException('utility'))
+    @patch(
+        'kube_utility_container.services.utility_container_client.'
+        'UtilityContainerClient._get_utility_container',
+        side_effect=KubePodNotFoundException('utility'))
     def test_exec_cmd_no_etcdctl_utility_pods_returned(self, mock_list_pods):
         mock_list_pods.return_value = []
         utility_container_client = UtilityContainerClient()
diff --git a/kube_utility_container/tests/utility/mysqlclient/test_mysqlclient_utility_container.py b/kube_utility_container/tests/utility/mysqlclient/test_mysqlclient_utility_container.py
index 844d4ac7..dde35946 100644
--- a/kube_utility_container/tests/utility/mysqlclient/test_mysqlclient_utility_container.py
+++ b/kube_utility_container/tests/utility/mysqlclient/test_mysqlclient_utility_container.py
@@ -17,6 +17,7 @@ from kube_utility_container.tests.utility.base import TestBase
 
 
 class TestMysqlclientUtilityContainer(TestBase):
+
     @classmethod
     def setUpClass(cls):
         cls.deployment_name = cls._get_deployment_name("mysqlclient-utility")
diff --git a/kube_utility_container/tests/utility/openstack/test_openstack_utility_container.py b/kube_utility_container/tests/utility/openstack/test_openstack_utility_container.py
index ee869d00..5dbc4e97 100644
--- a/kube_utility_container/tests/utility/openstack/test_openstack_utility_container.py
+++ b/kube_utility_container/tests/utility/openstack/test_openstack_utility_container.py
@@ -23,6 +23,7 @@ from kube_utility_container.tests.utility.base import TestBase
 
 
 class TestOpenstackUtilityContainer(TestBase):
+
     @classmethod
     def setUpClass(cls):
         cls.deployment_name = cls._get_deployment_name("openstack-utility")
@@ -88,9 +89,10 @@ class TestOpenstackUtilityContainer(TestBase):
                                 f"is not having expected apparmor profile set")
         self.assertEqual(0, len(failures), failures)
 
-    @patch('kube_utility_container.services.utility_container_client.'
-           'UtilityContainerClient._get_utility_container',
-           side_effect=KubePodNotFoundException('utility'))
+    @patch(
+        'kube_utility_container.services.utility_container_client.'
+        'UtilityContainerClient._get_utility_container',
+        side_effect=KubePodNotFoundException('utility'))
     def test_exec_cmd_no_openstack_utility_pods_returned(self, mock_list_pods):
         mock_list_pods.return_value = []
         utility_container_client = UtilityContainerClient()
diff --git a/kube_utility_container/tests/utility/postgresql/test_postgresql_utility_container.py b/kube_utility_container/tests/utility/postgresql/test_postgresql_utility_container.py
index ae637797..5ac43e8d 100644
--- a/kube_utility_container/tests/utility/postgresql/test_postgresql_utility_container.py
+++ b/kube_utility_container/tests/utility/postgresql/test_postgresql_utility_container.py
@@ -18,6 +18,7 @@ from kube_utility_container.tests.utility.base import TestBase
 
 
 class TestPostgresqlUtilityContainer(TestBase):
+
     @classmethod
     def setUpClass(cls):
         cls.deployment_name = cls._get_deployment_name("postgresql-utility")
diff --git a/requirements-direct.txt b/requirements-direct.txt
index 5464ba73..892a56b1 100644
--- a/requirements-direct.txt
+++ b/requirements-direct.txt
@@ -16,12 +16,29 @@ urllib3
 # chardet>=3.0.2,<3.1.0
 # urllib3>=1.21.1,<=1.25
 
-# Openstack Antelope 2023.1
-# https://releases.openstack.org/antelope/index.html
+# Openstack Caracal 2024.1
+# https://releases.openstack.org/caracal/index.html
+barbican==18.0.0
 
-oslo.config==9.1.1
-oslo.context==5.1.1
-oslo.i18n==6.0.0
-oslo.log==5.2.0
-oslo.serialization==5.1.1
-oslo.utils==6.1.0
+python-barbicanclient==5.7.0
+python-keystoneclient==5.4.0
+
+keystoneauth1==5.6.0
+keystonemiddleware==10.6.0
+
+oslo.cache==3.7.0
+oslo.concurrency==6.0.0
+oslo.config==9.4.0
+oslo.context==5.5.0
+oslo.db==15.0.0
+oslo.i18n==6.3.0
+oslo.log==5.5.1
+oslo.messaging==14.7.2
+oslo.metrics==0.8.0
+oslo.middleware==6.1.0
+oslo.policy==4.3.0
+oslo.serialization==5.4.1
+oslo.service==3.4.1
+oslo.upgradecheck==2.3.0
+oslo.utils==7.1.0
+oslo.versionedobjects==3.3.0
diff --git a/requirements-frozen.txt b/requirements-frozen.txt
index 36eb46c3..0dd7f8bd 100644
--- a/requirements-frozen.txt
+++ b/requirements-frozen.txt
@@ -1,41 +1,108 @@
+alembic==1.14.0
+amqp==5.3.1
+attrs==24.3.0
+autopage==0.5.2
+barbican==18.0.0
+bcrypt==4.2.1
 cachetools==5.5.0
-certifi==2024.8.30
+castellan==5.2.0
+certifi==2024.12.14
+cffi==1.17.1
 chardet==5.2.0
-charset-normalizer==3.3.2
+charset-normalizer==3.4.0
+cliff==4.8.0
+cmd2==2.5.8
+cryptography==44.0.0
 debtcollector==3.0.0
-durationpy==0.7
-google-auth==2.35.0
+decorator==5.1.1
+dnspython==2.7.0
+dogpile.cache==1.3.3
+durationpy==0.9
+eventlet==0.38.2
+fasteners==0.19
+futurist==3.0.0
+google-auth==2.37.0
+greenlet==3.1.1
 idna==3.10
 iso8601==2.1.0
+Jinja2==3.1.5
+jsonschema==4.23.0
+jsonschema-specifications==2024.10.1
+keystoneauth1==5.6.0
+keystonemiddleware==10.6.0
+kombu==5.4.2
 kubeconfig==1.1.1
 kubernetes==31.0.0
+ldap3==2.9.1
+logutils==0.3.5
+Mako==1.3.8
+MarkupSafe==3.0.2
+microversion-parse==2.0.0
 msgpack==1.1.0
 netaddr==1.3.0
 netifaces==0.11.0
 oauthlib==3.2.2
-oslo.config==9.1.1
-oslo.context==5.1.1
-oslo.i18n==6.0.0
-oslo.log==5.2.0
-oslo.serialization==5.1.1
-oslo.utils==6.1.0
-packaging==24.1
+os-service-types==1.7.0
+oslo.cache==3.7.0
+oslo.concurrency==6.0.0
+oslo.config==9.4.0
+oslo.context==5.5.0
+oslo.db==15.0.0
+oslo.i18n==6.3.0
+oslo.log==5.5.1
+oslo.messaging==14.7.2
+oslo.metrics==0.8.0
+oslo.middleware==6.1.0
+oslo.policy==4.3.0
+oslo.serialization==5.4.1
+oslo.service==3.4.1
+oslo.upgradecheck==2.3.0
+oslo.utils==7.1.0
+oslo.versionedobjects==3.3.0
+packaging==24.2
+Paste==3.10.1
+PasteDeploy==3.1.0
 pbr==6.1.0
+pecan==1.5.1
 pip==24.1
+prettytable==3.12.0
+prometheus_client==0.21.1
 pyasn1==0.6.1
 pyasn1_modules==0.4.1
-pyparsing==3.1.4
+pycadf==4.0.0
+pycparser==2.22
+PyJWT==2.10.1
+pyOpenSSL==24.3.0
+pyparsing==3.2.0
+pyperclip==1.9.0
+python-barbicanclient==5.7.0
 python-dateutil==2.9.0.post0
+python-keystoneclient==5.4.0
 pytz==2024.2
 PyYAML==6.0.2
+referencing==0.35.1
+repoze.lru==0.7
 requests==2.32.3
 requests-oauthlib==2.0.0
 rfc3986==2.0.0
+Routes==2.5.1
+rpds-py==0.22.3
 rsa==4.9
 setuptools==70.1.0
-six==1.16.0
-stevedore==5.3.0
-urllib3==2.2.3
+six==1.17.0
+SQLAlchemy==2.0.36
+statsd==4.0.1
+stevedore==5.4.0
+testresources==2.0.1
+testscenarios==0.5.0
+testtools==2.7.2
+typing_extensions==4.12.2
+tzdata==2024.2
+urllib3==2.3.0
+vine==5.1.0
+wcwidth==0.2.13
+WebOb==1.8.9
 websocket-client==1.8.0
 wheel==0.43.0
-wrapt==1.16.0
+wrapt==1.17.0
+yappi==1.6.10
diff --git a/test-requirements.txt b/test-requirements.txt
index 58e1b263..ef21197f 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -4,22 +4,20 @@
 
 # When modifying this file `tox -e freeze-testreq` must be run to regenerate the test-requirements-frozen.txt.
 
-astroid==2.11.7
+astroid
 bandit==1.6.0
 
-flake8==3.8.4
-hacking==4.1.0
+flake8
+hacking
 
 
-pylint==2.14.5
+pylint
 python-subunit==1.4.0 # Apache-2.0/BSD
 oslotest==3.7.0 # Apache-2.0
-stestr==3.2.1 # Apache-2.0
-testtools==2.5.0
-mock==5.0.2
+stestr
+mock
 nose==1.3.7
-yapf==0.24.0
-pytest >= 3.0
-pytest-cov==4.0.0
+yapf
+pytest
+pytest-cov
 chardet
-# chardet==3.0.4
\ No newline at end of file
diff --git a/tools/gate/playbooks/roles/airship-run-script-set/tasks/main.yaml b/tools/gate/playbooks/roles/airship-run-script-set/tasks/main.yaml
index fbf5b076..3f711f6e 100644
--- a/tools/gate/playbooks/roles/airship-run-script-set/tasks/main.yaml
+++ b/tools/gate/playbooks/roles/airship-run-script-set/tasks/main.yaml
@@ -35,7 +35,7 @@
         FEATURE_GATES: "{{ osh_params.feature_gates | default('') }}"
         RUN_HELM_TESTS: "{{ run_helm_tests | default('yes') }}"
         PL_SITE: "{{ site | default('airskiff') }}"
-        HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.13.2-linux-amd64.tar.gz') }}"
+        HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.15.2-linux-amd64.tar.gz') }}"
         HTK_COMMIT: "{{ HTK_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
         OSH_INFRA_COMMIT: "{{ OSH_INFRA_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
         OSH_COMMIT: "{{ OSH_COMMIT | default('2d9457e34ca4200ed631466bd87569b0214c92e7') }}"
diff --git a/tools/gate/playbooks/roles/airship-run-script/tasks/main.yaml b/tools/gate/playbooks/roles/airship-run-script/tasks/main.yaml
index d87663c3..9799d374 100644
--- a/tools/gate/playbooks/roles/airship-run-script/tasks/main.yaml
+++ b/tools/gate/playbooks/roles/airship-run-script/tasks/main.yaml
@@ -33,7 +33,7 @@
     FEATURE_GATES: "{{ osh_params.feature_gates | default('') }}"
     RUN_HELM_TESTS: "{{ run_helm_tests | default('yes') }}"
     PL_SITE: "{{ site | default('airskiff') }}"
-    HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.13.2-linux-amd64.tar.gz') }}"
+    HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.15.2-linux-amd64.tar.gz') }}"
     HTK_COMMIT: "{{ HTK_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
     OSH_INFRA_COMMIT: "{{ OSH_INFRA_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
     OSH_COMMIT: "{{ OSH_COMMIT | default('2d9457e34ca4200ed631466bd87569b0214c92e7') }}"
diff --git a/tools/helm_install.sh b/tools/helm_install.sh
index 4060f051..adcb9087 100755
--- a/tools/helm_install.sh
+++ b/tools/helm_install.sh
@@ -17,7 +17,7 @@
 set -x
 
 HELM=$1
-HELM_ARTIFACT_URL=${HELM_ARTIFACT_URL:-"https://get.helm.sh/helm-v3.13.2-linux-amd64.tar.gz"}
+HELM_ARTIFACT_URL=${HELM_ARTIFACT_URL:-"https://get.helm.sh/helm-v3.15.2-linux-amd64.tar.gz"}
 
 
 function install_helm_binary {