diff --git a/cli/Dockerfile b/cli/Dockerfile
index 3aa0408bcffb2ee51e1fbbaa29e09e5e486c492d..8dd036992593f1e232896a2b075fe1a11b00569b 100644
--- a/cli/Dockerfile
+++ b/cli/Dockerfile
@@ -28,7 +28,7 @@ RUN curl -L "https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz" | tar
 FROM registry.fedoraproject.org/fedora:35 as flux
 
 # renovate: datasource=github-releases depName=fluxcd/flux2
-ARG FLUX_VERSION=v0.28.5
+ARG FLUX_VERSION=v0.29.2
 ENV FLUX_VERSION=${FLUX_VERSION}
 
 RUN curl -L https://github.com/fluxcd/flux2/releases/download/${FLUX_VERSION}/flux_$(sed 's/^v//g' <<<${FLUX_VERSION})_linux_amd64.tar.gz | tar xvzf - flux \
diff --git a/clusters/k8s01/flux-system/gotk-components.yaml b/clusters/k8s01/flux-system/gotk-components.yaml
index 3d4e70046834189528516b15bbe4bf744e72643f..b900432ad2cf84bf4c505da53eaf293f7dd3d66d 100644
--- a/clusters/k8s01/flux-system/gotk-components.yaml
+++ b/clusters/k8s01/flux-system/gotk-components.yaml
@@ -1,6 +1,6 @@
 ---
 # This manifest was generated by flux. DO NOT EDIT.
-# Flux Version: v0.28.5
+# Flux Version: v0.29.2
 # Components: source-controller,kustomize-controller,helm-controller,notification-controller
 apiVersion: v1
 kind: Namespace
@@ -8,7 +8,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
     pod-security.kubernetes.io/warn: restricted
     pod-security.kubernetes.io/warn-version: latest
   name: flux-system
@@ -22,7 +22,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: alerts.notification.toolkit.fluxcd.io
 spec:
   group: notification.toolkit.fluxcd.io
@@ -243,7 +243,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: buckets.source.toolkit.fluxcd.io
 spec:
   group: source.toolkit.fluxcd.io
@@ -753,7 +753,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: gitrepositories.source.toolkit.fluxcd.io
 spec:
   group: source.toolkit.fluxcd.io
@@ -1480,7 +1480,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: helmcharts.source.toolkit.fluxcd.io
 spec:
   group: source.toolkit.fluxcd.io
@@ -2046,7 +2046,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: helmreleases.helm.toolkit.fluxcd.io
 spec:
   group: helm.toolkit.fluxcd.io
@@ -2278,7 +2278,11 @@ spec:
                 type: string
               kubeConfig:
                 description: KubeConfig for reconciling the HelmRelease on a remote
-                  cluster. When specified, KubeConfig takes precedence over ServiceAccountName.
+                  cluster. When used in combination with HelmReleaseSpec.ServiceAccountName,
+                  forces the controller to act on behalf of that Service Account at
+                  the target cluster. If the --default-service-account flag is set,
+                  its value will be used as a controller level fallback for when HelmReleaseSpec.ServiceAccountName
+                  is empty.
                 properties:
                   secretRef:
                     description: SecretRef holds the name to a secret that contains
@@ -2885,7 +2889,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: helmrepositories.source.toolkit.fluxcd.io
 spec:
   group: source.toolkit.fluxcd.io
@@ -3366,7 +3370,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: kustomizations.kustomize.toolkit.fluxcd.io
 spec:
   group: kustomize.toolkit.fluxcd.io
@@ -4052,8 +4056,11 @@ spec:
                 type: string
               kubeConfig:
                 description: The KubeConfig for reconciling the Kustomization on a
