Skip to content

Add envoy gateway docs#106

Open
lukaskratzel wants to merge 2 commits into
mainfrom
docs/envoy
Open

Add envoy gateway docs#106
lukaskratzel wants to merge 2 commits into
mainfrom
docs/envoy

Conversation

@lukaskratzel
Copy link
Copy Markdown
Contributor

@lukaskratzel lukaskratzel commented May 21, 2026

Summary by CodeRabbit

  • Documentation
    • Updated README branding, deployment guidance, chart/source references, and related-project links to reflect EduIDE Cloud and EduIDE Helm.
    • Added a comprehensive Envoy Gateway Setup guide covering deployment model, prerequisites, installation steps, shared-gateway vs tenant-local workflow, route/TLS requirements, validation checks, common failure modes, and troubleshooting.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 21, 2026

Warning

Rate limit exceeded

@lukaskratzel has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 57 minutes and 40 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0b8e7058-a1f5-42f9-bb8c-012b559b4d05

📥 Commits

Reviewing files that changed from the base of the PR and between 5555914 and bcfa842.

📒 Files selected for processing (1)
  • docs/envoy-gateway-setup.md
📝 Walkthrough

Walkthrough

This PR rebrands repository documentation from Theia Cloud to EduIDE Cloud and adds a comprehensive Envoy Gateway setup guide. README updates include new branding, Quick Start cross-link, Common Tasks entry, chart guidance pointing to EduIDE-Helm, and Related Projects updates. A new docs/envoy-gateway-setup.md documents shared Gateway architecture, prerequisites, installation, tenant route attachment, validation, and troubleshooting.

Changes

Documentation update: EduIDE rebranding and Envoy Gateway setup

Layer / File(s) Summary
README rebranding and Envoy Gateway cross-links
README.md
Repository description updated from Theia Cloud to EduIDE Cloud; added docs/envoy-gateway-setup.md to structure and Quick Start; PR preview chart guidance now references EduIDE-Helm; Common Tasks adds "Set up Envoy Gateway"; AppDefinitions pipeline link updated; Documentation and Related Projects lists revised to reference EduIDE Cloud and EduIDE Helm.
Envoy Gateway setup documentation: architecture, deployment, and troubleshooting
docs/envoy-gateway-setup.md
New guide describing cluster-level shared Gateway API + Envoy Gateway deployment model. Covers shared-gateway vs tenant responsibilities, traffic flow, prerequisites (Gateway API CRDs, Envoy Gateway, cert-manager, load balancer, DNS, TLS), Envoy Gateway and cert-manager installation/verification, shared gateway chart installation with production/MetalLB examples, tenant HTTPRoute attachment via parentRefs/sectionName, hostname/listener/DNS/TLS alignment (HTTP-01 details), manual infra steps, GitHub Actions workflow install scope and validation commands, common failure modes, and references.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • EduIDE/EduIDE-deployment#56: Introduces the shared theia-shared-gateway chart and Gateway API migration that the new Envoy Gateway setup guide documents.

Suggested labels

ready to merge

Suggested reviewers

  • KevinGruber2001
  • Mtze

Poem

🐰 From Theia clouds we hop away,
To EduIDE fields of bright new day,
A shared gateway guide, laid neat and clear,
So routes find homes and IDEs appear,
Hopping with joy — deployment’s here!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add envoy gateway docs' accurately describes the main change: adding a new documentation file for Envoy Gateway setup. It is concise, clear, and directly related to the primary changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/envoy

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 and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
README.md (1)

3-3: ⚡ Quick win

Keep product naming consistent with the rebranding goal.

This line introduces “EduIDE Cloud”, but the README still mixes “Theia Cloud” in key descriptive sections. Consider standardizing wording (or explicitly documenting when “Theia Cloud” is intentionally used as upstream terminology).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` at line 3, The README uses both "EduIDE Cloud" and "Theia Cloud"
inconsistently; standardize naming by replacing unintended occurrences of "Theia
Cloud" with "EduIDE Cloud" (or, if "Theia Cloud" is intentionally referenced as
upstream, add a brief parenthetical note like "Theia Cloud (upstream project)"
the first time it appears). Update all descriptive sections to consistently use
the chosen name and ensure the opening sentence and subsequent mentions (e.g.,
"EduIDE Cloud" / "Theia Cloud") match that decision.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/envoy-gateway-setup.md`:
- Around line 6-7: Several markdown links still target the old
ls1intum/theia-deployment repo—replace those absolute URLs with relative links
or the current repo path; specifically update the link that references
theia-shared-gateway (the text "[theia-shared-gateway]") and any other
occurrences noted (around lines with theia-deployment references at the
mentioned locations) so they point to the local charts directory in this repo
(or to EduIDE/EduIDE-deployment) using relative paths rather than the old
ls1intum absolute URLs.

