From 981796560adb98b744b9c24bf00ddd913ff33f23 Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Mon, 12 Oct 2020 11:45:31 +0300 Subject: [PATCH 1/8] Run dashboard in a dedicated deployment --- .../che/templates/dashboard-deployment.yaml | 57 +++++++++++++++++++ .../helm/che/templates/dashboard-service.yaml | 25 ++++++++ .../dashboard-traefik-gateway-configmap.yaml | 32 +++++++++++ .../helm/che/templates/ingress-dashboard.yaml | 47 +++++++++++++++ .../helm/che/templates/ingress.yaml | 18 ++++-- .../templates/traefik-gateway-configmap.yaml | 5 ++ deploy/kubernetes/helm/che/values.yaml | 1 + .../helm/che/values/multi-user.yaml | 1 - 8 files changed, 180 insertions(+), 6 deletions(-) create mode 100644 deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml create mode 100644 deploy/kubernetes/helm/che/templates/dashboard-service.yaml create mode 100644 deploy/kubernetes/helm/che/templates/dashboard-traefik-gateway-configmap.yaml create mode 100644 deploy/kubernetes/helm/che/templates/ingress-dashboard.yaml diff --git a/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml b/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml new file mode 100644 index 00000000000..e1e7fee2b16 --- /dev/null +++ b/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml @@ -0,0 +1,57 @@ +# +# Copyright (c) 2012-2018 Red Hat, Inc. +# This program and the accompanying materials are made +# available under the terms of the Eclipse Public License 2.0 +# which is available at https://www.eclipse.org/legal/epl-2.0/ +# +# SPDX-License-Identifier: EPL-2.0 +# + +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: che + component: che-dashboard + name: che-dashboard +spec: + replicas: 1 + revisionHistoryLimit: 2 + selector: + matchLabels: + app: che + component: che-dashboard + strategy: + type: RollingUpdate + template: + metadata: + labels: + app: che + component: che-dashboard + spec: + containers: + - name: che-dashboard + image: {{ .Values.cheDashboardImage }} + imagePullPolicy: {{ .Values.cheImagePullPolicy }} + ports: + - containerPort: 8080 + name: http + resources: + limits: + memory: 256Mi + requests: + memory: 128Mi + livenessProbe: + httpGet: + path: / + port: 8080 + scheme: HTTP + initialDelaySeconds: 120 + timeoutSeconds: 10 + readinessProbe: + httpGet: + path: / + port: 8080 + scheme: HTTP + initialDelaySeconds: 15 + timeoutSeconds: 60 diff --git a/deploy/kubernetes/helm/che/templates/dashboard-service.yaml b/deploy/kubernetes/helm/che/templates/dashboard-service.yaml new file mode 100644 index 00000000000..46ff8c277cb --- /dev/null +++ b/deploy/kubernetes/helm/che/templates/dashboard-service.yaml @@ -0,0 +1,25 @@ +# +# Copyright (c) 2012-2019 Red Hat, Inc. +# This program and the accompanying materials are made +# available under the terms of the Eclipse Public License 2.0 +# which is available at https://www.eclipse.org/legal/epl-2.0/ +# +# SPDX-License-Identifier: EPL-2.0 +# + +apiVersion: v1 +kind: Service +metadata: + labels: + app: che + component: che-dashboard + name: che-dashboard +spec: + ports: + - name: http + port: 8080 + protocol: TCP + targetPort: 8080 + selector: + app: che + component: che-dashboard diff --git a/deploy/kubernetes/helm/che/templates/dashboard-traefik-gateway-configmap.yaml b/deploy/kubernetes/helm/che/templates/dashboard-traefik-gateway-configmap.yaml new file mode 100644 index 00000000000..456aca2c113 --- /dev/null +++ b/deploy/kubernetes/helm/che/templates/dashboard-traefik-gateway-configmap.yaml @@ -0,0 +1,32 @@ +# +# Copyright (c) 2012-2018 Red Hat, Inc. +# This program and the accompanying materials are made +# available under the terms of the Eclipse Public License 2.0 +# which is available at https://www.eclipse.org/legal/epl-2.0/ +# +# SPDX-License-Identifier: EPL-2.0 +# + +{{- if and (eq .Values.global.serverStrategy "single-host") (eq .Values.global.singleHostExposure "gateway") }} + +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + app: che + component: che-gateway-config + name: che-gateway-route-dashboard +data: + dashboard.yml: | + http: + routers: + che-dashboard: + rule: "PathPrefix(`/dashboard/`)" + service: che-dashboard + priority: 10 + services: + che-dashboard: + loadBalancer: + servers: + - url: 'http://che-dashboard:8080' +{{- end }} diff --git a/deploy/kubernetes/helm/che/templates/ingress-dashboard.yaml b/deploy/kubernetes/helm/che/templates/ingress-dashboard.yaml new file mode 100644 index 00000000000..09063c57f98 --- /dev/null +++ b/deploy/kubernetes/helm/che/templates/ingress-dashboard.yaml @@ -0,0 +1,47 @@ +# +# Copyright (c) 2012-2019 Red Hat, Inc. +# This program and the accompanying materials are made +# available under the terms of the Eclipse Public License 2.0 +# which is available at https://www.eclipse.org/legal/epl-2.0/ +# +# SPDX-License-Identifier: EPL-2.0 +# + +# If single-host powered by gateway is configured - the corresponding gateway configmap is expexted to be created +# but not this ingress +{{- if not (and (eq .Values.global.serverStrategy "single-host") (eq .Values.global.singleHostExposure "gateway")) }} + +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: che-dashboard-ingress + annotations: + kubernetes.io/ingress.class: "nginx" + {{ .Values.global.ingressAnnotationsPrefix }}ingress.kubernetes.io/proxy-read-timeout: "3600" + {{ .Values.global.ingressAnnotationsPrefix }}ingress.kubernetes.io/proxy-connect-timeout: "3600" +{{- if and .Values.global.tls .Values.global.tls.enabled }} + {{ .Values.global.ingressAnnotationsPrefix }}ingress.kubernetes.io/ssl-redirect: "true" +{{- else }} + {{ .Values.global.ingressAnnotationsPrefix }}ingress.kubernetes.io/ssl-redirect: "false" +{{- end }} +spec: +{{- if .Values.global.tls.enabled }} + tls: + - hosts: + - {{ template "cheHost" . }} + secretName: {{ .Values.global.tls.secretName }} +{{- end }} + rules: +{{- if ne .Values.global.serverStrategy "default-host" }} + - host: {{ template "cheHost" . }} + http: +{{- else }} + - http: +{{- end }} + paths: + # The path rule for Che Dashboard + - path: /dashboard + backend: + serviceName: che-dashboard + servicePort: 8080 +{{- end }} diff --git a/deploy/kubernetes/helm/che/templates/ingress.yaml b/deploy/kubernetes/helm/che/templates/ingress.yaml index 5352a47b447..0ce7bc570d6 100644 --- a/deploy/kubernetes/helm/che/templates/ingress.yaml +++ b/deploy/kubernetes/helm/che/templates/ingress.yaml @@ -35,11 +35,19 @@ spec: - http: {{- end }} paths: - - path: / - backend: {{- if and (eq .Values.global.serverStrategy "single-host") (eq .Values.global.singleHostExposure "gateway") }} - serviceName: che-gateway + - path: / + backend: + serviceName: che-gateway + servicePort: 8080 {{- else }} - serviceName: che-host + - path: / + backend: + serviceName: che-host + servicePort: 8080 + # The path rule for Che Dashboard next hosted by Che Server. It should be removed after https://github.com/eclipse/che/issues/17647 is fixed + - path: /dashboard/next + backend: + serviceName: che-host + servicePort: 8080 {{- end }} - servicePort: 8080 diff --git a/deploy/kubernetes/helm/che/templates/traefik-gateway-configmap.yaml b/deploy/kubernetes/helm/che/templates/traefik-gateway-configmap.yaml index 45611bce11b..53fb547d08f 100644 --- a/deploy/kubernetes/helm/che/templates/traefik-gateway-configmap.yaml +++ b/deploy/kubernetes/helm/che/templates/traefik-gateway-configmap.yaml @@ -24,6 +24,11 @@ data: rule: "PathPrefix(`/`)" service: che priority: 1 + # The path rule for Che Dashboard next hosted by Che Server. It should be removed after https://github.com/eclipse/che/issues/17647 is fixed + dashboard-next: + rule: "PathPrefix(`/dashboard/next`)" + service: che + priority: 20 services: che: loadBalancer: diff --git a/deploy/kubernetes/helm/che/values.yaml b/deploy/kubernetes/helm/che/values.yaml index 8ce9cf80248..0a9d167d70f 100644 --- a/deploy/kubernetes/helm/che/values.yaml +++ b/deploy/kubernetes/helm/che/values.yaml @@ -17,6 +17,7 @@ cheWorkspaceHttpProxy: "" cheWorkspaceHttpsProxy: "" cheWorkspaceNoProxy: "" cheImage: quay.io/eclipse/che-server:nightly +cheDashboardImage: quay.io/eclipse/che-dashboard:next cheImagePullPolicy: Always cheKeycloakRealm: "che" cheKeycloakClientId: "che-public" diff --git a/deploy/kubernetes/helm/che/values/multi-user.yaml b/deploy/kubernetes/helm/che/values/multi-user.yaml index 06d1c9646db..8439506f938 100644 --- a/deploy/kubernetes/helm/che/values/multi-user.yaml +++ b/deploy/kubernetes/helm/che/values/multi-user.yaml @@ -9,4 +9,3 @@ global: multiuser: true - From dd7bc79787ebfb906bde4b0be4513ea269b63f5f Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Mon, 12 Oct 2020 17:37:13 +0300 Subject: [PATCH 2/8] fixup! Run dashboard in a dedicated deployment --- .../helm/che/templates/dashboard-deployment.yaml | 10 ++++++---- .../{ingress-dashboard.yaml => dashboard-ingress.yaml} | 0 deploy/kubernetes/helm/che/values.yaml | 9 ++++++++- 3 files changed, 14 insertions(+), 5 deletions(-) rename deploy/kubernetes/helm/che/templates/{ingress-dashboard.yaml => dashboard-ingress.yaml} (100%) diff --git a/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml b/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml index e1e7fee2b16..62609a25898 100644 --- a/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml +++ b/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml @@ -31,16 +31,18 @@ spec: spec: containers: - name: che-dashboard - image: {{ .Values.cheDashboardImage }} - imagePullPolicy: {{ .Values.cheImagePullPolicy }} + image: {{ .Values.dashboard.image }} + imagePullPolicy: {{ .Values.dashboard.imagePullPolicy }} ports: - containerPort: 8080 name: http resources: limits: - memory: 256Mi + memory: {{ .Values.dashboard.memoryLimit }} + cpu: {{ .Values.dashboard.cpuLimit }} requests: - memory: 128Mi + memory: {{ .Values.dashboard.memoryRequest }} + cpu: {{ .Values.dashboard.cpuRequest }} livenessProbe: httpGet: path: / diff --git a/deploy/kubernetes/helm/che/templates/ingress-dashboard.yaml b/deploy/kubernetes/helm/che/templates/dashboard-ingress.yaml similarity index 100% rename from deploy/kubernetes/helm/che/templates/ingress-dashboard.yaml rename to deploy/kubernetes/helm/che/templates/dashboard-ingress.yaml diff --git a/deploy/kubernetes/helm/che/values.yaml b/deploy/kubernetes/helm/che/values.yaml index 0a9d167d70f..881b6c0971e 100644 --- a/deploy/kubernetes/helm/che/values.yaml +++ b/deploy/kubernetes/helm/che/values.yaml @@ -17,7 +17,6 @@ cheWorkspaceHttpProxy: "" cheWorkspaceHttpsProxy: "" cheWorkspaceNoProxy: "" cheImage: quay.io/eclipse/che-server:nightly -cheDashboardImage: quay.io/eclipse/che-dashboard:next cheImagePullPolicy: Always cheKeycloakRealm: "che" cheKeycloakClientId: "che-public" @@ -111,6 +110,14 @@ che: disableProbes: false logLevel: "INFO" +dashboard: + image: quay.io/eclipse/che-dashboard:next + imagePullPolicy: "Always" + memoryRequest: 16Mi + memoryLimit: 256Mi + cpuRequest: 50m + cpuLimit: 500m + cheDevfileRegistry: deploy: true From f7ceca9c1f19fd9716db7908a7bb8e41d37d68fe Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Mon, 12 Oct 2020 17:46:26 +0300 Subject: [PATCH 3/8] configure dashboard probes to requests /dashboard/ to detect packaging issues --- .../kubernetes/helm/che/templates/dashboard-deployment.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml b/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml index 62609a25898..08774bd8843 100644 --- a/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml +++ b/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml @@ -45,14 +45,14 @@ spec: cpu: {{ .Values.dashboard.cpuRequest }} livenessProbe: httpGet: - path: / + path: /dashboard/ port: 8080 scheme: HTTP initialDelaySeconds: 120 timeoutSeconds: 10 readinessProbe: httpGet: - path: / + path: /dashboard/ port: 8080 scheme: HTTP initialDelaySeconds: 15 From 8d49e54e131b39afdd017830ababae162e0bb115 Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Mon, 12 Oct 2020 17:46:52 +0300 Subject: [PATCH 4/8] Apply the same probes configuration as registries apache servers has --- .../helm/che/templates/dashboard-deployment.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml b/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml index 08774bd8843..ebb6498383c 100644 --- a/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml +++ b/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml @@ -48,12 +48,14 @@ spec: path: /dashboard/ port: 8080 scheme: HTTP - initialDelaySeconds: 120 - timeoutSeconds: 10 + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 3 readinessProbe: httpGet: path: /dashboard/ port: 8080 scheme: HTTP - initialDelaySeconds: 15 - timeoutSeconds: 60 + initialDelaySeconds: 3 + periodSeconds: 10 + timeoutSeconds: 3 \ No newline at end of file From 74b0ae3d4e7dab5b068d20e6905da5bcaf486f4e Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Mon, 12 Oct 2020 17:49:39 +0300 Subject: [PATCH 5/8] fixup! Apply the same probes configuration as registries apache servers has --- deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml b/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml index ebb6498383c..6b3f8366b48 100644 --- a/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml +++ b/deploy/kubernetes/helm/che/templates/dashboard-deployment.yaml @@ -58,4 +58,4 @@ spec: scheme: HTTP initialDelaySeconds: 3 periodSeconds: 10 - timeoutSeconds: 3 \ No newline at end of file + timeoutSeconds: 3 From 837a91e0ab6da30976cbc69177a1c5ccf3913e8c Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Tue, 13 Oct 2020 10:33:18 +0300 Subject: [PATCH 6/8] Add end slash to dashboard path to continue support redirects --- deploy/kubernetes/helm/che/templates/dashboard-ingress.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/kubernetes/helm/che/templates/dashboard-ingress.yaml b/deploy/kubernetes/helm/che/templates/dashboard-ingress.yaml index 09063c57f98..ced954ff8df 100644 --- a/deploy/kubernetes/helm/che/templates/dashboard-ingress.yaml +++ b/deploy/kubernetes/helm/che/templates/dashboard-ingress.yaml @@ -40,7 +40,7 @@ spec: {{- end }} paths: # The path rule for Che Dashboard - - path: /dashboard + - path: /dashboard/ backend: serviceName: che-dashboard servicePort: 8080 From 2fa15702daf97d0ee592e7402ad5a772cb4c4732 Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Tue, 13 Oct 2020 10:59:32 +0300 Subject: [PATCH 7/8] Bump che dashboard version in helm charts on release --- .ci/set_tag_version_images_linux.sh | 1 + .ci/set_tag_version_images_macos.sh | 1 + 2 files changed, 2 insertions(+) diff --git a/.ci/set_tag_version_images_linux.sh b/.ci/set_tag_version_images_linux.sh index 72b0ec025be..41b1104f9a8 100755 --- a/.ci/set_tag_version_images_linux.sh +++ b/.ci/set_tag_version_images_linux.sh @@ -20,6 +20,7 @@ sed -i "s/che-devfile-registry:.*/che-devfile-registry:$1/g" ../deploy/kubernete sed -i "s/che-postgres:.*/che-postgres:$1/g" ../deploy/kubernetes/helm/che/custom-charts/che-postgres/values.yaml sed -i "s/che-keycloak:.*/che-keycloak:$1/g" ../deploy/kubernetes/helm/che/custom-charts/che-keycloak/values.yaml sed -i "s/eclipse\/che-server:.*/eclipse\/che-server:$1/g" ../deploy/kubernetes/helm/che/values.yaml +sed -i "s/eclipse\/che-dashboard:.*/eclipse\/che-dashboard:$1/g" ../deploy/kubernetes/helm/che/values.yaml sed -i "s/che-endpoint-watcher:nightly/che-endpoint-watcher:$1/g" ../deploy/kubernetes/helm/che/custom-charts/che-keycloak/templates/deployment.yaml sed -i "s/che-endpoint-watcher:nightly/che-endpoint-watcher:$1/g" ../deploy/kubernetes/helm/che/templates/deployment.yaml diff --git a/.ci/set_tag_version_images_macos.sh b/.ci/set_tag_version_images_macos.sh index 743bcc7c554..86a4a596e67 100755 --- a/.ci/set_tag_version_images_macos.sh +++ b/.ci/set_tag_version_images_macos.sh @@ -20,5 +20,6 @@ sed -i '' "s/che-devfile-registry:nightly/che-devfile-registry:$1/g" ../deploy/k sed -i '' "s/che-postgres:nightly/che-postgres:$1/g" ../deploy/kubernetes/helm/che/custom-charts/che-postgres/values.yaml sed -i '' "s/che-keycloak:nightly/che-keycloak:$1/g" ../deploy/kubernetes/helm/che/custom-charts/che-keycloak/values.yaml sed -i '' "s/eclipse\/che-server:nightly/eclipse\/che-server:$1/g" ../deploy/kubernetes/helm/che/values.yaml +sed -i '' "s/eclipse\/che-dashboard:next/eclipse\/che-dashboard:$1/g" ../deploy/kubernetes/helm/che/values.yaml From 0c1848605d20a0130e8c9ada6014363f9eef59da Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Mon, 19 Oct 2020 14:39:58 +0300 Subject: [PATCH 8/8] Clean up references to removed deploy_che.sh --- .ci/set_tag_version_images_linux.sh | 5 ----- .ci/set_tag_version_images_macos.sh | 5 ----- 2 files changed, 10 deletions(-) diff --git a/.ci/set_tag_version_images_linux.sh b/.ci/set_tag_version_images_linux.sh index 41b1104f9a8..b6cc5c0dbed 100755 --- a/.ci/set_tag_version_images_linux.sh +++ b/.ci/set_tag_version_images_linux.sh @@ -5,11 +5,6 @@ # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html -sed -i "s/DEFAULT_PLUGIN_REGISTRY_IMAGE_TAG=\".*\"/DEFAULT_PLUGIN_REGISTRY_IMAGE_TAG=\"$1\"/g" ../deploy/openshift/deploy_che.sh -sed -i "s/DEFAULT_DEVFILE_REGISTRY_IMAGE_TAG=\".*\"/DEFAULT_DEVFILE_REGISTRY_IMAGE_TAG=\"$1\"/g" ../deploy/openshift/deploy_che.sh -sed -i "s/DEFAULT_CHE_IMAGE_TAG=\".*\"/DEFAULT_CHE_IMAGE_TAG=\"$1\"/g" ../deploy/openshift/deploy_che.sh -sed -i "s/DEFAULT_KEYCLOAK_IMAGE_TAG=\".*\"/DEFAULT_KEYCLOAK_IMAGE_TAG=\"$1\"/g" ../deploy/openshift/deploy_che.sh - sed -i "s/che.factory.default_editor=eclipse\/che-theia\/.*/che.factory.default_editor=eclipse\/che-theia\/$1/g" ../assembly/assembly-wsmaster-war/src/main/webapp/WEB-INF/classes/che/che.properties sed -i "s/che.factory.default_plugins=eclipse\/che-machine-exec-plugin\/.*/che.factory.default_plugins=eclipse\/che-machine-exec-plugin\/$1/g" ../assembly/assembly-wsmaster-war/src/main/webapp/WEB-INF/classes/che/che.properties sed -i "s/che.workspace.devfile.default_editor=eclipse\/che-theia\/.*/che.workspace.devfile.default_editor=eclipse\/che-theia\/$1/g" ../assembly/assembly-wsmaster-war/src/main/webapp/WEB-INF/classes/che/che.properties diff --git a/.ci/set_tag_version_images_macos.sh b/.ci/set_tag_version_images_macos.sh index 86a4a596e67..24170389c81 100755 --- a/.ci/set_tag_version_images_macos.sh +++ b/.ci/set_tag_version_images_macos.sh @@ -5,11 +5,6 @@ # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html -sed -i '' "s/DEFAULT_PLUGIN_REGISTRY_IMAGE_TAG=\"nightly\"/DEFAULT_PLUGIN_REGISTRY_IMAGE_TAG=\"$1\"/g" ../deploy/openshift/deploy_che.sh -sed -i '' "s/DEFAULT_DEVFILE_REGISTRY_IMAGE_TAG=\"nightly\"/DEFAULT_PLUGIN_REGISTRY_IMAGE_TAG=\"$1\"/g" ../deploy/openshift/deploy_che.sh -sed -i '' "s/DEFAULT_CHE_IMAGE_TAG=\"nightly\"/DEFAULT_PLUGIN_REGISTRY_IMAGE_TAG=\"$1\"/g" ../deploy/openshift/deploy_che.sh -sed -i '' "s/DEFAULT_KEYCLOAK_IMAGE_TAG=\"nightly\"/DEFAULT_PLUGIN_REGISTRY_IMAGE_TAG=\"$1\"/g" ../deploy/openshift/deploy_che.sh - sed -i '' "s/che.factory.default_editor=eclipse\/che-theia\/next/che.factory.default_editor=eclipse\/che-theia\/$1/g" ../assembly/assembly-wsmaster-war/src/main/webapp/WEB-INF/classes/che/che.properties sed -i '' "s/che.factory.default_plugins=eclipse\/che-machine-exec-plugin\/nightly/che.factory.default_plugins=eclipse\/che-machine-exec-plugin\/$1/g" ../assembly/assembly-wsmaster-war/src/main/webapp/WEB-INF/classes/che/che.properties sed -i '' "s/che.workspace.devfile.default_editor=eclipse\/che-theia\/next/che.workspace.devfile.default_editor=eclipse\/che-theia\/$1/g" ../assembly/assembly-wsmaster-war/src/main/webapp/WEB-INF/classes/che/che.properties