diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 623a8d2e081af4eeaab200580642e1cca91ecdbe..4688eb8379999b73910b7a1b05de683486da75e1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -433,165 +433,6 @@ enable-wordpress:
     - .enable_app_template
     - .wordpress_rules
 
-# Stage: apps-ready
-# ======================
-#
-# Tests apps for readiness state
-
-.apps-deployment:
-  stage: apps-ready
-  script:
-    - *debug_information
-    - cd ansible/
-    - export KUBECONFIG="${PWD}/../clusters/${HOSTNAME}/kube_config_cluster.yml"
-    - pytest -v -s -m 'deployments' --resource="$RESOURCE" --namespace="$NAMESPACE" --connection=ansible --ansible-inventory=../${CLUSTER_DIR}/inventory.yml --hosts='ansible://*' --reruns 120 --reruns-delay 10
-  extends:
-    - .ssh_setup
-  interruptible: true
-
-.apps-statefulset:
-  stage: apps-ready
-  script:
-    - *debug_information
-    - cd ansible/
-    - export KUBECONFIG="${PWD}/../clusters/${HOSTNAME}/kube_config_cluster.yml"
-    - pytest -v -s -m 'statefulsets' --resource="$RESOURCE" --namespace="$NAMESPACE" --connection=ansible --ansible-inventory=../${CLUSTER_DIR}/inventory.yml --hosts='ansible://*' --reruns 120 --reruns-delay 10
-  extends:
-    - .ssh_setup
-  interruptible: true
-
-.apps-daemonset:
-  stage: apps-ready
-  script:
-    - *debug_information
-    - cd ansible/
-    - export KUBECONFIG="${PWD}/../clusters/${HOSTNAME}/kube_config_cluster.yml"
-    - pytest -v -s -m 'daemonsets' --resource="$RESOURCE" --namespace="$NAMESPACE" --connection=ansible --ansible-inventory=../${CLUSTER_DIR}/inventory.yml --hosts='ansible://*' --reruns 120 --reruns-delay 10
-  extends:
-    - .ssh_setup
-  interruptible: true
-
-cert-manager-deployment:
-  variables:
-    RESOURCE: "cert-manager"
-    NAMESPACE: "cert-manager"
-  needs:
-    - job: infrastructure-kustomizations-ready
-    - job: setup-openappstack  # Needs makes sure the artifacts from that job are downloaded
-  extends:
-    - .apps-deployment
-    - .cert_manager_rules
-
-eventrouter-deployment:
-  variables:
-    RESOURCE: "eventrouter"
-    NAMESPACE: "oas"
-  needs:
-    - job: enable-monitoring
-    - job: setup-openappstack
-  extends:
-    - .apps-deployment
-    - .eventrouter_rules
-
-local-path-provisioner-deployment:
-  variables:
-    RESOURCE: "local-path-provisioner"
-    NAMESPACE: "kube-system"
-  needs:
-    - job: infrastructure-kustomizations-ready
-    - job: setup-openappstack
-  extends:
-    - .apps-deployment
-    - .local_path_provisioner_rules
-
-loki-statefulset:
-  variables:
-    RESOURCE: "loki"
-    NAMESPACE: "oas"
-  needs:
-    - job: enable-monitoring
-    - job: setup-openappstack
-  extends:
-    - .apps-statefulset
-    - .loki_rules
-
-promtail-daemonset:
-  variables:
-    RESOURCE: "promtail"
-    NAMESPACE: "oas"
-  needs:
-    - job: enable-monitoring
-    - job: setup-openappstack
-  extends:
-    - .apps-daemonset
-    - .promtail_rules
-
-nextcloud-deployment:
-  variables:
-    RESOURCE: "nextcloud"
-    NAMESPACE: "oas-apps"
-  needs:
-    - job: enable-nextcloud
-    - job: setup-openappstack
-  extends:
-    - .apps-deployment
-    - .nextcloud_rules
-
-kube-prometheus-stack-deployment:
-  variables:
-    RESOURCE: "kube-prometheus-stack"
-    NAMESPACE: "oas"
-  needs:
-    - job: enable-monitoring
-    - job: setup-openappstack
-  extends:
-    - .apps-deployment
-    - .kube_prometheus_stack_rules
-
-rocketchat-deployment:
-  variables:
-    RESOURCE: "rocketchat"
-    NAMESPACE: "oas-apps"
-  needs:
-    - job: enable-rocketchat
-    - job: setup-openappstack
-  extends:
-    - .apps-deployment
-    - .rocketchat_rules
-
-single-sign-on-deployment:
-  variables:
-    RESOURCE: "single-sign-on"
-    NAMESPACE: "oas"
-  needs:
-    - job: core-kustomizations-ready
-    - job: setup-openappstack
-  extends:
-    - .apps-deployment
-    - .single_sign_on_rules
-
-wekan-deployment:
-  variables:
-    RESOURCE: "wekan"
-    NAMESPACE: "oas-apps"
-  needs:
-    - job: enable-wekan
-    - job: setup-openappstack
-  extends:
-    - .apps-deployment
-    - .wekan_rules
-
-wordpress-statefulset:
-  variables:
-    RESOURCE: "wordpress"
-    NAMESPACE: "oas-apps"
-  needs:
-    - job: enable-wordpress
-    - job: setup-openappstack
-  extends:
-    - .apps-statefulset
-    - .wordpress_rules
-
 # Stage: certs
 # ================
 #
