From dcbd403decd338cf3a4c818da866251dd8d483c9 Mon Sep 17 00:00:00 2001 From: Leon Date: Thu, 13 May 2021 16:09:08 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E7=AE=80=E5=8C=96=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .s2i/environment | 3 - Dockerfile-online => Dockerfile | 0 Dockerfile-on-prem | 9 -- Jenkinsfile-online => Jenkinsfile | 20 ++-- Jenkinsfile-on-prem | 103 ------------------ OWNERS | 7 -- README.md | 18 +-- README_zh.md | 15 --- deploy/dev-ol/devops-sample-svc.yaml | 21 ---- deploy/dev-ol/devops-sample.yaml | 55 ---------- deploy/no-branch-dev/devops-sample-svc.yaml | 21 ---- deploy/no-branch-dev/devops-sample.yaml | 50 --------- deploy/prod-ol/devops-sample-svc.yaml | 21 ---- deploy/prod-ol/devops-sample.yaml | 60 ---------- pom.xml | 7 +- .../wolfcode}/devops/Application.java | 9 +- .../wolfcode/devops/HelloWorldController.java | 19 ++++ .../devops/HelloWorldController.java | 19 ---- .../devops/HelloWorldControllerTest.java | 5 +- 19 files changed, 51 insertions(+), 411 deletions(-) delete mode 100644 .s2i/environment rename Dockerfile-online => Dockerfile (100%) delete mode 100644 Dockerfile-on-prem rename Jenkinsfile-online => Jenkinsfile (84%) delete mode 100644 Jenkinsfile-on-prem delete mode 100644 OWNERS delete mode 100644 README_zh.md delete mode 100644 deploy/dev-ol/devops-sample-svc.yaml delete mode 100644 deploy/dev-ol/devops-sample.yaml delete mode 100644 deploy/no-branch-dev/devops-sample-svc.yaml delete mode 100644 deploy/no-branch-dev/devops-sample.yaml delete mode 100644 deploy/prod-ol/devops-sample-svc.yaml delete mode 100644 deploy/prod-ol/devops-sample.yaml rename src/main/java/{io/kubesphere => cn/wolfcode}/devops/Application.java (67%) create mode 100644 src/main/java/cn/wolfcode/devops/HelloWorldController.java delete mode 100644 src/main/java/io/kubesphere/devops/HelloWorldController.java rename src/test/java/{io/kubesphere => cn/wolfcode}/devops/HelloWorldControllerTest.java (51%) diff --git a/.s2i/environment b/.s2i/environment deleted file mode 100644 index 49287409..00000000 --- a/.s2i/environment +++ /dev/null @@ -1,3 +0,0 @@ -S2I_DESTINATION=/tmp -MAVEN_ARGS_APPEND=-Dmaven.repo.local=/tmp/src/artifacts/m2 -o -DISABLE_ARTIFACTS=true diff --git a/Dockerfile-online b/Dockerfile similarity index 100% rename from Dockerfile-online rename to Dockerfile diff --git a/Dockerfile-on-prem b/Dockerfile-on-prem deleted file mode 100644 index 69dc369d..00000000 --- a/Dockerfile-on-prem +++ /dev/null @@ -1,9 +0,0 @@ -FROM harbor.devops.kubesphere.local:30280/library/java:openjdk-8-jre-alpine - -WORKDIR /home - -COPY target/*.jar /home - -ENTRYPOINT java -jar *.jar - - diff --git a/Jenkinsfile-online b/Jenkinsfile similarity index 84% rename from Jenkinsfile-online rename to Jenkinsfile index 2ca69e7f..d8b3a430 100644 --- a/Jenkinsfile-online +++ b/Jenkinsfile @@ -11,12 +11,12 @@ pipeline { environment { DOCKER_CREDENTIAL_ID = 'dockerhub-id' - GITHUB_CREDENTIAL_ID = 'github-id' + GITREPO_CREDENTIAL_ID = 'gitee-liug-pass' KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' - REGISTRY = 'docker.io' - DOCKERHUB_NAMESPACE = 'docker_username' - GITHUB_ACCOUNT = 'kubesphere' - APP_NAME = 'devops-java-sample' + REGISTRY = 'http://node1:9990' + DOCKERHUB_NAMESPACE = 'docker' + GITREPO_ACCOUNT = 'wolfcodeliug' + APP_NAME = 'devops-demo' } stages { @@ -33,7 +33,7 @@ pipeline { } } } - + stage ('build & push') { steps { container ('maven') { @@ -77,11 +77,11 @@ pipeline { steps { container ('maven') { input(id: 'release-image-with-tag', message: 'release image with tag?') - withCredentials([usernamePassword(credentialsId: "$GITHUB_CREDENTIAL_ID", passwordVariable: 'GIT_PASSWORD', usernameVariable: 'GIT_USERNAME')]) { - sh 'git config --global user.email "kubesphere@yunify.com" ' - sh 'git config --global user.name "kubesphere" ' + withCredentials([usernamePassword(credentialsId: "$GITREPO_CREDENTIAL_ID", passwordVariable: 'GIT_PASSWORD', usernameVariable: 'GIT_USERNAME')]) { + sh 'git config --global user.email "liugang@wolfcode.cn" ' + sh 'git config --global user.name "wolfcodeliug" ' sh 'git tag -a $TAG_NAME -m "$TAG_NAME" ' - sh 'git push http://$GIT_USERNAME:$GIT_PASSWORD@github.com/$GITHUB_ACCOUNT/devops-java-sample.git --tags --ipv4' + sh 'git push http://$GIT_USERNAMEΩ:$GIT_PASSWORD@gitee.com/$GITREPO_ACCOUNT/devops-demo.git --tags --ipv4' } sh 'docker tag $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:$TAG_NAME ' sh 'docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:$TAG_NAME ' diff --git a/Jenkinsfile-on-prem b/Jenkinsfile-on-prem deleted file mode 100644 index b76a9ccb..00000000 --- a/Jenkinsfile-on-prem +++ /dev/null @@ -1,103 +0,0 @@ -pipeline { - agent { - node { - label 'maven' - } - } - - parameters { - string(name:'TAG_NAME',defaultValue: '',description:'') - } - - environment { - HARBOR_CREDENTIAL_ID = 'harbor-id' - GITLAB_CREDENTIAL_ID = 'gitlab-id' - KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' - REGISTRY = 'harbor.devops.kubesphere.local:30280' - HARBOR_NAMESPACE = 'library' - GITLAB_ACCOUNT = 'admin1' - APP_NAME = 'devops-java-sample' - } - - stages { - stage ('checkout scm') { - steps { - checkout(scm) - } - } - - stage ('unit test') { - steps { - container ('maven') { - sh 'mvn clean -o -gs `pwd`/configuration/settings.xml test' - } - } - } - - stage ('build & push') { - steps { - container ('maven') { - sh 'mvn -o -Dmaven.test.skip=true -gs `pwd`/configuration/settings.xml clean package' - sh 'docker build -f Dockerfile-on-prem -t $REGISTRY/$HARBOR_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER .' - withCredentials([usernamePassword(passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,credentialsId : "$HARBOR_CREDENTIAL_ID" ,)]) { - sh 'echo "$DOCKER_PASSWORD" | docker login $REGISTRY -u "$DOCKER_USERNAME" --password-stdin' - sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER' - } - } - } - } - - stage('push latest'){ - when{ - branch 'master' - } - steps{ - container ('maven') { - sh 'docker tag $REGISTRY/$HARBOR_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER $REGISTRY/$HARBOR_NAMESPACE/$APP_NAME:latest ' - sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/$APP_NAME:latest ' - } - } - } - - stage('deploy to dev') { - when{ - branch 'master' - } - steps { - input(id: 'deploy-to-dev', message: 'deploy to dev?') - kubernetesDeploy(configs: 'deploy/dev/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") - } - } - stage('push with tag'){ - when{ - expression{ - return params.TAG_NAME =~ /v.*/ - } - } - steps { - container ('maven') { - input(id: 'release-image-with-tag', message: 'release image with tag?') - withCredentials([usernamePassword(credentialsId: "$GITLAB_CREDENTIAL_ID", passwordVariable: 'GIT_PASSWORD', usernameVariable: 'GIT_USERNAME')]) { - sh 'git config --global user.email "kubesphere@yunify.com" ' - sh 'git config --global user.name "kubesphere" ' - sh 'git tag -a $TAG_NAME -m "$TAG_NAME" ' - sh 'git push http://$GIT_USERNAME:$GIT_PASSWORD@gitlab.devops.kubesphere.local:30080/$GITLAB_ACCOUNT/devops-java-sample.git --tags --ipv4' - } - sh 'docker tag $REGISTRY/$HARBOR_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER $REGISTRY/$HARBOR_NAMESPACE/$APP_NAME:$TAG_NAME ' - sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/$APP_NAME:$TAG_NAME ' - } - } - } - stage('deploy to production') { - when{ - expression{ - return params.TAG_NAME =~ /v.*/ - } - } - steps { - input(id: 'deploy-to-production', message: 'deploy to production?') - kubernetesDeploy(configs: 'deploy/prod/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") - } - } - } -} diff --git a/OWNERS b/OWNERS deleted file mode 100644 index 9482c2f3..00000000 --- a/OWNERS +++ /dev/null @@ -1,7 +0,0 @@ -approvers: - - shaowenchen - - linuxsuren - -reviewers: - - runzexia #oncall - - shaowenchen diff --git a/README.md b/README.md index 956dcfad..4bdeaf0c 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ -## Repo Introduction +## 仓库简介 -> English | [中文](README_zh.md) +> 中文 | [English](README.md) -KubeSphere provides a Jenkins-based DevOps system [with various features](https://kubesphere.io/docs/devops-user-guide/understand-and-manage-devops-projects/overview/#features). This repository is used for a SpringBoot demo for DevOps on KubeSphere. For example, you can find a file of `Jenkinsfile-online` in the root directory, and you can use it to create a pipeline through the **Jenkinsfile in SCM** method. +KubeSphere 基于 Jenkins 提供的 DevOps 系统可以实现[多种功能](https://kubesphere.io/zh/docs/devops-user-guide/understand-and-manage-devops-projects/overview/#功能)。本仓库用来演示基于 SpringBoot 的 KubeSphere DevOps 功能。例如,您可以在根目录中找到 `Jenkinsfile-online` 文件,并将该文件用作 **SCM 中的 Jenkinsfile** 来创建流水线。 -For more information about how to use the KubeSphere DevOps system, you can refer to the following list of KubeSphere official documents. +有关如何使用 KubeSphere DevOps 系统的更多信息,您可以参考下方的 KubeSphere 官方文档清单。 -## Document List +## 文档清单 -- [Create a Pipeline Using a Jenkinsfile](https://kubesphere.io/docs/devops-user-guide/how-to-use/create-a-pipeline-using-jenkinsfile/) -- [Create a Pipeline Using Graphical Editing Panels](https://kubesphere.io/docs/devops-user-guide/how-to-use/create-a-pipeline-using-graphical-editing-panel/) -- [Build and Deploy a Maven Project](https://kubesphere.io/docs/devops-user-guide/examples/a-maven-project/) -- [Source to Image: Publish an App without a Dockerfile](https://kubesphere.io/docs/project-user-guide/image-builder/source-to-image/) +- [使用 Jenkinsfile 创建流水线](https://kubesphere.io/zh/docs/devops-user-guide/how-to-use/create-a-pipeline-using-jenkinsfile/) +- [使用图形编辑面板创建流水线](https://kubesphere.io/zh/docs/devops-user-guide/how-to-use/create-a-pipeline-using-graphical-editing-panel/) +- [构建和部署 Maven 工程](https://kubesphere.io/zh/docs/devops-user-guide/examples/a-maven-project/) +- [Source to Image:无需 Dockerfile 发布应用](https://kubesphere.io/zh/docs/project-user-guide/image-builder/source-to-image/) diff --git a/README_zh.md b/README_zh.md deleted file mode 100644 index b467e28a..00000000 --- a/README_zh.md +++ /dev/null @@ -1,15 +0,0 @@ -## 仓库简介 - -> [English](README.md) | 中文 - -KubeSphere 基于 Jenkins 提供的 DevOps 系统可以实现[多种功能](https://kubesphere.io/zh/docs/devops-user-guide/understand-and-manage-devops-projects/overview/#功能)。本仓库用来演示基于 SpringBoot 的 KubeSphere DevOps 功能。例如,您可以在根目录中找到 `Jenkinsfile-online` 文件,并将该文件用作 **SCM 中的 Jenkinsfile** 来创建流水线。 - -有关如何使用 KubeSphere DevOps 系统的更多信息,您可以参考下方的 KubeSphere 官方文档清单。 - -## 文档清单 - -- [使用 Jenkinsfile 创建流水线](https://kubesphere.io/zh/docs/devops-user-guide/how-to-use/create-a-pipeline-using-jenkinsfile/) -- [使用图形编辑面板创建流水线](https://kubesphere.io/zh/docs/devops-user-guide/how-to-use/create-a-pipeline-using-graphical-editing-panel/) -- [构建和部署 Maven 工程](https://kubesphere.io/zh/docs/devops-user-guide/examples/a-maven-project/) -- [Source to Image:无需 Dockerfile 发布应用](https://kubesphere.io/zh/docs/project-user-guide/image-builder/source-to-image/) - diff --git a/deploy/dev-ol/devops-sample-svc.yaml b/deploy/dev-ol/devops-sample-svc.yaml deleted file mode 100644 index 24fff6f3..00000000 --- a/deploy/dev-ol/devops-sample-svc.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - labels: - app: kubesphere - component: ks-sample-dev - name: ks-sample-dev - namespace: kubesphere-sample-dev -spec: - ports: - - name: http - port: 8080 - protocol: TCP - targetPort: 8080 - nodePort: 30861 - selector: - app: kubesphere - component: ks-sample-dev - tier: backend - sessionAffinity: None - type: NodePort \ No newline at end of file diff --git a/deploy/dev-ol/devops-sample.yaml b/deploy/dev-ol/devops-sample.yaml deleted file mode 100644 index e0a259a4..00000000 --- a/deploy/dev-ol/devops-sample.yaml +++ /dev/null @@ -1,55 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: kubesphere - component: ks-sample-dev - tier: backend - name: ks-sample-dev - namespace: kubesphere-sample-dev -spec: - progressDeadlineSeconds: 600 - replicas: 1 - selector: - matchLabels: - app: kubesphere - component: ks-sample-dev - tier: backend - template: - metadata: - labels: - app: kubesphere - component: ks-sample-dev - tier: backend - spec: - containers: - - env: - - name: CACHE_IGNORE - value: js|html - - name: CACHE_PUBLIC_EXPIRATION - value: 3d - image: $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER - readinessProbe: - httpGet: - path: / - port: 8080 - timeoutSeconds: 10 - failureThreshold: 30 - periodSeconds: 5 - imagePullPolicy: Always - name: ks-sample - ports: - - containerPort: 8080 - protocol: TCP - resources: - limits: - cpu: 300m - memory: 600Mi - requests: - cpu: 100m - memory: 100Mi - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - dnsPolicy: ClusterFirst - restartPolicy: Always - terminationGracePeriodSeconds: 30 diff --git a/deploy/no-branch-dev/devops-sample-svc.yaml b/deploy/no-branch-dev/devops-sample-svc.yaml deleted file mode 100644 index 24fff6f3..00000000 --- a/deploy/no-branch-dev/devops-sample-svc.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - labels: - app: kubesphere - component: ks-sample-dev - name: ks-sample-dev - namespace: kubesphere-sample-dev -spec: - ports: - - name: http - port: 8080 - protocol: TCP - targetPort: 8080 - nodePort: 30861 - selector: - app: kubesphere - component: ks-sample-dev - tier: backend - sessionAffinity: None - type: NodePort \ No newline at end of file diff --git a/deploy/no-branch-dev/devops-sample.yaml b/deploy/no-branch-dev/devops-sample.yaml deleted file mode 100644 index 417b966c..00000000 --- a/deploy/no-branch-dev/devops-sample.yaml +++ /dev/null @@ -1,50 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: kubesphere - component: ks-sample-dev - tier: backend - name: ks-sample-dev - namespace: kubesphere-sample-dev -spec: - progressDeadlineSeconds: 600 - replicas: 1 - selector: - matchLabels: - app: kubesphere - component: ks-sample-dev - tier: backend - template: - metadata: - labels: - app: kubesphere - component: ks-sample-dev - tier: backend - spec: - containers: - - image: $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BUILD_NUMBER - imagePullPolicy: Always - name: ks-sample - readinessProbe: - httpGet: - path: / - port: 8080 - timeoutSeconds: 10 - failureThreshold: 30 - periodSeconds: 5 - ports: - - containerPort: 8080 - protocol: TCP - resources: - limits: - cpu: 300m - memory: 600Mi - requests: - cpu: 100m - memory: 100Mi - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - dnsPolicy: ClusterFirst - restartPolicy: Always - terminationGracePeriodSeconds: 30 diff --git a/deploy/prod-ol/devops-sample-svc.yaml b/deploy/prod-ol/devops-sample-svc.yaml deleted file mode 100644 index 6211066c..00000000 --- a/deploy/prod-ol/devops-sample-svc.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - labels: - app: kubesphere - component: ks-sample - name: ks-sample - namespace: kubesphere-sample-prod -spec: - ports: - - name: http - port: 8080 - protocol: TCP - targetPort: 8080 - nodePort: 30961 - selector: - app: kubesphere - component: ks-sample - tier: backend - sessionAffinity: None - type: NodePort \ No newline at end of file diff --git a/deploy/prod-ol/devops-sample.yaml b/deploy/prod-ol/devops-sample.yaml deleted file mode 100644 index 4d93876a..00000000 --- a/deploy/prod-ol/devops-sample.yaml +++ /dev/null @@ -1,60 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: kubesphere - component: ks-sample - tier: backend - name: ks-sample - namespace: kubesphere-sample-prod -spec: - progressDeadlineSeconds: 600 - replicas: 2 - selector: - matchLabels: - app: kubesphere - component: ks-sample - tier: backend - strategy: - rollingUpdate: - maxSurge: 100% - maxUnavailable: 100% - type: RollingUpdate - template: - metadata: - labels: - app: kubesphere - component: ks-sample - tier: backend - spec: - containers: - - env: - - name: CACHE_IGNORE - value: js|html - - name: CACHE_PUBLIC_EXPIRATION - value: 3d - image: $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:$TAG_NAME - readinessProbe: - httpGet: - path: / - port: 8080 - timeoutSeconds: 10 - failureThreshold: 30 - periodSeconds: 5 - imagePullPolicy: Always - name: ks - ports: - - containerPort: 8080 - protocol: TCP - resources: - limits: - cpu: 300m - memory: 600Mi - requests: - cpu: 100m - memory: 100Mi - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - dnsPolicy: ClusterFirst - restartPolicy: Always - terminationGracePeriodSeconds: 30 \ No newline at end of file diff --git a/pom.xml b/pom.xml index 2b912c1c..5fc1b55d 100644 --- a/pom.xml +++ b/pom.xml @@ -2,10 +2,10 @@ 4.0.0 - io.kubesphere.devops - devops-sample + cn.wolfcode.devops + devops-demo 0.0.1-SNAPSHOT - devops-sample :: HelloWorld Demo + devops-demo :: HelloWorld Demo UTF-8 @@ -15,6 +15,7 @@ + ${PWD}/./target/jacoco.exec target/classes diff --git a/src/main/java/io/kubesphere/devops/Application.java b/src/main/java/cn/wolfcode/devops/Application.java similarity index 67% rename from src/main/java/io/kubesphere/devops/Application.java rename to src/main/java/cn/wolfcode/devops/Application.java index 67b84550..d0d49c0c 100644 --- a/src/main/java/io/kubesphere/devops/Application.java +++ b/src/main/java/cn/wolfcode/devops/Application.java @@ -1,12 +1,15 @@ -package io.kubesphere.devops; +package cn.wolfcode.devops; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** + * @author Leon + */ @SpringBootApplication public class Application { public static void main(String[] args) { - SpringApplication.run(Application.class,args); + SpringApplication.run(Application.class, args); } -} \ No newline at end of file +} diff --git a/src/main/java/cn/wolfcode/devops/HelloWorldController.java b/src/main/java/cn/wolfcode/devops/HelloWorldController.java new file mode 100644 index 00000000..9596bb37 --- /dev/null +++ b/src/main/java/cn/wolfcode/devops/HelloWorldController.java @@ -0,0 +1,19 @@ +package cn.wolfcode.devops; + + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * Hello world! + * + * @author Leon + */ +@RestController +public class HelloWorldController { + + @GetMapping("/") + public String sayHello() { + return "Hello DevOps..."; + } +} diff --git a/src/main/java/io/kubesphere/devops/HelloWorldController.java b/src/main/java/io/kubesphere/devops/HelloWorldController.java deleted file mode 100644 index 445d0960..00000000 --- a/src/main/java/io/kubesphere/devops/HelloWorldController.java +++ /dev/null @@ -1,19 +0,0 @@ -package io.kubesphere.devops; - - -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * Hello world! - */ -@RestController -@EnableAutoConfiguration -public class HelloWorldController { - - @RequestMapping("/") - public String sayHello() { - return "Really appreciate your star, that's the power of our life."; - } -} diff --git a/src/test/java/io/kubesphere/devops/HelloWorldControllerTest.java b/src/test/java/cn/wolfcode/devops/HelloWorldControllerTest.java similarity index 51% rename from src/test/java/io/kubesphere/devops/HelloWorldControllerTest.java rename to src/test/java/cn/wolfcode/devops/HelloWorldControllerTest.java index b342eabf..0a674da6 100644 --- a/src/test/java/io/kubesphere/devops/HelloWorldControllerTest.java +++ b/src/test/java/cn/wolfcode/devops/HelloWorldControllerTest.java @@ -1,5 +1,6 @@ -package io.kubesphere.devops; +package cn.wolfcode.devops; +import cn.wolfcode.devops.HelloWorldController; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -8,6 +9,6 @@ public class HelloWorldControllerTest { @Test public void testSayHello() { - assertEquals("Really appreciate your star, that's the power of our life.", new HelloWorldController().sayHello()); + assertEquals("Hello DevOps...", new HelloWorldController().sayHello()); } } From d0abb81aa9e88c139fd356a74d1df56b2195fbb0 Mon Sep 17 00:00:00 2001 From: Leon Date: Thu, 13 May 2021 16:27:50 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E6=9B=B4=E6=AD=A3=20Dockerfile=20=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index d8b3a430..d9b0144f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -38,7 +38,7 @@ pipeline { steps { container ('maven') { sh 'mvn -Dmaven.test.skip=true -gs `pwd`/configuration/settings.xml clean package' - sh 'docker build -f Dockerfile-online -t $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER .' + sh 'docker build -f Dockerfile -t $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER .' withCredentials([usernamePassword(passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,credentialsId : "$DOCKER_CREDENTIAL_ID" ,)]) { sh 'echo "$DOCKER_PASSWORD" | docker login $REGISTRY -u "$DOCKER_USERNAME" --password-stdin' sh 'docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER' From 69bbebe38d318e0457d0344bb63db022791faa2e Mon Sep 17 00:00:00 2001 From: Leon Date: Thu, 13 May 2021 16:38:40 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20docker=20=E4=BB=93?= =?UTF-8?q?=E5=BA=93=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index d9b0144f..877adc28 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -13,7 +13,7 @@ pipeline { DOCKER_CREDENTIAL_ID = 'dockerhub-id' GITREPO_CREDENTIAL_ID = 'gitee-liug-pass' KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' - REGISTRY = 'http://node1:9990' + REGISTRY = 'node1:9990' DOCKERHUB_NAMESPACE = 'docker' GITREPO_ACCOUNT = 'wolfcodeliug' APP_NAME = 'devops-demo' From 16a949bfad9faafb4cd6f238ffbb73e972375f38 Mon Sep 17 00:00:00 2001 From: Leon Date: Thu, 13 May 2021 16:42:41 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E8=87=B3=20k8s=20=E7=9A=84=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 877adc28..0c807779 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -65,7 +65,7 @@ pipeline { } steps { input(id: 'deploy-to-dev', message: 'deploy to dev?') - kubernetesDeploy(configs: 'deploy/dev-ol/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") + kubernetesDeploy(configs: 'deploy/dev/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") } } stage('push with tag'){ @@ -96,7 +96,7 @@ pipeline { } steps { input(id: 'deploy-to-production', message: 'deploy to production?') - kubernetesDeploy(configs: 'deploy/prod-ol/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") + kubernetesDeploy(configs: 'deploy/prod/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") } } } From 782fd256c60a7c561d465f56f5847a3a4a4a4f1b Mon Sep 17 00:00:00 2001 From: Leon Date: Thu, 13 May 2021 17:11:46 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E7=A9=BA=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/dev/devops-sample-svc.yaml | 4 ++-- deploy/dev/devops-sample.yaml | 4 ++-- deploy/prod/devops-sample-svc.yaml | 4 ++-- deploy/prod/devops-sample.yaml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/deploy/dev/devops-sample-svc.yaml b/deploy/dev/devops-sample-svc.yaml index 24fff6f3..4e6b9762 100644 --- a/deploy/dev/devops-sample-svc.yaml +++ b/deploy/dev/devops-sample-svc.yaml @@ -5,7 +5,7 @@ metadata: app: kubesphere component: ks-sample-dev name: ks-sample-dev - namespace: kubesphere-sample-dev + namespace: devops-demo-dev spec: ports: - name: http @@ -18,4 +18,4 @@ spec: component: ks-sample-dev tier: backend sessionAffinity: None - type: NodePort \ No newline at end of file + type: NodePort diff --git a/deploy/dev/devops-sample.yaml b/deploy/dev/devops-sample.yaml index ddab4269..1108a73a 100644 --- a/deploy/dev/devops-sample.yaml +++ b/deploy/dev/devops-sample.yaml @@ -6,7 +6,7 @@ metadata: component: ks-sample-dev tier: backend name: ks-sample-dev - namespace: kubesphere-sample-dev + namespace: devops-demo-dev spec: progressDeadlineSeconds: 600 replicas: 1 @@ -52,4 +52,4 @@ spec: terminationMessagePolicy: File dnsPolicy: ClusterFirst restartPolicy: Always - terminationGracePeriodSeconds: 30 \ No newline at end of file + terminationGracePeriodSeconds: 30 diff --git a/deploy/prod/devops-sample-svc.yaml b/deploy/prod/devops-sample-svc.yaml index 6211066c..4e99c942 100644 --- a/deploy/prod/devops-sample-svc.yaml +++ b/deploy/prod/devops-sample-svc.yaml @@ -5,7 +5,7 @@ metadata: app: kubesphere component: ks-sample name: ks-sample - namespace: kubesphere-sample-prod + namespace: devops-demo-prod spec: ports: - name: http @@ -18,4 +18,4 @@ spec: component: ks-sample tier: backend sessionAffinity: None - type: NodePort \ No newline at end of file + type: NodePort diff --git a/deploy/prod/devops-sample.yaml b/deploy/prod/devops-sample.yaml index fe71ae95..565c9bec 100644 --- a/deploy/prod/devops-sample.yaml +++ b/deploy/prod/devops-sample.yaml @@ -6,7 +6,7 @@ metadata: component: ks-sample tier: backend name: ks-sample - namespace: kubesphere-sample-prod + namespace: devops-demo-prod spec: progressDeadlineSeconds: 600 replicas: 2 From dd21bf8b6591658c6a27a7d774283ea78a97612c Mon Sep 17 00:00:00 2001 From: Leon Date: Thu, 13 May 2021 17:15:39 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=87=AD=E8=AF=81=20id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0c807779..f48cacca 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -11,7 +11,7 @@ pipeline { environment { DOCKER_CREDENTIAL_ID = 'dockerhub-id' - GITREPO_CREDENTIAL_ID = 'gitee-liug-pass' + GITREPO_CREDENTIAL_ID = 'gitee-id' KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' REGISTRY = 'node1:9990' DOCKERHUB_NAMESPACE = 'docker' From afee788537e36c4534c0c858065040503df100f9 Mon Sep 17 00:00:00 2001 From: Leon Date: Thu, 13 May 2021 19:04:35 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E5=88=B0=20git=20=E4=B8=BA=20sshagent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f48cacca..4b683605 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -11,11 +11,12 @@ pipeline { environment { DOCKER_CREDENTIAL_ID = 'dockerhub-id' - GITREPO_CREDENTIAL_ID = 'gitee-id' + GIT_CREDENTIALS_ID = 'gitee-id' KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' REGISTRY = 'node1:9990' DOCKERHUB_NAMESPACE = 'docker' GITREPO_ACCOUNT = 'wolfcodeliug' + GITREPO_EMAIL = 'liugang@wolfcode.cn' APP_NAME = 'devops-demo' } @@ -77,15 +78,15 @@ pipeline { steps { container ('maven') { input(id: 'release-image-with-tag', message: 'release image with tag?') - withCredentials([usernamePassword(credentialsId: "$GITREPO_CREDENTIAL_ID", passwordVariable: 'GIT_PASSWORD', usernameVariable: 'GIT_USERNAME')]) { - sh 'git config --global user.email "liugang@wolfcode.cn" ' - sh 'git config --global user.name "wolfcodeliug" ' + sshagent(["${GIT_CREDENTIALS_ID}"]) { + sh 'git config --global user.email "$GITREPO_EMAIL" ' + sh 'git config --global user.name "$GITREPO_ACCOUNT" ' sh 'git tag -a $TAG_NAME -m "$TAG_NAME" ' - sh 'git push http://$GIT_USERNAMEΩ:$GIT_PASSWORD@gitee.com/$GITREPO_ACCOUNT/devops-demo.git --tags --ipv4' + sh 'git push git@gitee.com:$GITREPO_ACCOUNT/$APP_NAME.git --tags' } sh 'docker tag $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:$TAG_NAME ' sh 'docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:$TAG_NAME ' - } + } } } stage('deploy to production') {