diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1066a527b25157ebab67e4f3454120f855599d7b..08b14ac1909e41ffebbe3c042db50cf28567913c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -87,6 +87,7 @@ include:
         - flux2/infrastructure/sources/prometheus-community.yaml
         - flux2/config/monitoring/*.yaml
         - install/install-app.sh
+        - install/flux-version-check.sh
         - test/taiko/*
     - if: '$TRIGGER_JOBS =~ /enable-monitoring/'
     - if: '$CI_COMMIT_MESSAGE =~ /TRIGGER_JOBS=.*enable-monitoring/'
@@ -115,6 +116,7 @@ include:
         - flux2/cluster/optional/$RESOURCE/*.yaml
         - flux2/infrastructure/sources/nextcloud.yaml
         - install/install-app.sh
+        - install/flux-version-check.sh
         - test/taiko/*
     - if: '$TRIGGER_JOBS =~ /enable-nextcloud/'
     - if: '$CI_COMMIT_MESSAGE =~ /TRIGGER_JOBS=.*enable-nextcloud/'
@@ -128,6 +130,17 @@ include:
   extends:
     - .general_rules
 
+.single_sign_on_rules:
+  rules:
+    - changes:
+        - flux2/core/base/$RESOURCE/*.yaml
+        - flux2/infrastructure/sources/single-sign-on.yaml
+        - install/install-stackspin.sh
+        - test/taiko/*
+    - if: '$TRIGGER_JOBS =~ /enable-single-sign-on/'
+    - if: '$CI_COMMIT_MESSAGE =~ /TRIGGER_JOBS=.*enable-single-sign-on/'
+    - if: '$CI_COMMIT_BRANCH == "main"'
+
 .wekan_rules:
   rules:
     - changes:
@@ -135,6 +148,7 @@ include:
         - flux2/cluster/optional/$RESOURCE/*.yaml
         - flux2/infrastructure/sources/wekan.yaml
         - install/install-app.sh
+        - install/flux-version-check.sh
         - test/taiko/*
     - if: '$TRIGGER_JOBS =~ /enable-wekan/'
     - if: '$CI_COMMIT_MESSAGE =~ /TRIGGER_JOBS=.*enable-wekan/'
@@ -147,6 +161,7 @@ include:
         - flux2/cluster/optional/$RESOURCE/*.yaml
         - flux2/infrastructure/sources/wordpress.yaml
         - install/install-app.sh
+        - install/flux-version-check.sh
         - test/taiko/*
     - if: '$TRIGGER_JOBS =~ /enable-wordpress/'
     - if: '$CI_COMMIT_MESSAGE =~ /TRIGGER_JOBS=.*enable-wordpress/'
@@ -159,6 +174,7 @@ include:
         - flux2/cluster/optional/$RESOURCE/*.yaml
         - flux2/infrastructure/sources/zulip.yaml
         - install/install-app.sh
+        - install/flux-version-check.sh
         - test/taiko/*
     - if: '$TRIGGER_JOBS =~ /enable-zulip/'
     - if: '$CI_COMMIT_MESSAGE =~ /TRIGGER_JOBS=.*enable-zulip/'
diff --git a/.gitlab/commit_template.txt b/.gitlab/commit_template.txt
index 07cd8a253f939bb9783e7c3ac372976069afbadc..de8d77085d583220987c6e2fba3afb5edfed0b1b 100644
--- a/.gitlab/commit_template.txt
+++ b/.gitlab/commit_template.txt
@@ -9,7 +9,7 @@
 # TRIGGER_JOBS=enable-nextcloud
 #
 # or trigger all jobs:
-# TRIGGER_JOBS=enable-monitoring,enable-nextcloud,enable-rocketchat,enable-single-sign-on,enable-wekan,enable-wordpress
+# TRIGGER_JOBS=enable-monitoring,enable-nextcloud,enable-single-sign-on,enable-wekan,enable-wordpress,enable-zulip
 #
 # Reference issue number with one of:
 #
diff --git a/.gitlab/issue_templates/new_app.md b/.gitlab/issue_templates/new_app.md
index 6237067badeaef88ef572ef77847057328266e2f..bb431eac95049c51731f6e4b8c6d0798709ef450 100644
--- a/.gitlab/issue_templates/new_app.md
+++ b/.gitlab/issue_templates/new_app.md
@@ -36,13 +36,12 @@
 
 ## CI
 
-Add the following elements to `.gitlab-ci.yml`:
-
-* [ ] `.APP-rules` partial
-* [ ] `enable-APP` job
-* [ ] `APP-kustomization-ready` job
-* [ ] `APP-cert` job
-* [ ] `APP-taiko` test job
+* Add the following elements to `.gitlab-ci.yml`:
+  * [ ] `.APP-rules` partial
+  * [ ] `enable-APP` job
+  * [ ] `APP-kustomization-ready` job
+  * [ ] `APP-cert` job
+  * [ ] `APP-taiko` test job
 
 ## Renovatebot
 
diff --git a/.gitlab/issue_templates/update_all_components.md b/.gitlab/issue_templates/update_all_components.md
index 03df28802216ebb482b418654b2be215d65cf248..b28300d6b07c124b98ac3539346f9afb583ea034 100644
--- a/.gitlab/issue_templates/update_all_components.md
+++ b/.gitlab/issue_templates/update_all_components.md
@@ -1,22 +1,23 @@
-To update all applications, check the following files:
+## Update all applications in this repository
 
-* `Dockerfile`:
-  * [ ] All apk app versions
-  * [ ] All non-apk app versions in `Dockerfile`, especially:
-    * [ ] flux (Make sure the version is the same as in `ansible/group_vars/all/stackspin.yml`, `docs/installation/install_stackspin.rst` and `install/flux-version-check.sh`)
-* [ ] Mitogen version in `ansible/plugins` (https://github.com/mitogen-hq/mitogen/releases)
+* [ ] Update Flux version
+  
+      current_flux_version=0.20.1
+      new_flux_version=0.24.0
+      sed -i "s/$current_flux_version/$new_flux_version/g" Dockerfile install/flux-version-check.sh docs/installation/install_stackspin.rst ansible/group_vars/all/stackspin.yml
 
-In `ansible/group_vars/all/stackspin.yml`:
+* [ ] Update all apk app versions inside `Dockerfile`
+* [ ] Update mitogen version in `ansible/plugins` (https://github.com/mitogen-hq/mitogen/releases)
+* [ ] Update k3s in `ansible/group_vars/all/stackspin.yml`:
 
-* [ ] k3s
+## Update our custom charts:
 
-Our custom charts:
+We get dependeny updates via renovate for our custom helm charts.  However, we
+still don't get [automated version
+bumps](https://open.greenhost.net/stackspin/stackspin/-/issues/1001) with it, so
+make sure to bump the version if needed for:
 
-We get dependeny updates via renovate for our custom helm charts.
-However, we still don't get [automated version bumps](https://open.greenhost.net/stackspin/stackspin/-/issues/1001)
-with it, so make sure to bump the version if needed for:
-
-* [ ] [dashboard-frontend](https://open.greenhost.net/stackspin/admin-frontend)
+* [ ] [dashboard](https://open.greenhost.net/stackspin/dashboard)
 * [ ] [nextcloud](https://open.greenhost.net/stackspin/nextcloud)
 * [ ] [single-sign-on](https://open.greenhost.net/stackspin/single-sign-on)
 * [ ] [wordpress](https://open.greenhost.net/stackspin/wordpress-helm)
diff --git a/Dockerfile b/Dockerfile
index 872f769bf6b229c85e6306ca21833d0f38e1b1c9..92c921fe52bab3ef84e037d77cd4edcaeda3b592 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -9,7 +9,7 @@ ENV TAIKO_SKIP_CHROMIUM_DOWNLOAD=true
 ENV TAIKO_BROWSER_PATH=/usr/bin/chromium-browser
 ENV TAIKO_BROWSER_ARGS=--no-sandbox,--start-maximized,--disable-dev-shm-usage,--ignore-certificate-errors
 
-ADD https://github.com/fluxcd/flux2/releases/download/v0.20.1/flux_0.20.1_linux_amd64.tar.gz /tmp/
+ADD https://github.com/fluxcd/flux2/releases/download/v0.22.0/flux_0.22.0_linux_amd64.tar.gz /tmp/
 COPY ./test/pytest/le-staging-bundle.pem /usr/local/share/ca-certificates/le-staging-bundle.pem
 COPY ./requirements.txt /requirements.txt
 RUN \
diff --git a/ansible/group_vars/all/stackspin.yml b/ansible/group_vars/all/stackspin.yml
index db0c81d3c68f70228c2ebfc40e9fad5b7b280bef..b0eef244aef165f8549202ac289d46f153dd6fd8 100644
--- a/ansible/group_vars/all/stackspin.yml
+++ b/ansible/group_vars/all/stackspin.yml
@@ -9,7 +9,7 @@ ansible_python_interpreter: "/usr/bin/env python3"
 # Application versions
 flux:
   # https://github.com/fluxcd/flux2/releases
-  version: 0.20.1
+  version: 0.22.0
 
 k3s:
   # https://github.com/k3s-io/k3s/releases
diff --git a/docs/installation/install_stackspin.rst b/docs/installation/install_stackspin.rst
index 57fd71eafb98524d946310bbb3b31f3546b0ded7..4aceb8919de2d29930c7e2890b0b30ab0995e7d1 100644
--- a/docs/installation/install_stackspin.rst
+++ b/docs/installation/install_stackspin.rst
@@ -53,7 +53,7 @@ Prerequisites
 -------------
 
 - ``kubectl`` (`installation instructions <https://kubernetes.io/docs/tasks/tools/#kubectl>`__)
-- ``flux version 0.20.1`` `Download flux_0.20.1_linux_amd64.tar.gz <https://github.com/fluxcd/flux2/releases/download/v0.20.1/flux_0.20.1_linux_amd64.tar.gz>`_
+- ``flux version 0.22.0`` `Download flux_0.22.0_linux_amd64.tar.gz <https://github.com/fluxcd/flux2/releases/download/v0.22.0/flux_0.22.0_linux_amd64.tar.gz>`_
 
 Copy the file ``install/.flux.env.example`` to your cluster dir
 ``clusters/stackspin.example.org/.flux.env``. This file contains the last bit of
diff --git a/install/flux-version-check.sh b/install/flux-version-check.sh
index 88cd01b6065614640e09b8a4a6c1fd3e3ffef33e..ef3479f78511960d535c303cf1ec8b58979f2b7a 100644
--- a/install/flux-version-check.sh
+++ b/install/flux-version-check.sh
@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 
-if [ "$(flux --version)" != "flux version 0.20.1" ]; then
-  echo "The Stackspin installation only works with Flux version 0.20.1"
+if [ "$(flux --version)" != "flux version 0.22.0" ]; then
+  echo "The Stackspin installation only works with Flux version 0.22.0"
   exit 1
 fi