In `@README.md`:
- Around line 163-164: The README has an inconsistent chart-version: the
paragraph states theia-cloud-crds is pinned to 1.4.0-next.0 but the install
command uses 1.2.0-next.0; update the install command so both references match
(change the version in the install/helm command to 1.4.0-next.0) and verify the
text around Chart.yaml, theia-cloud-base, and helm_chart_tag mentions are
consistent; locate occurrences of "theia-cloud-crds" and "1.2.0-next.0" and
replace the version to 1.4.0-next.0 so the Quick Start references are aligned.

---

Nitpick comments:
In `@README.md`:
- Line 3: The README uses both "EduIDE Cloud" and "Theia Cloud" inconsistently;
standardize naming by replacing unintended occurrences of "Theia Cloud" with
"EduIDE Cloud" (or, if "Theia Cloud" is intentionally referenced as upstream,
add a brief parenthetical note like "Theia Cloud (upstream project)" the first
time it appears). Update all descriptive sections to consistently use the chosen
name and ensure the opening sentence and subsequent mentions (e.g., "EduIDE
Cloud" / "Theia Cloud") match that decision.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 99bd58dd-202c-4915-8ee6-c08eaa100543

📥 Commits

Reviewing files that changed from the base of the PR and between 8f34014 and 7cfaa95.

📒 Files selected for processing (2)
  • README.md
  • docs/envoy-gateway-setup.md

Comment thread docs/envoy-gateway-setup.md Outdated
Comment thread README.md
Comment on lines +163 to +164
The `theia-cloud` dependency version in [`charts/theia-cloud-combined/Chart.yaml`](charts/theia-cloud-combined/Chart.yaml) controls the main application chart, while `theia-cloud-base` and `theia-cloud-crds` are pinned separately in the workflow at `1.2.0-next.0` and `1.4.0-next.0`.
For PR previews, you can set `helm_chart_tag` to a value like `pr-123` to pull preview OCI charts published from [EduIDE-Helm](https://github.com/EduIDE/EduIDE-Helm) pull requests as versions such as `<chart-version>.pr-123`.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix chart-version inconsistency in Quick Start notes.

This paragraph says theia-cloud-crds is pinned to 1.4.0-next.0, but the install command above uses 1.2.0-next.0 (Line 141). Please align both references to avoid deployment mistakes.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 163 - 164, The README has an inconsistent
chart-version: the paragraph states theia-cloud-crds is pinned to 1.4.0-next.0
but the install command uses 1.2.0-next.0; update the install command so both
references match (change the version in the install/helm command to
1.4.0-next.0) and verify the text around Chart.yaml, theia-cloud-base, and
helm_chart_tag mentions are consistent; locate occurrences of "theia-cloud-crds"
and "1.2.0-next.0" and replace the version to 1.4.0-next.0 so the Quick Start
references are aligned.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds documentation for bootstrapping Envoy Gateway / Gateway API for this deployment repo and updates the top-level README to link to it and to point readers at the EduIDE forks/projects.

Changes:

  • Add docs/envoy-gateway-setup.md describing cluster prerequisites, shared gateway install, and tenant configuration.
  • Update README.md to reference the new Envoy Gateway documentation and adjust several project links to EduIDE repos.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
README.md Adds references to the Envoy Gateway setup doc and updates project links/wording in the main README.
docs/envoy-gateway-setup.md New guide covering Envoy Gateway + shared Gateway API setup and validation/troubleshooting.
Comments suppressed due to low confidence (3)

docs/envoy-gateway-setup.md:99

  • This section says the theia-shared-gateway chart is "in this repository" but the link points to ls1intum/theia-deployment. Please switch this to a relative link (e.g., ../charts/theia-shared-gateway) or the correct repo URL so it stays accurate for this codebase.
## Deploy the Shared Gateway

The shared Gateway is deployed from the [`theia-shared-gateway`](https://github.com/ls1intum/theia-deployment/tree/main/charts/theia-shared-gateway) chart in this repository:

```bash

docs/envoy-gateway-setup.md:240

  • The Keycloak docs link here points to ls1intum/theia-deployment. Since docs/keycloak-setup.md exists in this repository, link to it locally (or to the correct repo) to avoid stale/cross-repo references.
- Provide wildcard certificate secrets for webview hosts, or configure cert-manager to issue suitable certificates.
- For production-style MetalLB clusters, reserve the configured load-balancer IP and keep `envoyProxy.spec.provider.kubernetes.envoyService.annotations` in sync.
- Create or update Keycloak clients separately; see [`docs/keycloak-setup.md`](https://github.com/ls1intum/theia-deployment/blob/main/docs/keycloak-setup.md).

The GitHub Actions workflow installs Theia Cloud base charts, CRDs, monitoring, the optional shared gateway release, and tenant releases. It does not install Envoy Gateway itself.

docs/envoy-gateway-setup.md:299

  • The references section links to files in ls1intum/theia-deployment even though the referenced files exist in this repository (charts/theia-shared-gateway, deployments/shared-gateway*, docs/*). Please replace these with relative links (or correct repo URLs) so the references remain valid for this repo/fork.
## References

- [`charts/theia-shared-gateway/README.md`](https://github.com/ls1intum/theia-deployment/blob/main/charts/theia-shared-gateway/README.md)
- [`deployments/shared-gateway/values.yaml`](https://github.com/ls1intum/theia-deployment/blob/main/deployments/shared-gateway/values.yaml)
- [`deployments/shared-gateway-prod/values.yaml`](https://github.com/ls1intum/theia-deployment/blob/main/deployments/shared-gateway-prod/values.yaml)
- [`docs/adding-environments.md`](https://github.com/ls1intum/theia-deployment/blob/main/docs/adding-environments.md)
- [`docs/deployment-workflows.md`](https://github.com/ls1intum/theia-deployment/blob/main/docs/deployment-workflows.md)
- [`charts/theia-cloud/values.yaml`](https://github.com/EduIDE/EduIDE-Helm/blob/main/charts/theia-cloud/values.yaml)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md
Comment on lines 1 to 5
# Theia Deployment

This repository manages automated deployments of [Theia Cloud](https://github.com/eclipse-theia/theia-cloud) to Kubernetes clusters using GitHub Actions. Theia Cloud provides browser-based development environments, allowing students and developers to work in containerized IDEs without local setup.
This repository manages automated deployments of [EduIDE Cloud](https://github.com/EduIDE/EduIDE-Cloud) to Kubernetes clusters using GitHub Actions. EduIDE Cloud provides browser-based development environments, allowing students and developers to work in containerized IDEs without local setup.

## What is This Repository?
Comment thread README.md
Comment on lines 162 to +164
Normal deployments consume released OCI charts from `ghcr.io/eduide/charts`.
The `theia-cloud` dependency version in `charts/theia-cloud-combined/Chart.yaml` controls the main application chart, while `theia-cloud-base` and `theia-cloud-crds` are pinned separately in the workflow at `1.2.0-next.0` and `1.4.0-next.0`.
For PR previews, you can set `helm_chart_tag` to a value like `pr-123` to pull preview OCI charts published from `theia-cloud-helm` pull requests as versions such as `<chart-version>.pr-123`.
The `theia-cloud` dependency version in [`charts/theia-cloud-combined/Chart.yaml`](charts/theia-cloud-combined/Chart.yaml) controls the main application chart, while `theia-cloud-base` and `theia-cloud-crds` are pinned separately in the workflow at `1.2.0-next.0` and `1.4.0-next.0`.
For PR previews, you can set `helm_chart_tag` to a value like `pr-123` to pull preview OCI charts published from [EduIDE-Helm](https://github.com/EduIDE/EduIDE-Helm) pull requests as versions such as `<chart-version>.pr-123`.
Comment thread docs/envoy-gateway-setup.md Outdated
Comment on lines +3 to +6
This repository deploys Theia Cloud through Gateway API resources backed by Envoy Gateway. The setup is split across two repositories:

- [EduIDE-Helm](https://github.com/EduIDE/EduIDE-Helm) renders the Theia Cloud `HTTPRoute` resources and, for simple installations, can also render a namespace-local `Gateway`.
- [theia-deployment](https://github.com/ls1intum/theia-deployment) uses those charts internally and adds the [`theia-shared-gateway`](https://github.com/ls1intum/theia-deployment/tree/main/charts/theia-shared-gateway) chart, which owns one cluster-level Gateway shared by multiple Theia namespaces.
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/envoy-gateway-setup.md`:
- Line 21: Fix the wording typo in the migration sentence that currently reads
"This is replaces the older ingress-controller style setup..." — change it to
"This replaces the older ingress-controller style setup with Gateway API."
Locate the sentence in the docs where the migration is described (the line
beginning with "This is replaces" / "This replaces") and update the text
accordingly so it reads grammatically correct.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5c6cbaea-79bc-4df7-9d6c-2f8bcb355a47

📥 Commits

Reviewing files that changed from the base of the PR and between 7cfaa95 and 5555914.

📒 Files selected for processing (2)
  • README.md
  • docs/envoy-gateway-setup.md
✅ Files skipped from review due to trivial changes (1)
  • README.md

5. Those `HTTPRoute` resources attach to the shared Gateway through `theia-cloud.gateway.parentRefs`.
6. The Theia Cloud operator later edits the instances `HTTPRoute` to attach newly created IDE sessions.

This replaces the older ingress-controller style setup with Gateway API. The main practical benefit is that route updates can be applied dynamically without making every tenant release own a separate edge gateway.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix grammar typo in migration sentence.

Line 21 has a wording error (“This is replaces”). Use “This replaces” for clarity.

✏️ Suggested edit
-This is replaces the older ingress-controller style setup with Gateway API. The main practical benefit is that route updates can be applied dynamically without making every tenant release own a separate edge gateway.
+This replaces the older ingress-controller style setup with Gateway API. The main practical benefit is that route updates can be applied dynamically without making every tenant release own a separate edge gateway.
🧰 Tools
🪛 LanguageTool

[grammar] ~21-~21: Use a hyphen to join words.
Context: ...is replaces the older ingress-controller style setup with Gateway API. The main p...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/envoy-gateway-setup.md` at line 21, Fix the wording typo in the
migration sentence that currently reads "This is replaces the older
ingress-controller style setup..." — change it to "This replaces the older
ingress-controller style setup with Gateway API." Locate the sentence in the
docs where the migration is described (the line beginning with "This is
replaces" / "This replaces") and update the text accordingly so it reads
grammatically correct.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

Comments suppressed due to low confidence (1)

README.md:212

  • The link label still says artemis-theia-blueprints, but it now points to https://github.com/EduIDE/EduIDE. Please update the anchor text (and/or URL) so the referenced repository name matches the actual link target.
*AppDefinitions* define the IDE environments that users work in. Custom AppDefinitions are built in a three-stage pipeline at [artemis-theia-blueprints](https://github.com/EduIDE/EduIDE).

Comment thread README.md
# Theia Deployment

This repository manages automated deployments of [Theia Cloud](https://github.com/eclipse-theia/theia-cloud) to Kubernetes clusters using GitHub Actions. Theia Cloud provides browser-based development environments, allowing students and developers to work in containerized IDEs without local setup.
This repository manages automated deployments of [EduIDE Cloud](https://github.com/EduIDE/EduIDE-Cloud) to Kubernetes clusters using GitHub Actions. EduIDE Cloud provides browser-based development environments, allowing students and developers to work in containerized IDEs without local setup.
Comment thread README.md
Comment on lines 162 to +164
Normal deployments consume released OCI charts from `ghcr.io/eduide/charts`.
The `theia-cloud` dependency version in `charts/theia-cloud-combined/Chart.yaml` controls the main application chart, while `theia-cloud-base` and `theia-cloud-crds` are pinned separately in the workflow at `1.2.0-next.0` and `1.4.0-next.0`.
For PR previews, you can set `helm_chart_tag` to a value like `pr-123` to pull preview OCI charts published from `theia-cloud-helm` pull requests as versions such as `<chart-version>.pr-123`.
The `theia-cloud` dependency version in [`charts/theia-cloud-combined/Chart.yaml`](charts/theia-cloud-combined/Chart.yaml) controls the main application chart, while `theia-cloud-base` and `theia-cloud-crds` are pinned separately in the workflow at `1.2.0-next.0` and `1.4.0-next.0`.
For PR previews, you can set `helm_chart_tag` to a value like `pr-123` to pull preview OCI charts published from [EduIDE-Helm](https://github.com/EduIDE/EduIDE-Helm) pull requests as versions such as `<chart-version>.pr-123`.
Comment on lines +3 to +8
This repository deploys Theia Cloud through Gateway API resources backed by Envoy Gateway. The setup is split across two repositories:

- [EduIDE-Helm](https://github.com/EduIDE/EduIDE-Helm) renders the Theia Cloud `HTTPRoute` resources and, for simple installations, can also render a namespace-local `Gateway`.
- [theia-deployment](https://github.com/EduIDE/EduIDE-deployment) uses those charts internally and adds the [`theia-shared-gateway`](https://github.com/EduIDE/EduIDE-deployment/tree/main/charts/theia-shared-gateway) chart, which owns one cluster-level Gateway shared by multiple Theia namespaces.

For the Artemis/EduIDE deployments, the shared gateway model is the expected setup. Tenant releases should create only their namespace-local routes and workloads; the shared gateway release owns the edge Gateway, listener hostnames, GatewayClass customization, and TLS material.
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.

2 participants