From eab99f75f8373f642e9d5ddf317f010799e5d937 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Thu, 5 Feb 2026 11:09:09 +0100 Subject: [PATCH 01/54] feat: Integrate EduTheia landing page with separate tag parameter - Update test3 deployment to use ghcr.io/ls1intum/edutheia-landing-page - Add landing_page_tag input parameter to deployment workflows - Separate landing page versioning from theia-cloud components - Update preloading configuration for new landing page image --- .github/workflows/deploy-pr.yml | 9 ++++++++- .github/workflows/deploy-theia.yml | 14 ++++++++++---- .../values.yaml | 4 ++-- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/.github/workflows/deploy-pr.yml b/.github/workflows/deploy-pr.yml index 4634321..8e52dc0 100644 --- a/.github/workflows/deploy-pr.yml +++ b/.github/workflows/deploy-pr.yml @@ -24,7 +24,11 @@ on: - test2 - test3 theia_cloud_tag: - description: 'Theia Cloud components tag (operator, service, landing-page)' + description: 'Theia Cloud components tag (operator, service)' + required: false + default: 'latest' + landing_page_tag: + description: 'EduTheia landing page tag' required: false default: 'latest' ide_images_tag: @@ -47,6 +51,7 @@ jobs: with: environment: test1 theia_cloud_tag: ${{ inputs.theia_cloud_tag || 'latest' }} + landing_page_tag: ${{ inputs.landing_page_tag || 'latest' }} ide_images_tag: ${{ inputs.ide_images_tag || 'latest' }} helm_chart_branch: ${{ inputs.helm_chart_branch || '' }} secrets: inherit @@ -61,6 +66,7 @@ jobs: with: environment: test2 theia_cloud_tag: ${{ inputs.theia_cloud_tag || 'latest' }} + landing_page_tag: ${{ inputs.landing_page_tag || 'latest' }} ide_images_tag: ${{ inputs.ide_images_tag || 'latest' }} helm_chart_branch: ${{ inputs.helm_chart_branch || '' }} secrets: inherit @@ -75,6 +81,7 @@ jobs: with: environment: test3 theia_cloud_tag: ${{ inputs.theia_cloud_tag || 'latest' }} + landing_page_tag: ${{ inputs.landing_page_tag || 'latest' }} ide_images_tag: ${{ inputs.ide_images_tag || 'latest' }} helm_chart_branch: ${{ inputs.helm_chart_branch || '' }} secrets: inherit \ No newline at end of file diff --git a/.github/workflows/deploy-theia.yml b/.github/workflows/deploy-theia.yml index 6c16842..7d589e9 100644 --- a/.github/workflows/deploy-theia.yml +++ b/.github/workflows/deploy-theia.yml @@ -41,7 +41,12 @@ on: required: true type: string theia_cloud_tag: - description: "Image tag for Theia Cloud components (operator, service, landing-page)" + description: "Image tag for Theia Cloud components (operator, service)" + required: false + type: string + default: "latest" + landing_page_tag: + description: "Image tag for EduTheia landing page" required: false type: string default: "latest" @@ -164,12 +169,13 @@ jobs: # Define image tag variables for cleaner command THEIA_CLOUD_TAG="${{ inputs.theia_cloud_tag }}" + LANDING_PAGE_TAG="${{ inputs.landing_page_tag }}" IDE_IMAGES_TAG="${{ inputs.ide_images_tag }}" # Install/upgrade the Helm chart with all configuration # --install: Create if it doesn't exist, upgrade if it does # --create-namespace: Create the namespace if it doesn't exist - # Image tags controlled by two variables: THEIA_CLOUD_TAG and IDE_IMAGES_TAG + # Image tags controlled by three variables: THEIA_CLOUD_TAG, LANDING_PAGE_TAG, and IDE_IMAGES_TAG helm upgrade --install theia-cloud-combined ./charts/theia-cloud-combined \ --namespace ${{ vars.NAMESPACE }} \ --create-namespace \ @@ -177,10 +183,10 @@ jobs: --set theia-certificates.wildcardCertificate="$(cat wildcard.crt)" \ --set theia-certificates.wildcardKey="$(cat wildcard.key)" \ --set theia-cloud.keycloak.cookieSecret="${{ secrets.THEIA_KEYCLOAK_COOKIE_SECRET }}" \ - --set theia-cloud.landingPage.image="ghcr.io/ls1intum/theia/landing-page:${THEIA_CLOUD_TAG}" \ + --set theia-cloud.landingPage.image="ghcr.io/ls1intum/edutheia-landing-page:${LANDING_PAGE_TAG}" \ --set theia-cloud.operator.image="ghcr.io/ls1intum/theia/operator:${THEIA_CLOUD_TAG}" \ --set theia-cloud.service.image="ghcr.io/ls1intum/theia/service:${THEIA_CLOUD_TAG}" \ - --set "theia-cloud.preloading.images[0]=ghcr.io/ls1intum/theia/landing-page:${THEIA_CLOUD_TAG}" \ + --set "theia-cloud.preloading.images[0]=ghcr.io/ls1intum/edutheia-landing-page:${LANDING_PAGE_TAG}" \ --set "theia-cloud.preloading.images[1]=ghcr.io/ls1intum/theia/java-17:${IDE_IMAGES_TAG}" \ --set "theia-cloud.preloading.images[2]=ghcr.io/ls1intum/theia/c:${IDE_IMAGES_TAG}" \ --set "theia-cloud.preloading.images[3]=ghcr.io/ls1intum/theia/javascript:${IDE_IMAGES_TAG}" \ diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index d5c20c6..1f39349 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -52,7 +52,7 @@ theia-cloud: preloading: images: - - ghcr.io/ls1intum/theia/landing-page:latest + - ghcr.io/ls1intum/edutheia-landing-page:latest - ghcr.io/ls1intum/theia/java-17:latest - ghcr.io/ls1intum/theia/c:latest - ghcr.io/ls1intum/theia/javascript:latest @@ -70,7 +70,7 @@ theia-cloud: landingPage: # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 - image: ghcr.io/ls1intum/theia/landing-page + image: ghcr.io/ls1intum/edutheia-landing-page # We can define a default blueprint # 1. The actual image data (Must be a Base64 encoded string) From f98c9e25ce4ae2f81bc32c6b7511c7caa82f7955 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Thu, 19 Feb 2026 09:52:17 +0100 Subject: [PATCH 02/54] no custom --- .../test3.theia-test.artemis.cit.tum.de/values.yaml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 1f39349..bb873d0 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -59,8 +59,6 @@ theia-cloud: - ghcr.io/ls1intum/theia/ocaml:latest - ghcr.io/ls1intum/theia/rust:latest - ghcr.io/ls1intum/theia/python:latest - - ghcr.io/ls1intum/theia/theia-no-ls:pr-46 - - ghcr.io/ls1intum/theia/langserver-java:pr-46 imagePullPolicy: Always @@ -95,8 +93,6 @@ theia-cloud: label: Python rust-latest: label: Rust - java-ls-test: - label: Java LS Test infoTitle: "🚀 Welcome to Test3 IDE Environment" infoText: "This is a testing environment for Theia Cloud. Select your programming language and start coding in seconds!" loadingText: "⚡ Setting up your development workspace..." @@ -127,13 +123,6 @@ theia-cloud: # -- The client-id. Only has to be specified when enable: true clientId: "theia-test" -theia-appdefinitions: - apps: - - name: java-ls-test - image: ghcr.io/ls1intum/theia/theia-no-ls - imageTag: pr-46 - options: - langserver-image: ghcr.io/ls1intum/theia/langserver-java:pr-46 monitoring: targetNamespaces: From 73c40d8d35e22e57695482ee10b61dca400821cd Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Thu, 19 Feb 2026 10:18:32 +0100 Subject: [PATCH 03/54] check footer for new landing apge --- .../values.yaml | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index bb873d0..b743dbb 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -93,23 +93,23 @@ theia-cloud: label: Python rust-latest: label: Rust - infoTitle: "🚀 Welcome to Test3 IDE Environment" - infoText: "This is a testing environment for Theia Cloud. Select your programming language and start coding in seconds!" - loadingText: "⚡ Setting up your development workspace..." + infoTitle: "🚀 Welcome to Test3 IDE Environment - Where we move fast and break things - mostly breaks things.. 🤠🤠" + infoText: "This is a testing environment for Theia Cloud. Should be fun to use, but don't expect too much." + loadingText: "Ich lade grade, geb mir mal ne Sekunde" footerLinks: attribution: - text: "Built by TUM LS1 Team 👨‍💻" - url: "https://aet.cit.tum.de/" + text: "Rollen" + url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" version: "Test3-v1.0.0" bugReport: - text: "Report a bug 🐛" - url: "https://github.com/ls1intum/theia-cloud/issues" + text: "Rollen" + url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" featureRequest: - text: "Request a feature ✨" - url: "https://github.com/ls1intum/theia-cloud/issues" + text: "Rollen" + url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" about: - text: "About" - url: "https://aet.cit.tum.de/" + text: "Rollen" + url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" keycloak: enable: true From e159b25490a0797f2b81ddb2730e6963977c0396 Mon Sep 17 00:00:00 2001 From: Nikolas Hack <33756465+CodeByNikolas@users.noreply.github.com> Date: Thu, 19 Feb 2026 10:46:41 +0100 Subject: [PATCH 04/54] chore: Bump theia-cloud chart to 1.3.0-next.4 (#63) Update chart dependency to version 1.3.0-next.4 which includes the footerLinks feature. This enables footer link customization in the landing page ConfigMap. --- charts/theia-cloud-combined/Chart.lock | 6 +++--- charts/theia-cloud-combined/Chart.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/charts/theia-cloud-combined/Chart.lock b/charts/theia-cloud-combined/Chart.lock index 346e4fe..0831c5f 100644 --- a/charts/theia-cloud-combined/Chart.lock +++ b/charts/theia-cloud-combined/Chart.lock @@ -1,7 +1,7 @@ dependencies: - name: theia-cloud repository: https://ls1intum.github.io/theia-cloud-helm - version: 1.2.0-next.4 + version: 1.3.0-next.4 - name: theia-certificates repository: file://../theia-certificates version: 0.1.0 @@ -11,5 +11,5 @@ dependencies: - name: theia-workspace-garbage-collector repository: https://ls1intum.github.io/theia-workspace-garbage-collector/ version: 0.1.0 -digest: sha256:6754552788de187a90d42197dfb233a3ec40ad324760370f2074cd71567a31f8 -generated: "2026-01-26T14:36:14.110211+01:00" +digest: sha256:76ad5dfec784a65bc618160aa40de230c4d96ba13cdc31010e117f639da9cee7 +generated: "2026-02-19T10:46:15.541818+01:00" diff --git a/charts/theia-cloud-combined/Chart.yaml b/charts/theia-cloud-combined/Chart.yaml index 9509986..a1fbbbe 100644 --- a/charts/theia-cloud-combined/Chart.yaml +++ b/charts/theia-cloud-combined/Chart.yaml @@ -6,7 +6,7 @@ appVersion: 1.0.0 dependencies: - name: theia-cloud - version: 1.3.0-next.3 + version: 1.3.0-next.4 repository: "https://ls1intum.github.io/theia-cloud-helm" - name: theia-certificates From e5c87d2dfb45ac94c240301136512c23b1e5b9d1 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Thu, 19 Feb 2026 10:51:33 +0100 Subject: [PATCH 05/54] revert: Restore proper test3 footer links (remove test URLs) --- .../values.yaml | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index b743dbb..bb873d0 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -93,23 +93,23 @@ theia-cloud: label: Python rust-latest: label: Rust - infoTitle: "🚀 Welcome to Test3 IDE Environment - Where we move fast and break things - mostly breaks things.. 🤠🤠" - infoText: "This is a testing environment for Theia Cloud. Should be fun to use, but don't expect too much." - loadingText: "Ich lade grade, geb mir mal ne Sekunde" + infoTitle: "🚀 Welcome to Test3 IDE Environment" + infoText: "This is a testing environment for Theia Cloud. Select your programming language and start coding in seconds!" + loadingText: "⚡ Setting up your development workspace..." footerLinks: attribution: - text: "Rollen" - url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" + text: "Built by TUM LS1 Team 👨‍💻" + url: "https://aet.cit.tum.de/" version: "Test3-v1.0.0" bugReport: - text: "Rollen" - url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" + text: "Report a bug 🐛" + url: "https://github.com/ls1intum/theia-cloud/issues" featureRequest: - text: "Rollen" - url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" + text: "Request a feature ✨" + url: "https://github.com/ls1intum/theia-cloud/issues" about: - text: "Rollen" - url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" + text: "About" + url: "https://aet.cit.tum.de/" keycloak: enable: true From 9083a5fab557473214328554d88f3856faf62a75 Mon Sep 17 00:00:00 2001 From: Nikolas Hack <33756465+CodeByNikolas@users.noreply.github.com> Date: Thu, 19 Feb 2026 10:54:26 +0100 Subject: [PATCH 06/54] Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index bb873d0..e2a16a5 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -67,7 +67,7 @@ theia-cloud: install: false landingPage: - # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 + # We use the try now page as landing page since the default does not support multiple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 image: ghcr.io/ls1intum/edutheia-landing-page # We can define a default blueprint From 3dde7e6b8c19be337c1b0e36c5dbf1657abe352e Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Thu, 19 Feb 2026 10:57:00 +0100 Subject: [PATCH 07/54] chore: Trigger rebase after main branch updates From 16cc1cb9428313834f460324e530a905162e3400 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Thu, 19 Feb 2026 11:03:50 +0100 Subject: [PATCH 08/54] rollen test --- .../values.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index e2a16a5..aada734 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -98,18 +98,18 @@ theia-cloud: loadingText: "⚡ Setting up your development workspace..." footerLinks: attribution: - text: "Built by TUM LS1 Team 👨‍💻" - url: "https://aet.cit.tum.de/" + text: "Rollen" + url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" version: "Test3-v1.0.0" bugReport: - text: "Report a bug 🐛" - url: "https://github.com/ls1intum/theia-cloud/issues" + text: "Rollen" + url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" featureRequest: - text: "Request a feature ✨" - url: "https://github.com/ls1intum/theia-cloud/issues" + text: "Rollen" + url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" about: - text: "About" - url: "https://aet.cit.tum.de/" + text: "Rollen" + url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" keycloak: enable: true From 99e350ecf437f02479b8639ee9d009d352a1ed8e Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Thu, 19 Feb 2026 11:07:18 +0100 Subject: [PATCH 09/54] undo rollen --- .../values.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index aada734..bb873d0 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -67,7 +67,7 @@ theia-cloud: install: false landingPage: - # We use the try now page as landing page since the default does not support multiple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 + # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 image: ghcr.io/ls1intum/edutheia-landing-page # We can define a default blueprint @@ -98,18 +98,18 @@ theia-cloud: loadingText: "⚡ Setting up your development workspace..." footerLinks: attribution: - text: "Rollen" - url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" + text: "Built by TUM LS1 Team 👨‍💻" + url: "https://aet.cit.tum.de/" version: "Test3-v1.0.0" bugReport: - text: "Rollen" - url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" + text: "Report a bug 🐛" + url: "https://github.com/ls1intum/theia-cloud/issues" featureRequest: - text: "Rollen" - url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" + text: "Request a feature ✨" + url: "https://github.com/ls1intum/theia-cloud/issues" about: - text: "Rollen" - url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" + text: "About" + url: "https://aet.cit.tum.de/" keycloak: enable: true From e88558e4050a16db6c6b3b45a780fcadb18148c8 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Thu, 19 Feb 2026 11:11:51 +0100 Subject: [PATCH 10/54] all envs --- deployments/test1.theia-test.artemis.cit.tum.de/values.yaml | 4 ++-- deployments/test2.theia-test.artemis.cit.tum.de/values.yaml | 4 ++-- deployments/theia-staging.artemis.cit.tum.de/values.yaml | 4 ++-- deployments/theia.artemis.cit.tum.de/values.yaml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/deployments/test1.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test1.theia-test.artemis.cit.tum.de/values.yaml index 32a1c17..205b5c2 100644 --- a/deployments/test1.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test1.theia-test.artemis.cit.tum.de/values.yaml @@ -47,7 +47,7 @@ theia-cloud: preloading: images: - - ghcr.io/ls1intum/theia/landing-page:latest + - ghcr.io/ls1intum/edutheia-landing-page:latest - ghcr.io/ls1intum/theia/java-17:latest - ghcr.io/ls1intum/theia/c:latest - ghcr.io/ls1intum/theia/javascript:latest @@ -63,7 +63,7 @@ theia-cloud: landingPage: # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 - image: ghcr.io/ls1intum/theia/landing-page + image: ghcr.io/ls1intum/edutheia-landing-page # We can define a default blueprint appDefinition: "java-17-latest" ephemeralStorage: true diff --git a/deployments/test2.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test2.theia-test.artemis.cit.tum.de/values.yaml index a311873..b1df0cc 100644 --- a/deployments/test2.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test2.theia-test.artemis.cit.tum.de/values.yaml @@ -47,7 +47,7 @@ theia-cloud: preloading: images: - - ghcr.io/ls1intum/theia/landing-page:latest + - ghcr.io/ls1intum/edutheia-landing-page:latest - ghcr.io/ls1intum/theia/java-17:latest - ghcr.io/ls1intum/theia/c:latest - ghcr.io/ls1intum/theia/javascript:latest @@ -63,7 +63,7 @@ theia-cloud: landingPage: # We use the try now page as landing page since the default does not support multiple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 - image: ghcr.io/ls1intum/theia/landing-page + image: ghcr.io/ls1intum/edutheia-landing-page:latest # We can define a default blueprint appDefinition: "java-17-latest" ephemeralStorage: true diff --git a/deployments/theia-staging.artemis.cit.tum.de/values.yaml b/deployments/theia-staging.artemis.cit.tum.de/values.yaml index e26b45b..1d80856 100644 --- a/deployments/theia-staging.artemis.cit.tum.de/values.yaml +++ b/deployments/theia-staging.artemis.cit.tum.de/values.yaml @@ -47,7 +47,7 @@ theia-cloud: preloading: images: - - ghcr.io/ls1intum/theia/landing-page:latest + - ghcr.io/ls1intum/edutheia-landing-page:latest - ghcr.io/ls1intum/theia/java-17:latest - ghcr.io/ls1intum/theia/c:latest - ghcr.io/ls1intum/theia/javascript:latest @@ -63,7 +63,7 @@ theia-cloud: landingPage: # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 - image: ghcr.io/ls1intum/theia/landing-page + image: ghcr.io/ls1intum/edutheia-landing-page logoFileExtension: "png" # We can define a default blueprint appDefinition: "java-17-latest" diff --git a/deployments/theia.artemis.cit.tum.de/values.yaml b/deployments/theia.artemis.cit.tum.de/values.yaml index 60494c8..1078b9d 100644 --- a/deployments/theia.artemis.cit.tum.de/values.yaml +++ b/deployments/theia.artemis.cit.tum.de/values.yaml @@ -47,7 +47,7 @@ theia-cloud: preloading: images: - - ghcr.io/ls1intum/theia/landing-page:latest + - ghcr.io/ls1intum/edutheia-landing-page:latest - ghcr.io/ls1intum/theia/java-17:latest - ghcr.io/ls1intum/theia/c:latest - ghcr.io/ls1intum/theia/javascript:latest @@ -63,7 +63,7 @@ theia-cloud: landingPage: # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 - image: ghcr.io/ls1intum/theia/landing-page + image: ghcr.io/ls1intum/edutheia-landing-page logoFileExtension: "png" # We can define a default blueprint appDefinition: "java-17-latest" From a47e4acb59d05d22f38864f9daaf48e6d1850f58 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Fri, 20 Feb 2026 09:29:18 +0100 Subject: [PATCH 11/54] restore LS --- .../test3.theia-test.artemis.cit.tum.de/values.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index bb873d0..32e9598 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -59,6 +59,8 @@ theia-cloud: - ghcr.io/ls1intum/theia/ocaml:latest - ghcr.io/ls1intum/theia/rust:latest - ghcr.io/ls1intum/theia/python:latest + - ghcr.io/ls1intum/theia/theia-no-ls:pr-80 + - ghcr.io/ls1intum/theia/langserver-java:pr-80 imagePullPolicy: Always @@ -93,6 +95,8 @@ theia-cloud: label: Python rust-latest: label: Rust + java-ls-test: + label: Java LS Test infoTitle: "🚀 Welcome to Test3 IDE Environment" infoText: "This is a testing environment for Theia Cloud. Select your programming language and start coding in seconds!" loadingText: "⚡ Setting up your development workspace..." @@ -123,6 +127,13 @@ theia-cloud: # -- The client-id. Only has to be specified when enable: true clientId: "theia-test" +theia-appdefinitions: + apps: + - name: java-ls-test + image: ghcr.io/ls1intum/theia/theia-no-ls + imageTag: pr-80 + options: + langserver-image: ghcr.io/ls1intum/theia/langserver-java:pr-80 monitoring: targetNamespaces: From 865a6c746c663c898900315751106ac7dab32e11 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Wed, 18 Mar 2026 09:57:30 +0100 Subject: [PATCH 12/54] fix: correct image registry paths for operator, service and landing page - operator/service: ghcr.io/eduide/eduide-cloud/{operator,service} (from EduIDE-Cloud repo) - landing page: ghcr.io/EduIDE/eduidec-landing-page (from EduIDE-Landing-Page repo) - IDE images (java-17, c, rust, etc.): ghcr.io/eduide/eduide/... (from EduIDE repo) - unchanged --- .github/workflows/deploy-theia.yml | 4 ++-- charts/theia-cloud-combined/values.yaml | 4 ++-- deployments/test1.theia-test.artemis.cit.tum.de/values.yaml | 4 ++-- deployments/test2.theia-test.artemis.cit.tum.de/values.yaml | 4 ++-- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 4 ++-- deployments/theia-staging.artemis.cit.tum.de/values.yaml | 4 ++-- deployments/theia.artemis.cit.tum.de/values.yaml | 4 ++-- value-reference-files/tum-theia-cloud-helm-test-values.yaml | 4 ++-- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/deploy-theia.yml b/.github/workflows/deploy-theia.yml index ed32d6e..34a7901 100644 --- a/.github/workflows/deploy-theia.yml +++ b/.github/workflows/deploy-theia.yml @@ -250,8 +250,8 @@ jobs: # Only override Theia Cloud component images when a tag is explicitly provided if [ -n "${THEIA_CLOUD_TAG}" ]; then HELM_CMD+=( - --set theia-cloud.operator.image="ghcr.io/eduide/eduide/operator:${THEIA_CLOUD_TAG}" - --set theia-cloud.service.image="ghcr.io/eduide/eduide/service:${THEIA_CLOUD_TAG}" + --set theia-cloud.operator.image="ghcr.io/eduide/eduide-cloud/operator:${THEIA_CLOUD_TAG}" + --set theia-cloud.service.image="ghcr.io/eduide/eduide-cloud/service:${THEIA_CLOUD_TAG}" ) fi diff --git a/charts/theia-cloud-combined/values.yaml b/charts/theia-cloud-combined/values.yaml index cc92b94..e397d42 100644 --- a/charts/theia-cloud-combined/values.yaml +++ b/charts/theia-cloud-combined/values.yaml @@ -44,14 +44,14 @@ theia-cloud: interval: 3 operator: - image: ghcr.io/eduide/eduide/operator:latest + image: ghcr.io/eduide/eduide-cloud/operator:latest replicas: 1 sessionsPerUser: 10 storageClassName: csi-rbd-sc eagerStart: true service: - image: ghcr.io/eduide/eduide/service:latest + image: ghcr.io/eduide/eduide-cloud/service:latest # Public token (must match app.id or be set explicitly) authToken: nJV3nKZmpxTD4wu2 # Secret containing the admin API token, created by the theia-certificates chart diff --git a/deployments/test1.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test1.theia-test.artemis.cit.tum.de/values.yaml index 74cbbf3..e8cdbc7 100644 --- a/deployments/test1.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test1.theia-test.artemis.cit.tum.de/values.yaml @@ -43,14 +43,14 @@ theia-cloud: interval: 3 operator: - #image: ghcr.io/eduide/eduide/operator:latest + #image: ghcr.io/eduide/eduide-cloud/operator:latest #eagerStart: false replicas: 1 sessionsPerUser: 1000 # Needed for load tests - not recommended for production storageClassName: csi-rbd-sc # service: - # image: ghcr.io/eduide/eduide/service:latest + # image: ghcr.io/eduide/eduide-cloud/service:latest # adminApiTokenSecret: # name: service-admin-api-token # key: ADMIN_API_TOKEN diff --git a/deployments/test2.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test2.theia-test.artemis.cit.tum.de/values.yaml index 4d56a61..9e7c3f5 100644 --- a/deployments/test2.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test2.theia-test.artemis.cit.tum.de/values.yaml @@ -43,14 +43,14 @@ theia-cloud: interval: 3 operator: - #image: ghcr.io/eduide/eduide/operator:latest + #image: ghcr.io/eduide/eduide-cloud/operator:latest #eagerStart: false replicas: 1 sessionsPerUser: 10 storageClassName: csi-rbd-sc # service: - # image: ghcr.io/eduide/eduide/service:latest + # image: ghcr.io/eduide/eduide-cloud/service:latest # adminApiTokenSecret: # name: service-admin-api-token # key: ADMIN_API_TOKEN diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 7ec3091..8451cf5 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -43,7 +43,7 @@ theia-cloud: interval: 3 operator: - image: ghcr.io/eduide/eduide/operator:latest + image: ghcr.io/eduide/eduide-cloud/operator:latest #eagerStart: false replicas: 1 sessionsPerUser: 10 @@ -55,7 +55,7 @@ theia-cloud: ephemeral-storage: "256Mi" # service: - # image: ghcr.io/eduide/eduide/service:latest + # image: ghcr.io/eduide/eduide-cloud/service:latest # adminApiTokenSecret: # name: service-admin-api-token # key: ADMIN_API_TOKEN diff --git a/deployments/theia-staging.artemis.cit.tum.de/values.yaml b/deployments/theia-staging.artemis.cit.tum.de/values.yaml index 8f5dded..0502abf 100644 --- a/deployments/theia-staging.artemis.cit.tum.de/values.yaml +++ b/deployments/theia-staging.artemis.cit.tum.de/values.yaml @@ -42,14 +42,14 @@ theia-cloud: interval: 3 operator: - #image: ghcr.io/eduide/eduide/operator:latest + #image: ghcr.io/eduide/eduide-cloud/operator:latest #eagerStart: false replicas: 1 sessionsPerUser: 10 storageClassName: csi-rbd-sc # service: - # image: ghcr.io/eduide/eduide/service:latest + # image: ghcr.io/eduide/eduide-cloud/service:latest # adminApiTokenSecret: # name: service-admin-api-token # key: ADMIN_API_TOKEN diff --git a/deployments/theia.artemis.cit.tum.de/values.yaml b/deployments/theia.artemis.cit.tum.de/values.yaml index 15f0eaa..33e34a7 100644 --- a/deployments/theia.artemis.cit.tum.de/values.yaml +++ b/deployments/theia.artemis.cit.tum.de/values.yaml @@ -42,14 +42,14 @@ theia-cloud: interval: 3 operator: - #image: ghcr.io/eduide/eduide/operator:latest + #image: ghcr.io/eduide/eduide-cloud/operator:latest #eagerStart: false replicas: 3 sessionsPerUser: 10 storageClassName: csi-rbd-sc # service: - # image: ghcr.io/eduide/eduide/service:latest + # image: ghcr.io/eduide/eduide-cloud/service:latest # adminApiTokenSecret: # name: service-admin-api-token # key: ADMIN_API_TOKEN diff --git a/value-reference-files/tum-theia-cloud-helm-test-values.yaml b/value-reference-files/tum-theia-cloud-helm-test-values.yaml index c49a547..dd225ce 100644 --- a/value-reference-files/tum-theia-cloud-helm-test-values.yaml +++ b/value-reference-files/tum-theia-cloud-helm-test-values.yaml @@ -40,14 +40,14 @@ theia-cloud: interval: 3 operator: - image: ghcr.io/eduide/eduide/operator:pr-22 + image: ghcr.io/eduide/eduide-cloud/operator:pr-22 eagerStart: false replicas: 1 sessionsPerUser: 10 storageClassName: csi-rbd-sc service: - image: ghcr.io/eduide/eduide/service:pr-22 + image: ghcr.io/eduide/eduide-cloud/service:pr-22 adminApiTokenSecret: name: service-admin-api-token key: ADMIN_API_TOKEN From 7ae3a08f890934ad1d8ceab6802a804ec60fbca8 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Wed, 18 Mar 2026 10:21:05 +0100 Subject: [PATCH 13/54] fix: lowercase GHCR landing-page image references --- .github/workflows/deploy-theia.yml | 4 ++-- deployments/test1.theia-test.artemis.cit.tum.de/values.yaml | 4 ++-- deployments/test2.theia-test.artemis.cit.tum.de/values.yaml | 4 ++-- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 4 ++-- deployments/theia-staging.artemis.cit.tum.de/values.yaml | 4 ++-- deployments/theia.artemis.cit.tum.de/values.yaml | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/deploy-theia.yml b/.github/workflows/deploy-theia.yml index 34a7901..592353b 100644 --- a/.github/workflows/deploy-theia.yml +++ b/.github/workflows/deploy-theia.yml @@ -258,8 +258,8 @@ jobs: # Only override landing page image when a tag is explicitly provided if [ -n "${LANDING_PAGE_TAG}" ]; then HELM_CMD+=( - --set theia-cloud.landingPage.image="ghcr.io/EduIDE/eduidec-landing-page:${LANDING_PAGE_TAG}" - --set "theia-cloud.preloading.images[0]=ghcr.io/EduIDE/eduidec-landing-page:${LANDING_PAGE_TAG}" + --set theia-cloud.landingPage.image="ghcr.io/eduide/eduidec-landing-page:${LANDING_PAGE_TAG}" + --set "theia-cloud.preloading.images[0]=ghcr.io/eduide/eduidec-landing-page:${LANDING_PAGE_TAG}" ) fi diff --git a/deployments/test1.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test1.theia-test.artemis.cit.tum.de/values.yaml index e8cdbc7..d142c53 100644 --- a/deployments/test1.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test1.theia-test.artemis.cit.tum.de/values.yaml @@ -57,7 +57,7 @@ theia-cloud: preloading: images: - - ghcr.io/EduIDE/eduidec-landing-page:latest + - ghcr.io/eduide/eduidec-landing-page:latest - ghcr.io/eduide/eduide/java-17:latest - ghcr.io/eduide/eduide/c:latest - ghcr.io/eduide/eduide/javascript:latest @@ -73,7 +73,7 @@ theia-cloud: landingPage: # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 - image: ghcr.io/EduIDE/eduidec-landing-page + image: ghcr.io/eduide/eduidec-landing-page # We can define a default blueprint appDefinition: "java-17-latest" ephemeralStorage: true diff --git a/deployments/test2.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test2.theia-test.artemis.cit.tum.de/values.yaml index 9e7c3f5..6bf8d02 100644 --- a/deployments/test2.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test2.theia-test.artemis.cit.tum.de/values.yaml @@ -57,7 +57,7 @@ theia-cloud: preloading: images: - - ghcr.io/EduIDE/eduidec-landing-page:latest + - ghcr.io/eduide/eduidec-landing-page:latest - ghcr.io/eduide/eduide/java-17:latest - ghcr.io/eduide/eduide/c:latest - ghcr.io/eduide/eduide/javascript:latest @@ -73,7 +73,7 @@ theia-cloud: landingPage: # We use the try now page as landing page since the default does not support multiple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 - image: ghcr.io/EduIDE/eduidec-landing-page + image: ghcr.io/eduide/eduidec-landing-page # We can define a default blueprint appDefinition: "java-17-latest" ephemeralStorage: true diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 8451cf5..1199741 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -62,7 +62,7 @@ theia-cloud: preloading: images: - - ghcr.io/EduIDE/eduidec-landing-page:latest + - ghcr.io/eduide/eduidec-landing-page:latest - ghcr.io/eduide/eduide/java-17:latest - ghcr.io/eduide/eduide/c:latest - ghcr.io/eduide/eduide/javascript:latest @@ -80,7 +80,7 @@ theia-cloud: landingPage: # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 - image: ghcr.io/EduIDE/eduidec-landing-page + image: ghcr.io/eduide/eduidec-landing-page # We can define a default blueprint # 1. The actual image data (Must be a Base64 encoded string) diff --git a/deployments/theia-staging.artemis.cit.tum.de/values.yaml b/deployments/theia-staging.artemis.cit.tum.de/values.yaml index 0502abf..5be9f02 100644 --- a/deployments/theia-staging.artemis.cit.tum.de/values.yaml +++ b/deployments/theia-staging.artemis.cit.tum.de/values.yaml @@ -56,7 +56,7 @@ theia-cloud: preloading: images: - - ghcr.io/EduIDE/eduidec-landing-page:latest + - ghcr.io/eduide/eduidec-landing-page:latest - ghcr.io/eduide/eduide/java-17:latest - ghcr.io/eduide/eduide/c:latest - ghcr.io/eduide/eduide/javascript:latest @@ -72,7 +72,7 @@ theia-cloud: landingPage: # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 - image: ghcr.io/EduIDE/eduidec-landing-page + image: ghcr.io/eduide/eduidec-landing-page logoFileExtension: "png" # We can define a default blueprint appDefinition: "java-17-latest" diff --git a/deployments/theia.artemis.cit.tum.de/values.yaml b/deployments/theia.artemis.cit.tum.de/values.yaml index 33e34a7..0b90d9d 100644 --- a/deployments/theia.artemis.cit.tum.de/values.yaml +++ b/deployments/theia.artemis.cit.tum.de/values.yaml @@ -56,7 +56,7 @@ theia-cloud: preloading: images: - - ghcr.io/EduIDE/eduidec-landing-page:latest + - ghcr.io/eduide/eduidec-landing-page:latest - ghcr.io/eduide/eduide/java-17:latest - ghcr.io/eduide/eduide/c:latest - ghcr.io/eduide/eduide/javascript:latest @@ -72,7 +72,7 @@ theia-cloud: landingPage: # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 - image: ghcr.io/EduIDE/eduidec-landing-page + image: ghcr.io/eduide/eduidec-landing-page logoFileExtension: "png" # We can define a default blueprint appDefinition: "java-17-latest" From 6a53fe846d7f9c3bc2e2753cd79a227e308702ff Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Wed, 18 Mar 2026 10:50:43 +0100 Subject: [PATCH 14/54] fix: align landing-page defaults with standalone image path --- charts/theia-cloud-combined/values.yaml | 4 ++-- value-reference-files/theia-cloud-helm-values.yml | 4 ++-- value-reference-files/tum-theia-cloud-helm-test-values.yaml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/charts/theia-cloud-combined/values.yaml b/charts/theia-cloud-combined/values.yaml index e397d42..1b77ae2 100644 --- a/charts/theia-cloud-combined/values.yaml +++ b/charts/theia-cloud-combined/values.yaml @@ -61,7 +61,7 @@ theia-cloud: preloading: images: - - ghcr.io/eduide/eduide/landing-page:latest + - ghcr.io/eduide/eduidec-landing-page:latest - ghcr.io/eduide/eduide/java-17:latest - ghcr.io/eduide/eduide/c:latest - ghcr.io/eduide/eduide/javascript:latest @@ -77,7 +77,7 @@ theia-cloud: landingPage: # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 - image: ghcr.io/eduide/eduide/landing-page:latest + image: ghcr.io/eduide/eduidec-landing-page:latest # We can define a default blueprint appDefinition: "java-17-latest" ephemeralStorage: false diff --git a/value-reference-files/theia-cloud-helm-values.yml b/value-reference-files/theia-cloud-helm-values.yml index c102985..b1f5dcc 100644 --- a/value-reference-files/theia-cloud-helm-values.yml +++ b/value-reference-files/theia-cloud-helm-values.yml @@ -45,7 +45,7 @@ service: preloading: images: - - ghcr.io/eduide/eduide/landing-page:latest + - ghcr.io/eduide/eduidec-landing-page:latest - ghcr.io/eduide/eduide/java-17:latest - ghcr.io/eduide/eduide/c:latest - ghcr.io/eduide/eduide/javascript:latest @@ -61,7 +61,7 @@ demoApplication: landingPage: # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 - image: ghcr.io/eduide/eduide/landing-page + image: ghcr.io/eduide/eduidec-landing-page # We can define a default blueprint appDefinition: "java-17-latest" ephemeralStorage: true diff --git a/value-reference-files/tum-theia-cloud-helm-test-values.yaml b/value-reference-files/tum-theia-cloud-helm-test-values.yaml index dd225ce..e090f58 100644 --- a/value-reference-files/tum-theia-cloud-helm-test-values.yaml +++ b/value-reference-files/tum-theia-cloud-helm-test-values.yaml @@ -54,7 +54,7 @@ theia-cloud: preloading: images: - - ghcr.io/eduide/eduide/landing-page:latest + - ghcr.io/eduide/eduidec-landing-page:latest - ghcr.io/eduide/eduide/java-17:latest - ghcr.io/eduide/eduide/c:latest - ghcr.io/eduide/eduide/javascript:latest @@ -70,7 +70,7 @@ theia-cloud: landingPage: # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 - image: ghcr.io/eduide/eduide/landing-page + image: ghcr.io/eduide/eduidec-landing-page # We can define a default blueprint appDefinition: "java-17-latest" ephemeralStorage: false From d364437271329d6ace7eeee645785a57c2e91741 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Wed, 18 Mar 2026 11:13:51 +0100 Subject: [PATCH 15/54] fix: revert out-of-scope test3 pr-tag bumps --- .../test3.theia-test.artemis.cit.tum.de/values.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 1199741..b096494 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -69,8 +69,8 @@ theia-cloud: - ghcr.io/eduide/eduide/ocaml:latest - ghcr.io/eduide/eduide/rust:latest - ghcr.io/eduide/eduide/python:latest - - ghcr.io/eduide/eduide/theia-no-ls:pr-80 - - ghcr.io/eduide/eduide/langserver-java:pr-80 + - ghcr.io/eduide/eduide/theia-no-ls:pr-46 + - ghcr.io/eduide/eduide/langserver-java:pr-46 imagePullPolicy: Always @@ -141,9 +141,9 @@ theia-appdefinitions: apps: - name: java-ls-test image: ghcr.io/eduide/eduide/theia-no-ls - imageTag: pr-80 + imageTag: pr-46 options: - langserver-image: ghcr.io/eduide/eduide/langserver-java:pr-80 + langserver-image: ghcr.io/eduide/eduide/langserver-java:pr-46 monitoring: targetNamespaces: From 21f525422ea3e6f70991619de736e65a7b1737a3 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Thu, 19 Mar 2026 12:25:38 +0100 Subject: [PATCH 16/54] feat: configure ARC runners with GitHub backup execution mode for all deployment workflows --- .github/workflows/deploy-pr.yml | 7 +++++++ .github/workflows/deploy-production.yml | 6 ++++++ .github/workflows/deploy-staging.yml | 6 ++++++ .github/workflows/deploy-theia.yml | 7 ++++++- 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy-pr.yml b/.github/workflows/deploy-pr.yml index 3aa6354..3f93bcb 100644 --- a/.github/workflows/deploy-pr.yml +++ b/.github/workflows/deploy-pr.yml @@ -37,6 +37,10 @@ on: description: 'Preview OCI tag from theia-cloud-helm to use (for example pr-123)' required: false default: '' + execution_mode: + description: 'Runner backend to use (self-hosted-buildkit or github-runners)' + required: false + default: 'self-hosted-buildkit' jobs: # Job 1: Deploy to Test1 environment @@ -53,6 +57,7 @@ jobs: landing_page_tag: ${{ inputs.landing_page_tag }} ide_images_tag: ${{ inputs.ide_images_tag }} helm_chart_tag: ${{ inputs.helm_chart_tag || '' }} + execution_mode: ${{ inputs.execution_mode || 'self-hosted-buildkit' }} deploy_shared_gateway: false shared_gateway_values_file: deployments/shared-gateway/values.yaml shared_gateway_namespace: gateway-system @@ -72,6 +77,7 @@ jobs: landing_page_tag: ${{ inputs.landing_page_tag }} ide_images_tag: ${{ inputs.ide_images_tag }} helm_chart_tag: ${{ inputs.helm_chart_tag || '' }} + execution_mode: ${{ inputs.execution_mode || 'self-hosted-buildkit' }} deploy_shared_gateway: false shared_gateway_values_file: deployments/shared-gateway/values.yaml shared_gateway_namespace: gateway-system @@ -91,6 +97,7 @@ jobs: landing_page_tag: ${{ inputs.landing_page_tag }} ide_images_tag: ${{ inputs.ide_images_tag }} helm_chart_tag: ${{ inputs.helm_chart_tag || '' }} + execution_mode: ${{ inputs.execution_mode || 'self-hosted-buildkit' }} deploy_shared_gateway: false shared_gateway_values_file: deployments/shared-gateway/values.yaml shared_gateway_namespace: gateway-system diff --git a/.github/workflows/deploy-production.yml b/.github/workflows/deploy-production.yml index ce00032..0166829 100644 --- a/.github/workflows/deploy-production.yml +++ b/.github/workflows/deploy-production.yml @@ -42,6 +42,11 @@ name: Deploy Production on: workflow_dispatch: + inputs: + execution_mode: + description: 'Runner backend to use (self-hosted-buildkit or github-runners)' + required: false + default: 'self-hosted-buildkit' jobs: deploy: @@ -51,6 +56,7 @@ jobs: uses: ./.github/workflows/deploy-theia.yml with: environment: theia-prod + execution_mode: ${{ inputs.execution_mode || 'self-hosted-buildkit' }} deploy_shared_gateway: true shared_gateway_values_file: deployments/shared-gateway-prod/values.yaml shared_gateway_namespace: gateway-system diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index e7de0b9..2a6d9cc 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -33,6 +33,11 @@ on: branches: - main workflow_dispatch: + inputs: + execution_mode: + description: 'Runner backend to use (self-hosted-buildkit or github-runners)' + required: false + default: 'self-hosted-buildkit' jobs: deploy: @@ -42,6 +47,7 @@ jobs: uses: ./.github/workflows/deploy-theia.yml with: environment: theia-staging + execution_mode: ${{ inputs.execution_mode || 'self-hosted-buildkit' }} deploy_shared_gateway: true shared_gateway_values_file: deployments/shared-gateway/values.yaml shared_gateway_namespace: gateway-system diff --git a/.github/workflows/deploy-theia.yml b/.github/workflows/deploy-theia.yml index 592353b..cd79a8e 100644 --- a/.github/workflows/deploy-theia.yml +++ b/.github/workflows/deploy-theia.yml @@ -80,6 +80,11 @@ on: required: false type: string default: "gateway-system" + execution_mode: + description: "Runner backend to use for deploy job" + required: false + type: string + default: "self-hosted-buildkit" jobs: helm-install: @@ -87,7 +92,7 @@ jobs: permissions: contents: read packages: read - runs-on: ubuntu-latest + runs-on: ${{ inputs.execution_mode == 'github-runners' && 'ubuntu-latest' || 'arc-buildkit-eduide-amd64' }} # Link to GitHub Environment for secrets and protection rules environment: ${{ inputs.environment }} From 985715d531249dd183c785bb8cbe9cdac43ff44d Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Thu, 19 Mar 2026 13:13:56 +0100 Subject: [PATCH 17/54] fix(ci): retry Helm base/CRD install on 'release already exists' race --- .github/workflows/deploy-theia.yml | 43 ++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-theia.yml b/.github/workflows/deploy-theia.yml index 187e1bb..760ac71 100644 --- a/.github/workflows/deploy-theia.yml +++ b/.github/workflows/deploy-theia.yml @@ -180,6 +180,45 @@ jobs: run: | set -euo pipefail + helm_upgrade_with_retry() { + local release="$1" + shift + + local max_retries=6 + local delay_seconds=10 + local attempt=1 + local output + local status + + while true; do + set +e + output="$(helm upgrade "$release" "$@" --install --wait 2>&1)" + status=$? + set -e + + if [ "$status" -eq 0 ]; then + echo "$output" + return 0 + fi + + if [ "$attempt" -ge "$max_retries" ]; then + echo "$output" + return "$status" + fi + + if echo "$output" | grep -Eq "release: already exists|another operation \(install/upgrade/rollback\) is in progress"; then + echo "$output" + echo "Helm race detected for release '$release' (attempt ${attempt}/${max_retries}), retrying in ${delay_seconds}s..." + sleep "$delay_seconds" + attempt=$((attempt + 1)) + continue + fi + + echo "$output" + return "$status" + done + } + THEIA_CLOUD_BASE_VERSION="1.4.0-next.0" THEIA_CLOUD_CRDS_VERSION="1.2.0-next.1" @@ -197,10 +236,10 @@ jobs: THEIA_CLOUD_CRDS_CHART=oci://ghcr.io/eduide/charts/theia-cloud-crds # Install base components (operator base, metrics, etc.) - helm upgrade theia-cloud-base "$THEIA_CLOUD_BASE_CHART" --version "$THEIA_CLOUD_BASE_VERSION" --install -n default -f ${{ vars.HELM_VALUES_PATH }}/theia-base-helm-values.yml + helm_upgrade_with_retry theia-cloud-base "$THEIA_CLOUD_BASE_CHART" --version "$THEIA_CLOUD_BASE_VERSION" -n default -f ${{ vars.HELM_VALUES_PATH }}/theia-base-helm-values.yml # Install Custom Resource Definitions (CRDs) for Theia Cloud - helm upgrade theia-cloud-crds "$THEIA_CLOUD_CRDS_CHART" --version "$THEIA_CLOUD_CRDS_VERSION" --install -n default -f ${{ vars.HELM_VALUES_PATH }}/theia-crds-helm-values.yml + helm_upgrade_with_retry theia-cloud-crds "$THEIA_CLOUD_CRDS_CHART" --version "$THEIA_CLOUD_CRDS_VERSION" -n default -f ${{ vars.HELM_VALUES_PATH }}/theia-crds-helm-values.yml - name: Install cluster-wide monitoring env: From 79858a9671a5ea4c9244ee59a87a6ff11cdadbac Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Thu, 19 Mar 2026 13:24:33 +0100 Subject: [PATCH 18/54] fix(ci): remove duplicate execution_mode keys in deploy-pr.yml workflow --- .github/workflows/deploy-pr.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/deploy-pr.yml b/.github/workflows/deploy-pr.yml index 7c6834a..f6d3c0b 100644 --- a/.github/workflows/deploy-pr.yml +++ b/.github/workflows/deploy-pr.yml @@ -45,10 +45,6 @@ on: description: 'Preview OCI tag from theia-cloud-helm to use (for example pr-123)' required: false default: '' - execution_mode: - description: 'Runner backend to use (self-hosted-buildkit or github-runners)' - required: false - default: 'self-hosted-buildkit' jobs: # Job 1: Deploy to Test1 environment @@ -66,7 +62,6 @@ jobs: ide_images_tag: ${{ inputs.ide_images_tag }} execution_mode: ${{ inputs.execution_mode || 'self-hosted-buildkit' }} helm_chart_tag: ${{ inputs.helm_chart_tag || '' }} - execution_mode: ${{ inputs.execution_mode || 'self-hosted-buildkit' }} deploy_shared_gateway: false shared_gateway_values_file: deployments/shared-gateway/values.yaml shared_gateway_namespace: gateway-system @@ -87,7 +82,6 @@ jobs: ide_images_tag: ${{ inputs.ide_images_tag }} execution_mode: ${{ inputs.execution_mode || 'self-hosted-buildkit' }} helm_chart_tag: ${{ inputs.helm_chart_tag || '' }} - execution_mode: ${{ inputs.execution_mode || 'self-hosted-buildkit' }} deploy_shared_gateway: false shared_gateway_values_file: deployments/shared-gateway/values.yaml shared_gateway_namespace: gateway-system @@ -108,7 +102,6 @@ jobs: ide_images_tag: ${{ inputs.ide_images_tag }} execution_mode: ${{ inputs.execution_mode || 'self-hosted-buildkit' }} helm_chart_tag: ${{ inputs.helm_chart_tag || '' }} - execution_mode: ${{ inputs.execution_mode || 'self-hosted-buildkit' }} deploy_shared_gateway: false shared_gateway_values_file: deployments/shared-gateway/values.yaml shared_gateway_namespace: gateway-system From 5096fd565300d4381c6b20767d3cae0b3b4a9587 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Fri, 20 Mar 2026 17:26:10 +0100 Subject: [PATCH 19/54] fix: disable keycloak on test3 for benchmark runs --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 21156f4..f8110a4 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -119,7 +119,7 @@ theia-cloud: url: "https://aet.cit.tum.de/" keycloak: - enable: true + enable: false # -- Key cloak auth URL. Only has to be specified when enable: true authUrl: "https://keycloak.ase.in.tum.de/" From 8d6b04e6f242be0e6fcf15dfc942c2e93dc78489 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Fri, 20 Mar 2026 17:31:52 +0100 Subject: [PATCH 20/54] =?UTF-8?q?h=C3=A4=3F=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index f8110a4..f615739 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -125,10 +125,10 @@ theia-cloud: authUrl: "https://keycloak.ase.in.tum.de/" # -- The Keycloak Realm. Only has to be specified when enable: true - realm: "Test" + realm: "" # -- The client-id. Only has to be specified when enable: true - clientId: "theia-test" + clientId: "" theia-appdefinitions: defaultImageTag: pr-70 From 792f4bd9a73bf558e41a7c856000d07b4df03f7d Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Fri, 20 Mar 2026 18:16:53 +0100 Subject: [PATCH 21/54] correct image tag --- .../values.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index f615739..fc3508b 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -63,17 +63,17 @@ theia-cloud: preloading: images: - - ghcr.io/eduide/eduide-cloud/landing-page:pr-70 + - ghcr.io/eduide/eduide-cloud/landing-page:latest - ghcr.io/eduide/eduide/java-17:latest - ghcr.io/eduide/eduide/c:latest - ghcr.io/eduide/eduide/javascript:latest - ghcr.io/eduide/eduide/ocaml:latest - ghcr.io/eduide/eduide/rust:latest - ghcr.io/eduide/eduide/python:latest - - ghcr.io/eduide/eduide/java-17-no-ls:pr-70 - - ghcr.io/eduide/eduide/rust-no-ls:pr-70 - - ghcr.io/eduide/eduide/langserver-java:pr-70 - - ghcr.io/eduide/eduide/langserver-rust:pr-70 + - ghcr.io/eduide/eduide/java-17-no-ls:latest + - ghcr.io/eduide/eduide/rust-no-ls:latest + - ghcr.io/eduide/eduide/langserver-java:latest + - ghcr.io/eduide/eduide/langserver-rust:latest imagePullPolicy: Always @@ -83,7 +83,7 @@ theia-cloud: landingPage: # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 - image: ghcr.io/eduide/eduide-cloud/landing-page:pr-70 + image: ghcr.io/eduide/eduide-cloud/landing-page:latest # We can define a default blueprint # 1. The actual image data (Must be a Base64 encoded string) @@ -131,7 +131,7 @@ theia-cloud: clientId: "" theia-appdefinitions: - defaultImageTag: pr-70 + defaultImageTag: latest apps: - name: java-17-no-ls image: ghcr.io/eduide/eduide/java-17-no-ls From ca037ce43d792a8d35d8efedcebd3fa525e5e5fd Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sat, 21 Mar 2026 12:31:36 +0100 Subject: [PATCH 22/54] use pr images --- .../values.yaml | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index fc3508b..db6c208 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -64,16 +64,16 @@ theia-cloud: preloading: images: - ghcr.io/eduide/eduide-cloud/landing-page:latest - - ghcr.io/eduide/eduide/java-17:latest - - ghcr.io/eduide/eduide/c:latest - - ghcr.io/eduide/eduide/javascript:latest - - ghcr.io/eduide/eduide/ocaml:latest - - ghcr.io/eduide/eduide/rust:latest - - ghcr.io/eduide/eduide/python:latest - - ghcr.io/eduide/eduide/java-17-no-ls:latest - - ghcr.io/eduide/eduide/rust-no-ls:latest - - ghcr.io/eduide/eduide/langserver-java:latest - - ghcr.io/eduide/eduide/langserver-rust:latest + - ghcr.io/eduide/eduide/java-17:pr-125 + - ghcr.io/eduide/eduide/c:pr-125 + - ghcr.io/eduide/eduide/javascript:pr-125 + - ghcr.io/eduide/eduide/ocaml:pr-125 + - ghcr.io/eduide/eduide/rust:pr-125 + - ghcr.io/eduide/eduide/python:pr-125 + - ghcr.io/eduide/eduide/java-17-no-ls:pr-125 + - ghcr.io/eduide/eduide/rust-no-ls:pr-125 + - ghcr.io/eduide/eduide/langserver-java:pr-125 + - ghcr.io/eduide/eduide/langserver-rust:pr-125 imagePullPolicy: Always @@ -131,7 +131,7 @@ theia-cloud: clientId: "" theia-appdefinitions: - defaultImageTag: latest + defaultImageTag: pr-125 apps: - name: java-17-no-ls image: ghcr.io/eduide/eduide/java-17-no-ls @@ -142,6 +142,9 @@ theia-appdefinitions: port: 5000 languages: [java] mountWorkspace: true + - name: java-17 + image: ghcr.io/eduide/eduide/java-17 + minInstances: 1 - name: rust-no-ls image: ghcr.io/eduide/eduide/rust-no-ls minInstances: 1 From 104825f70b495b5f8e7381bc3215e45058acc72d Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sat, 21 Mar 2026 12:36:54 +0100 Subject: [PATCH 23/54] java-17-latest --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index db6c208..ec5c30f 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -142,7 +142,7 @@ theia-appdefinitions: port: 5000 languages: [java] mountWorkspace: true - - name: java-17 + - name: java-17-latest image: ghcr.io/eduide/eduide/java-17 minInstances: 1 - name: rust-no-ls From 7bdbd38a20c28095d590e3a01ac1aa55651a35ec Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sat, 21 Mar 2026 12:37:40 +0100 Subject: [PATCH 24/54] no sidecar --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index ec5c30f..711244d 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -97,9 +97,9 @@ theia-cloud: ephemeralStorage: true additionalApps: java-17-no-ls: - label: Java 17 No-LS (Sidecar) + label: Java 17 No-LS rust-no-ls: - label: Rust No-LS (Sidecar) + label: Rust No-LS infoTitle: "🚀 Welcome to Test3 IDE Environment" infoText: "Test environment for Theia with external language server architecture (PR #70). The IDE runs separately from the language server for improved performance and modularity." loadingText: "⚡ Setting up your development workspace..." From 42d10110e988d5cd934c96c8c08c6f53b0f0a089 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sat, 21 Mar 2026 16:52:04 +0100 Subject: [PATCH 25/54] feat(ci): add optional clean install workflow toggle --- .github/workflows/deploy-pr.yml | 8 +++ .github/workflows/deploy-theia.yml | 82 ++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) diff --git a/.github/workflows/deploy-pr.yml b/.github/workflows/deploy-pr.yml index f6d3c0b..efdb4c0 100644 --- a/.github/workflows/deploy-pr.yml +++ b/.github/workflows/deploy-pr.yml @@ -45,6 +45,11 @@ on: description: 'Preview OCI tag from theia-cloud-helm to use (for example pr-123)' required: false default: '' + clean_install: + description: 'If true, performs namespace-scoped clean install routine after deployment (delete sessions, scale appdefinitions minInstances to 0 temporarily, then restore).' + required: false + default: false + type: boolean jobs: # Job 1: Deploy to Test1 environment @@ -62,6 +67,7 @@ jobs: ide_images_tag: ${{ inputs.ide_images_tag }} execution_mode: ${{ inputs.execution_mode || 'self-hosted-buildkit' }} helm_chart_tag: ${{ inputs.helm_chart_tag || '' }} + clean_install: ${{ github.event_name == 'workflow_dispatch' && (inputs.clean_install || false) }} deploy_shared_gateway: false shared_gateway_values_file: deployments/shared-gateway/values.yaml shared_gateway_namespace: gateway-system @@ -82,6 +88,7 @@ jobs: ide_images_tag: ${{ inputs.ide_images_tag }} execution_mode: ${{ inputs.execution_mode || 'self-hosted-buildkit' }} helm_chart_tag: ${{ inputs.helm_chart_tag || '' }} + clean_install: ${{ github.event_name == 'workflow_dispatch' && (inputs.clean_install || false) }} deploy_shared_gateway: false shared_gateway_values_file: deployments/shared-gateway/values.yaml shared_gateway_namespace: gateway-system @@ -102,6 +109,7 @@ jobs: ide_images_tag: ${{ inputs.ide_images_tag }} execution_mode: ${{ inputs.execution_mode || 'self-hosted-buildkit' }} helm_chart_tag: ${{ inputs.helm_chart_tag || '' }} + clean_install: ${{ github.event_name == 'workflow_dispatch' && (inputs.clean_install || false) }} deploy_shared_gateway: false shared_gateway_values_file: deployments/shared-gateway/values.yaml shared_gateway_namespace: gateway-system diff --git a/.github/workflows/deploy-theia.yml b/.github/workflows/deploy-theia.yml index 7ca3fa0..ea01b66 100644 --- a/.github/workflows/deploy-theia.yml +++ b/.github/workflows/deploy-theia.yml @@ -85,6 +85,11 @@ on: required: false type: string default: "self-hosted-buildkit" + clean_install: + description: "If true, perform clean install routine in target namespace after Helm deployment" + required: false + type: boolean + default: false jobs: helm-install: @@ -250,6 +255,7 @@ jobs: env: KUBECONFIG: ${{ github.workspace }}/kubeconfig run: | + set -euo pipefail # Install cluster-wide monitoring (PodMonitors + Grafana Dashboards) # This is installed once per cluster, not per environment @@ -351,3 +357,79 @@ jobs: # --create-namespace: Create the namespace if it doesn't exist # Image tag overrides are applied only when non-empty; otherwise values.yaml settings are preserved "${HELM_CMD[@]}" + + - name: Clean install - snapshot AppDefinitions minInstances + if: inputs.clean_install && github.event_name == 'workflow_dispatch' + env: + KUBECONFIG: ${{ github.workspace }}/kubeconfig + run: | + set -euo pipefail + + NAMESPACE="${{ vars.NAMESPACE }}" + SNAPSHOT_FILE="appdefinition-mininstances-snapshot.txt" + + kubectl get appdefinitions -n "$NAMESPACE" -o json \ + | jq -r '.items[] | "\(.metadata.name) \(.spec.minInstances // 0)"' > "$SNAPSHOT_FILE" + + echo "Saved minInstances snapshot:" + cat "$SNAPSHOT_FILE" + + - name: Clean install - scale AppDefinitions down and purge sessions + if: inputs.clean_install && github.event_name == 'workflow_dispatch' + env: + KUBECONFIG: ${{ github.workspace }}/kubeconfig + run: | + set -euo pipefail + + NAMESPACE="${{ vars.NAMESPACE }}" + SNAPSHOT_FILE="appdefinition-mininstances-snapshot.txt" + + if [ ! -s "$SNAPSHOT_FILE" ]; then + echo "No AppDefinition snapshot file found. Nothing to scale down." + else + while read -r APPDEF_NAME _; do + [ -n "$APPDEF_NAME" ] || continue + kubectl patch appdefinitions "$APPDEF_NAME" -n "$NAMESPACE" --type=merge -p '{"spec":{"minInstances":0}}' + done < "$SNAPSHOT_FILE" + fi + + # Delete active session resources if these CRDs are installed (namespace-scoped only) + RESOURCE_LIST="$(kubectl api-resources --namespaced=true -o name)" + if echo "$RESOURCE_LIST" | grep -qx "session"; then + kubectl delete session --all -n "$NAMESPACE" --ignore-not-found=true + fi + if echo "$RESOURCE_LIST" | grep -qx "sessions"; then + kubectl delete sessions --all -n "$NAMESPACE" --ignore-not-found=true + fi + if echo "$RESOURCE_LIST" | grep -qx "workspace"; then + kubectl delete workspace --all -n "$NAMESPACE" --ignore-not-found=true + fi + if echo "$RESOURCE_LIST" | grep -qx "workspaces"; then + kubectl delete workspaces --all -n "$NAMESPACE" --ignore-not-found=true + fi + + echo "Waiting 60 seconds before restoring minInstances..." + sleep 60 + + - name: Clean install - restore AppDefinitions minInstances + if: always() && inputs.clean_install && github.event_name == 'workflow_dispatch' + env: + KUBECONFIG: ${{ github.workspace }}/kubeconfig + run: | + set -euo pipefail + + NAMESPACE="${{ vars.NAMESPACE }}" + SNAPSHOT_FILE="appdefinition-mininstances-snapshot.txt" + + if [ ! -s "$SNAPSHOT_FILE" ]; then + echo "No snapshot file to restore. Skipping restore step." + exit 0 + fi + + while read -r APPDEF_NAME MIN_INSTANCES; do + [ -n "$APPDEF_NAME" ] || continue + RESTORE_VALUE="${MIN_INSTANCES:-0}" + kubectl patch appdefinitions "$APPDEF_NAME" -n "$NAMESPACE" --type=merge -p "{\"spec\":{\"minInstances\":${RESTORE_VALUE}}}" + done < "$SNAPSHOT_FILE" + + echo "Restored AppDefinition minInstances from snapshot." From ab9102b133ade48a2d817b0d3e898864870605a1 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sat, 21 Mar 2026 17:07:09 +0100 Subject: [PATCH 26/54] feat(ci): make clean install perform namespace purge before deploy --- .github/workflows/deploy-pr.yml | 2 +- .github/workflows/deploy-theia.yml | 120 +++++++++++------------------ 2 files changed, 44 insertions(+), 78 deletions(-) diff --git a/.github/workflows/deploy-pr.yml b/.github/workflows/deploy-pr.yml index efdb4c0..61d1dba 100644 --- a/.github/workflows/deploy-pr.yml +++ b/.github/workflows/deploy-pr.yml @@ -46,7 +46,7 @@ on: required: false default: '' clean_install: - description: 'If true, performs namespace-scoped clean install routine after deployment (delete sessions, scale appdefinitions minInstances to 0 temporarily, then restore).' + description: 'Clean Install: If true, perform namespace-scoped cleanup before install (delete sessions/workspaces, appdefinitions, deployments, daemonsets, statefulsets, PVCs), then wait 60s.' required: false default: false type: boolean diff --git a/.github/workflows/deploy-theia.yml b/.github/workflows/deploy-theia.yml index ea01b66..cd2dfc6 100644 --- a/.github/workflows/deploy-theia.yml +++ b/.github/workflows/deploy-theia.yml @@ -86,7 +86,7 @@ on: type: string default: "self-hosted-buildkit" clean_install: - description: "If true, perform clean install routine in target namespace after Helm deployment" + description: "If true, perform namespace-scoped cleanup before Helm install" required: false type: boolean default: false @@ -282,6 +282,48 @@ jobs: --set wildcardTLSSecret.certificate="$(cat shared-gateway-wildcard.crt)" \ --set wildcardTLSSecret.key="$(cat shared-gateway-wildcard.key)" + - name: Clean install - namespace-scoped resource purge + if: inputs.clean_install && github.event_name == 'workflow_dispatch' + env: + KUBECONFIG: ${{ github.workspace }}/kubeconfig + run: | + set -euo pipefail + + NAMESPACE="${{ vars.NAMESPACE }}" + + # Delete active session resources first if these CRDs exist + RESOURCE_LIST="$(kubectl api-resources --namespaced=true -o name)" + if echo "$RESOURCE_LIST" | grep -qx "session"; then + kubectl delete session --all -n "$NAMESPACE" --ignore-not-found=true + fi + if echo "$RESOURCE_LIST" | grep -qx "sessions"; then + kubectl delete sessions --all -n "$NAMESPACE" --ignore-not-found=true + fi + if echo "$RESOURCE_LIST" | grep -qx "workspace"; then + kubectl delete workspace --all -n "$NAMESPACE" --ignore-not-found=true + fi + if echo "$RESOURCE_LIST" | grep -qx "workspaces"; then + kubectl delete workspaces --all -n "$NAMESPACE" --ignore-not-found=true + fi + + # Delete AppDefinitions for a full clean slate + kubectl delete appdefinitions --all -n "$NAMESPACE" --ignore-not-found=true + + # Delete namespace workloads + kubectl delete deployments --all -n "$NAMESPACE" --ignore-not-found=true + kubectl delete daemonsets --all -n "$NAMESPACE" --ignore-not-found=true + kubectl delete statefulsets --all -n "$NAMESPACE" --ignore-not-found=true + + # Wait until workload pods terminate (best effort) + kubectl wait --for=delete pod --all -n "$NAMESPACE" --timeout=120s || true + + # Delete PVCs associated with this namespace + kubectl delete pvc --all -n "$NAMESPACE" --ignore-not-found=true + + # Mandatory pause after cleanup + echo "Clean install purge complete. Waiting 60 seconds before Helm install..." + sleep 60 + # Step 6: Install the main Theia Cloud application with environment-specific configuration # This includes the operator, service, certificates, and app definitions - name: Install Theia Cloud in namespace ${{ vars.NAMESPACE }} @@ -357,79 +399,3 @@ jobs: # --create-namespace: Create the namespace if it doesn't exist # Image tag overrides are applied only when non-empty; otherwise values.yaml settings are preserved "${HELM_CMD[@]}" - - - name: Clean install - snapshot AppDefinitions minInstances - if: inputs.clean_install && github.event_name == 'workflow_dispatch' - env: - KUBECONFIG: ${{ github.workspace }}/kubeconfig - run: | - set -euo pipefail - - NAMESPACE="${{ vars.NAMESPACE }}" - SNAPSHOT_FILE="appdefinition-mininstances-snapshot.txt" - - kubectl get appdefinitions -n "$NAMESPACE" -o json \ - | jq -r '.items[] | "\(.metadata.name) \(.spec.minInstances // 0)"' > "$SNAPSHOT_FILE" - - echo "Saved minInstances snapshot:" - cat "$SNAPSHOT_FILE" - - - name: Clean install - scale AppDefinitions down and purge sessions - if: inputs.clean_install && github.event_name == 'workflow_dispatch' - env: - KUBECONFIG: ${{ github.workspace }}/kubeconfig - run: | - set -euo pipefail - - NAMESPACE="${{ vars.NAMESPACE }}" - SNAPSHOT_FILE="appdefinition-mininstances-snapshot.txt" - - if [ ! -s "$SNAPSHOT_FILE" ]; then - echo "No AppDefinition snapshot file found. Nothing to scale down." - else - while read -r APPDEF_NAME _; do - [ -n "$APPDEF_NAME" ] || continue - kubectl patch appdefinitions "$APPDEF_NAME" -n "$NAMESPACE" --type=merge -p '{"spec":{"minInstances":0}}' - done < "$SNAPSHOT_FILE" - fi - - # Delete active session resources if these CRDs are installed (namespace-scoped only) - RESOURCE_LIST="$(kubectl api-resources --namespaced=true -o name)" - if echo "$RESOURCE_LIST" | grep -qx "session"; then - kubectl delete session --all -n "$NAMESPACE" --ignore-not-found=true - fi - if echo "$RESOURCE_LIST" | grep -qx "sessions"; then - kubectl delete sessions --all -n "$NAMESPACE" --ignore-not-found=true - fi - if echo "$RESOURCE_LIST" | grep -qx "workspace"; then - kubectl delete workspace --all -n "$NAMESPACE" --ignore-not-found=true - fi - if echo "$RESOURCE_LIST" | grep -qx "workspaces"; then - kubectl delete workspaces --all -n "$NAMESPACE" --ignore-not-found=true - fi - - echo "Waiting 60 seconds before restoring minInstances..." - sleep 60 - - - name: Clean install - restore AppDefinitions minInstances - if: always() && inputs.clean_install && github.event_name == 'workflow_dispatch' - env: - KUBECONFIG: ${{ github.workspace }}/kubeconfig - run: | - set -euo pipefail - - NAMESPACE="${{ vars.NAMESPACE }}" - SNAPSHOT_FILE="appdefinition-mininstances-snapshot.txt" - - if [ ! -s "$SNAPSHOT_FILE" ]; then - echo "No snapshot file to restore. Skipping restore step." - exit 0 - fi - - while read -r APPDEF_NAME MIN_INSTANCES; do - [ -n "$APPDEF_NAME" ] || continue - RESTORE_VALUE="${MIN_INSTANCES:-0}" - kubectl patch appdefinitions "$APPDEF_NAME" -n "$NAMESPACE" --type=merge -p "{\"spec\":{\"minInstances\":${RESTORE_VALUE}}}" - done < "$SNAPSHOT_FILE" - - echo "Restored AppDefinition minInstances from snapshot." From 1a913fb056dfce4a8f548b279281d13cea996218 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sat, 21 Mar 2026 17:12:01 +0100 Subject: [PATCH 27/54] fix(ci): delete session/workspace CRDs with grouped resource names --- .github/workflows/deploy-theia.yml | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/.github/workflows/deploy-theia.yml b/.github/workflows/deploy-theia.yml index cd2dfc6..0aa29ef 100644 --- a/.github/workflows/deploy-theia.yml +++ b/.github/workflows/deploy-theia.yml @@ -293,18 +293,11 @@ jobs: # Delete active session resources first if these CRDs exist RESOURCE_LIST="$(kubectl api-resources --namespaced=true -o name)" - if echo "$RESOURCE_LIST" | grep -qx "session"; then - kubectl delete session --all -n "$NAMESPACE" --ignore-not-found=true - fi - if echo "$RESOURCE_LIST" | grep -qx "sessions"; then - kubectl delete sessions --all -n "$NAMESPACE" --ignore-not-found=true - fi - if echo "$RESOURCE_LIST" | grep -qx "workspace"; then - kubectl delete workspace --all -n "$NAMESPACE" --ignore-not-found=true - fi - if echo "$RESOURCE_LIST" | grep -qx "workspaces"; then - kubectl delete workspaces --all -n "$NAMESPACE" --ignore-not-found=true - fi + while IFS= read -r resource; do + if echo "$resource" | grep -Eq '^sessions(\.|$)|^session(\.|$)|^workspaces(\.|$)|^workspace(\.|$)'; then + kubectl delete "$resource" --all -n "$NAMESPACE" --ignore-not-found=true || true + fi + done <<< "$RESOURCE_LIST" # Delete AppDefinitions for a full clean slate kubectl delete appdefinitions --all -n "$NAMESPACE" --ignore-not-found=true From 3c24f99df7776ebf6118fe7757a2f15437d211fd Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sat, 21 Mar 2026 17:17:14 +0100 Subject: [PATCH 28/54] chore(ci): remove fixed post-cleanup wait from clean install --- .github/workflows/deploy-pr.yml | 2 +- .github/workflows/deploy-theia.yml | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy-pr.yml b/.github/workflows/deploy-pr.yml index 61d1dba..bbabcd4 100644 --- a/.github/workflows/deploy-pr.yml +++ b/.github/workflows/deploy-pr.yml @@ -46,7 +46,7 @@ on: required: false default: '' clean_install: - description: 'Clean Install: If true, perform namespace-scoped cleanup before install (delete sessions/workspaces, appdefinitions, deployments, daemonsets, statefulsets, PVCs), then wait 60s.' + description: 'Clean Install: If true, perform namespace-scoped cleanup before install (delete sessions/workspaces, appdefinitions, deployments, daemonsets, statefulsets, PVCs).' required: false default: false type: boolean diff --git a/.github/workflows/deploy-theia.yml b/.github/workflows/deploy-theia.yml index 0aa29ef..102aed1 100644 --- a/.github/workflows/deploy-theia.yml +++ b/.github/workflows/deploy-theia.yml @@ -313,9 +313,7 @@ jobs: # Delete PVCs associated with this namespace kubectl delete pvc --all -n "$NAMESPACE" --ignore-not-found=true - # Mandatory pause after cleanup - echo "Clean install purge complete. Waiting 60 seconds before Helm install..." - sleep 60 + echo "Clean install purge complete. Proceeding to Helm install." # Step 6: Install the main Theia Cloud application with environment-specific configuration # This includes the operator, service, certificates, and app definitions From e3d645ca430ceb63d051cf1f6467ace9b998d7b7 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sat, 21 Mar 2026 19:06:21 +0100 Subject: [PATCH 29/54] back to latest --- .../values.yaml | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 711244d..8424abb 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -64,16 +64,16 @@ theia-cloud: preloading: images: - ghcr.io/eduide/eduide-cloud/landing-page:latest - - ghcr.io/eduide/eduide/java-17:pr-125 - - ghcr.io/eduide/eduide/c:pr-125 - - ghcr.io/eduide/eduide/javascript:pr-125 - - ghcr.io/eduide/eduide/ocaml:pr-125 - - ghcr.io/eduide/eduide/rust:pr-125 - - ghcr.io/eduide/eduide/python:pr-125 - - ghcr.io/eduide/eduide/java-17-no-ls:pr-125 - - ghcr.io/eduide/eduide/rust-no-ls:pr-125 - - ghcr.io/eduide/eduide/langserver-java:pr-125 - - ghcr.io/eduide/eduide/langserver-rust:pr-125 + - ghcr.io/eduide/eduide/java-17:latest + - ghcr.io/eduide/eduide/c:latest + - ghcr.io/eduide/eduide/javascript:latest + - ghcr.io/eduide/eduide/ocaml:latest + - ghcr.io/eduide/eduide/rust:latest + - ghcr.io/eduide/eduide/python:latest + - ghcr.io/eduide/eduide/java-17-no-ls:latest + - ghcr.io/eduide/eduide/rust-no-ls:latest + - ghcr.io/eduide/eduide/langserver-java:latest + - ghcr.io/eduide/eduide/langserver-rust:latest imagePullPolicy: Always @@ -131,7 +131,7 @@ theia-cloud: clientId: "" theia-appdefinitions: - defaultImageTag: pr-125 + defaultImageTag: latest apps: - name: java-17-no-ls image: ghcr.io/eduide/eduide/java-17-no-ls From 728b3592e717e231b392a8ddb23d0177fd4f38a2 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sat, 21 Mar 2026 19:14:39 +0100 Subject: [PATCH 30/54] =?UTF-8?q?h=C3=A4=20junge=3F=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test3.theia-test.artemis.cit.tum.de/values.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 8424abb..d7ef4a6 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -70,10 +70,10 @@ theia-cloud: - ghcr.io/eduide/eduide/ocaml:latest - ghcr.io/eduide/eduide/rust:latest - ghcr.io/eduide/eduide/python:latest - - ghcr.io/eduide/eduide/java-17-no-ls:latest - - ghcr.io/eduide/eduide/rust-no-ls:latest - - ghcr.io/eduide/eduide/langserver-java:latest - - ghcr.io/eduide/eduide/langserver-rust:latest + - ghcr.io/eduide/eduide/java-17-no-ls:pr-124-535d00c + - ghcr.io/eduide/eduide/rust-no-ls:pr-124-535d00c + - ghcr.io/eduide/eduide/langserver-java:pr-124-535d00c + - ghcr.io/eduide/eduide/langserver-rust:pr-124-535d00c imagePullPolicy: Always @@ -131,7 +131,7 @@ theia-cloud: clientId: "" theia-appdefinitions: - defaultImageTag: latest + defaultImageTag: pr-124-535d00c apps: - name: java-17-no-ls image: ghcr.io/eduide/eduide/java-17-no-ls From 7a7a92a8866195c3925f0f777c91e3f20e25ce47 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sat, 21 Mar 2026 19:58:43 +0100 Subject: [PATCH 31/54] check new deployment --- .../test3.theia-test.artemis.cit.tum.de/values.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index d7ef4a6..17e49a3 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -70,10 +70,10 @@ theia-cloud: - ghcr.io/eduide/eduide/ocaml:latest - ghcr.io/eduide/eduide/rust:latest - ghcr.io/eduide/eduide/python:latest - - ghcr.io/eduide/eduide/java-17-no-ls:pr-124-535d00c - - ghcr.io/eduide/eduide/rust-no-ls:pr-124-535d00c - - ghcr.io/eduide/eduide/langserver-java:pr-124-535d00c - - ghcr.io/eduide/eduide/langserver-rust:pr-124-535d00c + - ghcr.io/eduide/eduide/java-17-no-ls:pr-130 + - ghcr.io/eduide/eduide/rust-no-ls:pr-130 + - ghcr.io/eduide/eduide/langserver-java:pr-130 + - ghcr.io/eduide/eduide/langserver-rust:pr-130 imagePullPolicy: Always @@ -131,7 +131,7 @@ theia-cloud: clientId: "" theia-appdefinitions: - defaultImageTag: pr-124-535d00c + defaultImageTag: pr-130 apps: - name: java-17-no-ls image: ghcr.io/eduide/eduide/java-17-no-ls From c2fc148575d79f0c4884dfa413e31d6950e626a3 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sun, 22 Mar 2026 12:51:30 +0100 Subject: [PATCH 32/54] new pr --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 17e49a3..15e27b2 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -43,7 +43,7 @@ theia-cloud: interval: 3 operator: - image: ghcr.io/eduide/eduide-cloud/operator:pr-70 + image: ghcr.io/eduide/eduide-cloud/operator:pr-100 #eagerStart: false replicas: 1 sessionsPerUser: 10 @@ -56,7 +56,7 @@ theia-cloud: ephemeral-storage: "256Mi" service: - image: ghcr.io/eduide/eduide-cloud/service:pr-70 + image: ghcr.io/eduide/eduide-cloud/service:pr-100 adminApiTokenSecret: name: service-admin-api-token key: ADMIN_API_TOKEN From 3fb95cecd7a58de39c2aa7ac48ad88eb4302c7a6 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sun, 22 Mar 2026 12:55:04 +0100 Subject: [PATCH 33/54] less preload --- .../test3.theia-test.artemis.cit.tum.de/values.yaml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 15e27b2..73c6190 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -63,13 +63,8 @@ theia-cloud: preloading: images: - - ghcr.io/eduide/eduide-cloud/landing-page:latest - - ghcr.io/eduide/eduide/java-17:latest - - ghcr.io/eduide/eduide/c:latest - - ghcr.io/eduide/eduide/javascript:latest - - ghcr.io/eduide/eduide/ocaml:latest - - ghcr.io/eduide/eduide/rust:latest - - ghcr.io/eduide/eduide/python:latest + - ghcr.io/eduide/eduide/java-17:pr-130 + - ghcr.io/eduide/eduide/rust:pr - ghcr.io/eduide/eduide/java-17-no-ls:pr-130 - ghcr.io/eduide/eduide/rust-no-ls:pr-130 - ghcr.io/eduide/eduide/langserver-java:pr-130 From 6ef8ba65846a86301b79ab315aa4cb86f9ac6e31 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sun, 22 Mar 2026 13:11:40 +0100 Subject: [PATCH 34/54] maxINstances --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 73c6190..8dcede3 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -131,6 +131,7 @@ theia-appdefinitions: - name: java-17-no-ls image: ghcr.io/eduide/eduide/java-17-no-ls minInstances: 1 + maxInstances: 20 sidecars: - name: langserver image: ghcr.io/eduide/eduide/langserver-java @@ -140,9 +141,11 @@ theia-appdefinitions: - name: java-17-latest image: ghcr.io/eduide/eduide/java-17 minInstances: 1 + maxInstances: 20 - name: rust-no-ls image: ghcr.io/eduide/eduide/rust-no-ls minInstances: 1 + maxInstances: 20 sidecars: - name: langserver image: ghcr.io/eduide/eduide/langserver-rust From d108d4d66d68a53df763d0e55b0c580ed741d864 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sun, 22 Mar 2026 13:15:56 +0100 Subject: [PATCH 35/54] 130 --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 8dcede3..bc93f95 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -64,7 +64,7 @@ theia-cloud: preloading: images: - ghcr.io/eduide/eduide/java-17:pr-130 - - ghcr.io/eduide/eduide/rust:pr + - ghcr.io/eduide/eduide/rust:pr-130 - ghcr.io/eduide/eduide/java-17-no-ls:pr-130 - ghcr.io/eduide/eduide/rust-no-ls:pr-130 - ghcr.io/eduide/eduide/langserver-java:pr-130 From d3ebc08737e796b86e7069b4d547f1ca29e15613 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sun, 22 Mar 2026 13:52:55 +0100 Subject: [PATCH 36/54] false --- .../test3.theia-test.artemis.cit.tum.de/values.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index bc93f95..b8777ca 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -89,7 +89,7 @@ theia-cloud: # you might need this. If you used my simplified template, this is ignored. logoFileExtension: "png" appDefinition: "java-17-no-ls" - ephemeralStorage: true + ephemeralStorage: false additionalApps: java-17-no-ls: label: Java 17 No-LS @@ -130,7 +130,7 @@ theia-appdefinitions: apps: - name: java-17-no-ls image: ghcr.io/eduide/eduide/java-17-no-ls - minInstances: 1 + minInstances: 3 maxInstances: 20 sidecars: - name: langserver @@ -140,11 +140,11 @@ theia-appdefinitions: mountWorkspace: true - name: java-17-latest image: ghcr.io/eduide/eduide/java-17 - minInstances: 1 + minInstances: 3 maxInstances: 20 - name: rust-no-ls image: ghcr.io/eduide/eduide/rust-no-ls - minInstances: 1 + minInstances: 3 maxInstances: 20 sidecars: - name: langserver From 4d5838d83a250f7c2f9471e181001872a1f40695 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sun, 22 Mar 2026 14:24:34 +0100 Subject: [PATCH 37/54] fix(test3): use eduidec landing page image repository --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index b8777ca..014f5f4 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -78,7 +78,7 @@ theia-cloud: landingPage: # We use the try now page as landing page since the default does not support mutliple apps -> https://github.com/eclipsesource/theia-cloud/discussions/301 - image: ghcr.io/eduide/eduide-cloud/landing-page:latest + image: ghcr.io/eduide/eduidec-landing-page:latest # We can define a default blueprint # 1. The actual image data (Must be a Base64 encoded string) From f169694cc5d63fa6507c9f0df1880c80bfbd0688 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sun, 22 Mar 2026 14:30:55 +0100 Subject: [PATCH 38/54] fix(test3): align landing image paths with eduidec repository --- .../values.yaml | 45 +++++++++---------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 014f5f4..832b3ae 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -43,7 +43,7 @@ theia-cloud: interval: 3 operator: - image: ghcr.io/eduide/eduide-cloud/operator:pr-100 + image: ghcr.io/eduide/eduide-cloud/operator:pr-70 #eagerStart: false replicas: 1 sessionsPerUser: 10 @@ -56,19 +56,24 @@ theia-cloud: ephemeral-storage: "256Mi" service: - image: ghcr.io/eduide/eduide-cloud/service:pr-100 + image: ghcr.io/eduide/eduide-cloud/service:pr-70 adminApiTokenSecret: name: service-admin-api-token key: ADMIN_API_TOKEN preloading: images: - - ghcr.io/eduide/eduide/java-17:pr-130 - - ghcr.io/eduide/eduide/rust:pr-130 - - ghcr.io/eduide/eduide/java-17-no-ls:pr-130 - - ghcr.io/eduide/eduide/rust-no-ls:pr-130 - - ghcr.io/eduide/eduide/langserver-java:pr-130 - - ghcr.io/eduide/eduide/langserver-rust:pr-130 + - ghcr.io/eduide/eduidec-landing-page:latest + - ghcr.io/eduide/eduide/java-17:latest + - ghcr.io/eduide/eduide/c:latest + - ghcr.io/eduide/eduide/javascript:latest + - ghcr.io/eduide/eduide/ocaml:latest + - ghcr.io/eduide/eduide/rust:latest + - ghcr.io/eduide/eduide/python:latest + - ghcr.io/eduide/eduide/java-17-no-ls:pr-70 + - ghcr.io/eduide/eduide/rust-no-ls:pr-70 + - ghcr.io/eduide/eduide/langserver-java:pr-70 + - ghcr.io/eduide/eduide/langserver-rust:pr-70 imagePullPolicy: Always @@ -89,12 +94,12 @@ theia-cloud: # you might need this. If you used my simplified template, this is ignored. logoFileExtension: "png" appDefinition: "java-17-no-ls" - ephemeralStorage: false + ephemeralStorage: true additionalApps: java-17-no-ls: - label: Java 17 No-LS + label: Java 17 No-LS (Sidecar) rust-no-ls: - label: Rust No-LS + label: Rust No-LS (Sidecar) infoTitle: "🚀 Welcome to Test3 IDE Environment" infoText: "Test environment for Theia with external language server architecture (PR #70). The IDE runs separately from the language server for improved performance and modularity." loadingText: "⚡ Setting up your development workspace..." @@ -114,38 +119,32 @@ theia-cloud: url: "https://aet.cit.tum.de/" keycloak: - enable: false + enable: true # -- Key cloak auth URL. Only has to be specified when enable: true authUrl: "https://keycloak.ase.in.tum.de/" # -- The Keycloak Realm. Only has to be specified when enable: true - realm: "" + realm: "Test" # -- The client-id. Only has to be specified when enable: true - clientId: "" + clientId: "theia-test" theia-appdefinitions: - defaultImageTag: pr-130 + defaultImageTag: pr-70 apps: - name: java-17-no-ls image: ghcr.io/eduide/eduide/java-17-no-ls - minInstances: 3 - maxInstances: 20 + minInstances: 1 sidecars: - name: langserver image: ghcr.io/eduide/eduide/langserver-java port: 5000 languages: [java] mountWorkspace: true - - name: java-17-latest - image: ghcr.io/eduide/eduide/java-17 - minInstances: 3 - maxInstances: 20 - name: rust-no-ls image: ghcr.io/eduide/eduide/rust-no-ls - minInstances: 3 - maxInstances: 20 + minInstances: 1 sidecars: - name: langserver image: ghcr.io/eduide/eduide/langserver-rust From e532605bb4a9e01abc30679a57eecada9c27a1ba Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sun, 22 Mar 2026 14:37:14 +0100 Subject: [PATCH 39/54] bitte richtig jetzt --- .../values.yaml | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 832b3ae..2f96da7 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -43,7 +43,7 @@ theia-cloud: interval: 3 operator: - image: ghcr.io/eduide/eduide-cloud/operator:pr-70 + image: ghcr.io/eduide/eduide-cloud/operator:pr-100 #eagerStart: false replicas: 1 sessionsPerUser: 10 @@ -56,24 +56,19 @@ theia-cloud: ephemeral-storage: "256Mi" service: - image: ghcr.io/eduide/eduide-cloud/service:pr-70 + image: ghcr.io/eduide/eduide-cloud/service:pr-100 adminApiTokenSecret: name: service-admin-api-token key: ADMIN_API_TOKEN preloading: images: - - ghcr.io/eduide/eduidec-landing-page:latest - - ghcr.io/eduide/eduide/java-17:latest - - ghcr.io/eduide/eduide/c:latest - - ghcr.io/eduide/eduide/javascript:latest - - ghcr.io/eduide/eduide/ocaml:latest - - ghcr.io/eduide/eduide/rust:latest - - ghcr.io/eduide/eduide/python:latest - - ghcr.io/eduide/eduide/java-17-no-ls:pr-70 - - ghcr.io/eduide/eduide/rust-no-ls:pr-70 - - ghcr.io/eduide/eduide/langserver-java:pr-70 - - ghcr.io/eduide/eduide/langserver-rust:pr-70 + - ghcr.io/eduide/eduide/java-17:pr-130 + - ghcr.io/eduide/eduide/rust:pr-130 + - ghcr.io/eduide/eduide/java-17-no-ls:pr-130 + - ghcr.io/eduide/eduide/rust-no-ls:pr-130 + - ghcr.io/eduide/eduide/langserver-java:pr-130 + - ghcr.io/eduide/eduide/langserver-rust:pr-130 imagePullPolicy: Always @@ -94,7 +89,7 @@ theia-cloud: # you might need this. If you used my simplified template, this is ignored. logoFileExtension: "png" appDefinition: "java-17-no-ls" - ephemeralStorage: true + ephemeralStorage: false additionalApps: java-17-no-ls: label: Java 17 No-LS (Sidecar) @@ -131,7 +126,7 @@ theia-cloud: clientId: "theia-test" theia-appdefinitions: - defaultImageTag: pr-70 + defaultImageTag: pr-130 apps: - name: java-17-no-ls image: ghcr.io/eduide/eduide/java-17-no-ls From 1e5517708bcd56c3153cf43f442643e057813587 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sun, 22 Mar 2026 14:39:29 +0100 Subject: [PATCH 40/54] omgomg --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 2f96da7..f1c632e 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -114,7 +114,7 @@ theia-cloud: url: "https://aet.cit.tum.de/" keycloak: - enable: true + enable: false # -- Key cloak auth URL. Only has to be specified when enable: true authUrl: "https://keycloak.ase.in.tum.de/" From 8b0763052e9c100ca46d8d75967e8f9314390404 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sun, 22 Mar 2026 14:42:41 +0100 Subject: [PATCH 41/54] bruuuuuder --- .../test3.theia-test.artemis.cit.tum.de/values.yaml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index f1c632e..0809410 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -130,16 +130,22 @@ theia-appdefinitions: apps: - name: java-17-no-ls image: ghcr.io/eduide/eduide/java-17-no-ls - minInstances: 1 + minInstances: 3 + maxInstances: 20 sidecars: - name: langserver image: ghcr.io/eduide/eduide/langserver-java port: 5000 languages: [java] mountWorkspace: true + - name: java-17-latest + image: ghcr.io/eduide/eduide/java-17 + minInstances: 3 + maxInstances: 20 - name: rust-no-ls image: ghcr.io/eduide/eduide/rust-no-ls - minInstances: 1 + minInstances: 3 + maxInstances: 20 sidecars: - name: langserver image: ghcr.io/eduide/eduide/langserver-rust From 55ac3c1baf73d6c9dbdfc76848794ec586b83510 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Sun, 22 Mar 2026 20:42:50 +0100 Subject: [PATCH 42/54] new pr --- .../values.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 0809410..92549e8 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -63,12 +63,12 @@ theia-cloud: preloading: images: - - ghcr.io/eduide/eduide/java-17:pr-130 - - ghcr.io/eduide/eduide/rust:pr-130 - - ghcr.io/eduide/eduide/java-17-no-ls:pr-130 - - ghcr.io/eduide/eduide/rust-no-ls:pr-130 - - ghcr.io/eduide/eduide/langserver-java:pr-130 - - ghcr.io/eduide/eduide/langserver-rust:pr-130 + - ghcr.io/eduide/eduide/java-17:pr-131 + - ghcr.io/eduide/eduide/rust:pr-131 + - ghcr.io/eduide/eduide/java-17-no-ls:pr-131 + - ghcr.io/eduide/eduide/rust-no-ls:pr-131 + - ghcr.io/eduide/eduide/langserver-java:pr-131 + - ghcr.io/eduide/eduide/langserver-rust:pr-131 imagePullPolicy: Always @@ -92,9 +92,9 @@ theia-cloud: ephemeralStorage: false additionalApps: java-17-no-ls: - label: Java 17 No-LS (Sidecar) + label: Java 17 No-LS rust-no-ls: - label: Rust No-LS (Sidecar) + label: Rust No-LS infoTitle: "🚀 Welcome to Test3 IDE Environment" infoText: "Test environment for Theia with external language server architecture (PR #70). The IDE runs separately from the language server for improved performance and modularity." loadingText: "⚡ Setting up your development workspace..." @@ -126,7 +126,7 @@ theia-cloud: clientId: "theia-test" theia-appdefinitions: - defaultImageTag: pr-130 + defaultImageTag: pr-131 apps: - name: java-17-no-ls image: ghcr.io/eduide/eduide/java-17-no-ls From 29bef9ab451d0fb157db01ff55c2e38f43e99dae Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Wed, 25 Mar 2026 19:43:42 +0100 Subject: [PATCH 43/54] test test --- .../values.yaml | 6 +++--- .../theia.artemis.cit.tum.de/values.yaml | 17 ++++++++++------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 92549e8..865dec6 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -43,8 +43,8 @@ theia-cloud: interval: 3 operator: - image: ghcr.io/eduide/eduide-cloud/operator:pr-100 - #eagerStart: false + image: ghcr.io/eduide/eduide-cloud/operator:pr-101 + eagerStart: false replicas: 1 sessionsPerUser: 10 # Test3 runs on the parma cluster where Longhorn is the default storage backend. @@ -56,7 +56,7 @@ theia-cloud: ephemeral-storage: "256Mi" service: - image: ghcr.io/eduide/eduide-cloud/service:pr-100 + image: ghcr.io/eduide/eduide-cloud/service:pr-101 adminApiTokenSecret: name: service-admin-api-token key: ADMIN_API_TOKEN diff --git a/deployments/theia.artemis.cit.tum.de/values.yaml b/deployments/theia.artemis.cit.tum.de/values.yaml index 0b90d9d..c83441d 100644 --- a/deployments/theia.artemis.cit.tum.de/values.yaml +++ b/deployments/theia.artemis.cit.tum.de/values.yaml @@ -42,17 +42,20 @@ theia-cloud: interval: 3 operator: - #image: ghcr.io/eduide/eduide-cloud/operator:latest - #eagerStart: false + image: ghcr.io/eduide/eduide-cloud/operator:latest-ba732d8 + # Production keeps Ceph RBD and does not configure sidecars. + # Disable eager-start so the operator stays on the workspace-backed RWO path + # instead of creating prewarmed RWX PVCs that do not fit csi-rbd-sc. + eagerStart: false replicas: 3 sessionsPerUser: 10 storageClassName: csi-rbd-sc - # service: - # image: ghcr.io/eduide/eduide-cloud/service:latest - # adminApiTokenSecret: - # name: service-admin-api-token - # key: ADMIN_API_TOKEN + service: + image: ghcr.io/eduide/eduide-cloud/service:latest-ba732d8 + adminApiTokenSecret: + name: service-admin-api-token + key: ADMIN_API_TOKEN preloading: images: From 0492130c36fab94d4a408f1d1c3e923a662c077f Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Wed, 25 Mar 2026 19:50:45 +0100 Subject: [PATCH 44/54] test ceph --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 865dec6..1779101 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -48,7 +48,7 @@ theia-cloud: replicas: 1 sessionsPerUser: 10 # Test3 runs on the parma cluster where Longhorn is the default storage backend. - storageClassName: longhorn + storageClassName: csi-rbd-sc resources: requests: ephemeral-storage: "128Mi" From 87ce2af4e2c5196c422011b5df266b8e9aff41f4 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Mon, 30 Mar 2026 11:11:21 +0200 Subject: [PATCH 45/54] omg --- .../values.yaml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 8907525..980d032 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -43,12 +43,12 @@ theia-cloud: interval: 3 operator: - image: ghcr.io/eduide/eduide-cloud/operator:pr-101 + image: ghcr.io/eduide/eduide-cloud/operator:latest eagerStart: false replicas: 1 sessionsPerUser: 10 # Test3 runs on the parma cluster where Longhorn is the default storage backend. - storageClassName: csi-rbd-sc + storageClassName: longhorn resources: requests: ephemeral-storage: "128Mi" @@ -56,7 +56,7 @@ theia-cloud: ephemeral-storage: "256Mi" service: - image: ghcr.io/eduide/eduide-cloud/service:pr-101 + image: ghcr.io/eduide/eduide-cloud/service:latest adminApiTokenSecret: name: service-admin-api-token key: ADMIN_API_TOKEN @@ -65,12 +65,12 @@ theia-cloud: # Index 11 is oauth2-proxy (distroless); the workflow does not override it. preloading: images: - - ghcr.io/eduide/eduide/java-17:pr-131 - - ghcr.io/eduide/eduide/rust:pr-131 - - ghcr.io/eduide/eduide/java-17-no-ls:pr-131 - - ghcr.io/eduide/eduide/rust-no-ls:pr-131 - - ghcr.io/eduide/eduide/langserver-java:pr-131 - - ghcr.io/eduide/eduide/langserver-rust:pr-131 + - ghcr.io/eduide/eduide/java-17:latest + - ghcr.io/eduide/eduide/rust:latest + - ghcr.io/eduide/eduide/java-17-no-ls:latest + - ghcr.io/eduide/eduide/rust-no-ls:latest + - ghcr.io/eduide/eduide/langserver-java:latest + - ghcr.io/eduide/eduide/langserver-rust:latest imagePullPolicy: Always @@ -128,7 +128,7 @@ theia-cloud: clientId: "theia-test" theia-appdefinitions: - defaultImageTag: pr-131 + defaultImageTag: latest apps: - name: java-17-no-ls image: ghcr.io/eduide/eduide/java-17-no-ls From 4fb52515e0a1b96d4f5e0ab19d1a5330d832cc5a Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Mon, 30 Mar 2026 11:13:26 +0200 Subject: [PATCH 46/54] more eager --- .../test3.theia-test.artemis.cit.tum.de/values.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 980d032..45dcfc1 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -44,7 +44,7 @@ theia-cloud: operator: image: ghcr.io/eduide/eduide-cloud/operator:latest - eagerStart: false + eagerStart: true replicas: 1 sessionsPerUser: 10 # Test3 runs on the parma cluster where Longhorn is the default storage backend. @@ -132,7 +132,7 @@ theia-appdefinitions: apps: - name: java-17-no-ls image: ghcr.io/eduide/eduide/java-17-no-ls - minInstances: 3 + minInstances: 5 maxInstances: 20 sidecars: - name: langserver @@ -142,11 +142,11 @@ theia-appdefinitions: mountWorkspace: true - name: java-17-latest image: ghcr.io/eduide/eduide/java-17 - minInstances: 3 + minInstances: 5 maxInstances: 20 - name: rust-no-ls image: ghcr.io/eduide/eduide/rust-no-ls - minInstances: 3 + minInstances: 5 maxInstances: 20 sidecars: - name: langserver From 3f89c9d30ef77c030c8393b1821b395b16726be6 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Mon, 30 Mar 2026 14:06:06 +0200 Subject: [PATCH 47/54] normaliue --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 45dcfc1..549b7f9 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -91,15 +91,15 @@ theia-cloud: # you might need this. If you used my simplified template, this is ignored. logoFileExtension: "png" appDefinition: "java-17-no-ls" - ephemeralStorage: false + ephemeralStorage: true additionalApps: java-17-no-ls: label: Java 17 No-LS rust-no-ls: label: Rust No-LS infoTitle: "🚀 Welcome to Test3 IDE Environment" - infoText: "Test environment for Theia with external language server architecture (PR #70). The IDE runs separately from the language server for improved performance and modularity." - loadingText: "⚡ Setting up your development workspace..." + infoText: "Welcome to Theia Test 3" + loadingText: "Preparing your personal Online IDE..." footerLinks: attribution: text: "Built by TUM LS1 Team 👨‍💻" From 22baabdd4a32d3cc73a1f620fae2f262fd68dba0 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Mon, 30 Mar 2026 16:00:53 +0200 Subject: [PATCH 48/54] image labels --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 549b7f9..ea9d78b 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -95,8 +95,10 @@ theia-cloud: additionalApps: java-17-no-ls: label: Java 17 No-LS + image: "java-17" rust-no-ls: label: Rust No-LS + image: "rust" infoTitle: "🚀 Welcome to Test3 IDE Environment" infoText: "Welcome to Theia Test 3" loadingText: "Preparing your personal Online IDE..." From 9849e333c014503d333668cb0425f0b39db845ad Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Mon, 30 Mar 2026 16:37:16 +0200 Subject: [PATCH 49/54] Align prod image tags with main after merge --- deployments/theia.artemis.cit.tum.de/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deployments/theia.artemis.cit.tum.de/values.yaml b/deployments/theia.artemis.cit.tum.de/values.yaml index 46bef52..c591945 100644 --- a/deployments/theia.artemis.cit.tum.de/values.yaml +++ b/deployments/theia.artemis.cit.tum.de/values.yaml @@ -42,7 +42,7 @@ theia-cloud: interval: 3 operator: - image: ghcr.io/eduide/eduide-cloud/operator:latest-ba732d8 + image: ghcr.io/eduide/eduide-cloud/operator:latest-e431a13 # Production keeps Ceph RBD and does not configure sidecars. # Disable eager-start so the operator stays on the workspace-backed RWO path # instead of creating prewarmed RWX PVCs that do not fit csi-rbd-sc. @@ -52,7 +52,7 @@ theia-cloud: storageClassName: csi-rbd-sc service: - image: ghcr.io/eduide/eduide-cloud/service:latest-ba732d8 + image: ghcr.io/eduide/eduide-cloud/service:latest-e431a13 adminApiTokenSecret: name: service-admin-api-token key: ADMIN_API_TOKEN From 21cee2253a3e37ff87aa3343232d25a7dba72572 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Tue, 31 Mar 2026 15:46:46 +0200 Subject: [PATCH 50/54] no eager start --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index ea9d78b..1765e52 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -44,7 +44,7 @@ theia-cloud: operator: image: ghcr.io/eduide/eduide-cloud/operator:latest - eagerStart: true + eagerStart: false replicas: 1 sessionsPerUser: 10 # Test3 runs on the parma cluster where Longhorn is the default storage backend. @@ -91,7 +91,7 @@ theia-cloud: # you might need this. If you used my simplified template, this is ignored. logoFileExtension: "png" appDefinition: "java-17-no-ls" - ephemeralStorage: true + ephemeralStorage: false additionalApps: java-17-no-ls: label: Java 17 No-LS From 5e8368e3c51e9188f8fdfbe3a484e6d100b65c17 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Wed, 1 Apr 2026 10:20:35 +0200 Subject: [PATCH 51/54] hoch limit + ephemeral --- .../test3.theia-test.artemis.cit.tum.de/values.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 1765e52..07f155a 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -91,7 +91,7 @@ theia-cloud: # you might need this. If you used my simplified template, this is ignored. logoFileExtension: "png" appDefinition: "java-17-no-ls" - ephemeralStorage: false + ephemeralStorage: true additionalApps: java-17-no-ls: label: Java 17 No-LS @@ -135,7 +135,7 @@ theia-appdefinitions: - name: java-17-no-ls image: ghcr.io/eduide/eduide/java-17-no-ls minInstances: 5 - maxInstances: 20 + maxInstances: 200 sidecars: - name: langserver image: ghcr.io/eduide/eduide/langserver-java @@ -145,11 +145,11 @@ theia-appdefinitions: - name: java-17-latest image: ghcr.io/eduide/eduide/java-17 minInstances: 5 - maxInstances: 20 + maxInstances: 200 - name: rust-no-ls image: ghcr.io/eduide/eduide/rust-no-ls minInstances: 5 - maxInstances: 20 + maxInstances: 200 sidecars: - name: langserver image: ghcr.io/eduide/eduide/langserver-rust From 77ea9cfbff943e77e275dd4419cc8e66ffd29ceb Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Wed, 1 Apr 2026 12:42:18 +0200 Subject: [PATCH 52/54] f aus --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 07f155a..2dc79b9 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -91,7 +91,7 @@ theia-cloud: # you might need this. If you used my simplified template, this is ignored. logoFileExtension: "png" appDefinition: "java-17-no-ls" - ephemeralStorage: true + ephemeralStorage: false additionalApps: java-17-no-ls: label: Java 17 No-LS From 01973781f6c9f778579c8f7349a5f3df2a6fe73b Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Thu, 2 Apr 2026 11:06:35 +0200 Subject: [PATCH 53/54] true --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 2dc79b9..07f155a 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -91,7 +91,7 @@ theia-cloud: # you might need this. If you used my simplified template, this is ignored. logoFileExtension: "png" appDefinition: "java-17-no-ls" - ephemeralStorage: false + ephemeralStorage: true additionalApps: java-17-no-ls: label: Java 17 No-LS From 50976b34f44881c80941a92ab46ba9b6f19453d2 Mon Sep 17 00:00:00 2001 From: CodeByNikolas Date: Thu, 2 Apr 2026 11:11:39 +0200 Subject: [PATCH 54/54] false --- deployments/test3.theia-test.artemis.cit.tum.de/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml index 07f155a..2dc79b9 100644 --- a/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml +++ b/deployments/test3.theia-test.artemis.cit.tum.de/values.yaml @@ -91,7 +91,7 @@ theia-cloud: # you might need this. If you used my simplified template, this is ignored. logoFileExtension: "png" appDefinition: "java-17-no-ls" - ephemeralStorage: true + ephemeralStorage: false additionalApps: java-17-no-ls: label: Java 17 No-LS