Skip to content

refactor: name every environment after the hostname it serves - #121

Closed
Mtze wants to merge 1 commit into
fix/tum-production-hostfrom
refactor/env-names-are-hostnames
Closed

refactor: name every environment after the hostname it serves#121
Mtze wants to merge 1 commit into
fix/tum-production-hostfrom
refactor/env-names-are-hostnames

Conversation

@Mtze

@Mtze Mtze commented Aug 27, 2026

Copy link
Copy Markdown
Member

Stacked on #120.

An environment's directory, its GitHub Environment and its landing host are now the same string:

environments/test1.eduide.student.k8s.aet.cit.tum.de/
environments/staging.eduide.student.k8s.aet.cit.tum.de/
environments/e2e.eduide.student.k8s.aet.cit.tum.de/
environments/eduide.artemis.cit.tum.de/
environments/bonn.eduide.aet.cit.tum.de/

Why

deploy.yml already used one value for both the manifest directory and the GitHub Environment, so those two could never disagree. But both could disagree with the host actually served - and did. tum-production was configured for artemis.aet.cit.tum.de while its wildcard certificate and its DNS both said artemis.cit.tum.de, and nothing tied the name to the host closely enough for anyone to notice.

There is now no mapping to keep in sync, because there is no mapping.

What moved

  • Eight directories under environments/.
  • The Deploy (dispatch) and Rollback dropdowns.
  • deploy-e2e.yml and deploy-staging.yml, which named their environment inline.
  • validate.yml and test-deploy-logic.sh, which read the chart version from environments/test1/env.yaml.
  • README, AGENTS.md and four docs pages. The landing-host table in environments.md is gone: the directory listing is that table now.

What deliberately did not move

  • Namespaces stay short (eduide-test1). A Kubernetes namespace cannot contain dots; spec.namespace states each one.
  • Cluster environments keep cluster-<name>. They belong to a cluster, not to a hostname.
  • Cluster manifests keep their names - clusters/tum-production.yaml is a cluster, and only the environment of that name was renamed. Prose about the cluster was left alone.

GitHub Environments

Recreated under the new names with their reviewer teams and secrets, then the old ones deleted, along with the pre-2.0.0 theia-prod and theia-staging which no workflow referenced and which still held live secrets.

Secret values cannot be read back, so THEIA_KEYCLOAK_COOKIE_SECRET was regenerated for every environment rather than copied. Harmless here since nothing is deployed yet, but it is not a like-for-like migration.

bonn.… and mannheim.… were created with reviewers and no secrets, matching their previous state - there is still no kubeconfig for the eduide cluster.

Cost, accepted deliberately

/deploy test2.eduide.student.k8s.aet.cit.tum.de on a PR, and eight long options in the dropdowns.

Verified

test-deploy-logic.sh ALL PASS (including the hostname-comment check added in #120), check-agents-md.sh, actionlint, shellcheck -S error, every env.yaml validates against its schema, all relative links resolve, and both a test and the production environment still render through the published 2.1.0 chart from their new paths.

Noted, not fixed

deploy-e2e.yml calls EduIDE/theia-scale-tests/.github/workflows/functional-tests.yml with an environment input, but that workflow has no workflow_call trigger and declares no inputs. That call is already broken and predates this change.

An environment's directory, its GitHub Environment and its landing host are now
one string:

    environments/test1.eduide.student.k8s.aet.cit.tum.de/
    environments/eduide.artemis.cit.tum.de/

deploy.yml already used the same value for the manifest directory and the
GitHub Environment, so those could never disagree - but both could disagree with
the host actually served, and did. tum-production was configured for
`artemis.aet.cit.tum.de` while its certificate and DNS said
`artemis.cit.tum.de`, and nothing connected the two well enough to notice.

There is now no mapping to keep in sync, because there is no mapping.

Namespaces stay short (`eduide-test1`): a Kubernetes namespace cannot contain
dots, and each env.yaml states its own.

The GitHub Environments were recreated under the new names with their reviewer
teams and secrets, and the old ones deleted along with the pre-2.0.0
`theia-prod` and `theia-staging`. Cluster environments keep their `cluster-<name>`
names - they belong to a cluster, not to a hostname.

`/deploy` comments and the Deploy/Rollback dropdowns now carry the full
hostname. That is the cost of the scheme and it is deliberate.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019qeiQRFu8xAMRYWPdZewjG
@coderabbitai

coderabbitai Bot commented Aug 27, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 078a8b6f-9105-4d5b-a335-4a6316eecefa

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

Comment @coderabbitai help to get the list of available commands.

@Mtze
Mtze deleted the branch fix/tum-production-host August 27, 2026 20:29
@Mtze Mtze closed this Aug 27, 2026
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