diff --git a/clusters/k8s01/flux-system/gotk-components.yaml b/clusters/k8s01/flux-system/gotk-components.yaml
index 79576f0ffbcbfdfd19edcb9004ee6aea4d71dfde..9c26b70841ff0be1b35bec60cb67424730835c17 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.38.3
+# Flux Version: v0.39.0
 # 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.38.3
+    app.kubernetes.io/version: v0.39.0
     pod-security.kubernetes.io/warn: restricted
     pod-security.kubernetes.io/warn-version: latest
   name: flux-system
@@ -23,7 +23,7 @@ metadata:
     app.kubernetes.io/component: notification-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: alerts.notification.toolkit.fluxcd.io
 spec:
   group: notification.toolkit.fluxcd.io
@@ -449,7 +449,7 @@ metadata:
     app.kubernetes.io/component: source-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: buckets.source.toolkit.fluxcd.io
 spec:
   group: source.toolkit.fluxcd.io
@@ -969,7 +969,7 @@ metadata:
     app.kubernetes.io/component: source-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: gitrepositories.source.toolkit.fluxcd.io
 spec:
   group: source.toolkit.fluxcd.io
@@ -1457,8 +1457,9 @@ spec:
               secretRef:
                 description: SecretRef specifies the Secret containing authentication
                   credentials for the GitRepository. For HTTPS repositories the Secret
-                  must contain 'username' and 'password' fields. For SSH repositories
-                  the Secret must contain 'identity' and 'known_hosts' fields.
+                  must contain 'username' and 'password' fields for basic auth or
+                  'bearerToken' field for token auth. For SSH repositories the Secret
+                  must contain 'identity' and 'known_hosts' fields.
                 properties:
                   name:
                     description: Name of the referent.
@@ -1756,7 +1757,7 @@ metadata:
     app.kubernetes.io/component: source-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: helmcharts.source.toolkit.fluxcd.io
 spec:
   group: source.toolkit.fluxcd.io
@@ -2355,7 +2356,7 @@ metadata:
     app.kubernetes.io/component: helm-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: helmreleases.helm.toolkit.fluxcd.io
 spec:
   group: helm.toolkit.fluxcd.io
@@ -3244,7 +3245,7 @@ metadata:
     app.kubernetes.io/component: source-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: helmrepositories.source.toolkit.fluxcd.io
 spec:
   group: source.toolkit.fluxcd.io
@@ -3332,7 +3333,7 @@ spec:
                 description: The name of the secret containing authentication credentials
                   for the Helm repository. For HTTP/S basic auth the secret must contain
                   username and password fields. For TLS the secret must contain a
-                  certFile and keyFile, and/or caCert fields.
+                  certFile and keyFile, and/or caFile fields.
                 properties:
                   name:
                     description: Name of the referent.
@@ -3565,7 +3566,7 @@ spec:
                 description: SecretRef specifies the Secret containing authentication
                   credentials for the HelmRepository. For HTTP/S basic auth the secret
                   must contain 'username' and 'password' fields. For TLS the secret
-                  must contain a 'certFile' and 'keyFile', and/or 'caCert' fields.
+                  must contain a 'certFile' and 'keyFile', and/or 'caFile' fields.
                 properties:
                   name:
                     description: Name of the referent.
@@ -3752,7 +3753,7 @@ metadata:
     app.kubernetes.io/component: kustomize-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: kustomizations.kustomize.toolkit.fluxcd.io
 spec:
   group: kustomize.toolkit.fluxcd.io
@@ -4885,7 +4886,7 @@ metadata:
     app.kubernetes.io/component: source-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: ocirepositories.source.toolkit.fluxcd.io
 spec:
   group: source.toolkit.fluxcd.io
@@ -5250,7 +5251,7 @@ metadata:
     app.kubernetes.io/component: notification-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: providers.notification.toolkit.fluxcd.io
 spec:
   group: notification.toolkit.fluxcd.io
@@ -5662,7 +5663,7 @@ metadata:
     app.kubernetes.io/component: notification-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: receivers.notification.toolkit.fluxcd.io
 spec:
   group: notification.toolkit.fluxcd.io
@@ -6109,7 +6110,7 @@ metadata:
     app.kubernetes.io/component: helm-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: helm-controller
   namespace: flux-system
 ---
@@ -6120,7 +6121,7 @@ metadata:
     app.kubernetes.io/component: kustomize-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: kustomize-controller
   namespace: flux-system
 ---
@@ -6131,7 +6132,7 @@ metadata:
     app.kubernetes.io/component: notification-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: notification-controller
   namespace: flux-system
 ---
