From b4e119987e905ebf6b84779782ccf3d81a9f67e7 Mon Sep 17 00:00:00 2001
From: haoxin963 <525899665@qq.com>
Date: Mon, 5 Jul 2021 15:30:56 +0800
Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81k8s?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 9 ++-
xtoon-ops/xtoon-auth-server/Dockerfile | 6 ++
xtoon-ops/xtoon-auth-server/Jenkinsfile | 58 +++++++++++++++++++
.../xtoon-auth-server/k8s-deployment.tpl | 36 ++++++++++++
xtoon-ops/xtoon-auth-server/pom.xml | 10 ++++
xtoon-ops/xtoon-gateway-server/Dockerfile | 6 ++
xtoon-ops/xtoon-gateway-server/Jenkinsfile | 58 +++++++++++++++++++
.../xtoon-gateway-server/k8s-deployment.tpl | 36 ++++++++++++
xtoon-ops/xtoon-gateway-server/pom.xml | 10 ++++
.../ops/gateway/controller/IndexApi.java | 2 +-
xtoon-ops/xtoon-monitor-server/Dockerfile | 6 ++
xtoon-ops/xtoon-monitor-server/Jenkinsfile | 58 +++++++++++++++++++
.../xtoon-monitor-server/k8s-deployment.tpl | 36 ++++++++++++
xtoon-ops/xtoon-monitor-server/pom.xml | 10 ++++
.../xtoon-sys/xtoon-sys-server/Dockerfile | 6 ++
.../xtoon-sys/xtoon-sys-server/Jenkinsfile | 58 +++++++++++++++++++
.../xtoon-sys-server/k8s-deployment.tpl | 36 ++++++++++++
.../xtoon-sys/xtoon-sys-server/pom.xml | 7 +++
.../infrastructure/util/KaptchaConfig.java | 2 +-
19 files changed, 445 insertions(+), 5 deletions(-)
create mode 100644 xtoon-ops/xtoon-auth-server/Dockerfile
create mode 100644 xtoon-ops/xtoon-auth-server/Jenkinsfile
create mode 100644 xtoon-ops/xtoon-auth-server/k8s-deployment.tpl
create mode 100644 xtoon-ops/xtoon-gateway-server/Dockerfile
create mode 100644 xtoon-ops/xtoon-gateway-server/Jenkinsfile
create mode 100644 xtoon-ops/xtoon-gateway-server/k8s-deployment.tpl
create mode 100644 xtoon-ops/xtoon-monitor-server/Dockerfile
create mode 100644 xtoon-ops/xtoon-monitor-server/Jenkinsfile
create mode 100644 xtoon-ops/xtoon-monitor-server/k8s-deployment.tpl
create mode 100644 xtoon-service/xtoon-sys/xtoon-sys-server/Dockerfile
create mode 100644 xtoon-service/xtoon-sys/xtoon-sys-server/Jenkinsfile
create mode 100644 xtoon-service/xtoon-sys/xtoon-sys-server/k8s-deployment.tpl
diff --git a/README.md b/README.md
index ac01f8b..072610b 100644
--- a/README.md
+++ b/README.md
@@ -95,14 +95,14 @@ xtoon-could
## 部署
-### 部署方式
+### 前期准备
- 拉取前后端项目代码;
- 安装必要的环境:jdk1.8+,mysql5.7+,redis,nodejs等;
- mysql新建两个库,导入doc下面的sql文件;
- 修改成本地环境配置:mysql,redis;
-- 启动前后端项目,访问地址;
+- 启动前后端项目,访问地址;#
-### 启动顺序
+### 本地启动顺序
- xtoon-register-server(注册配置中心)
- xtoon-sys-server(用户服务)
- xtoon-auth-server(认证服务)
@@ -111,6 +111,9 @@ xtoon-could
- xtoon-sentinel-server(流量控制服务)
- xtoon-could-element(前端项目)
+### 测试/生产发布
+支持jenkins pipeline + docker + harbor + k8s部署,项目开源配置文件:Dockerfile,Jenkinsfile,k8s-deployment.tpl,具体可加群讨论(QQ:13095000)
+
## 核心理念
### 六边形理论
diff --git a/xtoon-ops/xtoon-auth-server/Dockerfile b/xtoon-ops/xtoon-auth-server/Dockerfile
new file mode 100644
index 0000000..b059d4d
--- /dev/null
+++ b/xtoon-ops/xtoon-auth-server/Dockerfile
@@ -0,0 +1,6 @@
+FROM java:8
+
+VOLUME /tmp
+ADD target/xtoon-auth-server.jar app.jar
+RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
diff --git a/xtoon-ops/xtoon-auth-server/Jenkinsfile b/xtoon-ops/xtoon-auth-server/Jenkinsfile
new file mode 100644
index 0000000..673d811
--- /dev/null
+++ b/xtoon-ops/xtoon-auth-server/Jenkinsfile
@@ -0,0 +1,58 @@
+pipeline {
+ agent any
+ environment {
+ HARBOR_CREDS = credentials('jenkins-harbor-creds')
+ K8S_CONFIG = credentials('jenkins-k8s-config')
+ GIT_TAG = sh(returnStdout: true,script: 'git describe --tags --always').trim()
+ }
+ parameters {
+ string(name: 'HARBOR_HOST', defaultValue: '192.168.99.41:30002', description: 'harbor_url')
+ string(name: 'DOCKER_IMAGE', defaultValue: 'xtoon-cloud/xtoon-auth-server', description: 'docker_image_tag')
+ string(name: 'APP_NAME', defaultValue: 'xtoon-auth-server', description: 'app_name')
+ string(name: 'K8S_NAMESPACE', defaultValue: 'xtoon', description: 'k8s_namespace')
+ }
+ stages {
+ stage('Maven Build') {
+ agent {
+ docker {
+ image 'maven:3-jdk-8-alpine'
+ args '-v $HOME/.m2:/root/.m2'
+ }
+ }
+ steps {
+ sh 'mvn clean package -DskipTests=true'
+ }
+
+ }
+ stage('Docker Build') {
+ agent any
+ steps {
+ dir('xtoon-ops/xtoon-auth-server') {
+ sh "docker login -u ${HARBOR_CREDS_USR} -p ${HARBOR_CREDS_PSW} ${params.HARBOR_HOST}"
+ sh "docker build -t ${params.HARBOR_HOST}/${params.DOCKER_IMAGE}:${GIT_TAG} ."
+ sh "docker push ${params.HARBOR_HOST}/${params.DOCKER_IMAGE}:${GIT_TAG}"
+ sh "docker rmi ${params.HARBOR_HOST}/${params.DOCKER_IMAGE}:${GIT_TAG}"
+ }
+ }
+
+ }
+ stage('Deploy') {
+ agent {
+ docker {
+ image 'lwolf/helm-kubectl-docker'
+ }
+ }
+ steps {
+ dir('xtoon-ops/xtoon-auth-server') {
+ sh "mkdir -p ~/.kube"
+ sh "echo ${K8S_CONFIG} | base64 -d > ~/.kube/config"
+ sh "sed -e 's#{IMAGE_URL}#${params.HARBOR_HOST}/${params.DOCKER_IMAGE}#g;s#{IMAGE_TAG}#${GIT_TAG}#g;s#{APP_NAME}#${params.APP_NAME}#g;s#{SPRING_PROFILE}#k8s-test#g' k8s-deployment.tpl > k8s-deployment.yml"
+ sh "kubectl apply -f k8s-deployment.yml --force=true --namespace=${params.K8S_NAMESPACE}"
+ }
+ }
+
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/xtoon-ops/xtoon-auth-server/k8s-deployment.tpl b/xtoon-ops/xtoon-auth-server/k8s-deployment.tpl
new file mode 100644
index 0000000..e4c3f07
--- /dev/null
+++ b/xtoon-ops/xtoon-auth-server/k8s-deployment.tpl
@@ -0,0 +1,36 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: {APP_NAME}-deployment
+ labels:
+ app: {APP_NAME}
+spec:
+ replicas: 1
+ strategy:
+ type: RollingUpdate
+ rollingUpdate:
+ maxUnavailable: 1
+ selector:
+ matchLabels:
+ app: {APP_NAME}
+ template:
+ metadata:
+ labels:
+ app: {APP_NAME}
+ spec:
+ terminationGracePeriodSeconds: 0
+ containers:
+ - name: {APP_NAME}
+ image: {IMAGE_URL}:{IMAGE_TAG}
+ ports:
+ - containerPort: 8000
+ livenessProbe:
+ initialDelaySeconds: 300 #延迟加载时间
+ periodSeconds: 5 #重试时间间隔
+ timeoutSeconds: 10 #超时时间设置
+ httpGet:
+ port: 8000
+ path: /actuator/health
+ env:
+ - name: SPRING_PROFILES_ACTIVE
+ value: {SPRING_PROFILE}
\ No newline at end of file
diff --git a/xtoon-ops/xtoon-auth-server/pom.xml b/xtoon-ops/xtoon-auth-server/pom.xml
index 4976c06..accd98e 100644
--- a/xtoon-ops/xtoon-auth-server/pom.xml
+++ b/xtoon-ops/xtoon-auth-server/pom.xml
@@ -83,4 +83,14 @@
2.7.8
+
+
+ xtoon-auth-server
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
\ No newline at end of file
diff --git a/xtoon-ops/xtoon-gateway-server/Dockerfile b/xtoon-ops/xtoon-gateway-server/Dockerfile
new file mode 100644
index 0000000..4356207
--- /dev/null
+++ b/xtoon-ops/xtoon-gateway-server/Dockerfile
@@ -0,0 +1,6 @@
+FROM java:8
+
+VOLUME /tmp
+ADD target/xtoon-gateway-server.jar app.jar
+RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
diff --git a/xtoon-ops/xtoon-gateway-server/Jenkinsfile b/xtoon-ops/xtoon-gateway-server/Jenkinsfile
new file mode 100644
index 0000000..987d720
--- /dev/null
+++ b/xtoon-ops/xtoon-gateway-server/Jenkinsfile
@@ -0,0 +1,58 @@
+pipeline {
+ agent any
+ environment {
+ HARBOR_CREDS = credentials('jenkins-harbor-creds')
+ K8S_CONFIG = credentials('jenkins-k8s-config')
+ GIT_TAG = sh(returnStdout: true,script: 'git describe --tags --always').trim()
+ }
+ parameters {
+ string(name: 'HARBOR_HOST', defaultValue: '192.168.99.41:30002', description: 'harbor_url')
+ string(name: 'DOCKER_IMAGE', defaultValue: 'xtoon-cloud/xtoon-gateway-server', description: 'docker_image_tag')
+ string(name: 'APP_NAME', defaultValue: 'xtoon-gateway-server', description: 'app_name')
+ string(name: 'K8S_NAMESPACE', defaultValue: 'xtoon', description: 'k8s_namespace')
+ }
+ stages {
+ stage('Maven Build') {
+ agent {
+ docker {
+ image 'maven:3-jdk-8-alpine'
+ args '-v $HOME/.m2:/root/.m2'
+ }
+ }
+ steps {
+ sh 'mvn clean package -DskipTests=true'
+ }
+
+ }
+ stage('Docker Build') {
+ agent any
+ steps {
+ dir('xtoon-ops/xtoon-gateway-server') {
+ sh "docker login -u ${HARBOR_CREDS_USR} -p ${HARBOR_CREDS_PSW} ${params.HARBOR_HOST}"
+ sh "docker build -t ${params.HARBOR_HOST}/${params.DOCKER_IMAGE}:${GIT_TAG} ."
+ sh "docker push ${params.HARBOR_HOST}/${params.DOCKER_IMAGE}:${GIT_TAG}"
+ sh "docker rmi ${params.HARBOR_HOST}/${params.DOCKER_IMAGE}:${GIT_TAG}"
+ }
+ }
+
+ }
+ stage('Deploy') {
+ agent {
+ docker {
+ image 'lwolf/helm-kubectl-docker'
+ }
+ }
+ steps {
+ dir('xtoon-ops/xtoon-gateway-server') {
+ sh "mkdir -p ~/.kube"
+ sh "echo ${K8S_CONFIG} | base64 -d > ~/.kube/config"
+ sh "sed -e 's#{IMAGE_URL}#${params.HARBOR_HOST}/${params.DOCKER_IMAGE}#g;s#{IMAGE_TAG}#${GIT_TAG}#g;s#{APP_NAME}#${params.APP_NAME}#g;s#{SPRING_PROFILE}#k8s-test#g' k8s-deployment.tpl > k8s-deployment.yml"
+ sh "kubectl apply -f k8s-deployment.yml --namespace=${params.K8S_NAMESPACE}"
+ }
+ }
+
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/xtoon-ops/xtoon-gateway-server/k8s-deployment.tpl b/xtoon-ops/xtoon-gateway-server/k8s-deployment.tpl
new file mode 100644
index 0000000..03ce412
--- /dev/null
+++ b/xtoon-ops/xtoon-gateway-server/k8s-deployment.tpl
@@ -0,0 +1,36 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: {APP_NAME}-deployment
+ labels:
+ app: {APP_NAME}
+spec:
+ replicas: 2
+ strategy:
+ type: RollingUpdate
+ rollingUpdate:
+ maxUnavailable: 1
+ selector:
+ matchLabels:
+ app: {APP_NAME}
+ template:
+ metadata:
+ labels:
+ app: {APP_NAME}
+ spec:
+ terminationGracePeriodSeconds: 0
+ containers:
+ - name: {APP_NAME}
+ image: {IMAGE_URL}:{IMAGE_TAG}
+ ports:
+ - containerPort: 10000
+ livenessProbe:
+ initialDelaySeconds: 300 #延迟加载时间
+ periodSeconds: 5 #重试时间间隔
+ timeoutSeconds: 10 #超时时间设置
+ httpGet:
+ port: 10000
+ path: /actuator/health
+ env:
+ - name: SPRING_PROFILES_ACTIVE
+ value: {SPRING_PROFILE}
\ No newline at end of file
diff --git a/xtoon-ops/xtoon-gateway-server/pom.xml b/xtoon-ops/xtoon-gateway-server/pom.xml
index 6a909f0..b94d9e1 100644
--- a/xtoon-ops/xtoon-gateway-server/pom.xml
+++ b/xtoon-ops/xtoon-gateway-server/pom.xml
@@ -79,4 +79,14 @@
spring-security-oauth2-jose
+
+
+ xtoon-gateway-server
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
\ No newline at end of file
diff --git a/xtoon-ops/xtoon-gateway-server/src/main/java/com/xtoon/cloud/ops/gateway/controller/IndexApi.java b/xtoon-ops/xtoon-gateway-server/src/main/java/com/xtoon/cloud/ops/gateway/controller/IndexApi.java
index b1acbe5..55dae91 100644
--- a/xtoon-ops/xtoon-gateway-server/src/main/java/com/xtoon/cloud/ops/gateway/controller/IndexApi.java
+++ b/xtoon-ops/xtoon-gateway-server/src/main/java/com/xtoon/cloud/ops/gateway/controller/IndexApi.java
@@ -20,6 +20,6 @@ public class IndexApi {
*/
@RequestMapping("/")
public Mono index() {
- return Mono.just("gamma cloud gateway");
+ return Mono.just("xtoon cloud gateway");
}
}
diff --git a/xtoon-ops/xtoon-monitor-server/Dockerfile b/xtoon-ops/xtoon-monitor-server/Dockerfile
new file mode 100644
index 0000000..bb43ca2
--- /dev/null
+++ b/xtoon-ops/xtoon-monitor-server/Dockerfile
@@ -0,0 +1,6 @@
+FROM java:8
+
+VOLUME /tmp
+ADD target/xtoon-monitor-server.jar app.jar
+RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
diff --git a/xtoon-ops/xtoon-monitor-server/Jenkinsfile b/xtoon-ops/xtoon-monitor-server/Jenkinsfile
new file mode 100644
index 0000000..daa7183
--- /dev/null
+++ b/xtoon-ops/xtoon-monitor-server/Jenkinsfile
@@ -0,0 +1,58 @@
+pipeline {
+ agent any
+ environment {
+ HARBOR_CREDS = credentials('jenkins-harbor-creds')
+ K8S_CONFIG = credentials('jenkins-k8s-config')
+ GIT_TAG = sh(returnStdout: true,script: 'git describe --tags --always').trim()
+ }
+ parameters {
+ string(name: 'HARBOR_HOST', defaultValue: '192.168.99.41:30002', description: 'harbor_url')
+ string(name: 'DOCKER_IMAGE', defaultValue: 'xtoon-cloud/xtoon-monitor-server', description: 'docker_image_tag')
+ string(name: 'APP_NAME', defaultValue: 'xtoon-monitor-server', description: 'app_name')
+ string(name: 'K8S_NAMESPACE', defaultValue: 'xtoon', description: 'k8s_namespace')
+ }
+ stages {
+ stage('Maven Build') {
+ agent {
+ docker {
+ image 'maven:3-jdk-8-alpine'
+ args '-v $HOME/.m2:/root/.m2'
+ }
+ }
+ steps {
+ sh 'mvn clean package -DskipTests=true'
+ }
+
+ }
+ stage('Docker Build') {
+ agent any
+ steps {
+ dir('xtoon-ops/xtoon-monitor-server') {
+ sh "docker login -u ${HARBOR_CREDS_USR} -p ${HARBOR_CREDS_PSW} ${params.HARBOR_HOST}"
+ sh "docker build -t ${params.HARBOR_HOST}/${params.DOCKER_IMAGE}:${GIT_TAG} ."
+ sh "docker push ${params.HARBOR_HOST}/${params.DOCKER_IMAGE}:${GIT_TAG}"
+ sh "docker rmi ${params.HARBOR_HOST}/${params.DOCKER_IMAGE}:${GIT_TAG}"
+ }
+ }
+
+ }
+ stage('Deploy') {
+ agent {
+ docker {
+ image 'lwolf/helm-kubectl-docker'
+ }
+ }
+ steps {
+ dir('xtoon-ops/xtoon-monitor-server') {
+ sh "mkdir -p ~/.kube"
+ sh "echo ${K8S_CONFIG} | base64 -d > ~/.kube/config"
+ sh "sed -e 's#{IMAGE_URL}#${params.HARBOR_HOST}/${params.DOCKER_IMAGE}#g;s#{IMAGE_TAG}#${GIT_TAG}#g;s#{APP_NAME}#${params.APP_NAME}#g;s#{SPRING_PROFILE}#k8s-test#g' k8s-deployment.tpl > k8s-deployment.yml"
+ sh "kubectl apply -f k8s-deployment.yml --namespace=${params.K8S_NAMESPACE}"
+ }
+ }
+
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/xtoon-ops/xtoon-monitor-server/k8s-deployment.tpl b/xtoon-ops/xtoon-monitor-server/k8s-deployment.tpl
new file mode 100644
index 0000000..93a5e9a
--- /dev/null
+++ b/xtoon-ops/xtoon-monitor-server/k8s-deployment.tpl
@@ -0,0 +1,36 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: {APP_NAME}-deployment
+ labels:
+ app: {APP_NAME}
+spec:
+ replicas: 1
+ strategy:
+ type: RollingUpdate
+ rollingUpdate:
+ maxUnavailable: 1
+ selector:
+ matchLabels:
+ app: {APP_NAME}
+ template:
+ metadata:
+ labels:
+ app: {APP_NAME}
+ spec:
+ terminationGracePeriodSeconds: 0
+ containers:
+ - name: {APP_NAME}
+ image: {IMAGE_URL}:{IMAGE_TAG}
+ ports:
+ - containerPort: 5001
+ livenessProbe:
+ initialDelaySeconds: 300 #延迟加载时间
+ periodSeconds: 5 #重试时间间隔
+ timeoutSeconds: 10 #超时时间设置
+ httpGet:
+ port: 5001
+ path: /actuator/health
+ env:
+ - name: SPRING_PROFILES_ACTIVE
+ value: {SPRING_PROFILE}
\ No newline at end of file
diff --git a/xtoon-ops/xtoon-monitor-server/pom.xml b/xtoon-ops/xtoon-monitor-server/pom.xml
index 6a5bbcd..e6f01d0 100644
--- a/xtoon-ops/xtoon-monitor-server/pom.xml
+++ b/xtoon-ops/xtoon-monitor-server/pom.xml
@@ -56,4 +56,14 @@
spring-cloud-starter-loadbalancer
+
+
+ xtoon-monitor-server
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
\ No newline at end of file
diff --git a/xtoon-service/xtoon-sys/xtoon-sys-server/Dockerfile b/xtoon-service/xtoon-sys/xtoon-sys-server/Dockerfile
new file mode 100644
index 0000000..8f6c126
--- /dev/null
+++ b/xtoon-service/xtoon-sys/xtoon-sys-server/Dockerfile
@@ -0,0 +1,6 @@
+FROM java:8
+
+VOLUME /tmp
+ADD target/xtoon-sys-server.jar app.jar
+RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
diff --git a/xtoon-service/xtoon-sys/xtoon-sys-server/Jenkinsfile b/xtoon-service/xtoon-sys/xtoon-sys-server/Jenkinsfile
new file mode 100644
index 0000000..48df13d
--- /dev/null
+++ b/xtoon-service/xtoon-sys/xtoon-sys-server/Jenkinsfile
@@ -0,0 +1,58 @@
+pipeline {
+ agent any
+ environment {
+ HARBOR_CREDS = credentials('jenkins-harbor-creds')
+ K8S_CONFIG = credentials('jenkins-k8s-config')
+ GIT_TAG = sh(returnStdout: true,script: 'git describe --tags --always').trim()
+ }
+ parameters {
+ string(name: 'HARBOR_HOST', defaultValue: '192.168.99.41:30002', description: 'harbor_url')
+ string(name: 'DOCKER_IMAGE', defaultValue: 'xtoon-cloud/xtoon-sys-server', description: 'docker_image_tag')
+ string(name: 'APP_NAME', defaultValue: 'xtoon-sys-server', description: 'app_name')
+ string(name: 'K8S_NAMESPACE', defaultValue: 'xtoon', description: 'k8s_namespace')
+ }
+ stages {
+ stage('Maven Build') {
+ agent {
+ docker {
+ image 'maven:3-jdk-8-alpine'
+ args '-v $HOME/.m2:/root/.m2'
+ }
+ }
+ steps {
+ sh 'mvn clean package -DskipTests=true'
+ }
+
+ }
+ stage('Docker Build') {
+ agent any
+ steps {
+ dir('xtoon-service/xtoon-sys/xtoon-sys-server') {
+ sh "docker login -u ${HARBOR_CREDS_USR} -p ${HARBOR_CREDS_PSW} ${params.HARBOR_HOST}"
+ sh "docker build -t ${params.HARBOR_HOST}/${params.DOCKER_IMAGE}:${GIT_TAG} ."
+ sh "docker push ${params.HARBOR_HOST}/${params.DOCKER_IMAGE}:${GIT_TAG}"
+ sh "docker rmi ${params.HARBOR_HOST}/${params.DOCKER_IMAGE}:${GIT_TAG}"
+ }
+ }
+
+ }
+ stage('Deploy') {
+ agent {
+ docker {
+ image 'lwolf/helm-kubectl-docker'
+ }
+ }
+ steps {
+ dir('xtoon-service/xtoon-sys/xtoon-sys-server') {
+ sh "mkdir -p ~/.kube"
+ sh "echo ${K8S_CONFIG} | base64 -d > ~/.kube/config"
+ sh "sed -e 's#{IMAGE_URL}#${params.HARBOR_HOST}/${params.DOCKER_IMAGE}#g;s#{IMAGE_TAG}#${GIT_TAG}#g;s#{APP_NAME}#${params.APP_NAME}#g;s#{SPRING_PROFILE}#k8s-test#g' k8s-deployment.tpl > k8s-deployment.yml"
+ sh "kubectl apply -f k8s-deployment.yml --namespace=${params.K8S_NAMESPACE}"
+ }
+ }
+
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/xtoon-service/xtoon-sys/xtoon-sys-server/k8s-deployment.tpl b/xtoon-service/xtoon-sys/xtoon-sys-server/k8s-deployment.tpl
new file mode 100644
index 0000000..a7e2587
--- /dev/null
+++ b/xtoon-service/xtoon-sys/xtoon-sys-server/k8s-deployment.tpl
@@ -0,0 +1,36 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: {APP_NAME}-deployment
+ labels:
+ app: {APP_NAME}
+spec:
+ replicas: 1
+ strategy:
+ type: RollingUpdate
+ rollingUpdate:
+ maxUnavailable: 1
+ selector:
+ matchLabels:
+ app: {APP_NAME}
+ template:
+ metadata:
+ labels:
+ app: {APP_NAME}
+ spec:
+ terminationGracePeriodSeconds: 0
+ containers:
+ - name: {APP_NAME}
+ image: {IMAGE_URL}:{IMAGE_TAG}
+ ports:
+ - containerPort: 8001
+ livenessProbe:
+ initialDelaySeconds: 300 #延迟加载时间
+ periodSeconds: 5 #重试时间间隔
+ timeoutSeconds: 10 #超时时间设置
+ httpGet:
+ port: 8001
+ path: /actuator/health
+ env:
+ - name: SPRING_PROFILES_ACTIVE
+ value: {SPRING_PROFILE}
\ No newline at end of file
diff --git a/xtoon-service/xtoon-sys/xtoon-sys-server/pom.xml b/xtoon-service/xtoon-sys/xtoon-sys-server/pom.xml
index ff1ee9d..901edfb 100644
--- a/xtoon-service/xtoon-sys/xtoon-sys-server/pom.xml
+++ b/xtoon-service/xtoon-sys/xtoon-sys-server/pom.xml
@@ -98,6 +98,7 @@
+ xtoon-sys-server
src/main/resources
@@ -112,5 +113,11 @@
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
\ No newline at end of file
diff --git a/xtoon-service/xtoon-sys/xtoon-sys-server/src/main/java/com/xtoon/cloud/sys/infrastructure/util/KaptchaConfig.java b/xtoon-service/xtoon-sys/xtoon-sys-server/src/main/java/com/xtoon/cloud/sys/infrastructure/util/KaptchaConfig.java
index 01d6ee9..d152083 100755
--- a/xtoon-service/xtoon-sys/xtoon-sys-server/src/main/java/com/xtoon/cloud/sys/infrastructure/util/KaptchaConfig.java
+++ b/xtoon-service/xtoon-sys/xtoon-sys-server/src/main/java/com/xtoon/cloud/sys/infrastructure/util/KaptchaConfig.java
@@ -12,7 +12,7 @@ import java.util.Properties;
/**
* 生成验证码配置
*
- * @author gamma
+ * @author xtoon
*/
@Configuration
public class KaptchaConfig {