@@ -611,7 +452,7 @@ nextcloud-cert:
   variables:
     RESOURCE: "nextcloud"
   needs:
-    - job: nextcloud-deployment
+    - job: enable-nextcloud
     - job: setup-openappstack
   extends:
     - .apps-cert
@@ -621,7 +462,7 @@ kube-prometheus-stack-cert:
   variables:
     RESOURCE: "kube-prometheus-stack"
   needs:
-    - job: kube-prometheus-stack-deployment
+    - job: enable-monitoring
     - job: setup-openappstack
   extends:
     - .apps-cert
@@ -631,7 +472,7 @@ rocketchat-cert:
   variables:
     RESOURCE: "rocketchat"
   needs:
-    - job: rocketchat-deployment
+    - job: enable-rocketchat
     - job: setup-openappstack
   extends:
     - .apps-cert
@@ -641,7 +482,7 @@ single-sign-on-cert:
   variables:
     RESOURCE: "single-sign-on"
   needs:
-    - job: single-sign-on-deployment
+    - job: core-kustomizations-ready
     - job: setup-openappstack
   extends:
     - .apps-cert
@@ -651,7 +492,7 @@ wekan-cert:
   variables:
     RESOURCE: "wekan"
   needs:
-    - job: wekan-deployment
+    - job: enable-wekan
     - job: setup-openappstack
   extends:
     - .apps-cert
@@ -661,7 +502,7 @@ wordpress-cert:
   variables:
     RESOURCE: "wordpress"
   needs:
-    - job: wordpress-statefulset
+    - job: enable-wordpress
     - job: setup-openappstack
   extends:
     - .apps-cert
diff --git a/flux2/cluster/base/core.yaml b/flux2/cluster/base/core.yaml
index 1ab36950217f0841f2b89a5c8a4015d937eaa154..7a12c2e19de36da067b958951bcab14a9f7ee9a9 100644
--- a/flux2/cluster/base/core.yaml
+++ b/flux2/cluster/base/core.yaml
@@ -35,3 +35,15 @@ spec:
       kind: HelmRelease
       name: single-sign-on
       namespace: oas
+    - apiVersion: apps/v1
+      kind: Deployment
+      name: single-sign-on-userbackend
+      namespace: oas
+    - apiVersion: apps/v1
+      kind: Deployment
+      name: single-sign-on-hydra
+      namespace: oas
+    - apiVersion: apps/v1
+      kind: Deployment
+      name: single-sign-on-login
+      namespace: oas
diff --git a/flux2/cluster/base/infrastructure.yaml b/flux2/cluster/base/infrastructure.yaml
index 53c949da1bfd9a140c56c273b6a20f21bbefd3be..51ba9edbe2a45c51ba8c8f4ead5d9b10615200b7 100644
--- a/flux2/cluster/base/infrastructure.yaml
+++ b/flux2/cluster/base/infrastructure.yaml
@@ -21,3 +21,11 @@ spec:
       kind: HelmRelease
       name: local-path-provisioner
       namespace: kube-system
