docs: make the admin guide usable by a university that is not TUM - #9
Merged
Merged
Conversation
An audit against the current charts found the admin section largely describes the platform as it was before the 2.0.0 restructure. Eleven of sixteen pages hardcoded a namespace that no longer exists, and around seventy commands would fail as written. Two new pages, which are what an external adopter actually needs first and neither of which existed: Cluster Prerequisites - Gateway API, a Gateway controller, cert-manager WITH enableGatewayAPI=true (without it HTTP-01 never completes), storage, node disk for preloaded images, and a minimum Kubernetes version. With pinned commands. Certificates and DNS - four hostnames per installation, one a wildcard, why ACME cannot issue that over HTTP-01 (the specification, not a cert-manager limitation), both remedies written out, and how to verify. Verification matters because Gateway API never compares a certificate's names against the listener hostname, so a wrong certificate reports Programmed=True and the only symptom is a browser warning - followed by the landing page silently failing its cross-origin call to its own REST service. Two errors the docs were actively causing: Only two of four Keycloak redirect URIs were listed. Login appears to work and then webviews fail to authenticate, which surfaces days later as "previews are broken". ephemeralStorage was presented as an opt-in for demos. It defaults to TRUE, so a reader believes student work persists when it does not. provisioning.md stated the new truth and then contradicted it on the same screen: a seven-chart install order, deleted workflows, a deleted directory layout. Cut from 202 lines to 60. upgrades.md duplicated the rollback and release-policy pages and got both wrong; rewritten. intro.md's environment table was wrong in every column, and it never linked to the install pages at all. Across operations and security: the deleted theia-monitoring chart, PodMonitors described as ServiceMonitors, the garbage collector documented as a standalone install when it is a subchart whose values are silently ignored if nested wrongly, an oauth2-proxy log command for a Deployment that does not exist (it is a per-session sidecar), and `kubectl get pvc --field-selector= status.phase=Released`, which always returns nothing because Released is a PersistentVolume phase. Added: runbooks for the two newest failure surfaces, Gateway/HTTPRoute and a certificate that does not cover a hostname; a CLI path for the admin API token, which previously assumed GitHub Actions; and a decommissioning procedure, which was missing entirely. Depends on EduIDE-Helm#28 - the admin token page documents service.adminApiTokenSecret.external, which that PR introduces.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
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.
An audit of all 16 admin pages against the current charts found the section largely describes the platform before the 2.0.0 restructure. 11 of 16 pages hardcoded a namespace that no longer exists, and roughly 70 commands would fail as written.
Two new pages — the ones an adopter needs first, and neither existed
Cluster Prerequisites. Gateway API, a Gateway controller, cert-manager with
enableGatewayAPI=true(without it, HTTP-01 challenges never complete), storage, node disk budget for preloaded images, minimum Kubernetes version. Pinned commands throughout.Certificates and DNS. Four hostnames per installation, one of them a wildcard. Why ACME cannot issue that over HTTP-01 — it's the specification, not a cert-manager limitation — and both remedies written out end to end: a DNS-01 solver, or bring your own certificate.
Verification gets its own section, because Gateway API never compares a certificate's names against the listener hostname. A wrong certificate reports
Programmed=True. The only symptom is a browser warning, then the landing page silently failing its cross-origin call to its own REST service.Two errors the docs were actively causing
ephemeralStoragewas presented as an opt-in for demos. It defaults totrue. A reader following that page believes student work persists when it does not.Pages rewritten
provisioning.mdupgrades.mdintro.mdmonitoring-basics.mdgarbage-collection.mdadmin-api-tokens.mdCommands that could never have worked
kubectl logs -l app=oauth2-proxy— there is no such Deployment; it is a per-session sidecarkubectl get pvc --field-selector=status.phase=Released—Releasedis a PersistentVolume phase, so this always returns nothingkubectl rollout restart deployment/operator— it isoperator-deploymentoperator.replicas3→1 (two pages had you paging yourself over a healthy cluster),sessionsPerUser10→1,requestsMemory2000M→500MAdded
Runbooks for the two newest failure surfaces — Gateway/HTTPRoute and a certificate that does not cover a hostname — and a decommissioning procedure, which was missing entirely.
Verified: structure check passes, every relative link resolves, all factual claims re-checked against
charts/eduide/values.yamldirectly.