Skip to content

fix(eduide): preload the distroless oauth2-proxy image with its own binary (2.7.2) - #69

Merged
Mtze merged 1 commit into
mainfrom
fix/preload-distroless-proxy
Nov 6, 2026
Merged

Mtze merged 1 commit into
mainfrom
fix/preload-distroless-proxy

Conversation

@Mtze

@Mtze Mtze commented Nov 6, 2026

Copy link
Copy Markdown
Member

Chart 2.7.1 (#67) added the oauth2-proxy image to image preloading, but every preload init container runs /bin/sh -c "echo ...", and the oauth2-proxy image is distroless: it has no shell. The container fails with StartError (exit 128), and every image-preloading pod on the test environments sat in Init:CrashLoopBackOff.

The proxy entry now uses the template's existing per-image command/args support and runs /bin/oauth2-proxy --version, which exits 0 (checked with docker run --entrypoint /bin/oauth2-proxy quay.io/oauth2-proxy/oauth2-proxy:v7.12.0 --version; the image's entrypoint is /bin/oauth2-proxy, user 65532).

scripts/test-app-consistency.sh now asserts the proxy's init container runs the binary, not a shell; it fails on 2.7.1's template. The earlier test only checked that the image was in the list, which is how this shipped.

Both charts move to 2.7.2.

🤖 Generated with Claude Code

…inary (2.7.2)

The default /bin/sh -c echo init container cannot start in an image without
a shell, so every preloading pod on 2.7.1 crash-looped on it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Nov 6, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 42 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 06d1f137-c78a-4fd7-885f-c22a423924a4
Commits

Reviewing files that changed from the base of the PR and between 7b25836 and 2b26c05.

Files selected for processing: 7

  • CHANGELOG.md
  • charts/eduide-cluster/Chart.yaml
  • charts/eduide-cluster/README.md
  • charts/eduide/Chart.yaml
  • charts/eduide/README.md
  • charts/eduide/templates/_helpers.tpl
  • scripts/test-app-consistency.sh
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown

Rendered diff across all environments

108 lines changed
diff -ru out-base/_eduide-cluster.yaml out-head/_eduide-cluster.yaml
--- out-base/_eduide-cluster.yaml	2026-11-06 21:29:03.118932130 +0000
+++ out-head/_eduide-cluster.yaml	2026-11-06 21:29:05.399948311 +0000
@@ -4553,7 +4553,7 @@
     app.kubernetes.io/part-of: eduide
     app.kubernetes.io/managed-by: Helm
 data:
-  platformVersion: "2.7.1"
+  platformVersion: "2.7.2"
   appVersion: "1.5.0"
 ---
 # Source: eduide-cluster/templates/crds/appdefinition.yaml
diff -ru out-base/e2e.eduide.student.k8s.aet.cit.tum.de.yaml out-head/e2e.eduide.student.k8s.aet.cit.tum.de.yaml
--- out-base/e2e.eduide.student.k8s.aet.cit.tum.de.yaml	2026-11-06 21:29:01.781922646 +0000
+++ out-head/e2e.eduide.student.k8s.aet.cit.tum.de.yaml	2026-11-06 21:29:04.041938678 +0000
@@ -690,9 +690,10 @@
       - name: image-preload-5
         image: "quay.io/oauth2-proxy/oauth2-proxy:v7.12.0"
         imagePullPolicy: Always
-        command: ["/bin/sh", "-c"]
+        command:
+          - /bin/oauth2-proxy
         args:
-        - "echo 'Loaded image quay.io/oauth2-proxy/oauth2-proxy:v7.12.0'; exit 0"
+          - --version
       # Run the pause container to make the Pod go into the Running state without consuming resources
       containers:
       - name: run
diff -ru out-base/eduide.artemis.cit.tum.de.yaml out-head/eduide.artemis.cit.tum.de.yaml
--- out-base/eduide.artemis.cit.tum.de.yaml	2026-11-06 21:29:02.042924498 +0000
+++ out-head/eduide.artemis.cit.tum.de.yaml	2026-11-06 21:29:04.315940621 +0000
@@ -735,9 +735,10 @@
       - name: image-preload-9
         image: "quay.io/oauth2-proxy/oauth2-proxy:v7.12.0"
         imagePullPolicy: Always
