Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
f120cbd
add environment
KevinGruber2001 Nov 18, 2025
7df870e
Update deployments/test2.theia-test.artemis.cit.tum.de/values.yaml
KevinGruber2001 Nov 18, 2025
3921349
Update deployments/test2.theia-test.artemis.cit.tum.de/values.yaml
KevinGruber2001 Nov 18, 2025
d2ac8e7
add test2 to workflow
KevinGruber2001 Nov 18, 2025
ca5e4f5
Add shared cache node helm chart
KevinGruber2001 Nov 16, 2025
62febb9
Change storage class
KevinGruber2001 Nov 16, 2025
f4e5a6f
Increase Cache Version number
KevinGruber2001 Nov 16, 2025
6a42e81
set opertator
KevinGruber2001 Nov 18, 2025
d459ac9
update shared cache version number
KevinGruber2001 Nov 18, 2025
54a63cf
update shared cache chart and add ui values
KevinGruber2001 Nov 25, 2025
e6eb229
create certificate for cache
KevinGruber2001 Nov 25, 2025
84149d2
add missing cache reference
KevinGruber2001 Nov 25, 2025
f7ce461
update shared cache version
KevinGruber2001 Nov 25, 2025
e7518e0
add test2 configureation for cache
KevinGruber2001 Nov 25, 2025
738809b
increase cache version
KevinGruber2001 Nov 25, 2025
ac1826e
fix minor persistance issues
KevinGruber2001 Nov 25, 2025
314927b
add java image with gradle
KevinGruber2001 Nov 28, 2025
c2a00f3
change used java appdefinition
KevinGruber2001 Nov 28, 2025
205fb9e
set app definition directly in appdefinitions chart
KevinGruber2001 Nov 28, 2025
f9935a4
switch to theia operator
KevinGruber2001 Nov 28, 2025
2caecab
add operator attributes to theia-cloud-combined
KevinGruber2001 Nov 28, 2025
ddcc116
try adding helm values directly in theia-cloud-combined
KevinGruber2001 Nov 28, 2025
f72821c
remove temp operator deployment
KevinGruber2001 Nov 28, 2025
9841b73
update app definitions java blueprint
KevinGruber2001 Dec 1, 2025
102b511
switch java image back to latest
KevinGruber2001 Dec 2, 2025
273cc85
update to new java blueprint, with configured cache
KevinGruber2001 Dec 2, 2025
88da72e
Add internal tls for cache
KevinGruber2001 Dec 6, 2025
787083a
Minor typo
KevinGruber2001 Dec 6, 2025
591fc3c
Fix wrong url
KevinGruber2001 Dec 8, 2025
6317bc3
Merge main
KevinGruber2001 Jan 17, 2026
8c3fd22
Use new gradle cache
KevinGruber2001 Jan 17, 2026
b6d0bc3
temperorarly use without auth
KevinGruber2001 Jan 17, 2026
868498d
use main tag for now
KevinGruber2001 Jan 17, 2026
51d41a5
Update to correct shared cache url
KevinGruber2001 Jan 17, 2026
db4f1a7
add monitoring for shared cache
KevinGruber2001 Feb 6, 2026
7e02f13
disabled cache auth
KevinGruber2001 Feb 7, 2026
8b298e7
add servicemonitor config
KevinGruber2001 Feb 7, 2026
687461c
update grafana dashboard
KevinGruber2001 Feb 7, 2026
87a3b65
setup tls
KevinGruber2001 Feb 7, 2026
7c17b66
fixx indenting
KevinGruber2001 Feb 7, 2026
1a64474
test new dependency cache
KevinGruber2001 Feb 8, 2026
c485328
add trust manager to cicd
KevinGruber2001 Feb 8, 2026
8c5f144
try burst limit
KevinGruber2001 Feb 8, 2026
98ff463
remove trust manager from pipeline
KevinGruber2001 Feb 8, 2026
4295ad0
switch to ls1 theia-cloud-helm chart
KevinGruber2001 Feb 8, 2026
be09286
add reposilite servicemonitor and dashboard
KevinGruber2001 Feb 9, 2026
1830714
minor grafana fix
KevinGruber2001 Feb 9, 2026
9ffb433
merge main
KevinGruber2001 Mar 7, 2026
1acb48d
minor fixes
KevinGruber2001 Mar 7, 2026
36610c9
update org
KevinGruber2001 Mar 7, 2026
4567c8d
minor syntax fix
KevinGruber2001 Mar 9, 2026
80c5f00
update eduide url
KevinGruber2001 Mar 9, 2026
e197807
temporarly use ubutu runners
KevinGruber2001 Mar 9, 2026
ae18595
minor error
KevinGruber2001 Mar 9, 2026
8a84d02
add reposilite metrics secret
KevinGruber2001 Mar 9, 2026
3f16f1e
add operator arguments
KevinGruber2001 Mar 9, 2026
a56f738
Migrate test3 to AppDefinition v1beta11 sidecars on clean main-based …
CodeByNikolas Mar 16, 2026
ddd6a0e
ci: bump theia-cloud-crds base version to 1.2.0-next.1
CodeByNikolas Mar 16, 2026
36e2400
ci(test3): override conversion-webhook image to PR build
CodeByNikolas Mar 16, 2026
20d3c61
chore(test3): remove stale pr-46 preloading images
CodeByNikolas Mar 16, 2026
d316777
fix: correct garbage-collector image path to ghcr.io/eduide/garbage-c…
CodeByNikolas Mar 16, 2026
edd722b
Merge branch 'main' into feat/test3-pr70-sidecar-clean
CodeByNikolas Mar 16, 2026
6e19887
fix(test3): align sidecar appdefinitions with reviewer findings
CodeByNikolas Mar 16, 2026
6665fb5
fix(test3): switch no-ls and langserver images to eduide registry
CodeByNikolas Mar 16, 2026
606c591
ci(deploy): tag no-ls and sidecar preloading images with ide_images_tag
CodeByNikolas Mar 16, 2026
d898086
merge main
KevinGruber2001 Mar 16, 2026
6b188a7
resolve conflicts
KevinGruber2001 Mar 16, 2026
ed4fda4
merge v1beta11Merge branch 'feat/test3-pr70-sidecar-clean' into feat/…
KevinGruber2001 Mar 16, 2026
9ea35a1
add conversion webhook to test2
KevinGruber2001 Mar 17, 2026
d9b3cbe
Migrate internal TLS to seperate Chart
KevinGruber2001 Mar 21, 2026
f5fd25b
Add documentation
KevinGruber2001 Mar 21, 2026
7b2762d
Minor fixxes
KevinGruber2001 Mar 22, 2026
d4f6572
Update monitoring
KevinGruber2001 Mar 22, 2026
e18573c
merge main
KevinGruber2001 Mar 22, 2026
33f286e
minor cert naming issue
KevinGruber2001 Mar 22, 2026
0eb46de
fix formatting issue
KevinGruber2001 Mar 22, 2026
e0f0afd
syntax error
KevinGruber2001 Mar 22, 2026
ed59a19
minor url changes
KevinGruber2001 Mar 22, 2026
93e63c7
update shared cache image
KevinGruber2001 Mar 23, 2026
76b811b
Bump to shared cache 0.4.0
KevinGruber2001 Mar 24, 2026
e879cfe
Set Shared Cache to version 0.3.1
KevinGruber2001 Mar 27, 2026
765a6d5
Merge branch 'main' into feat/15-integrate-shared-cache-node-into-the…
KevinGruber2001 Mar 27, 2026
5a991fa
upgrade to shared cache version 0.5.0
KevinGruber2001 Mar 27, 2026
60e6677
update chart name
KevinGruber2001 Mar 27, 2026
0899623
update chart name
KevinGruber2001 Mar 31, 2026
abecd64
add build systems to landing page values
KevinGruber2001 Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/workflows/deploy-theia.yml
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,15 @@ jobs:
# This is installed once per cluster, not per environment
helm upgrade theia-monitoring ./charts/theia-monitoring --install -n default