+    - apiVersion: apps/v1
+      kind: Deployment
+      name: cert-manager
+      namespace: cert-manager
+    - apiVersion: apps/v1
+      kind: Deployment
+      name: local-path-provisioner
+      namespace: kube-system
diff --git a/flux2/cluster/optional/monitoring/monitoring.yaml b/flux2/cluster/optional/monitoring/monitoring.yaml
index a0fb7bc820e83e2eea0697fa5acdc5e305d6e154..c0c529412fc55ebfc6f0265701016b4336e1e8d1 100644
--- a/flux2/cluster/optional/monitoring/monitoring.yaml
+++ b/flux2/cluster/optional/monitoring/monitoring.yaml
@@ -32,6 +32,22 @@ spec:
       kind: HelmRelease
       name: promtail
       namespace: oas
+    - apiVersion: apps/v1
+      kind: Deployment
+      name: eventrouter
+      namespace: oas
+    - apiVersion: apps/v1
+      kind: StatefulSet
+      name: loki
+      namespace: oas
+    - apiVersion: apps/v1
+      kind: DaemonSet
+      name: promtail
+      namespace: oas
+    - apiVersion: apps/v1
+      kind: StatefulSet
+      name: prometheus-kube-prometheus-stack-prometheus
+      namespace: oas
   postBuild:
     substituteFrom:
       - kind: Secret
diff --git a/flux2/cluster/optional/nextcloud/nextcloud.yaml b/flux2/cluster/optional/nextcloud/nextcloud.yaml
index 0059d0312dd43fe208d6292ee493e7176b2ef1ff..07fac76dd9473a0ce3c622cf6fb870c898422a01 100644
--- a/flux2/cluster/optional/nextcloud/nextcloud.yaml
+++ b/flux2/cluster/optional/nextcloud/nextcloud.yaml
@@ -20,6 +20,14 @@ spec:
       kind: HelmRelease
       name: nextcloud
       namespace: oas-apps
+    - apiVersion: apps/v1
+      kind: Deployment
+      name: nc-nextcloud
+      namespace: oas-apps
+    - apiVersion: apps/v1
+      kind: Deployment
+      name: nc-onlyoffice-documentserver
+      namespace: oas-apps
   postBuild:
     substituteFrom:
       - kind: Secret
diff --git a/flux2/cluster/optional/rocketchat/rocketchat.yaml b/flux2/cluster/optional/rocketchat/rocketchat.yaml
index 4cd1764856cd5f0f419d6c36ce7eee8b86758d08..5b597db0af1bfa779e8c4d5a02dfac27ea39f4c5 100644
--- a/flux2/cluster/optional/rocketchat/rocketchat.yaml
+++ b/flux2/cluster/optional/rocketchat/rocketchat.yaml
@@ -20,6 +20,10 @@ spec:
       kind: HelmRelease
       name: rocketchat
       namespace: oas-apps
+    - apiVersion: apps/v1
+      kind: Deployment
+      name: rocketchat-rocketchat
+      namespace: oas-apps
   postBuild:
     substituteFrom:
       - kind: Secret
diff --git a/flux2/cluster/optional/wekan/wekan.yaml b/flux2/cluster/optional/wekan/wekan.yaml
index 858bd489f15a90d1f61351808e16ea0f9463eb52..92cdf331d8c7284139da05635c7226e500a3947a 100644
--- a/flux2/cluster/optional/wekan/wekan.yaml
+++ b/flux2/cluster/optional/wekan/wekan.yaml
@@ -20,6 +20,10 @@ spec:
       kind: HelmRelease
       name: wekan
       namespace: oas-apps
+    - apiVersion: apps/v1
+      kind: Deployment
+      name: wekan
+      namespace: oas-apps
   postBuild:
     substituteFrom:
       - kind: Secret
diff --git a/flux2/cluster/optional/wordpress/wordpress.yaml b/flux2/cluster/optional/wordpress/wordpress.yaml
index 49abd36ce91ad94ab041f12f323f1437e632fd39..9bb1cff0b31a25e59dfc69d7f61a3e3b10c19e12 100644
--- a/flux2/cluster/optional/wordpress/wordpress.yaml
+++ b/flux2/cluster/optional/wordpress/wordpress.yaml
@@ -20,6 +20,10 @@ spec:
       kind: HelmRelease
       name: wordpress
       namespace: oas-apps
+    - apiVersion: apps/v1
+      kind: StatefulSet
+      name: wordpress
+      namespace: oas-apps
   postBuild:
     substituteFrom:
       - kind: Secret