diff --git a/CHANGELOG.md b/CHANGELOG.md index 05829626..3d2e5d16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,10 @@ - Build the common package as ESM and CJS bundles for extended compatibility - [common] Add `ingressHostnamePrefixes` list to `AppDefinition.v1beta10` [#298](https://github.com/eclipsesource/theia-cloud/pull/298) | [#57](https://github.com/eclipsesource/theia-cloud-helm/pull/57) +### Breaking Changes in 0.11.0 + +See the helm chart Changelog for [more details](https://github.com/eclipsesource/theia-cloud-helm/blob/main/CHANGELOG.md). + ## [0.10.0] - 2024-04-02 - [.github/workflows] Improve version detection in workflows (do not build release commits, auto-detect version for demo publishing) [#280](https://github.com/eclipsesource/theia-cloud/pull/280) - contributed on behalf of STMicroelectronics diff --git a/documentation/Install.md b/documentation/Install.md index 39c65f23..5c098c11 100644 --- a/documentation/Install.md +++ b/documentation/Install.md @@ -57,9 +57,11 @@ Open `./terraform/values/valuesDemo.yaml` and update the host section to use `su ```yaml hosts: - service: service.34.141.62.32.nip.io - landing: theia.cloud.34.141.62.32.nip.io - instance: ws.34.141.62.32.nip.io + configuration: + baseHost: 34.141.62.32.nip.io + service: service + landing: theia-cloud + instance: ws ``` ### Add & update Theia Cloud helm repo diff --git a/documentation/OpenAPI.md b/documentation/OpenAPI.md index 2fa47836..415050c1 100644 --- a/documentation/OpenAPI.md +++ b/documentation/OpenAPI.md @@ -40,6 +40,7 @@ Install the `openapi-generator-cli`: ```bash npm install @openapitools/openapi-generator-cli -g +openapi-generator-cli version-manager set 6.6.0 ``` Use the `openapi-generator-cli` from the root of this repository: diff --git a/documentation/openapi.json b/documentation/openapi.json index 30de5a79..867eb0b5 100644 --- a/documentation/openapi.json +++ b/documentation/openapi.json @@ -1,8 +1,8 @@ { "openapi" : "3.0.3", "info" : { - "title" : "Theia.cloud API", - "version" : "0.9.0" + "title" : "Theia Cloud API", + "version" : "0.11.0" }, "paths" : { "/service" : { @@ -23,7 +23,7 @@ "200" : { "description" : "OK", "content" : { - "application/json" : { + "text/plain" : { "schema" : { "type" : "string" } @@ -60,7 +60,7 @@ "200" : { "description" : "OK", "content" : { - "application/json" : { + "text/plain" : { "schema" : { "type" : "string" } @@ -95,7 +95,7 @@ "200" : { "description" : "OK", "content" : { - "application/json" : { + "text/plain" : { "schema" : { "type" : "boolean" } @@ -130,7 +130,7 @@ "200" : { "description" : "OK", "content" : { - "application/json" : { + "text/plain" : { "schema" : { "type" : "boolean" } @@ -291,7 +291,7 @@ "200" : { "description" : "OK", "content" : { - "application/json" : { + "text/plain" : { "schema" : { "type" : "boolean" } @@ -373,7 +373,7 @@ "200" : { "description" : "OK", "content" : { - "application/json" : { + "text/plain" : { "schema" : { "type" : "boolean" } @@ -428,7 +428,7 @@ "type" : "object", "properties" : { "appId" : { - "description" : "The App Id of this Theia.cloud instance. Request without a matching Id will be denied.", + "description" : "The App Id of this Theia Cloud instance. Request without a matching Id will be denied.", "type" : "string" }, "user" : { @@ -471,7 +471,7 @@ "type" : "object", "properties" : { "appId" : { - "description" : "The App Id of this Theia.cloud instance. Request without a matching Id will be denied.", + "description" : "The App Id of this Theia Cloud instance. Request without a matching Id will be denied.", "type" : "string" } } @@ -482,7 +482,7 @@ "type" : "object", "properties" : { "appId" : { - "description" : "The App Id of this Theia.cloud instance. Request without a matching Id will be denied.", + "description" : "The App Id of this Theia Cloud instance. Request without a matching Id will be denied.", "type" : "string" }, "sessionName" : { @@ -497,7 +497,7 @@ "type" : "object", "properties" : { "appId" : { - "description" : "The App Id of this Theia.cloud instance. Request without a matching Id will be denied.", + "description" : "The App Id of this Theia Cloud instance. Request without a matching Id will be denied.", "type" : "string" }, "user" : { @@ -535,7 +535,7 @@ "type" : "object", "properties" : { "appId" : { - "description" : "The App Id of this Theia.cloud instance. Request without a matching Id will be denied.", + "description" : "The App Id of this Theia Cloud instance. Request without a matching Id will be denied.", "type" : "string" }, "sessionName" : { @@ -556,22 +556,18 @@ "user" : { "type" : "string" }, - "url" : { - "type" : "string" - }, - "error" : { - "type" : "string" - }, "workspace" : { "type" : "string" }, - "lastActivity" : { - "format" : "int64", - "type" : "integer" - }, "sessionSecret" : { "type" : "string" }, + "options" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, "envVars" : { "type" : "object", "additionalProperties" : { @@ -598,7 +594,7 @@ "type" : "object", "properties" : { "appId" : { - "description" : "The App Id of this Theia.cloud instance. Request without a matching Id will be denied.", + "description" : "The App Id of this Theia Cloud instance. Request without a matching Id will be denied.", "type" : "string" }, "user" : { @@ -633,7 +629,7 @@ "type" : "object", "properties" : { "appId" : { - "description" : "The App Id of this Theia.cloud instance. Request without a matching Id will be denied.", + "description" : "The App Id of this Theia Cloud instance. Request without a matching Id will be denied.", "type" : "string" }, "user" : { @@ -679,7 +675,7 @@ "type" : "object", "properties" : { "appId" : { - "description" : "The App Id of this Theia.cloud instance. Request without a matching Id will be denied.", + "description" : "The App Id of this Theia Cloud instance. Request without a matching Id will be denied.", "type" : "string" }, "user" : { @@ -702,7 +698,7 @@ "type" : "object", "properties" : { "appId" : { - "description" : "The App Id of this Theia.cloud instance. Request without a matching Id will be denied.", + "description" : "The App Id of this Theia Cloud instance. Request without a matching Id will be denied.", "type" : "string" }, "user" : { @@ -721,7 +717,7 @@ "type" : "object", "properties" : { "appId" : { - "description" : "The App Id of this Theia.cloud instance. Request without a matching Id will be denied.", + "description" : "The App Id of this Theia Cloud instance. Request without a matching Id will be denied.", "type" : "string" }, "user" : { diff --git a/documentation/platforms/Minikube.md b/documentation/platforms/Minikube.md index 46690a4a..e7267515 100644 --- a/documentation/platforms/Minikube.md +++ b/documentation/platforms/Minikube.md @@ -22,7 +22,7 @@ In Chrome: In Firefox: `Warning: Potential Security Risk Ahead -> Advanced... -> Accept the Risk and Continue` -## Testing local Theia.cloud images +## Testing local Theia Cloud images You can test locally build images (e.g. of the landing page, service, or operator) by building them in Minikube and then using them in the Minikube Helm chart. diff --git a/documentation/theiacloud.graphml b/documentation/theiacloud.graphml index 0c3148f9..4cb5374f 100644 --- a/documentation/theiacloud.graphml +++ b/documentation/theiacloud.graphml @@ -278,7 +278,7 @@ user: bar@bar.bar - Theia.cloud Service + Theia Cloud Service diff --git a/java/service/org.eclipse.theia.cloud.service/src/main/java/org/eclipse/theia/cloud/service/TheiaCloudApiApplication.java b/java/service/org.eclipse.theia.cloud.service/src/main/java/org/eclipse/theia/cloud/service/TheiaCloudApiApplication.java index b63566f9..b4c05cdf 100644 --- a/java/service/org.eclipse.theia.cloud.service/src/main/java/org/eclipse/theia/cloud/service/TheiaCloudApiApplication.java +++ b/java/service/org.eclipse.theia.cloud.service/src/main/java/org/eclipse/theia/cloud/service/TheiaCloudApiApplication.java @@ -20,6 +20,6 @@ import jakarta.ws.rs.core.Application; -@OpenAPIDefinition(info = @Info(title = "Theia.cloud API", version = "0.10.0")) +@OpenAPIDefinition(info = @Info(title = "Theia Cloud API", version = "0.11.0")) public class TheiaCloudApiApplication extends Application { } diff --git a/node/common/src/client/api.ts b/node/common/src/client/api.ts index fba8c198..99591016 100644 --- a/node/common/src/client/api.ts +++ b/node/common/src/client/api.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ /** - * Theia.cloud API + * Theia Cloud API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.8.0 + * The version of the OpenAPI document: 0.11.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -55,7 +55,7 @@ export interface EnvironmentVars { */ export interface LaunchRequest { /** - * The App Id of this Theia.cloud instance. Request without a matching Id will be denied. + * The App Id of this Theia Cloud instance. Request without a matching Id will be denied. * @type {string} * @memberof LaunchRequest */ @@ -104,7 +104,7 @@ export interface LaunchRequest { 'env'?: LaunchRequestEnv; } /** - * + * Environment variables * @export * @interface LaunchRequestEnv */ @@ -135,7 +135,7 @@ export interface LaunchRequestEnv { */ export interface PingRequest { /** - * The App Id of this Theia.cloud instance. Request without a matching Id will be denied. + * The App Id of this Theia Cloud instance. Request without a matching Id will be denied. * @type {string} * @memberof PingRequest */ @@ -148,7 +148,7 @@ export interface PingRequest { */ export interface SessionActivityRequest { /** - * The App Id of this Theia.cloud instance. Request without a matching Id will be denied. + * The App Id of this Theia Cloud instance. Request without a matching Id will be denied. * @type {string} * @memberof SessionActivityRequest */ @@ -167,7 +167,7 @@ export interface SessionActivityRequest { */ export interface SessionListRequest { /** - * The App Id of this Theia.cloud instance. Request without a matching Id will be denied. + * The App Id of this Theia Cloud instance. Request without a matching Id will be denied. * @type {string} * @memberof SessionListRequest */ @@ -217,7 +217,7 @@ export interface SessionPerformance { */ export interface SessionPerformanceRequest { /** - * The App Id of this Theia.cloud instance. Request without a matching Id will be denied. + * The App Id of this Theia Cloud instance. Request without a matching Id will be denied. * @type {string} * @memberof SessionPerformanceRequest */ @@ -253,18 +253,6 @@ export interface SessionSpec { * @memberof SessionSpec */ 'user'?: string; - /** - * - * @type {string} - * @memberof SessionSpec - */ - 'url'?: string; - /** - * - * @type {string} - * @memberof SessionSpec - */ - 'error'?: string; /** * * @type {string} @@ -273,16 +261,16 @@ export interface SessionSpec { 'workspace'?: string; /** * - * @type {number} + * @type {string} * @memberof SessionSpec */ - 'lastActivity'?: number; + 'sessionSecret'?: string; /** * - * @type {string} + * @type {{ [key: string]: string; }} * @memberof SessionSpec */ - 'sessionSecret'?: string; + 'options'?: { [key: string]: string; }; /** * * @type {{ [key: string]: string; }} @@ -309,7 +297,7 @@ export interface SessionSpec { */ export interface SessionStartRequest { /** - * The App Id of this Theia.cloud instance. Request without a matching Id will be denied. + * The App Id of this Theia Cloud instance. Request without a matching Id will be denied. * @type {string} * @memberof SessionStartRequest */ @@ -352,7 +340,7 @@ export interface SessionStartRequest { */ export interface SessionStopRequest { /** - * The App Id of this Theia.cloud instance. Request without a matching Id will be denied. + * The App Id of this Theia Cloud instance. Request without a matching Id will be denied. * @type {string} * @memberof SessionStopRequest */ @@ -414,7 +402,7 @@ export interface UserWorkspace { */ export interface WorkspaceCreationRequest { /** - * The App Id of this Theia.cloud instance. Request without a matching Id will be denied. + * The App Id of this Theia Cloud instance. Request without a matching Id will be denied. * @type {string} * @memberof WorkspaceCreationRequest */ @@ -445,7 +433,7 @@ export interface WorkspaceCreationRequest { */ export interface WorkspaceDeletionRequest { /** - * The App Id of this Theia.cloud instance. Request without a matching Id will be denied. + * The App Id of this Theia Cloud instance. Request without a matching Id will be denied. * @type {string} * @memberof WorkspaceDeletionRequest */ @@ -470,7 +458,7 @@ export interface WorkspaceDeletionRequest { */ export interface WorkspaceListRequest { /** - * The App Id of this Theia.cloud instance. Request without a matching Id will be denied. + * The App Id of this Theia Cloud instance. Request without a matching Id will be denied. * @type {string} * @memberof WorkspaceListRequest */ diff --git a/node/common/src/client/base.ts b/node/common/src/client/base.ts index 021d1142..388db19b 100644 --- a/node/common/src/client/base.ts +++ b/node/common/src/client/base.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ /** - * Theia.cloud API + * Theia Cloud API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.8.0 + * The version of the OpenAPI document: 0.11.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/node/common/src/client/common.ts b/node/common/src/client/common.ts index ec23c5ce..a0afe76b 100644 --- a/node/common/src/client/common.ts +++ b/node/common/src/client/common.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ /** - * Theia.cloud API + * Theia Cloud API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.8.0 + * The version of the OpenAPI document: 0.11.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/node/common/src/client/configuration.ts b/node/common/src/client/configuration.ts index a93108b4..30276a5e 100644 --- a/node/common/src/client/configuration.ts +++ b/node/common/src/client/configuration.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ /** - * Theia.cloud API + * Theia Cloud API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.8.0 + * The version of the OpenAPI document: 0.11.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/node/common/src/client/index.ts b/node/common/src/client/index.ts index 94045ca3..e4ec65f8 100644 --- a/node/common/src/client/index.ts +++ b/node/common/src/client/index.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ /** - * Theia.cloud API + * Theia Cloud API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.8.0 + * The version of the OpenAPI document: 0.11.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/node/landing-page/src/App.tsx b/node/landing-page/src/App.tsx index 9688579a..83de9e26 100644 --- a/node/landing-page/src/App.tsx +++ b/node/landing-page/src/App.tsx @@ -27,7 +27,7 @@ function App(): JSX.Element { if (config === undefined) { return (
- FATAL: Theia.Cloud configuration could not be found. + FATAL: Theia Cloud configuration could not be found.
); } diff --git a/node/monitor/docs/sequence-diagram.puml b/node/monitor/docs/sequence-diagram.puml index e2f1d04f..ea340b5d 100644 --- a/node/monitor/docs/sequence-diagram.puml +++ b/node/monitor/docs/sequence-diagram.puml @@ -2,7 +2,7 @@ hide footbox -participant "Theia.cloud Monitoring Service" as mon +participant "Theia Cloud Monitoring Service" as mon participant "VSCode extension" as vscode participant "User" as user diff --git a/terraform/modules/helm/main.tf b/terraform/modules/helm/main.tf index a57c0e3e..d8b22dcf 100644 --- a/terraform/modules/helm/main.tf +++ b/terraform/modules/helm/main.tf @@ -239,7 +239,7 @@ resource "helm_release" "theia-cloud" { ] set { - name = "hosts.paths.baseHost" + name = "hosts.configuration.baseHost" value = var.hostname } diff --git a/terraform/modules/helm/theia-cloud.yaml b/terraform/modules/helm/theia-cloud.yaml index 8430e188..44f858c2 100644 --- a/terraform/modules/helm/theia-cloud.yaml +++ b/terraform/modules/helm/theia-cloud.yaml @@ -15,7 +15,7 @@ demoApplication: hosts: usePaths: true - paths: + configuration: service: servicex landing: trynow instance: instances @@ -42,6 +42,7 @@ ingress: instanceName: "theia-cloud-demo-ws-ingress" clusterIssuer: letsencrypt-prod theiaCloudCommonName: false + addTLSSecretName: false monitor: enable: false diff --git a/terraform/test-configurations/1_theia-cloud-base/theia_cloud_base.tf b/terraform/test-configurations/1_theia-cloud-base/theia_cloud_base.tf index 48369f59..a6092b28 100644 --- a/terraform/test-configurations/1_theia-cloud-base/theia_cloud_base.tf +++ b/terraform/test-configurations/1_theia-cloud-base/theia_cloud_base.tf @@ -29,7 +29,7 @@ resource "helm_release" "theia-cloud-crds" { resource "helm_release" "theia-cloud-base" { name = "theia-cloud-base" - chart = "../../../../theia-cloud-helm/charts/theia.cloud-base" + chart = "../../../../theia-cloud-helm/charts/theia-cloud-base" namespace = "theiacloud" create_namespace = true diff --git a/terraform/test-configurations/2-01_try-now/theia_cloud.tf b/terraform/test-configurations/2-01_try-now/theia_cloud.tf index 4e78d22e..c0f40dd4 100644 --- a/terraform/test-configurations/2-01_try-now/theia_cloud.tf +++ b/terraform/test-configurations/2-01_try-now/theia_cloud.tf @@ -25,7 +25,7 @@ provider "kubectl" { resource "helm_release" "theia-cloud" { name = "theia-cloud" - chart = "../../../../theia-cloud-helm/charts/theia.cloud" + chart = "../../../../theia-cloud-helm/charts/theia-cloud" namespace = "theiacloud" create_namespace = true @@ -34,18 +34,23 @@ resource "helm_release" "theia-cloud" { ] set { - name = "hosts.service" - value = "service.${data.terraform_remote_state.minikube.outputs.hostname}" + name = "hosts.configuration.baseHost" + value = data.terraform_remote_state.minikube.outputs.hostname } set { - name = "hosts.landing" - value = "try.${data.terraform_remote_state.minikube.outputs.hostname}" + name = "hosts.configuration.service" + value = "service" } set { - name = "hosts.instance" - value = "ws.${data.terraform_remote_state.minikube.outputs.hostname}" + name = "hosts.configuration.landing" + value = "try" + } + + set { + name = "hosts.configuration.instance" + value = "ws" } set { diff --git a/terraform/test-configurations/2-02_monitor/theia_cloud.tf b/terraform/test-configurations/2-02_monitor/theia_cloud.tf index 595efb3c..7de5eb23 100644 --- a/terraform/test-configurations/2-02_monitor/theia_cloud.tf +++ b/terraform/test-configurations/2-02_monitor/theia_cloud.tf @@ -27,7 +27,7 @@ provider "helm" { resource "helm_release" "theia-cloud" { name = "theia-cloud" - chart = "../../../../theia-cloud-helm/charts/theia.cloud" + chart = "../../../../theia-cloud-helm/charts/theia-cloud" namespace = "theiacloud" create_namespace = true @@ -36,18 +36,23 @@ resource "helm_release" "theia-cloud" { ] set { - name = "hosts.service" - value = "service.${data.terraform_remote_state.minikube.outputs.hostname}" + name = "hosts.configuration.baseHost" + value = data.terraform_remote_state.minikube.outputs.hostname } set { - name = "hosts.landing" - value = "try.${data.terraform_remote_state.minikube.outputs.hostname}" + name = "hosts.configuration.service" + value = "service" } set { - name = "hosts.instance" - value = "ws.${data.terraform_remote_state.minikube.outputs.hostname}" + name = "hosts.configuration.landing" + value = "try" + } + + set { + name = "hosts.configuration.instance" + value = "ws" } set { diff --git a/terraform/test-configurations/2-03_try-now_paths/theia_cloud.tf b/terraform/test-configurations/2-03_try-now_paths/theia_cloud.tf index 2b850847..dcddac19 100644 --- a/terraform/test-configurations/2-03_try-now_paths/theia_cloud.tf +++ b/terraform/test-configurations/2-03_try-now_paths/theia_cloud.tf @@ -25,7 +25,7 @@ provider "kubectl" { resource "helm_release" "theia-cloud" { name = "theia-cloud" - chart = "../../../../theia-cloud-helm/charts/theia.cloud" + chart = "../../../../theia-cloud-helm/charts/theia-cloud" namespace = "theiacloud" create_namespace = true @@ -41,23 +41,28 @@ resource "helm_release" "theia-cloud" { } set { - name = "hosts.paths.service" + name = "ingress.addTLSSecretName" + value = "true" + } + + set { + name = "hosts.configuration.service" value = "service" } set { - name = "hosts.paths.landing" + name = "hosts.configuration.landing" value = "try" } set { - name = "hosts.paths.instance" + name = "hosts.configuration.instance" value = "instances" } set { - name = "hosts.paths.baseHost" + name = "hosts.configuration.baseHost" value = data.terraform_remote_state.minikube.outputs.hostname } diff --git a/terraform/values/valuesDemo.yaml b/terraform/values/valuesDemo.yaml index 035e5ac0..8c63c03b 100644 --- a/terraform/values/valuesDemo.yaml +++ b/terraform/values/valuesDemo.yaml @@ -17,10 +17,11 @@ demoApplication: hosts: usePaths: false - service: service.theia-cloud.io - serviceProtocol: https - landing: try.theia-cloud.io - instance: ws.theia-cloud.io + configuration: + baseHost: theia-cloud.io + service: service + landing: try + instance: ws landingPage: image: theiacloud/theia-cloud-landing-page:0.11.0-next @@ -40,6 +41,9 @@ keycloak: clientSecret: "publicbutoauth2proxywantsasecret" cookieSecret: "s-p4GxfRlPa_BI1XsLuvE2ihNOqYD1vmewWcXcpYjr0=" +service: + protocol: https + operator: eagerStart: false bandwidthLimiter: "WONDERSHAPER" diff --git a/terraform/values/valuesMonitor.yaml b/terraform/values/valuesMonitor.yaml index 6b71a923..5b50d4a7 100644 --- a/terraform/values/valuesMonitor.yaml +++ b/terraform/values/valuesMonitor.yaml @@ -18,10 +18,11 @@ demoApplication: hosts: usePaths: false - service: service.theia-cloud.io - serviceProtocol: https - landing: try.theia-cloud.io - instance: ws.theia-cloud.io + configuration: + baseHost: theia-cloud.io + service: service + landing: try + instance: ws landingPage: image: theiacloud/theia-cloud-landing-page:0.11.0-next @@ -36,6 +37,9 @@ keycloak: clientSecret: "publicbutoauth2proxywantsasecret" cookieSecret: "s-p4GxfRlPa_BI1XsLuvE2ihNOqYD1vmewWcXcpYjr0=" +service: + protocol: https + operator: eagerStart: false bandwidthLimiter: "WONDERSHAPER"