-        command: ["/bin/sh", "-c"]
+        command:
+          - /bin/oauth2-proxy
         args:
-        - "echo 'Loaded image quay.io/oauth2-proxy/oauth2-proxy:v7.12.0'; exit 0"
+          - --version
       # Run the pause container to make the Pod go into the Running state without consuming resources
       containers:
       - name: run
diff -ru out-base/mannheim.eduide.aet.cit.tum.de.yaml out-head/mannheim.eduide.aet.cit.tum.de.yaml
--- out-base/mannheim.eduide.aet.cit.tum.de.yaml	2026-11-06 21:29:02.304926356 +0000
+++ out-head/mannheim.eduide.aet.cit.tum.de.yaml	2026-11-06 21:29:04.581942508 +0000
@@ -745,9 +745,10 @@
       - name: image-preload-10
         image: "quay.io/oauth2-proxy/oauth2-proxy:v7.12.0"
         imagePullPolicy: Always
-        command: ["/bin/sh", "-c"]
+        command:
+          - /bin/oauth2-proxy
         args:
-        - "echo 'Loaded image quay.io/oauth2-proxy/oauth2-proxy:v7.12.0'; exit 0"
+          - --version
       # Run the pause container to make the Pod go into the Running state without consuming resources
       containers:
       - name: run
diff -ru out-base/staging.eduide.student.k8s.aet.cit.tum.de.yaml out-head/staging.eduide.student.k8s.aet.cit.tum.de.yaml
--- out-base/staging.eduide.student.k8s.aet.cit.tum.de.yaml	2026-11-06 21:29:02.552928115 +0000
+++ out-head/staging.eduide.student.k8s.aet.cit.tum.de.yaml	2026-11-06 21:29:04.834944303 +0000
@@ -690,9 +690,10 @@
       - name: image-preload-5
         image: "quay.io/oauth2-proxy/oauth2-proxy:v7.12.0"
         imagePullPolicy: Always
-        command: ["/bin/sh", "-c"]
+        command:
+          - /bin/oauth2-proxy
         args:
-        - "echo 'Loaded image quay.io/oauth2-proxy/oauth2-proxy:v7.12.0'; exit 0"
+          - --version
       # Run the pause container to make the Pod go into the Running state without consuming resources
       containers:
       - name: run
diff -ru out-base/test1.eduide.student.k8s.aet.cit.tum.de.yaml out-head/test1.eduide.student.k8s.aet.cit.tum.de.yaml
--- out-base/test1.eduide.student.k8s.aet.cit.tum.de.yaml	2026-11-06 21:29:02.800929875 +0000
+++ out-head/test1.eduide.student.k8s.aet.cit.tum.de.yaml	2026-11-06 21:29:05.081946055 +0000
@@ -691,9 +691,10 @@
       - name: image-preload-5
         image: "quay.io/oauth2-proxy/oauth2-proxy:v7.12.0"
         imagePullPolicy: Always
-        command: ["/bin/sh", "-c"]
+        command:
+          - /bin/oauth2-proxy
         args:
-        - "echo 'Loaded image quay.io/oauth2-proxy/oauth2-proxy:v7.12.0'; exit 0"
+          - --version
       # Run the pause container to make the Pod go into the Running state without consuming resources
       containers:
       - name: run
diff -ru out-base/test2.eduide.student.k8s.aet.cit.tum.de.yaml out-head/test2.eduide.student.k8s.aet.cit.tum.de.yaml
--- out-base/test2.eduide.student.k8s.aet.cit.tum.de.yaml	2026-11-06 21:29:03.050931648 +0000
+++ out-head/test2.eduide.student.k8s.aet.cit.tum.de.yaml	2026-11-06 21:29:05.330947821 +0000
@@ -691,9 +691,10 @@
       - name: image-preload-5
         image: "quay.io/oauth2-proxy/oauth2-proxy:v7.12.0"
         imagePullPolicy: Always
-        command: ["/bin/sh", "-c"]
+        command:
+          - /bin/oauth2-proxy
         args:
-        - "echo 'Loaded image quay.io/oauth2-proxy/oauth2-proxy:v7.12.0'; exit 0"
+          - --version
       # Run the pause container to make the Pod go into the Running state without consuming resources
       containers:
       - name: run

@Mtze
Mtze merged commit bcc8e39 into main Nov 6, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant