diff --git a/Earthfile b/Earthfile
index 0a2c75c7663886e62ecc990c9cdfff50d59be06f..afb6baa60fdd09b3f23cc49f55f0d4d8ae1042ba 100644
--- a/Earthfile
+++ b/Earthfile
@@ -6,7 +6,7 @@ images:
     BUILD +images-earthly --CONTAINER_REGISTRY=${CONTAINER_REGISTRY}
 
 images-src:
-    FROM quay.io/fedora/fedora:38
+    FROM quay.io/fedora/fedora:39
     COPY images/ ./images
 
 images-earthly:
diff --git a/images/mirror/Earthfile b/images/mirror/Earthfile
index 8bd3b34c08806350324ba9122fd1ebe35edf28fd..912d79e5da5ced892e72cadf174b5af477ea0fdc 100644
--- a/images/mirror/Earthfile
+++ b/images/mirror/Earthfile
@@ -26,7 +26,7 @@ trivy:
     DO +MIRROR --image=docker.io/aquasec/trivy:0.47.0
 
 fedora:
-    DO +MIRROR --image=quay.io/fedora/fedora:38@sha256:242d1f52519f56bb9cee9658c39a8d9978e927260330ce92b830ea2f9460d750
+    DO +MIRROR --image=quay.io/fedora/fedora:39@sha256:626f4480c997fb048a7e89a57ff6b270a70c6dc474e7755ec5be6b4815904ae5
 
 cosign:
     DO +MIRROR --image=gcr.io/projectsigstore/cosign:v2.2.1
diff --git a/infrastructure/system-upgrades/disable-syslog.yaml b/infrastructure/system-upgrades/disable-syslog.yaml
index 283675d6776959431e7d40d22e6f826de5a8a4ac..1b3b8a46447dfb05e08affcd3a33fd893eb44c81 100644
--- a/infrastructure/system-upgrades/disable-syslog.yaml
+++ b/infrastructure/system-upgrades/disable-syslog.yaml
@@ -38,6 +38,6 @@ spec:
       path: /host/run/system-upgrade/secrets/disable-syslog
   version: "1.0.0"
   upgrade:
-    image: quay.io/fedora/fedora:38
+    image: quay.io/fedora/fedora:39
     command: ["chroot", "/host"]
     args: ["sh", "/run/system-upgrade/secrets/disable-syslog/upgrade.sh"]
diff --git a/infrastructure/system-upgrades/fedora-system-upgrade.yaml b/infrastructure/system-upgrades/fedora-system-upgrade.yaml
index ba0e96e79c0de12a9c2ea04264122dae8ea9885d..2b4ea174cf3899d84ab4b10c82dd8b189322181c 100644
--- a/infrastructure/system-upgrades/fedora-system-upgrade.yaml
+++ b/infrastructure/system-upgrades/fedora-system-upgrade.yaml
@@ -49,6 +49,6 @@ spec:
     force: false
   version: "38"
   upgrade:
-    image: quay.io/fedora/fedora:38
+    image: quay.io/fedora/fedora:39
     command: ["chroot", "/host"]
     args: ["sh", "/run/system-upgrade/secrets/fedora/upgrade.sh"]
diff --git a/infrastructure/system-upgrades/fedora-temperature-management.yaml b/infrastructure/system-upgrades/fedora-temperature-management.yaml
index 37e26db2b21df61aff2eccd37d8e71098ce1caf4..241b23a9ea9b1d4abe973ef6e54705b3e4cdc94c 100644
--- a/infrastructure/system-upgrades/fedora-temperature-management.yaml
+++ b/infrastructure/system-upgrades/fedora-temperature-management.yaml
@@ -63,6 +63,6 @@ spec:
       path: /host/run/system-upgrade/secrets/fedora
   version: 1.0.0
   upgrade:
-    image: quay.io/fedora/fedora:38
+    image: quay.io/fedora/fedora:39
     command: ["chroot", "/host"]
     args: ["sh", "/run/system-upgrade/secrets/fedora/install.sh"]
diff --git a/infrastructure/system-upgrades/fedora.yaml b/infrastructure/system-upgrades/fedora.yaml
index 957b8b6f6fd0ce7a07906ae342054b7bc2d55ffe..90c83737a25f2b3bb254797cd46288a1325d25e0 100644
--- a/infrastructure/system-upgrades/fedora.yaml
+++ b/infrastructure/system-upgrades/fedora.yaml
@@ -46,6 +46,6 @@ spec:
       path: /host/run/system-upgrade/secrets/fedora
   channel: http://calver/weekly
   upgrade:
-    image: quay.io/fedora/fedora:38
+    image: quay.io/fedora/fedora:39
     command: ["chroot", "/host"]
     args: ["sh", "/run/system-upgrade/secrets/fedora/upgrade.sh"]
diff --git a/infrastructure/system-upgrades/kubelet.yaml b/infrastructure/system-upgrades/kubelet.yaml
index 5c580c3ac3c4ae794c1fc44f17fc6400356b8c23..d437e0919dcb01872fe828058b2f1f70235e02db 100644
--- a/infrastructure/system-upgrades/kubelet.yaml
+++ b/infrastructure/system-upgrades/kubelet.yaml
@@ -47,6 +47,6 @@ spec:
       path: /host/run/system-upgrade/secrets/kubelet
   version: "1.0.0"
   upgrade:
-    image: quay.io/fedora/fedora:38
+    image: quay.io/fedora/fedora:39
     command: ["chroot", "/host"]
     args: ["sh", "/run/system-upgrade/secrets/kubelet/upgrade.sh"]
diff --git a/infrastructure/system-upgrades/kubernetes.yaml b/infrastructure/system-upgrades/kubernetes.yaml
index b3263d2a113668041e04485585e74f2621501070..32398b32a68147e4865b79094370b66d3f7aaa04 100644
--- a/infrastructure/system-upgrades/kubernetes.yaml
+++ b/infrastructure/system-upgrades/kubernetes.yaml
@@ -95,5 +95,5 @@ spec:
     force: false
   version: "1.27.8"
   upgrade:
-    image: quay.io/fedora/fedora:38
+    image: quay.io/fedora/fedora:39
     command: ["sh", "/host/run/system-upgrade/secrets/kubernetes-upgrade/upgrade.sh"]
diff --git a/infrastructure/system-upgrades/logrotate.yaml b/infrastructure/system-upgrades/logrotate.yaml
index 5ca6da495b61915f8ec33223cbe0447f1f9bed02..dacff32536702e7b91e4aaabacf086e6ae526e3e 100644
--- a/infrastructure/system-upgrades/logrotate.yaml
+++ b/infrastructure/system-upgrades/logrotate.yaml
@@ -54,6 +54,6 @@ spec:
       path: /host/run/system-upgrade/secrets/logrotate-setup
   version: "1.0.0"
   upgrade:
-    image: quay.io/fedora/fedora:38
+    image: quay.io/fedora/fedora:39
     command: ["chroot", "/host"]
     args: ["sh", "/run/system-upgrade/secrets/logrotate-setup/upgrade.sh"]
diff --git a/infrastructure/system-upgrades/longhorn-lvm.yaml b/infrastructure/system-upgrades/longhorn-lvm.yaml
index 35b14c51d5db7862ce138f2cad78738d2675af48..bb561190b8fc19511806c4faa66f22cb835d78b6 100644
--- a/infrastructure/system-upgrades/longhorn-lvm.yaml
+++ b/infrastructure/system-upgrades/longhorn-lvm.yaml
@@ -81,6 +81,6 @@ spec:
       path: /host/run/system-upgrade/secrets/longhorn-lvm
   version: "1.0.8"
   upgrade:
-    image: quay.io/fedora/fedora:38
+    image: quay.io/fedora/fedora:39
     command: ["chroot", "/host"]
     args: ["sh", "/run/system-upgrade/secrets/longhorn-lvm/upgrade.sh"]
diff --git a/infrastructure/system-upgrades/longhorn-setup.yaml b/infrastructure/system-upgrades/longhorn-setup.yaml
index 9bb76c163919c4feb415ad65cb58f0f7952d6e3d..ccfcb91db11fcf267c092c69e14d5381d7f12234 100644
--- a/infrastructure/system-upgrades/longhorn-setup.yaml
+++ b/infrastructure/system-upgrades/longhorn-setup.yaml
@@ -40,6 +40,6 @@ spec:
       path: /host/run/system-upgrade/secrets/longhorn-setup
   version: "1.0.0"
   upgrade:
-    image: quay.io/fedora/fedora:38
+    image: quay.io/fedora/fedora:39
     command: ["chroot", "/host"]
     args: ["sh", "/run/system-upgrade/secrets/longhorn-setup/upgrade.sh"]