From 58198ff4de63534eb1d86568e3c90d9263b87b5f Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Thu, 13 Jun 2019 16:47:56 +0300 Subject: [PATCH 01/45] Add simple console app to java-maven devfile Signed-off-by: Sergii Leshchenko --- devfiles/java-maven/devfile.yaml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/devfiles/java-maven/devfile.yaml b/devfiles/java-maven/devfile.yaml index 5dce8c32c..c1f88d724 100644 --- a/devfiles/java-maven/devfile.yaml +++ b/devfiles/java-maven/devfile.yaml @@ -2,6 +2,12 @@ apiVersion: 1.0.0 metadata: name: java-maven +projects: + - + name: console-java-simple + source: + type: git + location: "https://github.com/che-samples/console-java-simple.git" components: - type: chePlugin @@ -40,3 +46,18 @@ components: volumes: - name: m2 containerPath: /home/user/.m2 +commands: + - + name: maven build + actions: + - + type: exec + command: "mvn -Duser.home=${HOME} -f ${CHE_PROJECTS_ROOT}/console-java-simple clean install" + component: maven + - + name: maven build and run + actions: + - + type: exec + command: "mvn -Duser.home=${HOME} -f ${CHE_PROJECTS_ROOT}/console-java-simple clean install && java -jar ${CHE_PROJECTS_ROOT}/console-java-simple/target/*.jar" + component: maven From 7e19dde96b734ddc8b31bdebbd92351294ae36ec Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Thu, 13 Jun 2019 17:13:31 +0300 Subject: [PATCH 02/45] Add simple console app to java-gradle devfile Signed-off-by: Sergii Leshchenko --- devfiles/java-gradle/devfile.yaml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/devfiles/java-gradle/devfile.yaml b/devfiles/java-gradle/devfile.yaml index 655bd3e2e..9cf29dcec 100644 --- a/devfiles/java-gradle/devfile.yaml +++ b/devfiles/java-gradle/devfile.yaml @@ -2,6 +2,12 @@ apiVersion: 1.0.0 metadata: name: java-gradle +projects: + - + name: console-java-simple + source: + type: git + location: "https://github.com/che-samples/console-java-simple.git" components: - type: chePlugin @@ -35,3 +41,18 @@ components: - name: gradle containerPath: /home/user/.gradle mountSources: true +commands: + - + name: gradle build + actions: + - + type: exec + command: "cd ${CHE_PROJECTS_ROOT}/console-java-simple; gradle build" + component: gradle + - + name: gradle run + actions: + - + type: exec + command: "cd ${CHE_PROJECTS_ROOT}/console-java-simple && gradle run" + component: gradle From 4045d87e382e819ece5fe67bb7d40d63300dc599 Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Fri, 14 Jun 2019 11:42:35 +0300 Subject: [PATCH 03/45] Fix build.sh Signed-off-by: Sergii Leshchenko --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 4acf13d80..f30a82248 100755 --- a/build.sh +++ b/build.sh @@ -8,4 +8,4 @@ # SPDX-License-Identifier: EPL-2.0 # -docker build -t openshiftio/che-devfile-registry/che-devfile-registry:latest . +docker build -t quay.io/openshiftio/che-devfile-registry:latest . From 91469d9041ffb28ec2315e90efc9dfb0a1d56dcb Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Fri, 14 Jun 2019 11:43:11 +0300 Subject: [PATCH 04/45] Update Python and Django samples Signed-off-by: Sergii Leshchenko --- devfiles/python-django/devfile.yaml | 60 +++++++++++++++++++++++++++++ devfiles/python-django/meta.yaml | 6 +++ devfiles/python/devfile.yaml | 17 ++++++-- 3 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 devfiles/python-django/devfile.yaml create mode 100644 devfiles/python-django/meta.yaml diff --git a/devfiles/python-django/devfile.yaml b/devfiles/python-django/devfile.yaml new file mode 100644 index 000000000..4235a0b95 --- /dev/null +++ b/devfiles/python-django/devfile.yaml @@ -0,0 +1,60 @@ +--- +apiVersion: 1.0.0 +metadata: + name: python-django +projects: + - + name: django-realworld-example-app + source: + type: git + location: "https://github.com/gothinkster/django-realworld-example-app" +components: + - + type: chePlugin + id: ms-python/python/latest + memoryLimit: 512Mi + - + type: dockerimage + alias: python + image: centos/python-36-centos7:1 + command: ['sleep'] + args: ['infinity'] + env: + - name: HOME + value: /home/user + - name: PS1 + value: $(echo ${0})\\$ + memoryLimit: 512Mi + endpoints: + - name: 'django' + port: 7000 + mountSources: true +commands: + - + name: install requirements + actions: + - + type: exec + component: python + command: cd ${CHE_PROJECTS_ROOT}/django-realworld-example-app && pip install -r requirements.txt + - + name: migrate + actions: + - + type: exec + component: python + command: cd ${CHE_PROJECTS_ROOT}/django-realworld-example-app && python manage.py migrate + - + name: patch resources + actions: + - + type: exec + component: python + command: cd ${CHE_PROJECTS_ROOT}/django-realworld-example-app && sed -i "s/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = \['*'\]/g" conduit/settings.py + - + name: run server + actions: + - + type: exec + component: python + command: cd ${CHE_PROJECTS_ROOT}/django-realworld-example-app && python manage.py runserver 0.0.0.0:7000 diff --git a/devfiles/python-django/meta.yaml b/devfiles/python-django/meta.yaml new file mode 100644 index 000000000..9d7d9f4e0 --- /dev/null +++ b/devfiles/python-django/meta.yaml @@ -0,0 +1,6 @@ +--- +displayName: Python with Theia IDE +description: Default stack with Python 3.7 and Theia IDE adapted to work with Django +tags: ["Theia", "Debian", "Python", "pip"] +icon: https://www.eclipse.org/che/images/logo-eclipseche.svg +globalMemoryLimit: 1686Mi diff --git a/devfiles/python/devfile.yaml b/devfiles/python/devfile.yaml index 3628948c2..13968b766 100644 --- a/devfiles/python/devfile.yaml +++ b/devfiles/python/devfile.yaml @@ -2,6 +2,12 @@ apiVersion: 1.0.0 metadata: name: python +projects: + - + name: python-hello-world + source: + type: git + location: "https://github.com/che-samples/python-hello-world.git" components: - type: chePlugin @@ -19,7 +25,12 @@ components: - name: PS1 value: $(echo ${0})\\$ memoryLimit: 512Mi - endpoints: - - name: 'django' - port: 7000 mountSources: true +commands: + - + name: run + actions: + - + type: exec + command: "cd ${CHE_PROJECTS_ROOT}/python-hello-world && python hello-world.py" + component: python From b4b30f51e1ae07372b115712bd92bde42ca0727b Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Fri, 14 Jun 2019 13:27:45 +0300 Subject: [PATCH 05/45] Add Sample project to apache-camel-springboot devfile Signed-off-by: Sergii Leshchenko --- .../devfile.yaml | 27 ++++++++++++++++++- .../meta.yaml | 0 2 files changed, 26 insertions(+), 1 deletion(-) rename devfiles/{apache-camel-springboot-che7 => apache-camel-springboot}/devfile.yaml (65%) rename devfiles/{apache-camel-springboot-che7 => apache-camel-springboot}/meta.yaml (100%) diff --git a/devfiles/apache-camel-springboot-che7/devfile.yaml b/devfiles/apache-camel-springboot/devfile.yaml similarity index 65% rename from devfiles/apache-camel-springboot-che7/devfile.yaml rename to devfiles/apache-camel-springboot/devfile.yaml index ec3dc28a6..17c8f52f7 100644 --- a/devfiles/apache-camel-springboot-che7/devfile.yaml +++ b/devfiles/apache-camel-springboot/devfile.yaml @@ -1,7 +1,13 @@ --- apiVersion: 1.0.0 metadata: - name: apache-camel-springboot-che7 + name: apache-camel-springboot +projects: + - + name: fuse-rest-http-booster + source: + type: git + location: "https://github.com/jboss-fuse/fuse-rest-http-booster" components: - type: chePlugin @@ -46,3 +52,22 @@ components: - name: '8080/tcp' port: 8080 mountSources: true +commands: + - + name: build the project + actions: + - type: exec + component: maven + command: cd ${CHE_PROJECTS_ROOT}/fuse-rest-http-booster && mvn clean install + - + name: run the services + actions: + - type: exec + component: maven + command: cd ${CHE_PROJECTS_ROOT}/fuse-rest-http-booster && mvn spring-boot:run -DskipTests + - + name: run and debug the services + actions: + - type: exec + component: maven + command: cd ${CHE_PROJECTS_ROOT}/fuse-rest-http-booster && mvn spring-boot:run -DskipTests -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005" diff --git a/devfiles/apache-camel-springboot-che7/meta.yaml b/devfiles/apache-camel-springboot/meta.yaml similarity index 100% rename from devfiles/apache-camel-springboot-che7/meta.yaml rename to devfiles/apache-camel-springboot/meta.yaml From 1e89e61200ac7ec409d5398f2d306407cac027ee Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Fri, 14 Jun 2019 13:47:56 +0300 Subject: [PATCH 06/45] Add sample project for dotnet stack Signed-off-by: Sergii Leshchenko --- devfiles/dotnet/devfile.yaml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/devfiles/dotnet/devfile.yaml b/devfiles/dotnet/devfile.yaml index 7166d88fd..f0a72b67d 100644 --- a/devfiles/dotnet/devfile.yaml +++ b/devfiles/dotnet/devfile.yaml @@ -2,6 +2,12 @@ apiVersion: 1.0.0 metadata: name: dotnet +projects: + - + name: dotnet-web-simple + source: + type: git + location: "https://github.com/che-samples/dotnet-web-simple" components: - type: chePlugin @@ -30,3 +36,16 @@ components: volumes: - name: dotnet containerPath: "/home/user" +commands: + - + name: update dependencies + actions: + - type: exec + component: dotnet + command: "cd ${CHE_PROJECTS_ROOT}/dotnet-web-simple && dotnet restore" + - + name: run + actions: + - type: exec + component: dotnet + command: "cd ${CHE_PROJECTS_ROOT}/dotnet-web-simple && dotnet run" From 486e726f6b2c63f07a64e5c519b2656c796d00c8 Mon Sep 17 00:00:00 2001 From: Lukas Krejci Date: Mon, 17 Jun 2019 16:05:10 +0200 Subject: [PATCH 07/45] Adds an example project to go devfile. --- devfiles/go/devfile.yaml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/devfiles/go/devfile.yaml b/devfiles/go/devfile.yaml index 40fa0feec..cff3373e3 100644 --- a/devfiles/go/devfile.yaml +++ b/devfiles/go/devfile.yaml @@ -2,20 +2,33 @@ apiVersion: 1.0.0 metadata: name: golang +projects: + - + name: example + source: + type: git + location: https://github.com/golang/example.git + clonePath: src/github.com/golang/example/ components: - type: chePlugin id: ms-vscode/go/latest + alias: go-plugin memoryLimit: 512Mi - type: dockerimage - image: golang:1.12.4-stretch + # this version is used in the plugin + image: golang:1.10.7-stretch + alias: go-cli command: ['sleep'] args: ['infinity'] env: - name: GOPATH - value: /go:/projects + # replicate the GOPATH from the plugin + value: /go:$(CHE_PROJECTS_ROOT) - name: GOCACHE + # replicate the GOCACHE from the plugin, even though the cache is not shared + # between the two value: /tmp/.cache - name: PS1 value: $(echo ${0})\\$ From cdcc7410b708da9060fd087802ca4f0263dc47ac Mon Sep 17 00:00:00 2001 From: Masaki Muranaka Date: Wed, 19 Jun 2019 10:43:41 +0900 Subject: [PATCH 08/45] Fix invalid indents. Signed-off-by: Masaki Muranaka --- .../che-devfile-registry/templates/ingress.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deploy/kubernetes/che-devfile-registry/templates/ingress.yaml b/deploy/kubernetes/che-devfile-registry/templates/ingress.yaml index d3657d83b..fd8fab9c7 100644 --- a/deploy/kubernetes/che-devfile-registry/templates/ingress.yaml +++ b/deploy/kubernetes/che-devfile-registry/templates/ingress.yaml @@ -23,8 +23,8 @@ spec: serviceName: che-devfile-registry servicePort: 8080 {{- if .Values.cheDevfileRegistryIngressSecretName }} - tls: - - hosts: - - {{ printf "che-devfile-registry-%s.%s" .Release.Namespace .Values.global.ingressDomain }} - secretName: {{ .Values.cheDevfileRegistryIngressSecretName }} + tls: + - hosts: + - {{ printf "che-devfile-registry-%s.%s" .Release.Namespace .Values.global.ingressDomain }} + secretName: {{ .Values.cheDevfileRegistryIngressSecretName }} {{- end -}} From 4d140f3f8d86215b6d985a83ce257b4b4a3572d0 Mon Sep 17 00:00:00 2001 From: Mario Loriedo Date: Tue, 18 Jun 2019 21:16:33 +0200 Subject: [PATCH 09/45] Add new nodejs-express stack --- devfiles/nodejs/devfile.yaml | 38 ++++++++++++++++++++++++++++++++++++ devfiles/nodejs/meta.yaml | 6 ++++++ 2 files changed, 44 insertions(+) create mode 100644 devfiles/nodejs/devfile.yaml create mode 100644 devfiles/nodejs/meta.yaml diff --git a/devfiles/nodejs/devfile.yaml b/devfiles/nodejs/devfile.yaml new file mode 100644 index 000000000..3ef215e5e --- /dev/null +++ b/devfiles/nodejs/devfile.yaml @@ -0,0 +1,38 @@ +--- +apiVersion: 1.0.0 +metadata: + name: nodejs +projects: + - + name: nodejs-web-app + source: + type: git + location: "https://github.com/che-samples/web-nodejs-sample.git" +components: + - + type: chePlugin + id: che-incubator/typescript/latest + memoryLimit: 512Mi + - + type: dockerimage + alias: nodejs + image: registry.access.redhat.com/ubi8/nodejs-10 + command: ['sleep'] + args: ['infinity'] + env: + - name: HOME + value: /home/user + - name: PS1 + value: $(echo ${0})\\$ + memoryLimit: 512Mi + endpoints: + - name: 'nodejs' + port: 3000 + mountSources: true +commands: + - + name: run the web app + actions: + - type: exec + component: nodejs + command: cd ${CHE_PROJECTS_ROOT}/nodejs-web-app/app && nodemon app.js diff --git a/devfiles/nodejs/meta.yaml b/devfiles/nodejs/meta.yaml new file mode 100644 index 000000000..fc06d16f8 --- /dev/null +++ b/devfiles/nodejs/meta.yaml @@ -0,0 +1,6 @@ +--- +displayName: NodeJS Express Web Application +description: Default stack with NodeJS 10 +tags: ["NodeJS", "Express", "Theia", "ubi8"] +icon: https://www.eclipse.org/che/images/logo-eclipseche.svg +globalMemoryLimit: 1686Mi From 5a71913dcf37d1ab249c852c71f3e6494ad8a916 Mon Sep 17 00:00:00 2001 From: Angel Misevski Date: Tue, 18 Jun 2019 10:46:49 -0400 Subject: [PATCH 10/45] Update gradle mounted volume path to match dockerfile The community gradle dockerfile expects a volume at /home/gradle/.gradle If this volume is not included explicitly, the devfile can fail to start on kubernetes clusters, since docker will by default attempt to provision host storage for VOLUMEs. Many Kubernetes clusters forbid this for security reasons. Signed-off-by: Angel Misevski --- devfiles/java-gradle/devfile.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/devfiles/java-gradle/devfile.yaml b/devfiles/java-gradle/devfile.yaml index 9cf29dcec..45ffba90f 100644 --- a/devfiles/java-gradle/devfile.yaml +++ b/devfiles/java-gradle/devfile.yaml @@ -20,7 +20,7 @@ components: args: ['infinity'] env: - name: GRADLE_USER_HOME - value: /home/user/.gradle + value: /home/gradle/.gradle - name: JAVA_OPTS value: "-XX:MaxRAMPercentage=50 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 @@ -32,14 +32,14 @@ components: - name: PS1 value: "$(echo ${0})\\$ " - name: HOME - value: /home/user + value: /home/gradle memoryLimit: 512Mi endpoints: - name: '8080/tcp' port: 8080 volumes: - name: gradle - containerPath: /home/user/.gradle + containerPath: /home/gradle/.gradle mountSources: true commands: - From e47400f91cdeadc7c988efc1d52dc0e4b4be7271 Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Tue, 25 Jun 2019 16:56:53 +0300 Subject: [PATCH 11/45] Add AngularJS devfile along with sample project (#19) Signed-off-by: Sergii Leshchenko --- devfiles/angular/devfile.yaml | 58 +++++++++++++++++++++++++++++++++++ devfiles/angular/meta.yaml | 6 ++++ 2 files changed, 64 insertions(+) create mode 100644 devfiles/angular/devfile.yaml create mode 100644 devfiles/angular/meta.yaml diff --git a/devfiles/angular/devfile.yaml b/devfiles/angular/devfile.yaml new file mode 100644 index 000000000..fdb475ef3 --- /dev/null +++ b/devfiles/angular/devfile.yaml @@ -0,0 +1,58 @@ +--- +apiVersion: 1.0.0 +metadata: + name: angular +projects: + - + name: angular-realworld-example-app + source: + type: git + location: "https://github.com/gothinkster/angular-realworld-example-app" +components: + - + type: chePlugin + id: che-incubator/typescript/latest + - + type: dockerimage + alias: nodejs + image: node:10.16-alpine + command: ['tail'] + args: ['-f', '/dev/null'] + env: + - name: HOME + value: /projects + - name: PS1 + value: $(echo ${0})\\$ + memoryLimit: 1Gi + endpoints: + - name: 'angular' + port: 4200 + mountSources: true +commands: + - name: yarn install + actions: + - type: exec + component: nodejs + command: yarn install + workdir: ${CHE_PROJECTS_ROOT}/angular-realworld-example-app + - + name: build + actions: + - type: exec + component: nodejs + command: yarn run build + workdir: ${CHE_PROJECTS_ROOT}/angular-realworld-example-app + - + name: start + actions: + - type: exec + component: nodejs + command: yarn run start --host 0.0.0.0 --disableHostCheck true + workdir: ${CHE_PROJECTS_ROOT}/angular-realworld-example-app + - + name: lint + actions: + - type: exec + component: nodejs + command: yarn run lint + workdir: ${CHE_PROJECTS_ROOT}/angular-realworld-example-app diff --git a/devfiles/angular/meta.yaml b/devfiles/angular/meta.yaml new file mode 100644 index 000000000..49767c7a7 --- /dev/null +++ b/devfiles/angular/meta.yaml @@ -0,0 +1,6 @@ +--- +displayName: NodeJS Angular Web Application +description: Devfile for developing NodeJS Angular Web Application +tags: ["NodeJS", "Theia", "Angular"] +icon: https://www.eclipse.org/che/images/logo-eclipseche.svg +globalMemoryLimit: 2686Mi From 15bd742c4dcadbcd59f323fbd2d62eaf8832655d Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Wed, 26 Jun 2019 17:45:53 +0300 Subject: [PATCH 12/45] Move working directory to a dedicated field instead of using 'cd' command (#20) Signed-off-by: Sergii Leshchenko --- devfiles/apache-camel-springboot/devfile.yaml | 9 ++++++--- devfiles/dotnet/devfile.yaml | 6 ++++-- devfiles/java-gradle/devfile.yaml | 6 ++++-- devfiles/java-maven/devfile.yaml | 6 ++++-- devfiles/nodejs/devfile.yaml | 3 ++- devfiles/python-django/devfile.yaml | 12 ++++++++---- devfiles/python/devfile.yaml | 3 ++- 7 files changed, 30 insertions(+), 15 deletions(-) diff --git a/devfiles/apache-camel-springboot/devfile.yaml b/devfiles/apache-camel-springboot/devfile.yaml index 17c8f52f7..77afb5864 100644 --- a/devfiles/apache-camel-springboot/devfile.yaml +++ b/devfiles/apache-camel-springboot/devfile.yaml @@ -58,16 +58,19 @@ commands: actions: - type: exec component: maven - command: cd ${CHE_PROJECTS_ROOT}/fuse-rest-http-booster && mvn clean install + command: mvn clean install + workdir: ${CHE_PROJECTS_ROOT}/fuse-rest-http-booster - name: run the services actions: - type: exec component: maven - command: cd ${CHE_PROJECTS_ROOT}/fuse-rest-http-booster && mvn spring-boot:run -DskipTests + command: mvn spring-boot:run -DskipTests + workdir: ${CHE_PROJECTS_ROOT}/fuse-rest-http-booster - name: run and debug the services actions: - type: exec component: maven - command: cd ${CHE_PROJECTS_ROOT}/fuse-rest-http-booster && mvn spring-boot:run -DskipTests -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005" + command: mvn spring-boot:run -DskipTests -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005" + workdir: ${CHE_PROJECTS_ROOT}/fuse-rest-http-booster diff --git a/devfiles/dotnet/devfile.yaml b/devfiles/dotnet/devfile.yaml index f0a72b67d..5be164f68 100644 --- a/devfiles/dotnet/devfile.yaml +++ b/devfiles/dotnet/devfile.yaml @@ -42,10 +42,12 @@ commands: actions: - type: exec component: dotnet - command: "cd ${CHE_PROJECTS_ROOT}/dotnet-web-simple && dotnet restore" + command: "dotnet restore" + workdir: ${CHE_PROJECTS_ROOT}/dotnet-web-simple - name: run actions: - type: exec component: dotnet - command: "cd ${CHE_PROJECTS_ROOT}/dotnet-web-simple && dotnet run" + command: "dotnet run" + workdir: ${CHE_PROJECTS_ROOT}/dotnet-web-simple diff --git a/devfiles/java-gradle/devfile.yaml b/devfiles/java-gradle/devfile.yaml index 45ffba90f..374124680 100644 --- a/devfiles/java-gradle/devfile.yaml +++ b/devfiles/java-gradle/devfile.yaml @@ -47,12 +47,14 @@ commands: actions: - type: exec - command: "cd ${CHE_PROJECTS_ROOT}/console-java-simple; gradle build" component: gradle + command: "gradle build" + workdir: ${CHE_PROJECTS_ROOT}/console-java-simple - name: gradle run actions: - type: exec - command: "cd ${CHE_PROJECTS_ROOT}/console-java-simple && gradle run" component: gradle + command: "gradle run" + workdir: ${CHE_PROJECTS_ROOT}/console-java-simple diff --git a/devfiles/java-maven/devfile.yaml b/devfiles/java-maven/devfile.yaml index c1f88d724..51c0488d0 100644 --- a/devfiles/java-maven/devfile.yaml +++ b/devfiles/java-maven/devfile.yaml @@ -52,12 +52,14 @@ commands: actions: - type: exec - command: "mvn -Duser.home=${HOME} -f ${CHE_PROJECTS_ROOT}/console-java-simple clean install" component: maven + command: "mvn -Duser.home=${HOME} clean install" + workdir: ${CHE_PROJECTS_ROOT}/console-java-simple - name: maven build and run actions: - type: exec - command: "mvn -Duser.home=${HOME} -f ${CHE_PROJECTS_ROOT}/console-java-simple clean install && java -jar ${CHE_PROJECTS_ROOT}/console-java-simple/target/*.jar" component: maven + command: "mvn -Duser.home=${HOME} clean install && java -jar ./target/*.jar" + workdir: ${CHE_PROJECTS_ROOT}/console-java-simple diff --git a/devfiles/nodejs/devfile.yaml b/devfiles/nodejs/devfile.yaml index 3ef215e5e..d1d316e8f 100644 --- a/devfiles/nodejs/devfile.yaml +++ b/devfiles/nodejs/devfile.yaml @@ -35,4 +35,5 @@ commands: actions: - type: exec component: nodejs - command: cd ${CHE_PROJECTS_ROOT}/nodejs-web-app/app && nodemon app.js + command: nodemon app.js + workdir: ${CHE_PROJECTS_ROOT}/nodejs-web-app/app diff --git a/devfiles/python-django/devfile.yaml b/devfiles/python-django/devfile.yaml index 4235a0b95..b8270abf4 100644 --- a/devfiles/python-django/devfile.yaml +++ b/devfiles/python-django/devfile.yaml @@ -36,25 +36,29 @@ commands: - type: exec component: python - command: cd ${CHE_PROJECTS_ROOT}/django-realworld-example-app && pip install -r requirements.txt + command: pip install -r requirements.txt + workdir: ${CHE_PROJECTS_ROOT}/django-realworld-example-app - name: migrate actions: - type: exec component: python - command: cd ${CHE_PROJECTS_ROOT}/django-realworld-example-app && python manage.py migrate + command: python manage.py migrate + workdir: cd ${CHE_PROJECTS_ROOT}/django-realworld-example-app - name: patch resources actions: - type: exec component: python - command: cd ${CHE_PROJECTS_ROOT}/django-realworld-example-app && sed -i "s/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = \['*'\]/g" conduit/settings.py + command: sed -i "s/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = \['*'\]/g" conduit/settings.py + workdir: ${CHE_PROJECTS_ROOT}/django-realworld-example-app - name: run server actions: - type: exec component: python - command: cd ${CHE_PROJECTS_ROOT}/django-realworld-example-app && python manage.py runserver 0.0.0.0:7000 + command: python manage.py runserver 0.0.0.0:7000 + workdir: ${CHE_PROJECTS_ROOT}/django-realworld-example-app diff --git a/devfiles/python/devfile.yaml b/devfiles/python/devfile.yaml index 13968b766..795da17c4 100644 --- a/devfiles/python/devfile.yaml +++ b/devfiles/python/devfile.yaml @@ -32,5 +32,6 @@ commands: actions: - type: exec - command: "cd ${CHE_PROJECTS_ROOT}/python-hello-world && python hello-world.py" component: python + command: "python hello-world.py" + workdir: ${CHE_PROJECTS_ROOT}/python-hello-world From 3f85a844acac6308390aa0a5b16141f676e55f69 Mon Sep 17 00:00:00 2001 From: Valeriy Svydenko Date: Thu, 27 Jun 2019 17:46:46 +0300 Subject: [PATCH 13/45] Add devfiles for PHP (#21) * Add devfiles for PHP; fix typo --- README.md | 2 +- devfiles/php-laravel/devfile.yaml | 99 ++++++++++++++++++++++++++++ devfiles/php-laravel/meta.yaml | 6 ++ devfiles/php-mysql/devfile.yaml | 76 +++++++++++++++++++++ devfiles/php-mysql/meta.yaml | 6 ++ devfiles/php-symfony/devfile.yaml | 80 ++++++++++++++++++++++ devfiles/php-symfony/meta.yaml | 6 ++ devfiles/php-web-simple/devfile.yaml | 48 ++++++++++++++ devfiles/php-web-simple/meta.yaml | 6 ++ 9 files changed, 328 insertions(+), 1 deletion(-) create mode 100644 devfiles/php-laravel/devfile.yaml create mode 100644 devfiles/php-laravel/meta.yaml create mode 100644 devfiles/php-mysql/devfile.yaml create mode 100644 devfiles/php-mysql/meta.yaml create mode 100644 devfiles/php-symfony/devfile.yaml create mode 100644 devfiles/php-symfony/meta.yaml create mode 100644 devfiles/php-web-simple/devfile.yaml create mode 100644 devfiles/php-web-simple/meta.yaml diff --git a/README.md b/README.md index 7920860f0..afc0a55d3 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Though you may also just provide the image to the older versions of Docker (ex. ## OpenShift You can deploy Che devfile registry on Openshift with command. ``` - oc new-app -f deploy/openshift/che-devfile-registry.yml \ + oc new-app -f deploy/openshift/che-devfile-registry.yaml \ -p IMAGE="quay.io/openshiftio/che-devfile-registry" \ -p IMAGE_TAG="latest" \ -p PULL_POLICY="Always" diff --git a/devfiles/php-laravel/devfile.yaml b/devfiles/php-laravel/devfile.yaml new file mode 100644 index 000000000..54219c9b3 --- /dev/null +++ b/devfiles/php-laravel/devfile.yaml @@ -0,0 +1,99 @@ +--- +apiVersion: 1.0.0 +metadata: + name: php-laravel +projects: +- + name: laravel-realworld-example-app + source: + type: git + location: "https://github.com/gothinkster/laravel-realworld-example-app.git" +components: +- + type: chePlugin + id: redhat/php/latest + memoryLimit: 1Gi +- + type: chePlugin + id: redhat/php-debugger/latest + memoryLimit: 256Mi +- + type: dockerimage + alias: php + image: eclipse/php:7.1-che7 + env: + - name: HOME + value: /home/user + - name: PS1 + value: $(echo ${0})\\$ + memoryLimit: 512Mi + endpoints: + - name: '8080/tcp' + port: 8080 + mountSources: true + volumes: + - name: composer + containerPath: "/home/user/.composer" +- + type: dockerimage + alias: mysql + image: centos/mysql-57-centos7 + env: + - name: MYSQL_USER + value: homestead + - name: MYSQL_PASSWORD + value: secret + - name: MYSQL_ROOT_PASSWORD + value: secret + - name: MYSQL_DATABASE + value: homestead + memoryLimit: 256Mi + endpoints: + - name: 'db' + port: 3306 + attributes: + discoverable: "true" + mountSources: false +commands: +- + name: Start Artisan Web Server + actions: + - type: exec + component: php + command: "php artisan serve" + workdir: ${CHE_PROJECTS_ROOT}/laravel-realworld-example-app +- + name: Install dependencies + actions: + - type: exec + component: php + command: "composer install" + workdir: ${CHE_PROJECTS_ROOT}/laravel-realworld-example-app +- + name: Copy the example env file and make the required configuration changes in the .env file + actions: + - type: exec + component: php + command: "cp .env.example .env" + workdir: ${CHE_PROJECTS_ROOT}/laravel-realworld-example-app +- + name: Generate a new application key + actions: + - type: exec + component: php + command: "php artisan key:generate" + workdir: ${CHE_PROJECTS_ROOT}/laravel-realworld-example-app +- + name: Generate a new JWT authentication secret key + actions: + - type: exec + component: php + command: "php artisan jwt:generate" + workdir: ${CHE_PROJECTS_ROOT}/laravel-realworld-example-app +- + name: Run the database migrations + actions: + - type: exec + component: php + command: "php artisan migrate" + workdir: ${CHE_PROJECTS_ROOT}/laravel-realworld-example-app diff --git a/devfiles/php-laravel/meta.yaml b/devfiles/php-laravel/meta.yaml new file mode 100644 index 000000000..545398206 --- /dev/null +++ b/devfiles/php-laravel/meta.yaml @@ -0,0 +1,6 @@ +--- +displayName: "PHP Laravel" +description: PHP Stack with Laravel real world application +tags: ["PHP", "Apache", "MySQL"] +icon: https://www.eclipse.org/che/images/logo-eclipseche.svg +globalMemoryLimit: 2686Mi diff --git a/devfiles/php-mysql/devfile.yaml b/devfiles/php-mysql/devfile.yaml new file mode 100644 index 000000000..cd27b27ed --- /dev/null +++ b/devfiles/php-mysql/devfile.yaml @@ -0,0 +1,76 @@ +--- +apiVersion: 1.0.0 +metadata: + name: php-mysql +projects: +- + name: crud-php + source: + type: git + location: "https://github.com/taniarascia/pdo.git" +components: +- + type: chePlugin + id: redhat/php/latest + memoryLimit: 1Gi +- + type: chePlugin + id: redhat/php-debugger/latest + memoryLimit: 256Mi +- + type: dockerimage + alias: php + image: eclipse/php:7.1-che7 + env: + - name: HOME + value: /home/user + - name: PS1 + value: $(echo ${0})\\$ + memoryLimit: 512Mi + endpoints: + - name: '8080/tcp' + port: 8080 + mountSources: true + volumes: + - name: composer + containerPath: "/home/user/.composer" +- + type: dockerimage + alias: mysql + image: centos/mysql-57-centos7 + env: + - name: MYSQL_USER + value: user + - name: MYSQL_PASSWORD + value: root + - name: MYSQL_ROOT_PASSWORD + value: root + - name: MYSQL_DATABASE + value: database + memoryLimit: 256Mi + endpoints: + - name: 'db' + port: 3306 + attributes: + discoverable: "true" + mountSources: false +commands: +- + name: Start Apache Web Server + actions: + - type: exec + component: php + command: "service apache2 start" +- + name: Stop Apache Web Server + actions: + - type: exec + component: php + command: "service apache2 stop" +- + name: Configure database + actions: + - type: exec + component: php + command: "sed -i 's/localhost/127.0.0.1/g' config.php && php install.php" + workdir: ${CHE_PROJECTS_ROOT}/crud-php diff --git a/devfiles/php-mysql/meta.yaml b/devfiles/php-mysql/meta.yaml new file mode 100644 index 000000000..632fb8212 --- /dev/null +++ b/devfiles/php-mysql/meta.yaml @@ -0,0 +1,6 @@ +--- +displayName: "PHP MySQL" +description: PHP Stack with MySQL and simple database application +tags: ["PHP", "Apache", "MySQL"] +icon: https://www.eclipse.org/che/images/logo-eclipseche.svg +globalMemoryLimit: 2686Mi diff --git a/devfiles/php-symfony/devfile.yaml b/devfiles/php-symfony/devfile.yaml new file mode 100644 index 000000000..85a8891c4 --- /dev/null +++ b/devfiles/php-symfony/devfile.yaml @@ -0,0 +1,80 @@ +--- +apiVersion: 1.0.0 +metadata: + name: php-symfony +projects: +- + name: symfony-demo-application + source: + type: git + location: "https://github.com/symfony/demo.git" +components: +- + type: chePlugin + id: redhat/php/latest + memoryLimit: 1Gi +- + type: chePlugin + id: redhat/php-debugger/latest + memoryLimit: 256Mi +- + type: dockerimage + alias: php + image: eclipse/php:7.1-che7 + env: + - name: HOME + value: /home/user + - name: PS1 + value: $(echo ${0})\\$ + memoryLimit: 512Mi + endpoints: + - name: '8080/tcp' + port: 8080 + mountSources: true + volumes: + - name: composer + containerPath: "/home/user/.composer" + - name: symfony + containerPath: "/home/user/.symfony" +- + type: dockerimage + alias: mysql + image: centos/mysql-57-centos7 + env: + - name: MYSQL_USER + value: db_user + - name: MYSQL_PASSWORD + value: db_password + - name: MYSQL_ROOT_PASSWORD + value: db_password + - name: MYSQL_DATABASE + value: db_name + memoryLimit: 256Mi + endpoints: + - name: 'db' + port: 3306 + attributes: + discoverable: "true" + mountSources: false +commands: +- + name: Start Symfony Web Server + actions: + - type: exec + component: php + command: "$HOME/.symfony/bin/symfony server:start" + workdir: ${CHE_PROJECTS_ROOT}/symfony-demo-application +- + name: Install dependencies + actions: + - type: exec + component: php + command: "composer install && wget https://get.symfony.com/cli/installer -O - | bash" + workdir: ${CHE_PROJECTS_ROOT}/symfony-demo-application +- + name: Stop Symfony Web Server + actions: + - type: exec + component: php + command: "$HOME/.symfony/bin/symfony server:stop" + workdir: ${CHE_PROJECTS_ROOT}/symfony-demo-application diff --git a/devfiles/php-symfony/meta.yaml b/devfiles/php-symfony/meta.yaml new file mode 100644 index 000000000..741bdef64 --- /dev/null +++ b/devfiles/php-symfony/meta.yaml @@ -0,0 +1,6 @@ +--- +displayName: "PHP Symfony" +description: PHP Stack with Symfony Demo Application https://symfony.com/ +tags: ["PHP", "Apache", "MySQL", "Symfony"] +icon: https://www.eclipse.org/che/images/logo-eclipseche.svg +globalMemoryLimit: 2686Mi diff --git a/devfiles/php-web-simple/devfile.yaml b/devfiles/php-web-simple/devfile.yaml new file mode 100644 index 000000000..76989a9c1 --- /dev/null +++ b/devfiles/php-web-simple/devfile.yaml @@ -0,0 +1,48 @@ +--- +apiVersion: 1.0.0 +metadata: + name: php-web-simple +projects: +- + name: php-web-simple + source: + type: git + location: "https://github.com/che-samples/web-php-simple" +components: +- + type: chePlugin + id: redhat/php/latest + memoryLimit: 1Gi +- + type: chePlugin + id: redhat/php-debugger/latest + memoryLimit: 256Mi +- + type: dockerimage + alias: php + image: eclipse/php:7.1-che7 + env: + - name: HOME + value: /home/user + - name: PS1 + value: $(echo ${0})\\$ + memoryLimit: 512Mi + mountSources: true + volumes: + - name: composer + containerPath: "/home/user/.composer" + - name: symfony + containerPath: "/home/user/.symfony" +commands: +- + name: Start Apache Web Server + actions: + - type: exec + component: php + command: "service apache2 start" +- + name: Stop Apache Web Server + actions: + - type: exec + component: php + command: "service apache2 stop" diff --git a/devfiles/php-web-simple/meta.yaml b/devfiles/php-web-simple/meta.yaml new file mode 100644 index 000000000..5ec29a9f4 --- /dev/null +++ b/devfiles/php-web-simple/meta.yaml @@ -0,0 +1,6 @@ +--- +displayName: "PHP Simple" +description: PHP Stack with PHP 7.1 and simple web application +tags: ["PHP", "Apache"] +icon: https://www.eclipse.org/che/images/logo-eclipseche.svg +globalMemoryLimit: 2430Mi From 14df7b2934401e91514b85e9704755e56ced017b Mon Sep 17 00:00:00 2001 From: Lukas Krejci Date: Fri, 28 Jun 2019 14:25:19 +0200 Subject: [PATCH 14/45] Add a simple command to run the "outyet" example. --- devfiles/go/devfile.yaml | 68 ++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/devfiles/go/devfile.yaml b/devfiles/go/devfile.yaml index cff3373e3..3bf19438c 100644 --- a/devfiles/go/devfile.yaml +++ b/devfiles/go/devfile.yaml @@ -3,34 +3,42 @@ apiVersion: 1.0.0 metadata: name: golang projects: - - - name: example - source: - type: git - location: https://github.com/golang/example.git - clonePath: src/github.com/golang/example/ +- + name: example + source: + type: git + location: https://github.com/golang/example.git + clonePath: src/github.com/golang/example/ components: - - - type: chePlugin - id: ms-vscode/go/latest - alias: go-plugin - memoryLimit: 512Mi - - - type: dockerimage - # this version is used in the plugin - image: golang:1.10.7-stretch - alias: go-cli - command: ['sleep'] - args: ['infinity'] - env: - - name: GOPATH - # replicate the GOPATH from the plugin - value: /go:$(CHE_PROJECTS_ROOT) - - name: GOCACHE - # replicate the GOCACHE from the plugin, even though the cache is not shared - # between the two - value: /tmp/.cache - - name: PS1 - value: $(echo ${0})\\$ - memoryLimit: 512Mi - mountSources: true +- + type: chePlugin + id: ms-vscode/go/latest + alias: go-plugin + memoryLimit: 512Mi +- + type: dockerimage + # this version is used in the plugin + image: golang:1.10.7-stretch + alias: go-cli + command: ['sleep'] + args: ['infinity'] + env: + - name: GOPATH + # replicate the GOPATH from the plugin + value: /go:$(CHE_PROJECTS_ROOT) + - name: GOCACHE + # replicate the GOCACHE from the plugin, even though the cache is not shared + # between the two + value: /tmp/.cache + - name: PS1 + value: $(echo ${0})\\$ + memoryLimit: 512Mi + mountSources: true +commands: +- + name: run outyet + actions: + - type: exec + component: go-cli + command: go get -d && go run main.go + workdir: ${CHE_PROJECTS_ROOT}/src/github.com/golang/example/outyet From b1ab69938ed8ebc964af89734f5da98e7dafafb9 Mon Sep 17 00:00:00 2001 From: Lukas Krejci Date: Fri, 28 Jun 2019 14:34:20 +0200 Subject: [PATCH 15/45] Add also a test command to have an example with useful output in the console. --- devfiles/go/devfile.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/devfiles/go/devfile.yaml b/devfiles/go/devfile.yaml index 3bf19438c..8c09ff95d 100644 --- a/devfiles/go/devfile.yaml +++ b/devfiles/go/devfile.yaml @@ -42,3 +42,9 @@ commands: component: go-cli command: go get -d && go run main.go workdir: ${CHE_PROJECTS_ROOT}/src/github.com/golang/example/outyet +- name: test outyet + actions: + - type: exec + component: go-cli + command: go test + workdir: ${CHE_PROJECTS_ROOT}/src/github.com/golang/example/outyet From d78bd4a6c6785950a5a1beed71193b49aa8b059e Mon Sep 17 00:00:00 2001 From: Lukas Krejci Date: Tue, 2 Jul 2019 09:55:43 +0200 Subject: [PATCH 16/45] Add a node+mongodb application stack. (#22) --- devfiles/nodejs-mongo/devfile.yaml | 76 ++++++++++++++++++++++++++++++ devfiles/nodejs-mongo/meta.yaml | 6 +++ 2 files changed, 82 insertions(+) create mode 100644 devfiles/nodejs-mongo/devfile.yaml create mode 100644 devfiles/nodejs-mongo/meta.yaml diff --git a/devfiles/nodejs-mongo/devfile.yaml b/devfiles/nodejs-mongo/devfile.yaml new file mode 100644 index 000000000..246c1f83a --- /dev/null +++ b/devfiles/nodejs-mongo/devfile.yaml @@ -0,0 +1,76 @@ +--- +apiVersion: 1.0.0 +metadata: + name: nodejs-mongo +projects: + - + name: nodejs-mongodb-app + source: + type: git + location: "https://github.com/gothinkster/node-express-realworld-example-app" +components: + - + type: chePlugin + id: che-incubator/typescript/latest + memoryLimit: 512Mi + - + type: dockerimage + alias: nodejs + image: registry.access.redhat.com/ubi8/nodejs-10 + command: ['sleep'] + args: ['infinity'] + env: + - name: HOME + value: /tmp/user + - name: PS1 + value: $(echo ${0})\\$ + # The values below are used to set up the environment for running the application + - name: SECRET + value: 220fd770-c028-480d-8f95-f84353c7d55a + - name: NODE_ENV + value: production + - name: MONGODB_URI + value: mongodb://user:password@mongo/db + memoryLimit: 512Mi + endpoints: + - name: 'nodejs' + port: 3000 + mountSources: true + - + type: dockerimage + alias: mongo + image: centos/mongodb-34-centos7 + memoryLimit: 512Mi + env: + - name: MONGODB_USER + value: user + - name: MONGODB_PASSWORD + value: password + - name: MONGODB_DATABASE + value: db + - name: MONGODB_ADMIN_PASSWORD + value: password + volumes: + - name: mongo-storage + containerPath: /var/lib/mongodb/data + endpoints: + - name: mongo + port: 27017 + attributes: + discoverable: 'true' + public: 'false' +commands: + - + name: run the web app + actions: + - type: exec + component: nodejs + command: npm install && npm run dev + workdir: ${CHE_PROJECTS_ROOT}/nodejs-mongodb-app + - + name: create test user + actions: + - type: exec + component: nodejs + command: | + curl -X POST --data '{"user": {"username": "test", "email": "test@test.com", "password": "password"}}' -H "Content-Type: application/json" http://localhost:3000/api/users diff --git a/devfiles/nodejs-mongo/meta.yaml b/devfiles/nodejs-mongo/meta.yaml new file mode 100644 index 000000000..d719a0500 --- /dev/null +++ b/devfiles/nodejs-mongo/meta.yaml @@ -0,0 +1,6 @@ +--- +displayName: NodeJS MongoDB Web Application +description: Default stack with NodeJS 10 +tags: ["NodeJS", "Express", "MongoDB", "RealWorld", "Theia", "ubi8"] +icon: https://www.eclipse.org/che/images/logo-eclipseche.svg +globalMemoryLimit: 1686Mi From 6e8a45035e1fc06b780222dfa0602536cb953b92 Mon Sep 17 00:00:00 2001 From: Mario Loriedo Date: Wed, 3 Jul 2019 13:33:13 +0200 Subject: [PATCH 17/45] Updating codeowners for Che 7 endgame code reviews Signed-off-by: Mario Loriedo --- .github/CODEOWNERS | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..a851e5e5a --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,2 @@ +# Global Owners +* @vparfonov @l0rd @rhopp @skabashnyuk From 96165c272b6ce66feae57b738d36528860aaa0d0 Mon Sep 17 00:00:00 2001 From: Florent Benoit Date: Thu, 4 Jul 2019 17:52:27 +0200 Subject: [PATCH 18/45] chore(github): Update issue template to use external main che repository Change-Id: Ie306ff3cce525fcdf6d1a256583be761e7725cb1 Signed-off-by: Florent Benoit --- .github/ISSUE_TEMPLATE.md | 14 -------------- .github/ISSUE_TEMPLATE/where-to-report-issues.md | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 14 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/ISSUE_TEMPLATE/where-to-report-issues.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index b54d5f900..000000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,14 +0,0 @@ -### Description - - -### Reproduction Steps - - -**OS and version:** - -**Diagnostics:** - diff --git a/.github/ISSUE_TEMPLATE/where-to-report-issues.md b/.github/ISSUE_TEMPLATE/where-to-report-issues.md new file mode 100644 index 000000000..a00c1813c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/where-to-report-issues.md @@ -0,0 +1,16 @@ +--- +name: "⚠️ Where to report issues?" +about: File issues in the main Eclipse Che repository at https://github.com/eclipse/che/issues +title: Issues need to be filed in the main Eclipse Che repository +labels: '' +assignees: '' + +--- + +## Where to report issues? + +This repository is not the primary repository of Eclipse Che. + +🚨 Please don't submit new issues here. 🚨 + +All issues for Eclipse Che are managed at [https://github.com/eclipse/che/issues](https://github.com/eclipse/che/issues). From 8ede3f94761707b4671a6a227601dbcea2dee58c Mon Sep 17 00:00:00 2001 From: Michal Vala Date: Mon, 8 Jul 2019 11:21:57 +0200 Subject: [PATCH 19/45] Clarify names of default stacks (#25) Clarify names of default stacks (#25) Signed-off-by: Michal Vala --- devfiles/angular/meta.yaml | 4 ++-- devfiles/apache-camel-springboot/meta.yaml | 6 +++--- devfiles/dotnet/meta.yaml | 6 +++--- devfiles/go/meta.yaml | 6 +++--- devfiles/java-gradle/meta.yaml | 2 +- devfiles/java-maven/meta.yaml | 4 ++-- devfiles/nodejs-mongo/meta.yaml | 4 ++-- devfiles/nodejs/meta.yaml | 4 ++-- devfiles/php-laravel/meta.yaml | 6 +++--- devfiles/php-mysql/meta.yaml | 4 ++-- devfiles/php-symfony/meta.yaml | 2 +- devfiles/php-web-simple/meta.yaml | 2 +- devfiles/python-django/meta.yaml | 6 +++--- devfiles/python/meta.yaml | 6 +++--- 14 files changed, 31 insertions(+), 31 deletions(-) diff --git a/devfiles/angular/meta.yaml b/devfiles/angular/meta.yaml index 49767c7a7..1a4150df3 100644 --- a/devfiles/angular/meta.yaml +++ b/devfiles/angular/meta.yaml @@ -1,6 +1,6 @@ --- displayName: NodeJS Angular Web Application -description: Devfile for developing NodeJS Angular Web Application -tags: ["NodeJS", "Theia", "Angular"] +description: Stack for developing NodeJS Angular Web Application +tags: ["NodeJS", "Angular", "Alpine"] icon: https://www.eclipse.org/che/images/logo-eclipseche.svg globalMemoryLimit: 2686Mi diff --git a/devfiles/apache-camel-springboot/meta.yaml b/devfiles/apache-camel-springboot/meta.yaml index 5eb282bba..0a5152ee7 100644 --- a/devfiles/apache-camel-springboot/meta.yaml +++ b/devfiles/apache-camel-springboot/meta.yaml @@ -1,6 +1,6 @@ --- -displayName: Apache Camel based projects on Che 7 -description: Stack with environment ready to develop Integration projects with Apache Camel based on SpringBoot. -tags: ["Java", "OpenJDK", "Maven", "Debian", "Apache Camel", "Red Hat Fuse"] +displayName: Apache Camel based on Spring Boot +description: Stack with environment ready to develop Integration projects with Apache Camel based on Spring Boot. +tags: ["Java", "OpenJDK", "Maven", "Debian", "Apache Camel", "Red Hat Fuse", "Spring Boot"] icon: https://www.eclipse.org/che/images/logo-eclipseche.svg globalMemoryLimit: 2930Mi diff --git a/devfiles/dotnet/meta.yaml b/devfiles/dotnet/meta.yaml index 568f38790..2e9c5ebf6 100644 --- a/devfiles/dotnet/meta.yaml +++ b/devfiles/dotnet/meta.yaml @@ -1,6 +1,6 @@ --- -displayName: ".NET Core with Theia IDE" -description: Default stack with .Net 2.2.105 and Theia IDE -tags: ["Theia", "Debian", "Dotnet", "C#"] +displayName: ".NET Core" +description: Stack with .Net 2.2 +tags: ["Debian", "Dotnet", "C#"] icon: https://www.eclipse.org/che/images/logo-eclipseche.svg globalMemoryLimit: 2710Mi diff --git a/devfiles/go/meta.yaml b/devfiles/go/meta.yaml index b8ed9ecdb..067cf04d8 100644 --- a/devfiles/go/meta.yaml +++ b/devfiles/go/meta.yaml @@ -1,6 +1,6 @@ --- -displayName: Go with Theia IDE -description: Default stack with Go 1.12.4 and Theia IDE -tags: ["Theia", "Debian", "Go"] +displayName: Go +description: Stack with Go 1.10.7 +tags: ["Debian", "Go"] icon: https://www.eclipse.org/che/images/logo-eclipseche.svg globalMemoryLimit: 1686Mi diff --git a/devfiles/java-gradle/meta.yaml b/devfiles/java-gradle/meta.yaml index 66c99b88b..114e5c644 100644 --- a/devfiles/java-gradle/meta.yaml +++ b/devfiles/java-gradle/meta.yaml @@ -1,6 +1,6 @@ --- displayName: Java Gradle description: Java Stack with OpenJDK 11 and Gradle 5.2.1 -tags: ["Java", "OpenJDK", "Gradle", "Spring Boot v2", "Debian"] +tags: ["Java", "OpenJDK", "Gradle", "Ubuntu"] icon: https://www.eclipse.org/che/images/logo-eclipseche.svg globalMemoryLimit: 2674Mi diff --git a/devfiles/java-maven/meta.yaml b/devfiles/java-maven/meta.yaml index 3313163ad..fe447828e 100644 --- a/devfiles/java-maven/meta.yaml +++ b/devfiles/java-maven/meta.yaml @@ -1,6 +1,6 @@ --- displayName: Java Maven -description: Default Java Stack with OpenJDK 11 and Maven 3.6 -tags: ["Java", "OpenJDK", "Maven", "Spring Boot v2", "Vert.x", "Debian"] +description: Java Stack with OpenJDK 11 and Maven 3.6.0 +tags: ["Java", "OpenJDK", "Maven", "Debian"] icon: https://www.eclipse.org/che/images/logo-eclipseche.svg globalMemoryLimit: 2674Mi diff --git a/devfiles/nodejs-mongo/meta.yaml b/devfiles/nodejs-mongo/meta.yaml index d719a0500..519b6e083 100644 --- a/devfiles/nodejs-mongo/meta.yaml +++ b/devfiles/nodejs-mongo/meta.yaml @@ -1,6 +1,6 @@ --- displayName: NodeJS MongoDB Web Application -description: Default stack with NodeJS 10 -tags: ["NodeJS", "Express", "MongoDB", "RealWorld", "Theia", "ubi8"] +description: Stack with NodeJS 10 and MongoDB 3.4 +tags: ["NodeJS", "Express", "MongoDB", "RealWorld", "ubi8", "Centos"] icon: https://www.eclipse.org/che/images/logo-eclipseche.svg globalMemoryLimit: 1686Mi diff --git a/devfiles/nodejs/meta.yaml b/devfiles/nodejs/meta.yaml index fc06d16f8..4d61d32d5 100644 --- a/devfiles/nodejs/meta.yaml +++ b/devfiles/nodejs/meta.yaml @@ -1,6 +1,6 @@ --- displayName: NodeJS Express Web Application -description: Default stack with NodeJS 10 -tags: ["NodeJS", "Express", "Theia", "ubi8"] +description: Stack with NodeJS 10 +tags: ["NodeJS", "Express", "ubi8"] icon: https://www.eclipse.org/che/images/logo-eclipseche.svg globalMemoryLimit: 1686Mi diff --git a/devfiles/php-laravel/meta.yaml b/devfiles/php-laravel/meta.yaml index 545398206..491bcd8f6 100644 --- a/devfiles/php-laravel/meta.yaml +++ b/devfiles/php-laravel/meta.yaml @@ -1,6 +1,6 @@ --- -displayName: "PHP Laravel" -description: PHP Stack with Laravel real world application -tags: ["PHP", "Apache", "MySQL"] +displayName: "PHP Laravel with MySQL" +description: PHP Stack with Laravel and MySQL real world application +tags: ["PHP", "Apache", "MySQL", "Centos", "Debian"] icon: https://www.eclipse.org/che/images/logo-eclipseche.svg globalMemoryLimit: 2686Mi diff --git a/devfiles/php-mysql/meta.yaml b/devfiles/php-mysql/meta.yaml index 632fb8212..af7c6eea4 100644 --- a/devfiles/php-mysql/meta.yaml +++ b/devfiles/php-mysql/meta.yaml @@ -1,6 +1,6 @@ --- -displayName: "PHP MySQL" +displayName: "PHP with MySQL" description: PHP Stack with MySQL and simple database application -tags: ["PHP", "Apache", "MySQL"] +tags: ["PHP", "Apache", "MySQL", "Debian", "Centos"] icon: https://www.eclipse.org/che/images/logo-eclipseche.svg globalMemoryLimit: 2686Mi diff --git a/devfiles/php-symfony/meta.yaml b/devfiles/php-symfony/meta.yaml index 741bdef64..f32b7d7de 100644 --- a/devfiles/php-symfony/meta.yaml +++ b/devfiles/php-symfony/meta.yaml @@ -1,6 +1,6 @@ --- displayName: "PHP Symfony" description: PHP Stack with Symfony Demo Application https://symfony.com/ -tags: ["PHP", "Apache", "MySQL", "Symfony"] +tags: ["PHP", "Apache", "MySQL", "Symfony", "Debian", "Centos"] icon: https://www.eclipse.org/che/images/logo-eclipseche.svg globalMemoryLimit: 2686Mi diff --git a/devfiles/php-web-simple/meta.yaml b/devfiles/php-web-simple/meta.yaml index 5ec29a9f4..eef699a27 100644 --- a/devfiles/php-web-simple/meta.yaml +++ b/devfiles/php-web-simple/meta.yaml @@ -1,6 +1,6 @@ --- displayName: "PHP Simple" description: PHP Stack with PHP 7.1 and simple web application -tags: ["PHP", "Apache"] +tags: ["PHP", "Apache", "Debian"] icon: https://www.eclipse.org/che/images/logo-eclipseche.svg globalMemoryLimit: 2430Mi diff --git a/devfiles/python-django/meta.yaml b/devfiles/python-django/meta.yaml index 9d7d9f4e0..f9483565a 100644 --- a/devfiles/python-django/meta.yaml +++ b/devfiles/python-django/meta.yaml @@ -1,6 +1,6 @@ --- -displayName: Python with Theia IDE -description: Default stack with Python 3.7 and Theia IDE adapted to work with Django -tags: ["Theia", "Debian", "Python", "pip"] +displayName: Django +description: Stack with Python 3.6 and Django +tags: ["Centos", "Python", "pip"] icon: https://www.eclipse.org/che/images/logo-eclipseche.svg globalMemoryLimit: 1686Mi diff --git a/devfiles/python/meta.yaml b/devfiles/python/meta.yaml index ca517a3c9..81c08ecee 100644 --- a/devfiles/python/meta.yaml +++ b/devfiles/python/meta.yaml @@ -1,6 +1,6 @@ --- -displayName: Python with Theia IDE -description: Default stack with Python 3.7 and Theia IDE -tags: ["Theia", "Debian", "Python", "pip"] +displayName: Python +description: Stack with Python 3.6 +tags: ["Centos", "Python", "pip"] icon: https://www.eclipse.org/che/images/logo-eclipseche.svg globalMemoryLimit: 1686Mi From 916fee5c82c8dd6c5d0e20234a3b53de9fa5ff4b Mon Sep 17 00:00:00 2001 From: Anatoliy Bazko Date: Tue, 9 Jul 2019 03:00:25 +0300 Subject: [PATCH 20/45] Add NodeJS stack with react realworld app (#29) * Add NodeJS stack with react realworld app Signed-off-by: Anatoliy Bazko --- devfiles/nodejs-react/devfile.yaml | 48 ++++++++++++++++++++++++++++++ devfiles/nodejs-react/meta.yaml | 6 ++++ 2 files changed, 54 insertions(+) create mode 100644 devfiles/nodejs-react/devfile.yaml create mode 100644 devfiles/nodejs-react/meta.yaml diff --git a/devfiles/nodejs-react/devfile.yaml b/devfiles/nodejs-react/devfile.yaml new file mode 100644 index 000000000..e89526e83 --- /dev/null +++ b/devfiles/nodejs-react/devfile.yaml @@ -0,0 +1,48 @@ +--- +apiVersion: 1.0.0 +metadata: + name: react +projects: + - + name: react-redux-realworld-example-app + source: + type: git + location: "https://github.com/gothinkster/react-redux-realworld-example-app" +components: + - + type: chePlugin + id: che-incubator/typescript/latest + memoryLimit: 512Mi + - + type: dockerimage + alias: nodejs + # system limit for number of file watchers reached with + # image: registry.access.redhat.com/ubi8/nodejs-10 + image: registry.centos.org/che-stacks/centos-nodejs + command: ['sleep'] + args: ['infinity'] + env: + - name: HOME + value: /tmp/user + - name: PS1 + value: $(echo ${0})\\$ + memoryLimit: 512Mi + endpoints: + - name: 'nodejs' + port: 4100 + mountSources: true +commands: + - + name: install all required dependencies + actions: + - type: exec + component: nodejs + command: npm install + workdir: ${CHE_PROJECTS_ROOT}/react-redux-realworld-example-app + - + name: start the local server + actions: + - type: exec + component: nodejs + command: npm start + workdir: ${CHE_PROJECTS_ROOT}/react-redux-realworld-example-app diff --git a/devfiles/nodejs-react/meta.yaml b/devfiles/nodejs-react/meta.yaml new file mode 100644 index 000000000..a1ea1eb05 --- /dev/null +++ b/devfiles/nodejs-react/meta.yaml @@ -0,0 +1,6 @@ +--- +displayName: NodeJS React Web Application +description: Stack for developing NodeJS React Web Application +tags: ["NodeJS", "React", "Redux", "RealWorld"] +icon: https://www.eclipse.org/che/images/logo-eclipseche.svg +globalMemoryLimit: 1686Mi From 878e5742b1ffe29fdaa44a6bc0f94030c86cc166 Mon Sep 17 00:00:00 2001 From: Ilya Buziuk Date: Tue, 2 Jul 2019 15:06:22 +0200 Subject: [PATCH 21/45] che #13454 Adding Che 7 java 11 community images with support of arbitrary user to make them OpenShift compatible Signed-off-by: Ilya Buziuk --- arbitrary-users-patch/Dockerfile | 12 ++++++++++++ arbitrary-users-patch/base_images | 1 + arbitrary-users-patch/build_images.sh | 12 ++++++++++++ arbitrary-users-patch/entrypoint.sh | 7 +++++++ 4 files changed, 32 insertions(+) create mode 100644 arbitrary-users-patch/Dockerfile create mode 100644 arbitrary-users-patch/base_images create mode 100755 arbitrary-users-patch/build_images.sh create mode 100644 arbitrary-users-patch/entrypoint.sh diff --git a/arbitrary-users-patch/Dockerfile b/arbitrary-users-patch/Dockerfile new file mode 100644 index 000000000..a7a6aff9d --- /dev/null +++ b/arbitrary-users-patch/Dockerfile @@ -0,0 +1,12 @@ +ARG FROM_IMAGE +FROM ${FROM_IMAGE} +USER 0 +RUN chmod g=u /etc/passwd +COPY [--chown=0:0] entrypoint.sh / +RUN chmod +x entrypoint.sh + +USER 10001 +ENV HOME /home/user +WORKDIR /projects +ENTRYPOINT [ "/entrypoint.sh" ] +CMD ["sleep", "infinity"] diff --git a/arbitrary-users-patch/base_images b/arbitrary-users-patch/base_images new file mode 100644 index 000000000..9a209ec79 --- /dev/null +++ b/arbitrary-users-patch/base_images @@ -0,0 +1 @@ +java11-maven maven:3.6.0-jdk-11 diff --git a/arbitrary-users-patch/build_images.sh b/arbitrary-users-patch/build_images.sh new file mode 100755 index 000000000..050d023e2 --- /dev/null +++ b/arbitrary-users-patch/build_images.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -e + +DEFAULT_REGISTRY="quay.io" +REGISTRY=${REGISTRY:-${DEFAULT_REGISTRY}} + +while read -r line; do + base_image_name=$(echo $line | cut -f 1 -d ' ') + base_image=$(echo $line | cut -f 2 -d ' ') + echo "Building ${REGISTRY}/eclipse-che/che7-${base_image_name} based on $base_image ..." + docker build -t "${REGISTRY}/eclipse-che/che7-${base_image_name}" --build-arg FROM_IMAGE=$base_image . +done < base_images diff --git a/arbitrary-users-patch/entrypoint.sh b/arbitrary-users-patch/entrypoint.sh new file mode 100644 index 000000000..d3d14d730 --- /dev/null +++ b/arbitrary-users-patch/entrypoint.sh @@ -0,0 +1,7 @@ +#!/bin/sh +if ! whoami &> /dev/null; then + if [ -w /etc/passwd ]; then + echo "${USER_NAME:-user}:x:$(id -u):0:${USER_NAME:-user} user:${HOME}:/bin/bash" >> /etc/passwd + fi +fi +exec "$@" From 1fe3504e4e28c9756a58b4aae1c15c3e620a53e4 Mon Sep 17 00:00:00 2001 From: Anatoliy Bazko Date: Thu, 11 Jul 2019 07:41:20 +0300 Subject: [PATCH 22/45] Fix typo in python-django stack (#30) Signed-off-by: Anatoliy Bazko --- devfiles/python-django/devfile.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devfiles/python-django/devfile.yaml b/devfiles/python-django/devfile.yaml index b8270abf4..c2ce05bc4 100644 --- a/devfiles/python-django/devfile.yaml +++ b/devfiles/python-django/devfile.yaml @@ -45,7 +45,7 @@ commands: type: exec component: python command: python manage.py migrate - workdir: cd ${CHE_PROJECTS_ROOT}/django-realworld-example-app + workdir: ${CHE_PROJECTS_ROOT}/django-realworld-example-app - name: patch resources actions: From a09926bff5bc4a02f1bc9316ffe080d0b1786821 Mon Sep 17 00:00:00 2001 From: Ilya Buziuk Date: Thu, 11 Jul 2019 10:44:37 +0200 Subject: [PATCH 23/45] rh-che #13813: Pushing rhel images to 'quay.io/openshiftio' and centos images to 'quay.io/eclipse-che' during the CI build Signed-off-by: Ilya Buziuk --- cico_build.sh | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/cico_build.sh b/cico_build.sh index f7db4e926..31f46ced1 100755 --- a/cico_build.sh +++ b/cico_build.sh @@ -22,6 +22,8 @@ function load_jenkins_vars() { DEVSHIFT_TAG_LEN \ QUAY_USERNAME \ QUAY_PASSWORD \ + QUAY_ECLIPSE_CHE_USERNAME \ + QUAY_ECLIPSE_CHE_PASSWORD \ JENKINS_URL \ GIT_BRANCH \ GIT_COMMIT \ @@ -60,26 +62,30 @@ function deploy() { if [ "$TARGET" == "rhel" ]; then DOCKERFILE="Dockerfile.rhel" + ORGANIZATION="openshiftio" IMAGE="rhel-che-devfile-registry" else DOCKERFILE="Dockerfile" + ORGANIZATION="eclipse-che" IMAGE="che-devfile-registry" + # For pushing to quay.io 'eclipse-che' organization we need to use different credentials + QUAY_USERNAME=${QUAY_ECLIPSE_CHE_USERNAME} + QUAY_PASSWORD=${QUAY_ECLIPSE_CHE_PASSWORD} fi if [ -n "${QUAY_USERNAME}" ] && [ -n "${QUAY_PASSWORD}" ]; then docker login -u "${QUAY_USERNAME}" -p "${QUAY_PASSWORD}" "${REGISTRY}" else - echo "Could not login, missing credentials for the registry" + echo "Could not login, missing credentials for pushing to the '${ORGANIZATION}' organization" fi - # Let's deploy + # Let's build and push images to 'quay.io' docker build -t ${IMAGE} -f ${DOCKERFILE} . TAG=$(echo "$GIT_COMMIT" | cut -c1-"${DEVSHIFT_TAG_LEN}") - tag_push "${REGISTRY}/openshiftio/$IMAGE:$TAG" - tag_push "${REGISTRY}/openshiftio/$IMAGE:latest" - echo 'CICO: Image pushed, ready to update deployed app' + tag_push "${REGISTRY}/${ORGANIZATION}/$IMAGE:$TAG" + echo "CICO: Images pushed to 'quay.io/openshiftio', ready to update deployed app" } function cico_setup() { From b50ceddadb08e15f469c1ef3c761cdb5245e50f5 Mon Sep 17 00:00:00 2001 From: Ilya Buziuk Date: Fri, 12 Jul 2019 10:22:05 +0200 Subject: [PATCH 24/45] che #13813: Pushing centos images to 'eclipse' org on quay.io Signed-off-by: Ilya Buziuk --- cico_build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cico_build.sh b/cico_build.sh index 31f46ced1..c30464d22 100755 --- a/cico_build.sh +++ b/cico_build.sh @@ -66,7 +66,7 @@ function deploy() { IMAGE="rhel-che-devfile-registry" else DOCKERFILE="Dockerfile" - ORGANIZATION="eclipse-che" + ORGANIZATION="eclipse" IMAGE="che-devfile-registry" # For pushing to quay.io 'eclipse-che' organization we need to use different credentials QUAY_USERNAME=${QUAY_ECLIPSE_CHE_USERNAME} From 11dfdbc0702fb14a3605cbe30c1a9160657ec901 Mon Sep 17 00:00:00 2001 From: Ilya Buziuk Date: Fri, 12 Jul 2019 11:37:38 +0200 Subject: [PATCH 25/45] Cosmetic fix in Readme Signed-off-by: Ilya Buziuk --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index afc0a55d3..1d120a989 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Useful when you change devfile files and rebuild the image. Note that the Dockerfiles feature multi-stage build, so it requires Docker of version 17.05 and higher. Though you may also just provide the image to the older versions of Docker (ex. on Minishift) by having it build on newer version, and pushing and pulling it from Docker Hub. -`quay.io/openshiftio/che-devfile-registry:latest` image would be rebuilt after each commit in master +`quay.io/openshiftio/che-devfile-registry:latest` image would be rebuilt after each commit in master. ## OpenShift You can deploy Che devfile registry on Openshift with command. From f0ebbfa972f2fc9b10497e201240ec49bde2c33a Mon Sep 17 00:00:00 2001 From: Ilya Buziuk Date: Fri, 12 Jul 2019 12:10:09 +0200 Subject: [PATCH 26/45] che #13813: Adding script for the nightly ci build Signed-off-by: Ilya Buziuk --- cico_build_nightly.sh | 79 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100755 cico_build_nightly.sh diff --git a/cico_build_nightly.sh b/cico_build_nightly.sh new file mode 100755 index 000000000..244de16f5 --- /dev/null +++ b/cico_build_nightly.sh @@ -0,0 +1,79 @@ +#!/bin/bash +# +# 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 +# + +# Output command before executing +set -x + +# Exit on error +set -e + +# Source environment variables of the jenkins slave +# that might interest this worker. +function load_jenkins_vars() { + if [ -e "jenkins-env.json" ]; then + eval "$(./env-toolkit load -f jenkins-env.json \ + DEVSHIFT_TAG_LEN \ + QUAY_ECLIPSE_CHE_USERNAME \ + QUAY_ECLIPSE_CHE_PASSWORD \ + JENKINS_URL \ + GIT_BRANCH \ + GIT_COMMIT \ + BUILD_NUMBER \ + ghprbSourceBranch \ + ghprbActualCommit \ + BUILD_URL \ + ghprbPullId)" + fi +} + +function install_deps() { + # We need to disable selinux for now, XXX + /usr/sbin/setenforce 0 || true + + # Get all the deps in + yum install -y yum-utils device-mapper-persistent-data lvm2 + yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo + yum install -y docker-ce \ + git + + service docker start + echo 'CICO: Dependencies installed' +} + +function tag_push() { + local TARGET=$1 + docker tag "${IMAGE}" "$TARGET" + docker push "$TARGET" +} + +function build_and_push() { + DOCKERFILE="Dockerfile" + ORGANIZATION="eclipse" + IMAGE="che-devfile-registry" + TAG="nightly" + + if [ -n "${QUAY_ECLIPSE_CHE_USERNAME}" ] && [ -n "${QUAY_ECLIPSE_CHE_PASSWORD}" ]; then + docker login -u "${QUAY_ECLIPSE_CHE_USERNAME}" -p "${QUAY_ECLIPSE_CHE_PASSWORD}" "${REGISTRY}" + else + echo "Could not login, missing credentials for pushing to the '${ORGANIZATION}' organization" + fi + + # Let's build and push images to 'quay.io' + docker build -t ${IMAGE} -f ${DOCKERFILE} . + tag_push "${REGISTRY}/${ORGANIZATION}/$IMAGE:$TAG" + echo "CICO: nightly images pushed to 'quay.io/eclipse' organization" +} + +function cico_setup() { + load_jenkins_vars; + install_deps; +} +cico_setup +build_and_push From 73967c0964e131283be7ce5ad39280ac7bd8be67 Mon Sep 17 00:00:00 2001 From: Ilya Buziuk Date: Fri, 12 Jul 2019 17:22:04 +0200 Subject: [PATCH 27/45] che #13813: Adding missing REGISTRY env var to the nightly ci build Signed-off-by: Ilya Buziuk --- cico_build_nightly.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/cico_build_nightly.sh b/cico_build_nightly.sh index 244de16f5..ac3379557 100755 --- a/cico_build_nightly.sh +++ b/cico_build_nightly.sh @@ -55,6 +55,7 @@ function tag_push() { function build_and_push() { DOCKERFILE="Dockerfile" + REGISTRY="quay.io" ORGANIZATION="eclipse" IMAGE="che-devfile-registry" TAG="nightly" From 93bcd2eb54cb7c53ba9aed6e653b449ac24ce2e9 Mon Sep 17 00:00:00 2001 From: Sergii Leshchenko Date: Tue, 16 Jul 2019 11:43:50 +0300 Subject: [PATCH 28/45] Add Java Web devfiles (#18) This commits contains devfile for: * Java Spring Boot * Java with Spring Boot and MySQL * Java Vert.x Signed-off-by: Sergii Leshchenko --- devfiles/java-mysql/devfile.yaml | 76 +++++++++++++++++++++++++++ devfiles/java-mysql/meta.yaml | 6 +++ devfiles/java-web-spring/devfile.yaml | 54 +++++++++++++++++++ devfiles/java-web-spring/meta.yaml | 6 +++ devfiles/java-web-vertx/devfile.yaml | 55 +++++++++++++++++++ devfiles/java-web-vertx/meta.yaml | 6 +++ 6 files changed, 203 insertions(+) create mode 100644 devfiles/java-mysql/devfile.yaml create mode 100644 devfiles/java-mysql/meta.yaml create mode 100644 devfiles/java-web-spring/devfile.yaml create mode 100644 devfiles/java-web-spring/meta.yaml create mode 100644 devfiles/java-web-vertx/devfile.yaml create mode 100644 devfiles/java-web-vertx/meta.yaml diff --git a/devfiles/java-mysql/devfile.yaml b/devfiles/java-mysql/devfile.yaml new file mode 100644 index 000000000..afd4f11d7 --- /dev/null +++ b/devfiles/java-mysql/devfile.yaml @@ -0,0 +1,76 @@ +--- +apiVersion: 1.0.0 +metadata: + name: java-mysql +projects: + - + name: web-java-spring-petclinic + source: + type: git + location: "https://github.com/spring-projects/spring-petclinic.git" +components: + - + type: chePlugin + id: redhat/java/latest + - + type: dockerimage + alias: tools + image: registry.centos.org/che-stacks/centos-jdk8 + command: ['sleep'] + args: ['infinity'] + env: + - name: JAVA_OPTS + value: "-XX:MaxRAMPercentage=50.0 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 + -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 + -Dsun.zip.disableMemoryMapping=true -Xms20m -Djava.security.egd=file:/dev/./urandom + -Duser.home=/home/user" + - name: MAVEN_OPTS + value: $(JAVA_OPTS) + - name: PS1 + value: $(echo ${0})\\$ + memoryLimit: 700Mi + endpoints: + - name: '8080/tcp' + port: 8080 + mountSources: true + volumes: + - name: m2 + containerPath: /home/user/.m2 + - + type: dockerimage + alias: mysql + image: centos/mysql-57-centos7 + env: + - name: MYSQL_USER + value: petclinic + - name: MYSQL_PASSWORD + value: password + - name: MYSQL_DATABASE + value: petclinic + - name: PS1 + value: $(echo ${0})\\$ + memoryLimit: 256Mi + endpoints: + - name: 'db' + port: 3306 + attributes: + discoverable: "true" + public: "false" + mountSources: false +commands: + - + name: maven build + actions: + - + type: exec + component: tools + command: "./mvnw clean install" + workdir: "${CHE_PROJECTS_ROOT}/web-java-spring-petclinic" + - name: run webapp + actions: + - + type: exec + component: tools + command: | + SPRING_DATASOURCE_URL=jdbc:mysql://db/petclinic SPRING_DATASOURCE_USERNAME=petclinic SPRING_DATASOURCE_PASSWORD=password java -jar target/*.jar --spring.profile.active=mysql + workdir: ${CHE_PROJECTS_ROOT}/web-java-spring-petclinic diff --git a/devfiles/java-mysql/meta.yaml b/devfiles/java-mysql/meta.yaml new file mode 100644 index 000000000..285520748 --- /dev/null +++ b/devfiles/java-mysql/meta.yaml @@ -0,0 +1,6 @@ +--- +displayName: Java with Spring Boot and MySQL +description: Java stack with OpenJDK 8, MySQL and Spring Boot Petclinic demo application +tags: ["Java", "OpenJDK", "Maven", "Spring Boot", "MySQL"] +icon: https://www.eclipse.org/che/images/logo-eclipseche.svg +globalMemoryLimit: 2930Mi diff --git a/devfiles/java-web-spring/devfile.yaml b/devfiles/java-web-spring/devfile.yaml new file mode 100644 index 000000000..73f824a08 --- /dev/null +++ b/devfiles/java-web-spring/devfile.yaml @@ -0,0 +1,54 @@ +--- +apiVersion: 1.0.0 +metadata: + name: java-web-spring +projects: + - + name: java-web-spring + source: + type: git + location: "https://github.com/spring-projects/spring-petclinic.git" +components: + - + type: chePlugin + id: redhat/java/latest + - + type: dockerimage + alias: tools + image: registry.centos.org/che-stacks/centos-jdk8 + command: ['sleep'] + args: ['infinity'] + env: + - name: JAVA_OPTS + value: "-XX:MaxRAMPercentage=50.0 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 + -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 + -Dsun.zip.disableMemoryMapping=true -Xms20m -Djava.security.egd=file:/dev/./urandom + -Duser.home=/home/user" + - name: MAVEN_OPTS + value: $(JAVA_OPTS) + - name: PS1 + value: $(echo ${0})\\$ + memoryLimit: 1024Mi + endpoints: + - name: '8080/tcp' + port: 8080 + mountSources: true + volumes: + - name: m2 + containerPath: /home/user/.m2 +commands: + - + name: maven build + actions: + - + type: exec + component: tools + command: "./mvnw clean install" + workdir: ${CHE_PROJECTS_ROOT}/java-web-spring + - name: run webapp + actions: + - + type: exec + component: tools + command: "java -jar target/*.jar" + workdir: ${CHE_PROJECTS_ROOT}/java-web-spring diff --git a/devfiles/java-web-spring/meta.yaml b/devfiles/java-web-spring/meta.yaml new file mode 100644 index 000000000..b3b0d9c39 --- /dev/null +++ b/devfiles/java-web-spring/meta.yaml @@ -0,0 +1,6 @@ +--- +displayName: Java Spring Boot +description: Java stack with OpenJDK 8 and Spring Boot Petclinic demo application +tags: ["Java", "OpenJDK", "Maven", "Spring Boot"] +icon: https://www.eclipse.org/che/images/logo-eclipseche.svg +globalMemoryLimit: 2674Mi diff --git a/devfiles/java-web-vertx/devfile.yaml b/devfiles/java-web-vertx/devfile.yaml new file mode 100644 index 000000000..6359b3435 --- /dev/null +++ b/devfiles/java-web-vertx/devfile.yaml @@ -0,0 +1,55 @@ +--- +apiVersion: 1.0.0 +metadata: + name: java-web-vertx +projects: + - + name: java-web-vertx + source: + type: git + location: "https://github.com/che-samples/web-java-vertx" +components: + - + type: chePlugin + id: redhat/java/latest + - + type: dockerimage + alias: maven + image: registry.centos.org/che-stacks/centos-jdk8 + command: ['sleep'] + args: ['infinity'] + env: + - name: JAVA_OPTS + value: "-XX:MaxRAMPercentage=50.0 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 + -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 + -Dsun.zip.disableMemoryMapping=true -Xms20m -Djava.security.egd=file:/dev/./urandom + -Duser.home=/home/user" + - name: MAVEN_OPTS + value: $(JAVA_OPTS) + - name: PS1 + value: $(echo ${0})\\$ + memoryLimit: 512Mi + endpoints: + - name: '8080/tcp' + port: 8080 + mountSources: true + volumes: + - name: m2 + containerPath: /home/user/.m2 +commands: + - + name: maven build + actions: + - + type: exec + component: maven + command: "mvn -Duser.home=${HOME} clean install" + workdir: "${CHE_PROJECTS_ROOT}/java-web-vertx" + - + name: run app + actions: + - + type: exec + component: maven + command: "JDBC_URL=jdbc:h2:/tmp/db java -jar ./target/*fat.jar" + workdir: "${CHE_PROJECTS_ROOT}/java-web-vertx" diff --git a/devfiles/java-web-vertx/meta.yaml b/devfiles/java-web-vertx/meta.yaml new file mode 100644 index 000000000..4cbbac65c --- /dev/null +++ b/devfiles/java-web-vertx/meta.yaml @@ -0,0 +1,6 @@ +--- +displayName: Java Vert.x +description: Java stack with OpenJDK 8 and Vert.x demo application +tags: ["Java", "OpenJDK", "Maven", "Vertx"] +icon: https://www.eclipse.org/che/images/logo-eclipseche.svg +globalMemoryLimit: 2674Mi From 94a6c92958fd743408eadb2c8ef710fd1743fe70 Mon Sep 17 00:00:00 2001 From: Angel Misevski Date: Thu, 18 Jul 2019 17:07:22 -0400 Subject: [PATCH 29/45] Patch all used images for arbitrary users on OpenShift (#38) * Patch all used images for arbitrary users on OpenShift - Patch all currently used images for arbitrary user support - Move $HOME and $PS1 definition into arbitrary user patch to simplify devfiles and make UX more consistent - Add additional fixes to patched images: - Set chmod g=u on /home to allow write access - Create home directory if it does not exist Signed-off-by: Angel Misevski --- arbitrary-users-patch/Dockerfile | 9 +++-- arbitrary-users-patch/base_images | 11 +++++- arbitrary-users-patch/build_images.sh | 37 ++++++++++++++++--- arbitrary-users-patch/entrypoint.sh | 15 +++++++- cico_build_nightly.sh | 5 +++ devfiles/apache-camel-springboot/devfile.yaml | 8 +--- devfiles/dotnet/devfile.yaml | 9 +---- devfiles/go/devfile.yaml | 6 +-- devfiles/java-gradle/devfile.yaml | 6 +-- devfiles/java-maven/devfile.yaml | 8 +--- devfiles/nodejs-mongo/devfile.yaml | 8 +--- devfiles/nodejs-react/devfile.yaml | 9 +---- devfiles/nodejs/devfile.yaml | 9 +---- devfiles/php-laravel/devfile.yaml | 7 +--- devfiles/php-mysql/devfile.yaml | 7 +--- devfiles/php-symfony/devfile.yaml | 7 +--- devfiles/php-web-simple/devfile.yaml | 7 +--- devfiles/python-django/devfile.yaml | 9 +---- devfiles/python/devfile.yaml | 9 +---- 19 files changed, 80 insertions(+), 106 deletions(-) diff --git a/arbitrary-users-patch/Dockerfile b/arbitrary-users-patch/Dockerfile index a7a6aff9d..c17f06e4e 100644 --- a/arbitrary-users-patch/Dockerfile +++ b/arbitrary-users-patch/Dockerfile @@ -1,12 +1,13 @@ ARG FROM_IMAGE FROM ${FROM_IMAGE} USER 0 -RUN chmod g=u /etc/passwd +# Set permissions on /etc/passwd and /home to allow arbitrary users to write +RUN chmod g=u /etc/passwd /home COPY [--chown=0:0] entrypoint.sh / -RUN chmod +x entrypoint.sh +RUN chmod +x /entrypoint.sh USER 10001 -ENV HOME /home/user +ENV HOME=/home/user WORKDIR /projects ENTRYPOINT [ "/entrypoint.sh" ] -CMD ["sleep", "infinity"] +CMD ["tail", "-f", "/dev/null"] diff --git a/arbitrary-users-patch/base_images b/arbitrary-users-patch/base_images index 9a209ec79..c67ecbd71 100644 --- a/arbitrary-users-patch/base_images +++ b/arbitrary-users-patch/base_images @@ -1 +1,10 @@ -java11-maven maven:3.6.0-jdk-11 +che-python-3.6 centos/python-36-centos7:1 +che-php-7 eclipse/php:7.1-che7 +che-golang-1.10 golang:1.10.7-stretch +che-java11-gradle gradle:5.2.1-jdk11 +che-java11-maven maven:3.6.0-jdk-11 +che-java8-maven maven:3.6.1-jdk-8 +che-dotnet-2.2 mcr.microsoft.com/dotnet/core/sdk:2.2-stretch +che-nodejs10-alpine node:10.16-alpine +che-nodejs10-ubi registry.access.redhat.com/ubi8/nodejs-10 +che-nodejs8-centos registry.centos.org/che-stacks/centos-nodejs diff --git a/arbitrary-users-patch/build_images.sh b/arbitrary-users-patch/build_images.sh index 050d023e2..5d5cb629b 100755 --- a/arbitrary-users-patch/build_images.sh +++ b/arbitrary-users-patch/build_images.sh @@ -1,12 +1,39 @@ #!/bin/bash +# +# 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 +# + set -e +SCRIPT_DIR=$(cd "$(dirname "$0")"; pwd) + DEFAULT_REGISTRY="quay.io" +DEFAULT_ORGANIZATION="eclipse" +DEFAULT_TAG="nightly" + REGISTRY=${REGISTRY:-${DEFAULT_REGISTRY}} +ORGANIZATION=${ORGANIZATION:-${DEFAULT_ORGANIZATION}} +TAG=${TAG:-${DEFAULT_TAG}} + +NAME_FORMAT="${REGISTRY}/${ORGANIZATION}" + +PUSH_IMAGES=false +if [ "$1" == "--push" ]; then + PUSH_IMAGES=true +fi while read -r line; do - base_image_name=$(echo $line | cut -f 1 -d ' ') - base_image=$(echo $line | cut -f 2 -d ' ') - echo "Building ${REGISTRY}/eclipse-che/che7-${base_image_name} based on $base_image ..." - docker build -t "${REGISTRY}/eclipse-che/che7-${base_image_name}" --build-arg FROM_IMAGE=$base_image . -done < base_images + base_image_name=$(echo "$line" | tr -s ' ' | cut -f 1 -d ' ') + base_image=$(echo "$line" | tr -s ' ' | cut -f 2 -d ' ') + echo "Building ${NAME_FORMAT}/${base_image_name}:${TAG} based on $base_image ..." + docker build -t "${NAME_FORMAT}/${base_image_name}:${TAG}" --build-arg FROM_IMAGE="$base_image" "${SCRIPT_DIR}"/ + if ${PUSH_IMAGES}; then + echo "Pushing ${NAME_FORMAT}/${base_image_name}:${TAG}" to remote registry + docker push "${NAME_FORMAT}/${base_image_name}:${TAG}" + fi +done < "${SCRIPT_DIR}"/base_images diff --git a/arbitrary-users-patch/entrypoint.sh b/arbitrary-users-patch/entrypoint.sh index d3d14d730..6af0b41f4 100644 --- a/arbitrary-users-patch/entrypoint.sh +++ b/arbitrary-users-patch/entrypoint.sh @@ -1,7 +1,20 @@ -#!/bin/sh +#!/bin/bash + +# Ensure $HOME exists when starting +if [ ! -d "${HOME}" ]; then + mkdir -p "${HOME}" +fi + +# Setup $PS1 for a consistent and reasonable prompt +if [ ! -f "${HOME}"/.bashrc ]; then + echo "PS1='\s-\v \w \$ '" > "${HOME}"/.bashrc +fi + +# Add current (arbitrary) user to /etc/passwd if ! whoami &> /dev/null; then if [ -w /etc/passwd ]; then echo "${USER_NAME:-user}:x:$(id -u):0:${USER_NAME:-user} user:${HOME}:/bin/bash" >> /etc/passwd fi fi + exec "$@" diff --git a/cico_build_nightly.sh b/cico_build_nightly.sh index ac3379557..90bd2fdf4 100755 --- a/cico_build_nightly.sh +++ b/cico_build_nightly.sh @@ -14,6 +14,8 @@ set -x # Exit on error set -e +SCRIPT_DIR=$(cd "$(dirname "$0")"; pwd) + # Source environment variables of the jenkins slave # that might interest this worker. function load_jenkins_vars() { @@ -60,6 +62,9 @@ function build_and_push() { IMAGE="che-devfile-registry" TAG="nightly" + "${SCRIPT_DIR}"/arbitrary-users-patch/build_images.sh --push + echo "CICO: pushed nightly arbitrary-user patched base images" + if [ -n "${QUAY_ECLIPSE_CHE_USERNAME}" ] && [ -n "${QUAY_ECLIPSE_CHE_PASSWORD}" ]; then docker login -u "${QUAY_ECLIPSE_CHE_USERNAME}" -p "${QUAY_ECLIPSE_CHE_PASSWORD}" "${REGISTRY}" else diff --git a/devfiles/apache-camel-springboot/devfile.yaml b/devfiles/apache-camel-springboot/devfile.yaml index 77afb5864..a618cbc75 100644 --- a/devfiles/apache-camel-springboot/devfile.yaml +++ b/devfiles/apache-camel-springboot/devfile.yaml @@ -22,9 +22,7 @@ components: - type: dockerimage alias: maven - image: maven:3.6.1-jdk-8 - command: ['sleep'] - args: ['infinity'] + image: quay.io/eclipse/che-java8-maven:nightly env: - name: MAVEN_CONFIG value: "/home/user/.m2" @@ -40,10 +38,6 @@ components: value: "-XX:MaxRAMPercentage=50.0 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xms20m -Djava.security.egd=file:/dev/./urandom" - - name: PS1 - value: "$(echo ${0})\\$" - - name: HOME - value: "/home/user" volumes: - name: m2 containerPath: "/home/user/.m2" diff --git a/devfiles/dotnet/devfile.yaml b/devfiles/dotnet/devfile.yaml index 5be164f68..6b28d8c0c 100644 --- a/devfiles/dotnet/devfile.yaml +++ b/devfiles/dotnet/devfile.yaml @@ -20,14 +20,7 @@ components: - type: dockerimage alias: dotnet - image: mcr.microsoft.com/dotnet/core/sdk:2.2-stretch - command: ['sleep'] - args: ['infinity'] - env: - - name: HOME - value: /home/user - - name: PS1 - value: $(echo ${0})\\$ + image: quay.io/eclipse/che-dotnet-2.2:nightly memoryLimit: 512Mi endpoints: - name: '5000/tcp' diff --git a/devfiles/go/devfile.yaml b/devfiles/go/devfile.yaml index 8c09ff95d..ca84874f5 100644 --- a/devfiles/go/devfile.yaml +++ b/devfiles/go/devfile.yaml @@ -18,10 +18,8 @@ components: - type: dockerimage # this version is used in the plugin - image: golang:1.10.7-stretch + image: quay.io/eclipse/che-golang-1.10:nightly alias: go-cli - command: ['sleep'] - args: ['infinity'] env: - name: GOPATH # replicate the GOPATH from the plugin @@ -30,8 +28,6 @@ components: # replicate the GOCACHE from the plugin, even though the cache is not shared # between the two value: /tmp/.cache - - name: PS1 - value: $(echo ${0})\\$ memoryLimit: 512Mi mountSources: true commands: diff --git a/devfiles/java-gradle/devfile.yaml b/devfiles/java-gradle/devfile.yaml index 374124680..37ebe8fc4 100644 --- a/devfiles/java-gradle/devfile.yaml +++ b/devfiles/java-gradle/devfile.yaml @@ -15,9 +15,7 @@ components: - type: dockerimage alias: gradle - image: gradle:5.2.1-jdk11 - command: ['sleep'] - args: ['infinity'] + image: quay.io/eclipse/che-java11-gradle:nightly env: - name: GRADLE_USER_HOME value: /home/gradle/.gradle @@ -29,8 +27,6 @@ components: value: "-XX:MaxRAMPercentage=50 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xms20m -Djava.security.egd=file:/dev/./urandom" - - name: PS1 - value: "$(echo ${0})\\$ " - name: HOME value: /home/gradle memoryLimit: 512Mi diff --git a/devfiles/java-maven/devfile.yaml b/devfiles/java-maven/devfile.yaml index 51c0488d0..6c8c5e40b 100644 --- a/devfiles/java-maven/devfile.yaml +++ b/devfiles/java-maven/devfile.yaml @@ -15,9 +15,7 @@ components: - type: dockerimage alias: maven - image: maven:3.6.0-jdk-11 - command: ['sleep'] - args: ['infinity'] + image: quay.io/eclipse/che-java11-maven:nightly env: - name: MAVEN_CONFIG value: /home/user/.m2 @@ -34,10 +32,6 @@ components: value: "-XX:MaxRAMPercentage=50 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xms20m -Djava.security.egd=file:/dev/./urandom" - - name: PS1 - value: $(echo ${0})\\$ - - name: HOME - value: /home/user memoryLimit: 512Mi endpoints: - name: '8080/tcp' diff --git a/devfiles/nodejs-mongo/devfile.yaml b/devfiles/nodejs-mongo/devfile.yaml index 246c1f83a..22616b559 100644 --- a/devfiles/nodejs-mongo/devfile.yaml +++ b/devfiles/nodejs-mongo/devfile.yaml @@ -16,14 +16,8 @@ components: - type: dockerimage alias: nodejs - image: registry.access.redhat.com/ubi8/nodejs-10 - command: ['sleep'] - args: ['infinity'] + image: quay.io/eclipse/che-nodejs10-ubi:nightly env: - - name: HOME - value: /tmp/user - - name: PS1 - value: $(echo ${0})\\$ # The values below are used to set up the environment for running the application - name: SECRET value: 220fd770-c028-480d-8f95-f84353c7d55a diff --git a/devfiles/nodejs-react/devfile.yaml b/devfiles/nodejs-react/devfile.yaml index e89526e83..7b559d603 100644 --- a/devfiles/nodejs-react/devfile.yaml +++ b/devfiles/nodejs-react/devfile.yaml @@ -18,14 +18,7 @@ components: alias: nodejs # system limit for number of file watchers reached with # image: registry.access.redhat.com/ubi8/nodejs-10 - image: registry.centos.org/che-stacks/centos-nodejs - command: ['sleep'] - args: ['infinity'] - env: - - name: HOME - value: /tmp/user - - name: PS1 - value: $(echo ${0})\\$ + image: quay.io/eclipse/che-nodejs8-centos:nightly memoryLimit: 512Mi endpoints: - name: 'nodejs' diff --git a/devfiles/nodejs/devfile.yaml b/devfiles/nodejs/devfile.yaml index d1d316e8f..80a9c8ec9 100644 --- a/devfiles/nodejs/devfile.yaml +++ b/devfiles/nodejs/devfile.yaml @@ -16,14 +16,7 @@ components: - type: dockerimage alias: nodejs - image: registry.access.redhat.com/ubi8/nodejs-10 - command: ['sleep'] - args: ['infinity'] - env: - - name: HOME - value: /home/user - - name: PS1 - value: $(echo ${0})\\$ + image: quay.io/eclipse/che-nodejs10-ubi:nightly memoryLimit: 512Mi endpoints: - name: 'nodejs' diff --git a/devfiles/php-laravel/devfile.yaml b/devfiles/php-laravel/devfile.yaml index 54219c9b3..e7c090c86 100644 --- a/devfiles/php-laravel/devfile.yaml +++ b/devfiles/php-laravel/devfile.yaml @@ -20,12 +20,7 @@ components: - type: dockerimage alias: php - image: eclipse/php:7.1-che7 - env: - - name: HOME - value: /home/user - - name: PS1 - value: $(echo ${0})\\$ + image: quay.io/eclipse/che-php-7:nightly memoryLimit: 512Mi endpoints: - name: '8080/tcp' diff --git a/devfiles/php-mysql/devfile.yaml b/devfiles/php-mysql/devfile.yaml index cd27b27ed..56a51d65e 100644 --- a/devfiles/php-mysql/devfile.yaml +++ b/devfiles/php-mysql/devfile.yaml @@ -20,12 +20,7 @@ components: - type: dockerimage alias: php - image: eclipse/php:7.1-che7 - env: - - name: HOME - value: /home/user - - name: PS1 - value: $(echo ${0})\\$ + image: quay.io/eclipse/che-php-7:nightly memoryLimit: 512Mi endpoints: - name: '8080/tcp' diff --git a/devfiles/php-symfony/devfile.yaml b/devfiles/php-symfony/devfile.yaml index 85a8891c4..01a0f80d8 100644 --- a/devfiles/php-symfony/devfile.yaml +++ b/devfiles/php-symfony/devfile.yaml @@ -20,12 +20,7 @@ components: - type: dockerimage alias: php - image: eclipse/php:7.1-che7 - env: - - name: HOME - value: /home/user - - name: PS1 - value: $(echo ${0})\\$ + image: quay.io/eclipse/che-php-7:nightly memoryLimit: 512Mi endpoints: - name: '8080/tcp' diff --git a/devfiles/php-web-simple/devfile.yaml b/devfiles/php-web-simple/devfile.yaml index 76989a9c1..167c1d592 100644 --- a/devfiles/php-web-simple/devfile.yaml +++ b/devfiles/php-web-simple/devfile.yaml @@ -20,12 +20,7 @@ components: - type: dockerimage alias: php - image: eclipse/php:7.1-che7 - env: - - name: HOME - value: /home/user - - name: PS1 - value: $(echo ${0})\\$ + image: quay.io/eclipse/che-php-7:nightly memoryLimit: 512Mi mountSources: true volumes: diff --git a/devfiles/python-django/devfile.yaml b/devfiles/python-django/devfile.yaml index c2ce05bc4..5aac5ae36 100644 --- a/devfiles/python-django/devfile.yaml +++ b/devfiles/python-django/devfile.yaml @@ -16,14 +16,7 @@ components: - type: dockerimage alias: python - image: centos/python-36-centos7:1 - command: ['sleep'] - args: ['infinity'] - env: - - name: HOME - value: /home/user - - name: PS1 - value: $(echo ${0})\\$ + image: quay.io/eclipse/che-python-3.6:nightly memoryLimit: 512Mi endpoints: - name: 'django' diff --git a/devfiles/python/devfile.yaml b/devfiles/python/devfile.yaml index 795da17c4..059d860ac 100644 --- a/devfiles/python/devfile.yaml +++ b/devfiles/python/devfile.yaml @@ -16,14 +16,7 @@ components: - type: dockerimage alias: python - image: centos/python-36-centos7:1 - command: ['sleep'] - args: ['infinity'] - env: - - name: HOME - value: /home/user - - name: PS1 - value: $(echo ${0})\\$ + image: quay.io/eclipse/che-python-3.6:nightly memoryLimit: 512Mi mountSources: true commands: From b1206a971d3ac3ea6a48385f7324a74f3d0816fa Mon Sep 17 00:00:00 2001 From: Angel Misevski Date: Thu, 18 Jul 2019 18:50:37 -0400 Subject: [PATCH 30/45] Build and push patched images *after* logging in Signed-off-by: Angel Misevski --- cico_build_nightly.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cico_build_nightly.sh b/cico_build_nightly.sh index 90bd2fdf4..57d1192ac 100755 --- a/cico_build_nightly.sh +++ b/cico_build_nightly.sh @@ -62,15 +62,15 @@ function build_and_push() { IMAGE="che-devfile-registry" TAG="nightly" - "${SCRIPT_DIR}"/arbitrary-users-patch/build_images.sh --push - echo "CICO: pushed nightly arbitrary-user patched base images" - if [ -n "${QUAY_ECLIPSE_CHE_USERNAME}" ] && [ -n "${QUAY_ECLIPSE_CHE_PASSWORD}" ]; then docker login -u "${QUAY_ECLIPSE_CHE_USERNAME}" -p "${QUAY_ECLIPSE_CHE_PASSWORD}" "${REGISTRY}" else echo "Could not login, missing credentials for pushing to the '${ORGANIZATION}' organization" fi + "${SCRIPT_DIR}"/arbitrary-users-patch/build_images.sh --push + echo "CICO: pushed nightly arbitrary-user patched base images" + # Let's build and push images to 'quay.io' docker build -t ${IMAGE} -f ${DOCKERFILE} . tag_push "${REGISTRY}/${ORGANIZATION}/$IMAGE:$TAG" From fda2ec2bd1e5f68b50c6a2410435eb8d09048f62 Mon Sep 17 00:00:00 2001 From: Mario Loriedo Date: Thu, 18 Jul 2019 20:06:40 +0200 Subject: [PATCH 31/45] Fix some references to quay.io/openshiftio Signed-off-by: Mario Loriedo --- README.md | 11 ++++++----- build.sh | 2 +- cico_build.sh | 4 ++-- deploy/kubernetes/che-devfile-registry/values.yaml | 2 +- deploy/openshift/che-devfile-registry.yaml | 8 ++++---- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 1d120a989..b3bb636d1 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This repository holds ready-to-use Devfiles for different languages and technolo Execute ```shell -docker build --no-cache -t openshiftio/che-devfile-registry . +docker build --no-cache -t quay.io/eclipse/che-devfile-registry:nightly . ``` Where `--no-cache` is needed to prevent usage of cached layers with devfile registry files. Useful when you change devfile files and rebuild the image. @@ -16,14 +16,14 @@ Useful when you change devfile files and rebuild the image. Note that the Dockerfiles feature multi-stage build, so it requires Docker of version 17.05 and higher. Though you may also just provide the image to the older versions of Docker (ex. on Minishift) by having it build on newer version, and pushing and pulling it from Docker Hub. -`quay.io/openshiftio/che-devfile-registry:latest` image would be rebuilt after each commit in master. +`quay.io/eclipse/che-devfile-registry:nightly` image would be rebuilt after each commit in master. ## OpenShift You can deploy Che devfile registry on Openshift with command. ``` oc new-app -f deploy/openshift/che-devfile-registry.yaml \ - -p IMAGE="quay.io/openshiftio/che-devfile-registry" \ - -p IMAGE_TAG="latest" \ + -p IMAGE="quay.io/eclipse/che-devfile-registry" \ + -p IMAGE_TAG="nightly" \ -p PULL_POLICY="Always" ``` @@ -52,8 +52,9 @@ helm delete --purge che-devfile-registry ``` ## Docker + ``` -docker run -it --rm -p 8080:8080 quay.io/openshiftio/che-devfile-registry +docker run -it --rm -p 8080:8080 quay.io/eclipse/che-devfile-registry:nightly ``` ### License diff --git a/build.sh b/build.sh index f30a82248..3d940aab1 100755 --- a/build.sh +++ b/build.sh @@ -8,4 +8,4 @@ # SPDX-License-Identifier: EPL-2.0 # -docker build -t quay.io/openshiftio/che-devfile-registry:latest . +docker build -t quay.io/eclipse/che-devfile-registry:nightly . diff --git a/cico_build.sh b/cico_build.sh index c30464d22..dcd866a53 100755 --- a/cico_build.sh +++ b/cico_build.sh @@ -68,7 +68,7 @@ function deploy() { DOCKERFILE="Dockerfile" ORGANIZATION="eclipse" IMAGE="che-devfile-registry" - # For pushing to quay.io 'eclipse-che' organization we need to use different credentials + # For pushing to quay.io 'eclipse' organization we need to use different credentials QUAY_USERNAME=${QUAY_ECLIPSE_CHE_USERNAME} QUAY_PASSWORD=${QUAY_ECLIPSE_CHE_PASSWORD} fi @@ -85,7 +85,7 @@ function deploy() { TAG=$(echo "$GIT_COMMIT" | cut -c1-"${DEVSHIFT_TAG_LEN}") tag_push "${REGISTRY}/${ORGANIZATION}/$IMAGE:$TAG" - echo "CICO: Images pushed to 'quay.io/openshiftio', ready to update deployed app" + echo "CICO: Image pushed to '${REGISTRY}/${ORGANIZATION}', ready to update deployed app" } function cico_setup() { diff --git a/deploy/kubernetes/che-devfile-registry/values.yaml b/deploy/kubernetes/che-devfile-registry/values.yaml index 6ac60b57e..0940e3e46 100644 --- a/deploy/kubernetes/che-devfile-registry/values.yaml +++ b/deploy/kubernetes/che-devfile-registry/values.yaml @@ -7,7 +7,7 @@ # SPDX-License-Identifier: EPL-2.0 # -cheDevfileRegistryImage: quay.io/openshiftio/che-devfile-registry +cheDevfileRegistryImage: quay.io/eclipse/che-devfile-registry:nightly cheDevfileRegistryImagePullPolicy: Always cheDevfileRegistryMemoryLimit: 256Mi #cheDevfileRegistryIngressSecretName: che-tls diff --git a/deploy/openshift/che-devfile-registry.yaml b/deploy/openshift/che-devfile-registry.yaml index 1a6c17e2f..64cf38ea9 100644 --- a/deploy/openshift/che-devfile-registry.yaml +++ b/deploy/openshift/che-devfile-registry.yaml @@ -83,13 +83,13 @@ objects: name: che-devfile-registry parameters: - name: IMAGE - value: quay.io/openshiftio/che-devfile-registry + value: quay.io/eclipse/che-devfile-registry displayName: Eclipse Che devfile registry image - description: Che devfile registry Docker image. Defaults to quay.io/openshiftio/che-devfile-registry + description: Che devfile registry Docker image. Defaults to quay.io/eclipse/che-devfile-registry - name: IMAGE_TAG - value: latest + value: nightly displayName: Eclipse Che devfile registry version - description: Eclipse Che devfile registry version which defaults to latest + description: Eclipse Che devfile registry version which defaults to nightly - name: MEMORY_LIMIT value: 256Mi displayName: Memory Limit From ad611dd7417e4e66631d8af6491c093e7e866a67 Mon Sep 17 00:00:00 2001 From: Anatoliy Bazko Date: Sun, 21 Jul 2019 11:46:38 +0300 Subject: [PATCH 32/45] Add task to debug django app remotely (#43) Signed-off-by: Anatoliy Bazko --- devfiles/python-django/devfile.yaml | 36 +++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/devfiles/python-django/devfile.yaml b/devfiles/python-django/devfile.yaml index 5aac5ae36..80a72332a 100644 --- a/devfiles/python-django/devfile.yaml +++ b/devfiles/python-django/devfile.yaml @@ -7,7 +7,7 @@ projects: name: django-realworld-example-app source: type: git - location: "https://github.com/gothinkster/django-realworld-example-app" + location: "https://github.com/che-samples/django-realworld-example-app" components: - type: chePlugin @@ -24,12 +24,12 @@ components: mountSources: true commands: - - name: install requirements + name: install dependencies actions: - type: exec component: python - command: pip install -r requirements.txt + command: pip install -r requirements.txt && pip install ptvsd workdir: ${CHE_PROJECTS_ROOT}/django-realworld-example-app - name: migrate @@ -40,18 +40,40 @@ commands: command: python manage.py migrate workdir: ${CHE_PROJECTS_ROOT}/django-realworld-example-app - - name: patch resources + name: run server actions: - type: exec component: python - command: sed -i "s/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = \['*'\]/g" conduit/settings.py + command: export DEBUG_MODE=False && python manage.py runserver 0.0.0.0:7000 workdir: ${CHE_PROJECTS_ROOT}/django-realworld-example-app - - name: run server + name: run server in debug mode actions: - type: exec component: python - command: python manage.py runserver 0.0.0.0:7000 + command: export DEBUG_MODE=True && python manage.py runserver 0.0.0.0:7000 --noreload --nothreading workdir: ${CHE_PROJECTS_ROOT}/django-realworld-example-app + - + name: debug + actions: + - type: vscode-launch + referenceContent: > + { + "version": "0.2.0", + "configurations": [ + { + "name": "Python: Remote Attach", + "type": "python", + "request": "attach", + "port": 5678, + "host": "0.0.0.0", + "pathMappings": [ + { + "localRoot": "${workspaceFolder}", + "remoteRoot": "${workspaceFolder}" + } + ] + }] + } From 91f5b9bc220ceb6105ba17aaa7b6a7361367e880 Mon Sep 17 00:00:00 2001 From: Michal Vala Date: Mon, 22 Jul 2019 10:49:53 +0200 Subject: [PATCH 33/45] fix helm chart deployment strategy config (#44) * fix helm chart deployment strategy config Signed-off-by: Michal Vala --- .../che-devfile-registry/templates/deployment.yaml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/deploy/kubernetes/che-devfile-registry/templates/deployment.yaml b/deploy/kubernetes/che-devfile-registry/templates/deployment.yaml index b3842381d..d659a040b 100644 --- a/deploy/kubernetes/che-devfile-registry/templates/deployment.yaml +++ b/deploy/kubernetes/che-devfile-registry/templates/deployment.yaml @@ -7,7 +7,7 @@ # SPDX-License-Identifier: EPL-2.0 # -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: Deployment metadata: labels: @@ -21,12 +21,9 @@ spec: app: che-devfile-registry strategy: type: RollingUpdate - rollingParams: - intervalSeconds: 1 + rollingUpdate: maxSurge: 25% maxUnavailable: 25% - timeoutSeconds: 600 - updatePeriodSeconds: 1 template: metadata: labels: From d344183dd69c0c8b4e3dbdb54edebe5bfa54c551 Mon Sep 17 00:00:00 2001 From: Ilya Buziuk Date: Wed, 24 Jul 2019 11:36:33 +0200 Subject: [PATCH 34/45] Adding ci nightly build icon to README Signed-off-by: Ilya Buziuk --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b3bb636d1..a142b5a64 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ [![Build Status](https://ci.centos.org/buildStatus/icon?job=devtools-che-devfile-registry-build-master/)](https://ci.centos.org/job/devtools-che-devfile-registry-build-master/) +[![Build Status](https://ci.centos.org/buildStatus/icon?job=devtools-che-devfile-registry-nightly/)](https://ci.centos.org/job/devtools-che-devfile-registry-nightly/) # Eclipse Che devfile registry From c1f2d054a8010e32da1a8cc3b3dcf2a689234f66 Mon Sep 17 00:00:00 2001 From: Angel Misevski Date: Fri, 19 Jul 2019 13:49:40 -0400 Subject: [PATCH 35/45] Update dockerfile patch and make new java devfiles used patched images Update the arbitrary users patch to make sure $HOME is always writable, fixing issues with some images. Update java-spring, java-mysql, and java-vertx to use patched images - Update the commands in these images since maven wrapper is incompatible with community maven image Signed-off-by: Angel Misevski --- arbitrary-users-patch/Dockerfile | 4 +++- arbitrary-users-patch/entrypoint.sh | 2 +- devfiles/java-mysql/devfile.yaml | 8 ++------ devfiles/java-web-spring/devfile.yaml | 8 ++------ devfiles/java-web-vertx/devfile.yaml | 6 +----- 5 files changed, 9 insertions(+), 19 deletions(-) diff --git a/arbitrary-users-patch/Dockerfile b/arbitrary-users-patch/Dockerfile index c17f06e4e..f0dc2b113 100644 --- a/arbitrary-users-patch/Dockerfile +++ b/arbitrary-users-patch/Dockerfile @@ -2,7 +2,9 @@ ARG FROM_IMAGE FROM ${FROM_IMAGE} USER 0 # Set permissions on /etc/passwd and /home to allow arbitrary users to write -RUN chmod g=u /etc/passwd /home +RUN mkdir -p /home/user +RUN chgrp -R 0 /home +RUN chmod -R g=u /etc/passwd /home COPY [--chown=0:0] entrypoint.sh / RUN chmod +x /entrypoint.sh diff --git a/arbitrary-users-patch/entrypoint.sh b/arbitrary-users-patch/entrypoint.sh index 6af0b41f4..8f02d0dd6 100644 --- a/arbitrary-users-patch/entrypoint.sh +++ b/arbitrary-users-patch/entrypoint.sh @@ -6,7 +6,7 @@ if [ ! -d "${HOME}" ]; then fi # Setup $PS1 for a consistent and reasonable prompt -if [ ! -f "${HOME}"/.bashrc ]; then +if [ -w "${HOME}" ] && [ ! -f "${HOME}"/.bashrc ]; then echo "PS1='\s-\v \w \$ '" > "${HOME}"/.bashrc fi diff --git a/devfiles/java-mysql/devfile.yaml b/devfiles/java-mysql/devfile.yaml index afd4f11d7..c086d0bad 100644 --- a/devfiles/java-mysql/devfile.yaml +++ b/devfiles/java-mysql/devfile.yaml @@ -15,9 +15,7 @@ components: - type: dockerimage alias: tools - image: registry.centos.org/che-stacks/centos-jdk8 - command: ['sleep'] - args: ['infinity'] + image: quay.io/eclipse/che-java8-maven:nightly env: - name: JAVA_OPTS value: "-XX:MaxRAMPercentage=50.0 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 @@ -26,8 +24,6 @@ components: -Duser.home=/home/user" - name: MAVEN_OPTS value: $(JAVA_OPTS) - - name: PS1 - value: $(echo ${0})\\$ memoryLimit: 700Mi endpoints: - name: '8080/tcp' @@ -64,7 +60,7 @@ commands: - type: exec component: tools - command: "./mvnw clean install" + command: "mvn clean install" workdir: "${CHE_PROJECTS_ROOT}/web-java-spring-petclinic" - name: run webapp actions: diff --git a/devfiles/java-web-spring/devfile.yaml b/devfiles/java-web-spring/devfile.yaml index 73f824a08..bef22a5cb 100644 --- a/devfiles/java-web-spring/devfile.yaml +++ b/devfiles/java-web-spring/devfile.yaml @@ -15,9 +15,7 @@ components: - type: dockerimage alias: tools - image: registry.centos.org/che-stacks/centos-jdk8 - command: ['sleep'] - args: ['infinity'] + image: quay.io/eclipse/che-java8-maven:nightly env: - name: JAVA_OPTS value: "-XX:MaxRAMPercentage=50.0 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 @@ -26,8 +24,6 @@ components: -Duser.home=/home/user" - name: MAVEN_OPTS value: $(JAVA_OPTS) - - name: PS1 - value: $(echo ${0})\\$ memoryLimit: 1024Mi endpoints: - name: '8080/tcp' @@ -43,7 +39,7 @@ commands: - type: exec component: tools - command: "./mvnw clean install" + command: "mvn clean install" workdir: ${CHE_PROJECTS_ROOT}/java-web-spring - name: run webapp actions: diff --git a/devfiles/java-web-vertx/devfile.yaml b/devfiles/java-web-vertx/devfile.yaml index 6359b3435..7354e94aa 100644 --- a/devfiles/java-web-vertx/devfile.yaml +++ b/devfiles/java-web-vertx/devfile.yaml @@ -15,9 +15,7 @@ components: - type: dockerimage alias: maven - image: registry.centos.org/che-stacks/centos-jdk8 - command: ['sleep'] - args: ['infinity'] + image: quay.io/eclipse/che-java8-maven:nightly env: - name: JAVA_OPTS value: "-XX:MaxRAMPercentage=50.0 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 @@ -26,8 +24,6 @@ components: -Duser.home=/home/user" - name: MAVEN_OPTS value: $(JAVA_OPTS) - - name: PS1 - value: $(echo ${0})\\$ memoryLimit: 512Mi endpoints: - name: '8080/tcp' From f518878139eab345565e4c9a92718b0501512aeb Mon Sep 17 00:00:00 2001 From: Angel Misevski Date: Mon, 22 Jul 2019 19:29:11 -0400 Subject: [PATCH 36/45] Update angular stack to use non-alpine image Signed-off-by: Angel Misevski --- arbitrary-users-patch/base_images | 2 +- devfiles/angular/devfile.yaml | 9 +-------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/arbitrary-users-patch/base_images b/arbitrary-users-patch/base_images index c67ecbd71..50949526e 100644 --- a/arbitrary-users-patch/base_images +++ b/arbitrary-users-patch/base_images @@ -5,6 +5,6 @@ che-java11-gradle gradle:5.2.1-jdk11 che-java11-maven maven:3.6.0-jdk-11 che-java8-maven maven:3.6.1-jdk-8 che-dotnet-2.2 mcr.microsoft.com/dotnet/core/sdk:2.2-stretch -che-nodejs10-alpine node:10.16-alpine +che-nodejs10-community node:10.16 che-nodejs10-ubi registry.access.redhat.com/ubi8/nodejs-10 che-nodejs8-centos registry.centos.org/che-stacks/centos-nodejs diff --git a/devfiles/angular/devfile.yaml b/devfiles/angular/devfile.yaml index fdb475ef3..4c864a41a 100644 --- a/devfiles/angular/devfile.yaml +++ b/devfiles/angular/devfile.yaml @@ -15,14 +15,7 @@ components: - type: dockerimage alias: nodejs - image: node:10.16-alpine - command: ['tail'] - args: ['-f', '/dev/null'] - env: - - name: HOME - value: /projects - - name: PS1 - value: $(echo ${0})\\$ + image: quay.io/eclipse/che-nodejs10-community:nightly memoryLimit: 1Gi endpoints: - name: 'angular' From ba6553a33d964eb207f4de30190aea9b1d0dd6ab Mon Sep 17 00:00:00 2001 From: Ilya Buziuk Date: Wed, 24 Jul 2019 10:18:56 +0200 Subject: [PATCH 37/45] che-13953: Adding cico release script for CI Signed-off-by: Ilya Buziuk --- VERSION | 1 + cico_release.sh | 85 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 VERSION create mode 100755 cico_release.sh diff --git a/VERSION b/VERSION new file mode 100644 index 000000000..f708ac33f --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +7.0.0-rc-4.0-SNAPSHOT diff --git a/cico_release.sh b/cico_release.sh new file mode 100755 index 000000000..b50569fc7 --- /dev/null +++ b/cico_release.sh @@ -0,0 +1,85 @@ +#!/bin/bash +# +# 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 +# + +# Output command before executing +set -x + +# Exit on error +set -e + +SCRIPT_DIR=$(cd "$(dirname "$0")"; pwd) + +# Source environment variables of the jenkins slave +# that might interest this worker. +function load_jenkins_vars() { + if [ -e "jenkins-env.json" ]; then + eval "$(./env-toolkit load -f jenkins-env.json \ + DEVSHIFT_TAG_LEN \ + QUAY_ECLIPSE_CHE_USERNAME \ + QUAY_ECLIPSE_CHE_PASSWORD \ + JENKINS_URL \ + GIT_BRANCH \ + GIT_COMMIT \ + BUILD_NUMBER \ + ghprbSourceBranch \ + ghprbActualCommit \ + BUILD_URL \ + ghprbPullId)" + fi +} + +function install_deps() { + # We need to disable selinux for now, XXX + /usr/sbin/setenforce 0 || true + + # Get all the deps in + yum install -y yum-utils device-mapper-persistent-data lvm2 + yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo + yum install -y docker-ce \ + git + + service docker start + echo 'CICO: Dependencies installed' +} + +function tag_push() { + local TARGET=$1 + docker tag "${IMAGE}" "$TARGET" + docker push "$TARGET" +} + +function release() { + DOCKERFILE="Dockerfile" + REGISTRY="quay.io" + ORGANIZATION="eclipse" + IMAGE="che-devfile-registry" + TAG=$(head -n 1 VERSION) + + if [ -n "${QUAY_ECLIPSE_CHE_USERNAME}" ] && [ -n "${QUAY_ECLIPSE_CHE_PASSWORD}" ]; then + docker login -u "${QUAY_ECLIPSE_CHE_USERNAME}" -p "${QUAY_ECLIPSE_CHE_PASSWORD}" "${REGISTRY}" + else + echo "Could not login, missing credentials for pushing to the '${ORGANIZATION}' organization" + fi + + "${SCRIPT_DIR}"/arbitrary-users-patch/build_images.sh --push + echo "CICO: pushed '${TAG}' version of the arbitrary-user patched base images" + + # Let's build and push images to 'quay.io' + docker build -t ${IMAGE} -f ${DOCKERFILE} . + tag_push "${REGISTRY}/${ORGANIZATION}/$IMAGE:$TAG" + echo "CICO: '${TAG}' version of images pushed to 'quay.io/eclipse' organization" +} + +function cico_setup() { + load_jenkins_vars; + install_deps; +} +cico_setup +release From 6c0be1e7b197dc893c215fbaff0c946a1dbe5efc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Pupier?= Date: Tue, 23 Jul 2019 15:47:13 +0200 Subject: [PATCH 38/45] Set back lower memory limits to have stack working by default on che.openshift.io eclipse/che#13832 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Aurélien Pupier --- devfiles/apache-camel-springboot/devfile.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devfiles/apache-camel-springboot/devfile.yaml b/devfiles/apache-camel-springboot/devfile.yaml index a618cbc75..442b479cd 100644 --- a/devfiles/apache-camel-springboot/devfile.yaml +++ b/devfiles/apache-camel-springboot/devfile.yaml @@ -16,9 +16,11 @@ components: - type: chePlugin id: camel-tooling/vscode-apache-camel/latest + memoryLimit: 200Mi - type: chePlugin id: redhat/java/latest + memoryLimit: 1400Mi - type: dockerimage alias: maven From fd231887cb0a42e5045fb9fc868c72e2b28a6c8a Mon Sep 17 00:00:00 2001 From: Ilya Buziuk Date: Thu, 25 Jul 2019 10:34:18 +0200 Subject: [PATCH 39/45] che #13953 Fixing the release script to pass the correct version to the 'arbitrary-user-patch' image build Signed-off-by: Ilya Buziuk --- cico_release.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cico_release.sh b/cico_release.sh index b50569fc7..df46970f1 100755 --- a/cico_release.sh +++ b/cico_release.sh @@ -60,7 +60,6 @@ function release() { REGISTRY="quay.io" ORGANIZATION="eclipse" IMAGE="che-devfile-registry" - TAG=$(head -n 1 VERSION) if [ -n "${QUAY_ECLIPSE_CHE_USERNAME}" ] && [ -n "${QUAY_ECLIPSE_CHE_PASSWORD}" ]; then docker login -u "${QUAY_ECLIPSE_CHE_USERNAME}" -p "${QUAY_ECLIPSE_CHE_PASSWORD}" "${REGISTRY}" @@ -68,6 +67,9 @@ function release() { echo "Could not login, missing credentials for pushing to the '${ORGANIZATION}' organization" fi + # Let's obtain the tag based on the version defined in the 'VERSION' file + export TAG=$(head -n 1 VERSION) + "${SCRIPT_DIR}"/arbitrary-users-patch/build_images.sh --push echo "CICO: pushed '${TAG}' version of the arbitrary-user patched base images" From 92624598ba6cb07007bae1f0281262fa93e5a34b Mon Sep 17 00:00:00 2001 From: Ilya Buziuk Date: Thu, 25 Jul 2019 12:56:15 +0200 Subject: [PATCH 40/45] Changing version to 7.0.0-SNAPSHOT and adding release CI icon to README Signed-off-by: Ilya Buziuk --- README.md | 1 + VERSION | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a142b5a64..b6334f0d0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ [![Build Status](https://ci.centos.org/buildStatus/icon?job=devtools-che-devfile-registry-build-master/)](https://ci.centos.org/job/devtools-che-devfile-registry-build-master/) [![Build Status](https://ci.centos.org/buildStatus/icon?job=devtools-che-devfile-registry-nightly/)](https://ci.centos.org/job/devtools-che-devfile-registry-nightly/) +[![Build Status](https://ci.centos.org/buildStatus/icon?job=devtools-che-devfile-registry-release/)](https://ci.centos.org/job/devtools-che-devfile-registry-release/) # Eclipse Che devfile registry diff --git a/VERSION b/VERSION index f708ac33f..af387699f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -7.0.0-rc-4.0-SNAPSHOT +7.0.0-SNAPSHOT From 1787bf6bb5587affeab53b43a8c0aa6877abe622 Mon Sep 17 00:00:00 2001 From: Mario Loriedo Date: Thu, 25 Jul 2019 16:39:02 +0200 Subject: [PATCH 41/45] Build and Push rhel images as well when releasing Signed-off-by: Mario Loriedo --- cico_release.sh | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/cico_release.sh b/cico_release.sh index df46970f1..f280a0117 100755 --- a/cico_release.sh +++ b/cico_release.sh @@ -15,6 +15,7 @@ set -x set -e SCRIPT_DIR=$(cd "$(dirname "$0")"; pwd) +export SCRIPT_DIR # Source environment variables of the jenkins slave # that might interest this worker. @@ -22,6 +23,8 @@ function load_jenkins_vars() { if [ -e "jenkins-env.json" ]; then eval "$(./env-toolkit load -f jenkins-env.json \ DEVSHIFT_TAG_LEN \ + QUAY_USERNAME \ + QUAY_PASSWORD \ QUAY_ECLIPSE_CHE_USERNAME \ QUAY_ECLIPSE_CHE_PASSWORD \ JENKINS_URL \ @@ -49,6 +52,13 @@ function install_deps() { echo 'CICO: Dependencies installed' } +function set_release_tag() { + # Let's obtain the tag based on the + # version defined in the 'VERSION' file + TAG=$(head -n 1 VERSION) + export TAG +} + function tag_push() { local TARGET=$1 docker tag "${IMAGE}" "$TARGET" @@ -56,19 +66,27 @@ function tag_push() { } function release() { - DOCKERFILE="Dockerfile" + TARGET=${TARGET:-"centos"} REGISTRY="quay.io" - ORGANIZATION="eclipse" - IMAGE="che-devfile-registry" - if [ -n "${QUAY_ECLIPSE_CHE_USERNAME}" ] && [ -n "${QUAY_ECLIPSE_CHE_PASSWORD}" ]; then - docker login -u "${QUAY_ECLIPSE_CHE_USERNAME}" -p "${QUAY_ECLIPSE_CHE_PASSWORD}" "${REGISTRY}" + if [ "$TARGET" == "rhel" ]; then + DOCKERFILE="Dockerfile.rhel" + ORGANIZATION="openshiftio" + IMAGE="rhel-che-devfile-registry" else - echo "Could not login, missing credentials for pushing to the '${ORGANIZATION}' organization" + DOCKERFILE="Dockerfile" + ORGANIZATION="eclipse" + IMAGE="che-devfile-registry" + # For pushing to quay.io 'eclipse' organization we need to use different credentials + QUAY_USERNAME=${QUAY_ECLIPSE_CHE_USERNAME} + QUAY_PASSWORD=${QUAY_ECLIPSE_CHE_PASSWORD} fi - # Let's obtain the tag based on the version defined in the 'VERSION' file - export TAG=$(head -n 1 VERSION) + if [ -n "${QUAY_USERNAME}" ] && [ -n "${QUAY_PASSWORD}" ]; then + docker login -u "${QUAY_USERNAME}" -p "${QUAY_PASSWORD}" "${REGISTRY}" + else + echo "Could not login, missing credentials for pushing to the '${ORGANIZATION}' organization" + fi "${SCRIPT_DIR}"/arbitrary-users-patch/build_images.sh --push echo "CICO: pushed '${TAG}' version of the arbitrary-user patched base images" @@ -84,4 +102,5 @@ function cico_setup() { install_deps; } cico_setup +set_release_tag release From d46214dd70efd4f1fe54b13320f7ea75ef13159f Mon Sep 17 00:00:00 2001 From: Mario Loriedo Date: Thu, 25 Jul 2019 17:18:50 +0200 Subject: [PATCH 42/45] Removing duplicate code in scripts Signed-off-by: Mario Loriedo --- cico_build.sh | 96 ---------------------------- cico_build_ci.sh | 26 ++++++++ cico_build_nightly.sh | 73 ++------------------- cico_build_release.sh | 26 ++++++++ cico_release.sh => cico_functions.sh | 28 ++++---- 5 files changed, 74 insertions(+), 175 deletions(-) delete mode 100755 cico_build.sh create mode 100755 cico_build_ci.sh create mode 100755 cico_build_release.sh rename cico_release.sh => cico_functions.sh (87%) mode change 100755 => 100644 diff --git a/cico_build.sh b/cico_build.sh deleted file mode 100755 index dcd866a53..000000000 --- a/cico_build.sh +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/bash -# -# 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 -# - -# Output command before executing -set -x - -# Exit on error -set -e - -# Source environment variables of the jenkins slave -# that might interest this worker. -function load_jenkins_vars() { - if [ -e "jenkins-env.json" ]; then - eval "$(./env-toolkit load -f jenkins-env.json \ - DEVSHIFT_TAG_LEN \ - QUAY_USERNAME \ - QUAY_PASSWORD \ - QUAY_ECLIPSE_CHE_USERNAME \ - QUAY_ECLIPSE_CHE_PASSWORD \ - JENKINS_URL \ - GIT_BRANCH \ - GIT_COMMIT \ - BUILD_NUMBER \ - ghprbSourceBranch \ - ghprbActualCommit \ - BUILD_URL \ - ghprbPullId)" - fi -} - -function install_deps() { - # We need to disable selinux for now, XXX - /usr/sbin/setenforce 0 || true - - # Get all the deps in - yum install -y yum-utils device-mapper-persistent-data lvm2 - yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo - yum install -y docker-ce \ - git - - service docker start - - echo 'CICO: Dependencies installed' -} - -function tag_push() { - local TARGET=$1 - docker tag "${IMAGE}" "$TARGET" - docker push "$TARGET" -} - -function deploy() { - TARGET=${TARGET:-"centos"} - REGISTRY="quay.io" - - if [ "$TARGET" == "rhel" ]; then - DOCKERFILE="Dockerfile.rhel" - ORGANIZATION="openshiftio" - IMAGE="rhel-che-devfile-registry" - else - DOCKERFILE="Dockerfile" - ORGANIZATION="eclipse" - IMAGE="che-devfile-registry" - # For pushing to quay.io 'eclipse' organization we need to use different credentials - QUAY_USERNAME=${QUAY_ECLIPSE_CHE_USERNAME} - QUAY_PASSWORD=${QUAY_ECLIPSE_CHE_PASSWORD} - fi - - if [ -n "${QUAY_USERNAME}" ] && [ -n "${QUAY_PASSWORD}" ]; then - docker login -u "${QUAY_USERNAME}" -p "${QUAY_PASSWORD}" "${REGISTRY}" - else - echo "Could not login, missing credentials for pushing to the '${ORGANIZATION}' organization" - fi - - # Let's build and push images to 'quay.io' - docker build -t ${IMAGE} -f ${DOCKERFILE} . - - TAG=$(echo "$GIT_COMMIT" | cut -c1-"${DEVSHIFT_TAG_LEN}") - - tag_push "${REGISTRY}/${ORGANIZATION}/$IMAGE:$TAG" - echo "CICO: Image pushed to '${REGISTRY}/${ORGANIZATION}', ready to update deployed app" -} - -function cico_setup() { - load_jenkins_vars; - install_deps; -} -cico_setup -deploy diff --git a/cico_build_ci.sh b/cico_build_ci.sh new file mode 100755 index 000000000..d73da9b75 --- /dev/null +++ b/cico_build_ci.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# +# 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 +# + +# Output command before executing +set -x + +# Exit on error +set -e + +SCRIPT_DIR=$(cd "$(dirname "$0")"; pwd) +export SCRIPT_DIR + +# shellcheck disable=SC1090 +. "${SCRIPT_DIR}"/cico_functions.sh + +load_jenkins_vars +install_deps +set_ci_tag +build_and_push diff --git a/cico_build_nightly.sh b/cico_build_nightly.sh index 57d1192ac..76103b712 100755 --- a/cico_build_nightly.sh +++ b/cico_build_nightly.sh @@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (c) 2012-2018 Red Hat, Inc. +# 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/ @@ -15,71 +15,12 @@ set -x set -e SCRIPT_DIR=$(cd "$(dirname "$0")"; pwd) +export SCRIPT_DIR -# Source environment variables of the jenkins slave -# that might interest this worker. -function load_jenkins_vars() { - if [ -e "jenkins-env.json" ]; then - eval "$(./env-toolkit load -f jenkins-env.json \ - DEVSHIFT_TAG_LEN \ - QUAY_ECLIPSE_CHE_USERNAME \ - QUAY_ECLIPSE_CHE_PASSWORD \ - JENKINS_URL \ - GIT_BRANCH \ - GIT_COMMIT \ - BUILD_NUMBER \ - ghprbSourceBranch \ - ghprbActualCommit \ - BUILD_URL \ - ghprbPullId)" - fi -} +# shellcheck disable=SC1090 +. "${SCRIPT_DIR}"/cico_functions.sh -function install_deps() { - # We need to disable selinux for now, XXX - /usr/sbin/setenforce 0 || true - - # Get all the deps in - yum install -y yum-utils device-mapper-persistent-data lvm2 - yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo - yum install -y docker-ce \ - git - - service docker start - echo 'CICO: Dependencies installed' -} - -function tag_push() { - local TARGET=$1 - docker tag "${IMAGE}" "$TARGET" - docker push "$TARGET" -} - -function build_and_push() { - DOCKERFILE="Dockerfile" - REGISTRY="quay.io" - ORGANIZATION="eclipse" - IMAGE="che-devfile-registry" - TAG="nightly" - - if [ -n "${QUAY_ECLIPSE_CHE_USERNAME}" ] && [ -n "${QUAY_ECLIPSE_CHE_PASSWORD}" ]; then - docker login -u "${QUAY_ECLIPSE_CHE_USERNAME}" -p "${QUAY_ECLIPSE_CHE_PASSWORD}" "${REGISTRY}" - else - echo "Could not login, missing credentials for pushing to the '${ORGANIZATION}' organization" - fi - - "${SCRIPT_DIR}"/arbitrary-users-patch/build_images.sh --push - echo "CICO: pushed nightly arbitrary-user patched base images" - - # Let's build and push images to 'quay.io' - docker build -t ${IMAGE} -f ${DOCKERFILE} . - tag_push "${REGISTRY}/${ORGANIZATION}/$IMAGE:$TAG" - echo "CICO: nightly images pushed to 'quay.io/eclipse' organization" -} - -function cico_setup() { - load_jenkins_vars; - install_deps; -} -cico_setup +load_jenkins_vars +install_deps +set_nightly_tag build_and_push diff --git a/cico_build_release.sh b/cico_build_release.sh new file mode 100755 index 000000000..422a41ca1 --- /dev/null +++ b/cico_build_release.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# +# 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 +# + +# Output command before executing +set -x + +# Exit on error +set -e + +SCRIPT_DIR=$(cd "$(dirname "$0")"; pwd) +export SCRIPT_DIR + +# shellcheck disable=SC1090 +. "${SCRIPT_DIR}"/cico_functions.sh + +load_jenkins_vars +install_deps +set_release_tag +build_and_push diff --git a/cico_release.sh b/cico_functions.sh old mode 100755 new mode 100644 similarity index 87% rename from cico_release.sh rename to cico_functions.sh index f280a0117..a7a6cf365 --- a/cico_release.sh +++ b/cico_functions.sh @@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (c) 2012-2018 Red Hat, Inc. +# 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/ @@ -14,9 +14,6 @@ set -x # Exit on error set -e -SCRIPT_DIR=$(cd "$(dirname "$0")"; pwd) -export SCRIPT_DIR - # Source environment variables of the jenkins slave # that might interest this worker. function load_jenkins_vars() { @@ -59,13 +56,26 @@ function set_release_tag() { export TAG } +function set_ci_tag() { + # Let's obtain the tag based on the + # version defined in the 'VERSION' file + TAG=$(echo "$GIT_COMMIT" | cut -c1-"${DEVSHIFT_TAG_LEN}") + export TAG +} + +function set_nightly_tag() { + # Let's obtain the tag based on the + # version defined in the 'VERSION' file + export TAG="nightly" +} + function tag_push() { local TARGET=$1 docker tag "${IMAGE}" "$TARGET" docker push "$TARGET" } -function release() { +function build_and_push() { TARGET=${TARGET:-"centos"} REGISTRY="quay.io" @@ -96,11 +106,3 @@ function release() { tag_push "${REGISTRY}/${ORGANIZATION}/$IMAGE:$TAG" echo "CICO: '${TAG}' version of images pushed to 'quay.io/eclipse' organization" } - -function cico_setup() { - load_jenkins_vars; - install_deps; -} -cico_setup -set_release_tag -release From 30aefd8fb7834e5aa0b3b19562615dfe289e3db0 Mon Sep 17 00:00:00 2001 From: Mario Loriedo Date: Thu, 25 Jul 2019 19:40:20 +0200 Subject: [PATCH 43/45] Small fix in cico functions Signed-off-by: Mario Loriedo --- cico_functions.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cico_functions.sh b/cico_functions.sh index a7a6cf365..c024f2446 100644 --- a/cico_functions.sh +++ b/cico_functions.sh @@ -103,6 +103,6 @@ function build_and_push() { # Let's build and push images to 'quay.io' docker build -t ${IMAGE} -f ${DOCKERFILE} . - tag_push "${REGISTRY}/${ORGANIZATION}/$IMAGE:$TAG" - echo "CICO: '${TAG}' version of images pushed to 'quay.io/eclipse' organization" + tag_push "${REGISTRY}/${ORGANIZATION}/${IMAGE}:${TAG}" + echo "CICO: '${TAG}' version of images pushed to '${REGISTRY}/${ORGANIZATION}' organization" } From ba89754d4419dc7c0c5b2e31cdc830b5c9a961b5 Mon Sep 17 00:00:00 2001 From: Mario Loriedo Date: Thu, 25 Jul 2019 20:26:37 +0200 Subject: [PATCH 44/45] Fix comments in cico funtions --- cico_functions.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cico_functions.sh b/cico_functions.sh index c024f2446..6887adc34 100644 --- a/cico_functions.sh +++ b/cico_functions.sh @@ -58,14 +58,13 @@ function set_release_tag() { function set_ci_tag() { # Let's obtain the tag based on the - # version defined in the 'VERSION' file + # git commit hash TAG=$(echo "$GIT_COMMIT" | cut -c1-"${DEVSHIFT_TAG_LEN}") export TAG } function set_nightly_tag() { - # Let's obtain the tag based on the - # version defined in the 'VERSION' file + # Let's set the tag as nightly export TAG="nightly" } From b4a78f9a75e67b4beae8a67865ed612812d891d1 Mon Sep 17 00:00:00 2001 From: Ilya Buziuk Date: Fri, 26 Jul 2019 11:23:48 +0200 Subject: [PATCH 45/45] Build and push arbitrary-user patched images to 'eclipse' quay.io organization only Signed-off-by: Ilya Buziuk --- cico_functions.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cico_functions.sh b/cico_functions.sh index 6887adc34..84f0ddcaf 100644 --- a/cico_functions.sh +++ b/cico_functions.sh @@ -97,8 +97,12 @@ function build_and_push() { echo "Could not login, missing credentials for pushing to the '${ORGANIZATION}' organization" fi - "${SCRIPT_DIR}"/arbitrary-users-patch/build_images.sh --push - echo "CICO: pushed '${TAG}' version of the arbitrary-user patched base images" + # Let's build and push arbitrary-user patched images only to 'eclipse' quay.io organization + # which is done as part of the 'centos' target execution + if [ "$TARGET" == "centos" ]; then + "${SCRIPT_DIR}"/arbitrary-users-patch/build_images.sh --push + echo "CICO: pushed '${TAG}' version of the arbitrary-user patched base images" + fi # Let's build and push images to 'quay.io' docker build -t ${IMAGE} -f ${DOCKERFILE} .