-                  remote cluster. When specified, KubeConfig takes precedence over
-                  ServiceAccountName.
+                  remote cluster. When used in combination with KustomizationSpec.ServiceAccountName,
+                  forces the controller to act on behalf of that Service Account at
+                  the target cluster. If the --default-service-account flag is set,
+                  its value will be used as a controller level fallback for when KustomizationSpec.ServiceAccountName
+                  is empty.
                 properties:
                   secretRef:
                     description: SecretRef holds the name to a secret that contains
@@ -4481,7 +4488,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: providers.notification.toolkit.fluxcd.io
 spec:
   group: notification.toolkit.fluxcd.io
@@ -4686,7 +4693,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: receivers.notification.toolkit.fluxcd.io
 spec:
   group: notification.toolkit.fluxcd.io
@@ -4912,7 +4919,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: helm-controller
   namespace: flux-system
 ---
@@ -4922,7 +4929,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: kustomize-controller
   namespace: flux-system
 ---
@@ -4932,7 +4939,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: notification-controller
   namespace: flux-system
 ---
@@ -4942,7 +4949,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: source-controller
   namespace: flux-system
 ---
@@ -4952,7 +4959,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: crd-controller-flux-system
 rules:
 - apiGroups:
@@ -5033,7 +5040,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: cluster-reconciler-flux-system
 roleRef:
   apiGroup: rbac.authorization.k8s.io
@@ -5053,7 +5060,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: crd-controller-flux-system
 roleRef:
   apiGroup: rbac.authorization.k8s.io
@@ -5085,7 +5092,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
     control-plane: controller
   name: notification-controller
   namespace: flux-system
@@ -5105,7 +5112,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
     control-plane: controller
   name: source-controller
   namespace: flux-system
@@ -5125,7 +5132,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
     control-plane: controller
   name: webhook-receiver
   namespace: flux-system
@@ -5145,7 +5152,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
     control-plane: controller
   name: helm-controller
   namespace: flux-system
@@ -5174,7 +5181,7 @@ spec:
           valueFrom:
             fieldRef:
               fieldPath: metadata.namespace
-        image: ghcr.io/fluxcd/helm-controller:v0.18.2
+        image: ghcr.io/fluxcd/helm-controller:v0.20.1
         imagePullPolicy: IfNotPresent
         livenessProbe:
           httpGet:
@@ -5227,7 +5234,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
     control-plane: controller
   name: kustomize-controller
   namespace: flux-system
@@ -5256,7 +5263,7 @@ spec:
           valueFrom:
             fieldRef:
               fieldPath: metadata.namespace
-        image: ghcr.io/fluxcd/kustomize-controller:v0.22.3
+        image: ghcr.io/fluxcd/kustomize-controller:v0.24.2
         imagePullPolicy: IfNotPresent
         livenessProbe:
           httpGet:
@@ -5309,7 +5316,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
     control-plane: controller
   name: notification-controller
   namespace: flux-system
@@ -5337,7 +5344,7 @@ spec:
           valueFrom:
             fieldRef:
               fieldPath: metadata.namespace
-        image: ghcr.io/fluxcd/notification-controller:v0.23.2
+        image: ghcr.io/fluxcd/notification-controller:v0.23.4
         imagePullPolicy: IfNotPresent
         livenessProbe:
           httpGet:
@@ -5396,7 +5403,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
     control-plane: controller
   name: source-controller
   namespace: flux-system
@@ -5429,7 +5436,7 @@ spec:
           valueFrom:
             fieldRef:
               fieldPath: metadata.namespace
-        image: ghcr.io/fluxcd/source-controller:v0.22.5
+        image: ghcr.io/fluxcd/source-controller:v0.24.0
         imagePullPolicy: IfNotPresent
         livenessProbe:
           httpGet:
@@ -5489,7 +5496,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: allow-egress
   namespace: flux-system
 spec:
@@ -5509,7 +5516,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: allow-scraping
   namespace: flux-system
 spec:
@@ -5529,7 +5536,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.28.5
+    app.kubernetes.io/version: v0.29.2
   name: allow-webhooks
   namespace: flux-system
 spec: