Repository navigation
Conversation
…eplicas for landing page and service maintenance.yml scales the landing page to 0 (on) or back to landingPage.replicas (off). Chart 2.4.0 then serves the maintenance page from Envoy. It shares the deploy concurrency group and checks what visitors get. Any deploy ends maintenance, so deploy.yml warns when it finds the landing page at 0. _base.yaml runs two landing page and REST service pods. bonn and mannheim turn PodDisruptionBudgets off: parma is a single node, where a PDB blocks every drain. Test and staging environments move to chart 2.4.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Maintenance activation is not idempotent, and chart 2.4.0 is not yet published.
Review effort: Balanced
Findings: 1
Open (1)
What changed in this PR
Adds controlled maintenance mode and improved landing/service availability.
Changes:
- Adds maintenance workflow and replica-resolution tests.
- Configures two replicas and disables PDBs on the single-node cluster.
- Pins test/staging environments to chart 2.4.0.
| File | Description |
|---|---|
.github/workflows/maintenance.yml |
Adds maintenance controls and verification. |
.github/workflows/deploy.yml |
Warns when deployment ends maintenance. |
scripts/landing-replicas.sh |
Resolves the configured landing replica count. |
scripts/test-deploy-logic.sh |
Tests replica and PDB configuration. |
environments/_base.yaml |
Sets landing and service replicas to two. |
environments/bonn.eduide.aet.cit.tum.de/values.yaml |
Disables PDBs on the single-node cluster. |
environments/mannheim.eduide.aet.cit.tum.de/values.yaml |
Disables PDBs on the single-node cluster. |
environments/test1.eduide.student.k8s.aet.cit.tum.de/env.yaml |
Pins chart 2.4.0. |
environments/test2.eduide.student.k8s.aet.cit.tum.de/env.yaml |
Pins chart 2.4.0. |
environments/test3.eduide.student.k8s.aet.cit.tum.de/env.yaml |
Pins chart 2.4.0. |
environments/e2e.eduide.student.k8s.aet.cit.tum.de/env.yaml |
Pins chart 2.4.0. |
environments/staging.eduide.student.k8s.aet.cit.tum.de/env.yaml |
Pins chart 2.4.0. |
README.md |
Documents maintenance operation. |
docs/github-environments.md |
Documents workflow environment usage. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| run: | | ||
| set -euo pipefail | ||
| kubectl -n "$NS" scale deploy/landing-page-deployment --replicas=0 | ||
| kubectl -n "$NS" wait --for=delete pod -l app=landing-page --timeout=2m |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Why
During deploys EduIDE sometimes showed raw HTTP errors. EduIDE/EduIDE-Helm#47 (chart 2.4.0) adds a maintenance page served by Envoy while the landing page has no ready pod, and makes rolling updates keep a ready pod. This PR uses it.
Draft until chart 2.4.0 is released. Validate checks that every pinned chart version is published.
What
.github/workflows/maintenance.yml(new,workflow_dispatch):environment,mode: on|off.on: checks that thelanding-maintenance-pagepolicy exists, then scaleslanding-page-deploymentto 0.off: scales it back tolandingPage.replicas(scripts/landing-replicas.sh: env values over_base.yamlover 1).503+ the maintenance page, or200.deploy-<env>concurrency group and runs the same cluster identity check as Deploy.deploy.yml: warns (annotation + summary) when the landing page is at 0 replicas before an upgrade, because the deploy ends maintenance._base.yaml:landingPage.replicas: 2,service.replicas: 2. The service keeps its state in the cluster, so two pods are safe.podDisruptionBudget.enabled: false. parma is a single node, where a PDB makeskubectl drainwait forever.docs/github-environments.md.Tests
scripts/test-deploy-logic.sh: replica resolution (chart default /_base/ env override / unknown env / every real env), and PDBs off on theeduidecluster.EDUIDE_CHARTpointing at the EduIDE-Helm#47 branch, every environment renders against it.Verified on test1
Chart from EduIDE-Helm#47 with exactly these values:
maintenance on(scale to 0) ->503+ page.off(scale to 2) ->200.The workflow itself can only be dispatched once it is on
main.🤖 Generated with Claude Code