alair 4 mēneši atpakaļ
vecāks
revīzija
fcdcd2bf7e
4 mainītis faili ar 138 papildinājumiem un 7 dzēšanām
  1. 1 7
      Jenkinsfile-admin
  2. 22 0
      Jenkinsfile-ui
  3. 57 0
      ruoyi-admin-deploy.yaml
  4. 58 0
      ruoyi-ui-deploy.yaml

+ 1 - 7
Jenkinsfile-admin

@@ -45,13 +45,7 @@ pipeline{
         }
         stage('远程执行k8s-master的kubectl命令') {
             steps {
-                sh '''ssh root@192.168.0.3 kubectl apply -f ruoyi-admin-deploy.yaml
-                ssh root@192.168.0.3 kubectl rollout restart deployment ruoyi -n ruoyi'''
-            }
-        }
-        stage('通过npm构建前端项目') {
-            steps {
-                sh '/var/jenkins_home/apache-maven-3.9.11/bin/mvn clean package -DskipTests'
+                sh '''ssh root@192.168.0.3 kubectl apply -f ruoyi-admin-deploy.yaml'''
             }
         }
     }

+ 22 - 0
Jenkinsfile-ui

@@ -31,5 +31,27 @@ pipeline{
                 sh '/var/jenkins_home/sonar-scanner/bin/sonar-scanner -Dsonar.sources=. -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.token=squ_b5fe8ff602839ce1b3374e2716a1741e62777e79'
             }
         }
+        stage('通过Docker制作自定义镜像') {
+            steps {
+                sh '''docker build -t ${JOB_NAME}:latest ./docker/'''
+            }
+        }
+        stage('将自定义镜像推送到Harbor') {
+            steps {
+                sh '''docker login -u ${harbor_user} -p ${harbor_passwd} ${harbor_address}
+                docker tag ${JOB_NAME}:latest ${harbor_address}/${harbor_repo}/${JOB_NAME}:latest
+                docker push ${harbor_address}/${harbor_repo}/${JOB_NAME}:latest'''
+            }
+        }
+        stage('将yaml文件传到k8smaster服务器') {
+            steps {
+                sshPublisher(publishers: [sshPublisherDesc(configName: '应用服务器', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'ruoyi-ui-deploy.yaml')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
+            }
+        }
+        stage('远程执行k8s-master的kubectl命令') {
+            steps {
+                sh '''ssh root@192.168.0.3 kubectl apply -f ruoyi-ui-deploy.yaml'''
+            }
+        }
     }
 }

+ 57 - 0
ruoyi-admin-deploy.yaml

@@ -0,0 +1,57 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  namespace: ruoyi
+  name: ruoyi-admin
+  labels:
+    app: ruoyi-admin
+spec:
+  replicas: 2
+  selector:
+    matchLabels:
+      app: ruoyi-admin
+  template:
+    metadata:
+      labels:
+        app: ruoyi-admin
+    spec:
+      containers:
+        - name: ruoyi-admin
+          image: 192.168.0.5:9080/repo/ruoyi-admin:latest
+          imagePullPolicy: Always
+          ports:
+            - containerPort: 8080
+---
+apiVersion: v1
+kind: Service
+metadata:
+  namespace: ruoyi
+  labels:
+    app: ruoyi-admin
+  name: ruoyi-admin
+spec:
+  selector:
+    app: ruoyi-admin
+  ports:
+    - port: 18081
+      targetPort: 8080
+  type: ClusterIP
+---
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+  name: ruoyi-admin
+  namespace: ruoyi
+spec:
+  ingressClassName: traefik
+  rules:
+    - host: ruoyi.autumn.com
+      http:
+        paths:
+          - path: /api/v1
+            pathType: Prefix
+            backend:
+              service:
+                name: ruoyi
+                port:
+                  number: 18081

+ 58 - 0
ruoyi-ui-deploy.yaml

@@ -0,0 +1,58 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  namespace: ruoyi
+  name: ruoyi-ui
+  labels:
+    app: ruoyi-ui
+spec:
+  replicas: 2
+  selector:
+    matchLabels:
+      app: ruoyi-ui
+  template:
+    metadata:
+      labels:
+        app: ruoyi-ui
+    spec:
+      containers:
+        - name: ruoyi-ui
+          image: 192.168.0.5:9080/repo/ruoyi-ui:latest
+          imagePullPolicy: Always
+          ports:
+            - containerPort: 80
+---
+apiVersion: v1
+kind: Service
+metadata:
+  namespace: ruoyi
+  labels:
+    app: ruoyi-ui
+  name: ruoyi-ui
+spec:
+  selector:
+    app: ruoyi-ui
+  ports:
+    - protocol: TCP
+      port: 80
+      targetPort: 80
+  type: ClusterIP
+---
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+  name: ruoyi-admin
+  namespace: ruoyi
+spec:
+  ingressClassName: traefik
+  rules:
+    - host: ruoyi.autumn.com
+      http:
+        paths:
+          - path: /
+            pathType: Prefix
+            backend:
+              service:
+                name: ruoyi-ui
+                port:
+                  number: 80