首页 > 其他分享 >Pipeline SpringBoot-deploy-CD

Pipeline SpringBoot-deploy-CD

时间:2023-07-28 19:56:26浏览次数:45  
标签:kubectl Pipeline SpringBoot Harbor Image CD sh 回退 Name

pipeline {
 agent {
   kubernetes {
     cloud 'kubernetes'
     yaml '''
apiVersion: v1
Kind: Pod
spec:
 imagePullSecrets:
 - name: harbor-admin
 containers:
 - name: kubectl
   image: harbor.oldxu.net/ops/kubectl:1.23.15
   imagePullPolicy: IfNotPresent
   command: ["cat"]
   tty: true
     '''
   }
 }

   //全局变量
   environment{
   	Harbor_Image_Tag = "${Harbor_Url}/${Harbor_Pro}/${Image_Name}:${Image_Tags}"
   	NameSpace = "prod"
   }


   stages{
   	stage('检查地址'){
   		steps{
   			sh 'echo "${Harbor_Image_Tag}"'
   		}
   	}
   stage('交付应用'){
     steps{
       container('kubectl'){
         withCredentials([file(credentialsId: 'KuberConfig', variable: 'KUBECONFIG')]) {
           //必备
           sh 'mkdir -p ~/.kube && cp ${KUBECONFIG} ~/.kube/config'
   					sh 'kubectl set image deployment/${Image_Name} ${Image_Name}=${Harbor_Image_Tag} -n ${NameSpace}'
   					sh 'echo "手动回退到上一个版本命令:kubectl rollout undo deployment ${Image_Name} -n prod"'
         }
       }
     }
   }
   stage('快速回退'){
     steps{
       container('kubectl'){
         withCredentials([file(credentialsId: 'KuberConfig', variable: 'KUBECONFIG')]) {
   					script{
   						timeout(time:1 , unit: 'HOURS'){
   							def UserInput = input message: '是否回退到上一个版本', parameters: [choice(choices: ['NO', 'YES'], description: '''NO:不进行回退 YES:回退到上一个版本''', name: 'rollback')]
   							if(UserInput == "YES"){
   								sh 'mkdir -p ~/.kube && cp ${KUBECONFIG} ~/.kube/config && echo "正在执行回退操作..."'
   								sh 'kubectl rollout undo deployment ${Image_Name} -n prod'
   							}else{
   								echo "选择为:NO . 不进行回退操作 . 已完成CD流程上线发布"
   							}
   						}
   					}
         }
       }
     }
   }
   }
}

标签:kubectl,Pipeline,SpringBoot,Harbor,Image,CD,sh,回退,Name
From: https://www.cnblogs.com/chuyiwang/p/17588769.html

相关文章

  • Pipeline SpringBoot-deploy-CI
    pipeline{agent{kubernetes{cloud'kubernetes'yaml'''apiVersion:v1Kind:Podspec:imagePullSecrets:-name:harbor-adminvolumes:-name:datanfs:server:192.168.1.21path:/da......
  • 各大CDN平台速度评测
    CDN的全称是ContentDeliveryNetwork,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和......
  • LM25118自动升降压DCDC开关电源模块
    LM25118自动升降压非同步DCDC电源模块,输入电压4.5-35V,输出电压1.23-31V可调,最大输出电流8A,效率最高92%,开关频率400kHz。LM25118是一个3-42V宽输入电压、电流模式非同步降压/升压控制器。学校电赛培训作业要做一个输入5V,输出1.8-24V,最大电流2A的电源模块,所以就搞了个LM25118的电源......
  • lsyncd实时同步搭建指南——取代rsync+inotify
    1.几大实时同步工具比较1.1inotify+rsync最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是 inotify+rsync,但随着文件数量的增大到100W+,目录下的文件列表就达20M,在网络状况不佳或者限速的情况下,变更的文件可能10来个才几M,却因此要发送的文件列表就达20M,严重减低的......
  • linux springboot 启动脚本
    简单粗暴的脚本#!/bin/bash#获取进程号pid=`psaux|grep"java-jar"|grep-v"grep"|awk'{print$2}'`echo${pid}if[[$pid-gt0]];then`kill-9$pid`fi`nohupjava-jarboot-nginx.jar>boot-nginx.out2>&1&a......
  • VK1623LCD液晶屏显示驱动芯片,适用各种LCD面板显示
    产品品牌:永嘉微电/VINKA产品型号:VK1623S封装形式:LQFP100/QFP100/DICE/COG产品年份:新年份  产品简介:VK1623S是一个点阵式存储映射的LCD驱动器,可支持最大384点(48EGx8COM)的LCD屏。单片机可通过3/4线串行接口配置显示参数和发送显示数据,也可通过指令进入省电模式。Z20+167 ......
  • idea启动springboot 出现找不到符号,但是类是明确存在的
     很多小伙伴应该都遇到过这个问题,依赖没问题,对应的类也存在但是启动的时候就报错(通常这种问题是突然就发生,上一次启动还是好好的)错误原因:一般是由于依赖的子模块进行了修改,没有install到本地仓库执行mvninstall之类的命令就可以了解决办法,mvnclean ->mvninstall......
  • CDQ分治【使用说明书】
    适用范围cdq分治,用于解决各类动态(包含修改操作)的离线问题,在此方面可以用于替代复杂的数据结构,实现更简单的解法。对口的问题通常由一些修改和查询操作组成。注:本产品老少咸宜,患有高血压、低血糖者均可使用。本产品口服、外敷均可,推荐搭配c++食用,口感更佳。生效原理这玩......
  • springboot上传图片后通过http访问图片
    需要上传图片或pdf文件,放在服务器本地磁盘中,比如window服务器的D:/YG/盘符下,此时想要通过http的方式直接访问图片或pdf 1.图片存储在本地磁盘,实现WebMvcConfigurer接口添加本地静态资源访问过滤2.图片存储在本地磁盘,nginx动静分离  第一种方式:@Configurationpubli......
  • Shiro实战教程(整合SpringBoot,全网最强)
    ​ 本文介绍一个强大的Shiro实战教程,用最简单的代码、最常用的场景让你彻底掌握Shiro的用法,成为Shiro实战高手。本Shiro教程是全网最强的Shiro实战教程。教程地址:Shiro项目实战专栏介绍-自学精灵为什么这个Shiro教程是全网最强?其他资料的特点代码不全,根本运行不起来。不......