From be5754f41c24dd81f2b8c1ae4af310688a159ebd Mon Sep 17 00:00:00 2001 From: Paul Brissaud Date: Thu, 12 Mar 2026 22:25:07 +0100 Subject: [PATCH] fix: add minRequiredVersion field to challenge.yaml files Signed-off-by: Paul Brissaud --- access-pending/challenge.yaml | 1 + env-config/challenge.yaml | 1 + expose-internally/challenge.yaml | 1 + first-deployment/challenge.yaml | 1 + first-job/challenge.yaml | 1 + grant-access/challenge.yaml | 1 + job-failed/challenge.yaml | 1 + missing-credentials/challenge.yaml | 1 + partial-outage/challenge.yaml | 1 + persistent-data/challenge.yaml | 1 + pod-evicted/challenge.yaml | 1 + privilege-denied/challenge.yaml | 1 + probes-drift/challenge.yaml | 1 + stuck-pending/challenge.yaml | 1 + tainted-out/challenge.yaml | 1 + wrong-selector/challenge.yaml | 1 + 16 files changed, 16 insertions(+) diff --git a/access-pending/challenge.yaml b/access-pending/challenge.yaml index 5c49f05..6129c5c 100644 --- a/access-pending/challenge.yaml +++ b/access-pending/challenge.yaml @@ -6,6 +6,7 @@ theme: rbac-security difficulty: hard type: fix estimatedTime: 15 +minRequiredVersion: 2.0.0 initialSituation: | A new application was deployed that needs to query the Kubernetes API during startup. The pod status shows Running, but the Ready condition stays False. diff --git a/env-config/challenge.yaml b/env-config/challenge.yaml index 04ae4e9..7d160df 100644 --- a/env-config/challenge.yaml +++ b/env-config/challenge.yaml @@ -6,6 +6,7 @@ theme: volumes-secrets difficulty: easy type: build estimatedTime: 15 +minRequiredVersion: 2.0.0 initialSituation: | A web application has been deployed to the namespace. When you check the logs, you see: "ERROR: APP_NAME and APP_ENV not configured". diff --git a/expose-internally/challenge.yaml b/expose-internally/challenge.yaml index 04c8661..aee41fb 100644 --- a/expose-internally/challenge.yaml +++ b/expose-internally/challenge.yaml @@ -6,6 +6,7 @@ theme: pods-containers difficulty: easy type: build estimatedTime: 10 +minRequiredVersion: 2.0.0 initialSituation: | A web application is deployed and running in the namespace. The pods are healthy and serving traffic on port 8080. diff --git a/first-deployment/challenge.yaml b/first-deployment/challenge.yaml index f279832..3556b40 100644 --- a/first-deployment/challenge.yaml +++ b/first-deployment/challenge.yaml @@ -6,6 +6,7 @@ theme: pods-containers difficulty: easy type: build estimatedTime: 15 +minRequiredVersion: 2.0.0 initialSituation: | You've been given access to a Kubernetes namespace called "first-deployment". The namespace is empty - no resources have been created yet. diff --git a/first-job/challenge.yaml b/first-job/challenge.yaml index 4328ed4..f332652 100644 --- a/first-job/challenge.yaml +++ b/first-job/challenge.yaml @@ -6,6 +6,7 @@ theme: jobs-cronjobs difficulty: easy type: build estimatedTime: 15 +minRequiredVersion: 2.0.0 initialSituation: | The team needs to run a one-time database migration script. The script takes about 30 seconds to complete and outputs "Migration complete!" when done. diff --git a/grant-access/challenge.yaml b/grant-access/challenge.yaml index 0e1ad9f..af8d036 100644 --- a/grant-access/challenge.yaml +++ b/grant-access/challenge.yaml @@ -6,6 +6,7 @@ theme: rbac-security difficulty: medium type: build estimatedTime: 20 +minRequiredVersion: 2.0.0 initialSituation: | A monitoring application needs to list pods in its namespace. The app uses a dedicated ServiceAccount, but it has no permissions. diff --git a/job-failed/challenge.yaml b/job-failed/challenge.yaml index f1479e9..659fded 100644 --- a/job-failed/challenge.yaml +++ b/job-failed/challenge.yaml @@ -6,6 +6,7 @@ theme: jobs-cronjobs difficulty: medium type: fix estimatedTime: 15 +minRequiredVersion: 2.0.0 initialSituation: | A CronJob that processes data every night has been consistently failing. Looking at the Job status, you see it has failed multiple times. diff --git a/missing-credentials/challenge.yaml b/missing-credentials/challenge.yaml index d036d38..e860255 100644 --- a/missing-credentials/challenge.yaml +++ b/missing-credentials/challenge.yaml @@ -6,6 +6,7 @@ theme: volumes-secrets difficulty: medium type: fix estimatedTime: 20 +minRequiredVersion: 2.0.0 initialSituation: | A new microservice was deployed that needs to connect to a PostgreSQL database. The database credentials are stored in a Kubernetes Secret called "database-credentials". diff --git a/partial-outage/challenge.yaml b/partial-outage/challenge.yaml index ded4ec6..9d19b82 100644 --- a/partial-outage/challenge.yaml +++ b/partial-outage/challenge.yaml @@ -5,6 +5,7 @@ theme: networking difficulty: easy type: fix estimatedTime: 10 +minRequiredVersion: 2.0.0 initialSituation: | A frontend Deployment with 2 replicas and a backend Deployment with 1 replica are deployed in the same namespace. A NetworkPolicy is defined, but users still report issues — possibly related to intra-cluster communication. diff --git a/persistent-data/challenge.yaml b/persistent-data/challenge.yaml index 709540c..0d0919d 100644 --- a/persistent-data/challenge.yaml +++ b/persistent-data/challenge.yaml @@ -6,6 +6,7 @@ theme: volumes-secrets difficulty: medium type: build estimatedTime: 20 +minRequiredVersion: 2.0.0 initialSituation: | A note-taking application is deployed but loses all notes when the pod restarts. The application stores notes in /data/notes.txt. diff --git a/pod-evicted/challenge.yaml b/pod-evicted/challenge.yaml index a28de09..31df90e 100644 --- a/pod-evicted/challenge.yaml +++ b/pod-evicted/challenge.yaml @@ -6,6 +6,7 @@ theme: resources-scaling difficulty: easy type: fix estimatedTime: 15 +minRequiredVersion: 2.0.0 initialSituation: | A data processing application is deployed as a single pod. The pod starts but keeps crashing after a few seconds. diff --git a/privilege-denied/challenge.yaml b/privilege-denied/challenge.yaml index fec6c12..82b0dfb 100644 --- a/privilege-denied/challenge.yaml +++ b/privilege-denied/challenge.yaml @@ -6,6 +6,7 @@ theme: rbac-security difficulty: medium type: fix estimatedTime: 20 +minRequiredVersion: 2.0.0 initialSituation: | A legacy application was deployed and worked fine for months. After a recent cluster update, the pod fails to start. diff --git a/probes-drift/challenge.yaml b/probes-drift/challenge.yaml index 78fdeff..fc29825 100644 --- a/probes-drift/challenge.yaml +++ b/probes-drift/challenge.yaml @@ -4,6 +4,7 @@ theme: monitoring-debugging difficulty: medium type: fix estimatedTime: 15 +minRequiredVersion: 2.0.0 initialSituation: | A notification service was deployed with health checks configured. The container starts, begins initialization, but Kubernetes keeps restarting it in a loop. diff --git a/stuck-pending/challenge.yaml b/stuck-pending/challenge.yaml index 6447aa7..008fabd 100644 --- a/stuck-pending/challenge.yaml +++ b/stuck-pending/challenge.yaml @@ -6,6 +6,7 @@ theme: scheduling-affinity difficulty: medium type: fix estimatedTime: 15 +minRequiredVersion: 2.0.0 initialSituation: | A new application was deployed but the pod stays in Pending state. Running kubectl describe pod shows events about node selection. diff --git a/tainted-out/challenge.yaml b/tainted-out/challenge.yaml index df568c9..67174a9 100644 --- a/tainted-out/challenge.yaml +++ b/tainted-out/challenge.yaml @@ -6,6 +6,7 @@ theme: scheduling-affinity difficulty: medium type: fix estimatedTime: 20 +minRequiredVersion: 2.0.0 initialSituation: | A critical application pod stays Pending indefinitely. Running kubectl describe pod shows taint-related errors. diff --git a/wrong-selector/challenge.yaml b/wrong-selector/challenge.yaml index 6e229dc..4bc90e5 100644 --- a/wrong-selector/challenge.yaml +++ b/wrong-selector/challenge.yaml @@ -6,6 +6,7 @@ theme: pods-containers difficulty: easy type: fix estimatedTime: 10 +minRequiredVersion: 2.0.0 initialSituation: | A web application was deployed with a Deployment and Service. The pods are Running and healthy when checked directly.