diff --git a/n2vc/kubectl.py b/n2vc/kubectl.py
index c16c95a..187ded6 100644
--- a/n2vc/kubectl.py
+++ b/n2vc/kubectl.py
@@ -32,7 +32,7 @@
     V1ClusterRoleBinding,
     V1RoleBinding,
     V1RoleRef,
-    V1Subject,
+    RbacV1Subject,
     V1Secret,
     V1SecretReference,
     V1Namespace,
@@ -345,7 +345,9 @@
         role_binding = V1ClusterRoleBinding(
             metadata=V1ObjectMeta(name=name, labels=labels),
             role_ref=V1RoleRef(kind="ClusterRole", name=name, api_group=""),
-            subjects=[V1Subject(kind="ServiceAccount", name=name, namespace=namespace)],
+            subjects=[
+                RbacV1Subject(kind="ServiceAccount", name=name, namespace=namespace)
+            ],
         )
         self.clients[RBAC_CLIENT].create_cluster_role_binding(role_binding)
 
@@ -380,7 +382,7 @@
             metadata=V1ObjectMeta(name=name, labels=labels),
             role_ref=V1RoleRef(kind="Role", name=role_name, api_group=""),
             subjects=[
-                V1Subject(kind="ServiceAccount", name=sa_name, namespace=namespace)
+                RbacV1Subject(kind="ServiceAccount", name=sa_name, namespace=namespace)
             ],
         )
         self.clients[RBAC_CLIENT].create_namespaced_role_binding(
diff --git a/n2vc/tests/unit/test_kubectl.py b/n2vc/tests/unit/test_kubectl.py
index a6d02ff..06cde47 100644
--- a/n2vc/tests/unit/test_kubectl.py
+++ b/n2vc/tests/unit/test_kubectl.py
@@ -27,7 +27,7 @@
     V1Role,
     V1RoleBinding,
     V1RoleRef,
-    V1Subject,
+    RbacV1Subject,
     V1PolicyRule,
     V1Namespace,
 )
@@ -662,7 +662,7 @@
             metadata=V1ObjectMeta(name=self.name, labels=self.labels),
             role_ref=V1RoleRef(kind="Role", name=self.role_name, api_group=""),
             subjects=[
-                V1Subject(
+                RbacV1Subject(
                     kind="ServiceAccount",
                     name=self.sa_name,
                     namespace=self.namespace,
diff --git a/requirements-dev.txt b/requirements-dev.txt
index cc6daf0..02b04cb 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #######################################################################################
-aiokafka==0.8.1
+aiokafka==0.11.0
     # via -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
 async-timeout==4.0.3
     # via
@@ -22,27 +22,27 @@
     #   aiokafka
 dataclasses==0.6
     # via -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
-dnspython==2.4.2
+dnspython==2.6.1
     # via
     #   -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
     #   pymongo
-kafka-python==2.0.2
-    # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
-    #   aiokafka
-motor==3.3.1
+motor==3.5.1
     # via -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
 osm-common @ git+https://osm.etsi.org/gerrit/osm/common.git@master
     # via -r requirements-dev.in
-packaging==23.1
+packaging==24.1
     # via
     #   -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
     #   aiokafka
-pycryptodome==3.19.0
+pycryptodome==3.20.0
     # via -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
-pymongo==4.5.0
+pymongo==4.8.0
     # via
     #   -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
     #   motor
-pyyaml==6.0.1
+pyyaml==6.0.2
     # via -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
+typing-extensions==4.12.2
+    # via
+    #   -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
+    #   aiokafka
diff --git a/requirements-test.txt b/requirements-test.txt
index 57e30a7..bb85aab 100644
--- a/requirements-test.txt
+++ b/requirements-test.txt
@@ -16,33 +16,31 @@
 #######################################################################################
 asynctest==0.13.0
     # via -r requirements-test.in
-certifi==2023.7.22
+certifi==2024.7.4
     # via requests
-charset-normalizer==3.2.0
+charset-normalizer==3.3.2
     # via
     #   -r requirements-test.in
     #   requests
-coverage==7.3.1
+coverage==7.6.1
     # via -r requirements-test.in
 flake8==4.0.1
     # via -r requirements-test.in
-idna==3.4
+idna==3.7
     # via requests
 mccabe==0.6.1
     # via flake8
 mock==5.1.0
     # via -r requirements-test.in
-nose2==0.13.0
+nose2==0.15.1
     # via -r requirements-test.in
 pycodestyle==2.8.0
     # via flake8
 pyflakes==2.4.0
     # via flake8
-requests==2.31.0
+requests==2.32.3
     # via requests-mock
-requests-mock==1.11.0
+requests-mock==1.12.1
     # via -r requirements-test.in
-six==1.16.0
-    # via requests-mock
-urllib3==2.0.5
+urllib3==2.2.2
     # via requests
diff --git a/requirements.in b/requirements.in
index 95605f5..4e26900 100644
--- a/requirements.in
+++ b/requirements.in
@@ -14,8 +14,9 @@
 charset-normalizer
 google-auth<2.18.0
 juju==2.9.44.0
-kubernetes==26.1.0
+kubernetes
 motor
+protobuf==3.20.3
 pyasn1
 pyyaml>6
 retrying-async
diff --git a/requirements.txt b/requirements.txt
index 215ac92..a02f058 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -16,67 +16,71 @@
 #######################################################################################
 async-timeout==4.0.3
     # via retrying-async
-bcrypt==4.0.1
+bcrypt==4.2.0
     # via paramiko
-cachetools==5.3.1
+cachetools==5.4.0
     # via google-auth
-certifi==2023.7.22
+certifi==2024.7.4
     # via
     #   kubernetes
     #   requests
-cffi==1.16.0
+cffi==1.17.0
     # via
     #   cryptography
     #   pynacl
-charset-normalizer==3.2.0
+charset-normalizer==3.3.2
     # via
     #   -r requirements.in
     #   requests
-cryptography==41.0.4
+cryptography==43.0.0
     # via paramiko
-dnspython==2.4.2
+dnspython==2.6.1
     # via pymongo
 google-auth==2.17.3
     # via
     #   -r requirements.in
     #   kubernetes
-idna==3.4
+idna==3.7
     # via requests
 juju==2.9.44.0
     # via -r requirements.in
 jujubundlelib==0.5.7
     # via theblues
-kubernetes==26.1.0
+kubernetes==30.1.0
     # via
     #   -r requirements.in
     #   juju
-macaroonbakery==1.3.1
+macaroonbakery==1.3.4
     # via
     #   juju
     #   theblues
-motor==3.3.1
+motor==3.5.1
     # via -r requirements.in
 mypy-extensions==1.0.0
     # via typing-inspect
 oauthlib==3.2.2
-    # via requests-oauthlib
+    # via
+    #   kubernetes
+    #   requests-oauthlib
 paramiko==2.12.0
     # via juju
 protobuf==3.20.3
-    # via macaroonbakery
-pyasn1==0.5.0
+    # via
+    #   -r requirements.in
+    #   macaroonbakery
+pyasn1==0.6.0
     # via
     #   -r requirements.in
     #   juju
     #   pyasn1-modules
     #   rsa
-pyasn1-modules==0.3.0
+pyasn1-modules==0.4.0
     # via google-auth
-pycparser==2.21
+pycparser==2.22
     # via cffi
 pymacaroons==0.13.0
     # via macaroonbakery
-pymongo==4.5.0
+pymongo==4.8.0
     # via motor
 pynacl==1.5.0
     # via
@@ -87,23 +91,23 @@
     # via
     #   juju
     #   macaroonbakery
-python-dateutil==2.8.2
+python-dateutil==2.9.0.post0
     # via kubernetes
-pytz==2023.3.post1
+pytz==2024.1
     # via pyrfc3339
-pyyaml==6.0.1
+pyyaml==6.0.2
     # via
     #   -r requirements.in
     #   juju
     #   jujubundlelib
     #   kubernetes
-requests==2.31.0
+requests==2.32.3
     # via
     #   kubernetes
     #   macaroonbakery
     #   requests-oauthlib
     #   theblues
-requests-oauthlib==1.3.1
+requests-oauthlib==2.0.0
     # via kubernetes
 retrying-async==2.0.0
     # via -r requirements.in
@@ -121,18 +125,15 @@
     # via juju
 toposort==1.10
     # via juju
-typing-extensions==4.8.0
+typing-extensions==4.12.2
     # via typing-inspect
 typing-inspect==0.9.0
     # via juju
-urllib3==2.0.5
+urllib3==2.2.2
     # via
     #   kubernetes
     #   requests
-websocket-client==1.6.3
+websocket-client==1.8.0
     # via kubernetes
-websockets==11.0.3
+websockets==12.0
     # via juju
-
-# The following packages are considered to be unsafe in a requirements file:
-# setuptools