- name: Install internal TLS infrastructure
env:
KUBECONFIG: ${{ github.workspace }}/kubeconfig
run: |

# Install cluster-scoped internal CA and trust bundle (once per cluster)
# Distributes the trust bundle ConfigMap to all namespaces
helm upgrade --install theia-internal-tls ./charts/theia-internal-tls -n cert-manager

# Step 5: Install shared Gateway (optional, cluster-level)
- name: Install Shared Gateway (optional)
if: inputs.deploy_shared_gateway && inputs.shared_gateway_values_file != ''
Expand Down
14 changes: 12 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@ This repository serves as the infrastructure-as-code for deploying and managing
├── charts/ # Custom Helm charts
│ ├── theia-cloud-combined/ # Combined chart with all components
│ ├── theia-shared-gateway/ # Shared Gateway API entrypoint
│ ├── theia-internal-tls/ # Cluster-scoped internal CA + trust bundle
│ ├── theia-appdefinitions/ # Custom IDE environments (images/configs)
│ ├── theia-certificates/ # SSL certificate management
│ ├── theia-certificates/ # SSL certificate management (per-namespace)
│ └── theia-metrics/ # Prometheus/Grafana dashboards
├── value-reference-files/ # Reference Helm values for different setups
Expand Down Expand Up @@ -147,7 +148,16 @@ Configuration files for each environment are located in the [deployments/](deplo
For the dedicated production cluster, use:
`deployments/shared-gateway-prod/values.yaml`.

4. **Install the combined Theia Cloud chart**:
4. **Install the internal TLS infrastructure (once per cluster)**:
```bash
helm upgrade --install theia-internal-tls ./charts/theia-internal-tls \
--namespace cert-manager
```
This deploys the cluster-scoped internal CA and trust bundle used for TLS
between internal services (e.g., shared cache and workspaces). The trust
bundle ConfigMap is automatically distributed to all namespaces.

5. **Install the combined Theia Cloud chart**:
```bash
helm registry login ghcr.io
helm upgrade --install theia-cloud-combined ./charts/theia-cloud-combined \
Expand Down
15 changes: 15 additions & 0 deletions charts/theia-certificates/templates/cache-internal-certificate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: cache-internal-cert
spec:
secretName: cache-internal-cert-secret
issuerRef:
name: theia-internal-ca-issuer
kind: ClusterIssuer
commonName: "theia-shared-cache"
dnsNames:
- theia-cloud-combined-cache
- theia-cloud-combined-cache.{{ .Release.Namespace }}.svc.cluster.local
privateKey:
rotationPolicy: Never
4 changes: 2 additions & 2 deletions charts/theia-cloud-combined/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@ dependencies:
version: 0.1.0
repository: "oci://ghcr.io/eduide/charts"

- name: theia-shared-cache
version: "0.3.1"
- name: eduide-shared-cache
version: 0.5.0
repository: "oci://ghcr.io/eduide/charts"
8 changes: 8 additions & 0 deletions charts/theia-cloud-combined/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ hosts:
landing: theia
instance: instance.theia

theia-shared-cache:
enabled: false

theia-certificates:
hosts:
configuration: *hostsConfig
Expand Down Expand Up @@ -49,6 +52,11 @@ theia-cloud:
sessionsPerUser: 10
storageClassName: csi-rbd-sc
eagerStart: true
enableBuildCaching: false
buildCacheUrl: ""
enableBuildCachePush: false
enableDependencyCaching: false
dependencyCacheUrl: ""

service:
image: ghcr.io/eduide/eduide-cloud/service:latest
Expand Down
5 changes: 5 additions & 0 deletions charts/theia-internal-tls/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
apiVersion: v2
name: theia-internal-tls
description: Cluster-scoped trust infrastructure for internal tls (internal CA + trust bundle)
version: 0.1.0
appVersion: 1.0.0
24 changes: 24 additions & 0 deletions charts/theia-internal-tls/templates/internal-ca.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: theia-internal-ca
spec:
isCA: true
commonName: theia-internal-ca
secretName: theia-internal-ca-secret
issuerRef:
name: theia-cloud-selfsigned-issuer
kind: ClusterIssuer
privateKey:
algorithm: ECDSA
size: 256
duration: 87600h # 10 years
renewBefore: 8760h # renew 1 year before expiry
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: theia-internal-ca-issuer
spec:
ca:
secretName: theia-internal-ca-secret
24 changes: 24 additions & 0 deletions charts/theia-internal-tls/templates/trust-bundle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
apiVersion: trust.cert-manager.io/v1alpha1
kind: Bundle
metadata:
name: theia-internal-trust
spec:
sources:
# Include the default public CAs (Let's Encrypt, etc.)
- useDefaultCAs: true

# Internal CA certificate from cert-manager
- secret:
name: "theia-internal-ca-secret"
key: "ca.crt"

target:
# trust-manager creates a ConfigMap with this name in target namespaces
configMap:
key: "trust-bundle.pem"

# Also generate a JKS truststore (Java KeyStore)
# This is what Java/Gradle will use directly
additionalFormats:
jks:
key: "truststore.jks"
Loading
Loading