Add envoy gateway docs#106
Conversation
|
Warning Rate limit exceeded
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 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 configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThis 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. ChangesDocumentation update: EduIDE rebranding and Envoy Gateway setup
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
README.md (1)
3-3: ⚡ Quick winKeep 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
📒 Files selected for processing (2)
README.mddocs/envoy-gateway-setup.md
| 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`. |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.mddescribing cluster prerequisites, shared gateway install, and tenant configuration. - Update
README.mdto 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-gatewaychart is "in this repository" but the link points tols1intum/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. Sincedocs/keycloak-setup.mdexists 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-deploymenteven 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.
| # 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? |
| 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`. |
| 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. |
There was a problem hiding this comment.
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
📒 Files selected for processing (2)
README.mddocs/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. |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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 tohttps://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).
| # 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. |
| 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`. |
| 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. |
Summary by CodeRabbit