@@ -6142,7 +6143,7 @@ metadata:
     app.kubernetes.io/component: source-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: source-controller
   namespace: flux-system
 ---
@@ -6152,7 +6153,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: crd-controller-flux-system
 rules:
 - apiGroups:
@@ -6242,7 +6243,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: cluster-reconciler-flux-system
 roleRef:
   apiGroup: rbac.authorization.k8s.io
@@ -6262,7 +6263,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: crd-controller-flux-system
 roleRef:
   apiGroup: rbac.authorization.k8s.io
@@ -6295,7 +6296,7 @@ metadata:
     app.kubernetes.io/component: notification-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
     control-plane: controller
   name: notification-controller
   namespace: flux-system
@@ -6316,7 +6317,7 @@ metadata:
     app.kubernetes.io/component: source-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
     control-plane: controller
   name: source-controller
   namespace: flux-system
@@ -6337,7 +6338,7 @@ metadata:
     app.kubernetes.io/component: notification-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
     control-plane: controller
   name: webhook-receiver
   namespace: flux-system
@@ -6358,7 +6359,7 @@ metadata:
     app.kubernetes.io/component: helm-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
     control-plane: controller
   name: helm-controller
   namespace: flux-system
@@ -6387,7 +6388,7 @@ spec:
           valueFrom:
             fieldRef:
               fieldPath: metadata.namespace
-        image: ghcr.io/fluxcd/helm-controller:v0.28.1
+        image: ghcr.io/fluxcd/helm-controller:v0.29.0
         imagePullPolicy: IfNotPresent
         livenessProbe:
           httpGet:
@@ -6441,7 +6442,7 @@ metadata:
     app.kubernetes.io/component: kustomize-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
     control-plane: controller
   name: kustomize-controller
   namespace: flux-system
@@ -6470,7 +6471,7 @@ spec:
           valueFrom:
             fieldRef:
               fieldPath: metadata.namespace
-        image: ghcr.io/fluxcd/kustomize-controller:v0.32.0
+        image: ghcr.io/fluxcd/kustomize-controller:v0.33.0
         imagePullPolicy: IfNotPresent
         livenessProbe:
           httpGet:
@@ -6524,7 +6525,7 @@ metadata:
     app.kubernetes.io/component: notification-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
     control-plane: controller
   name: notification-controller
   namespace: flux-system
@@ -6552,7 +6553,7 @@ spec:
           valueFrom:
             fieldRef:
               fieldPath: metadata.namespace
-        image: ghcr.io/fluxcd/notification-controller:v0.30.2
+        image: ghcr.io/fluxcd/notification-controller:v0.31.0
         imagePullPolicy: IfNotPresent
         livenessProbe:
           httpGet:
@@ -6612,7 +6613,7 @@ metadata:
     app.kubernetes.io/component: source-controller
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
     control-plane: controller
   name: source-controller
   namespace: flux-system
@@ -6647,7 +6648,7 @@ spec:
               fieldPath: metadata.namespace
         - name: TUF_ROOT
           value: /tmp/.sigstore
-        image: ghcr.io/fluxcd/source-controller:v0.33.0
+        image: ghcr.io/fluxcd/source-controller:v0.34.0
         imagePullPolicy: IfNotPresent
         livenessProbe:
           httpGet:
@@ -6707,7 +6708,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: allow-egress
   namespace: flux-system
 spec:
@@ -6727,7 +6728,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: allow-scraping
   namespace: flux-system
 spec:
@@ -6747,7 +6748,7 @@ metadata:
   labels:
     app.kubernetes.io/instance: flux-system
     app.kubernetes.io/part-of: flux
-    app.kubernetes.io/version: v0.38.3
+    app.kubernetes.io/version: v0.39.0
   name: allow-webhooks
   namespace: flux-system
 spec:
diff --git a/images/koolbox/Dockerfile b/images/koolbox/Dockerfile
index b5bc47ae2cd13bc643d0cde3a64747b7d67cb5b8..4d211bc13758ca506cdd016b28f7ab178a70f718 100644
--- a/images/koolbox/Dockerfile
+++ b/images/koolbox/Dockerfile
@@ -37,7 +37,7 @@ RUN curl -L "https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz" | tar
 FROM quay.io/fedora/fedora:36 as flux
 
 # renovate: datasource=github-releases depName=fluxcd/flux2
-ARG FLUX_VERSION=v0.38.3
+ARG FLUX_VERSION=v0.39.0
 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 \