helm在CICD中的应用

本文详细介绍了如何在GitLab和Jenkins的协同下,利用Helm进行软件开发的CICD流程,包括代码提交、静态分析、单元测试、构建Docker镜像,以及在Kubernetes中部署和更新HelmRelease的过程。
摘要由CSDN通过智能技术生成

helm在CICD中的应用

一:文档

https://docs.gitlab.com/runner/install/kubernetes.html

二:架构

三:流程

  • 1. 开发人员提交代码到 Gitlab 代码仓库
  • 2. 通过 Gitlab 配置的 Jenkins Webhook 触发 Pipeline 自动构建
  • 3. Jenkins 触发构建任务,根据 Pipeline 脚本定义分步骤构建
  • 4. 先进行代码静态分析,单元测试
  • 5. 然后进行 Maven 构建(Java 项目)
  • 6. 根据构建结果构建 Docker 镜像
  • 7. 推送 Docker 镜像到 Harbor 仓库
  • 8. 触发更新服务阶段,使用 Helm 安装/更新 Release
  • 9. 查看服务是否更新成功。

四:CICD

Clone 代码 -> 代码静态分析 -> 单元测试 -> Maven 打包 -> Docker 镜像构建/推送 -> Helm 更新服务。

五:pipeline

def label = "slave-${UUID.randomUUID().toString()}"

podTemplate(label: label, containers: [
  containerTemplate(name: 'maven', image: 'maven:3.6-alpine', command: 'cat', ttyEnabled: true),
  containerTemplate(name: 'docker', image: 'docker', command: 'cat', ttyEnabled: true),
  containerTemplate(name: 'kubectl', image: 'cnych/kubectl', command: 'cat', ttyEnabled: true),
  containerTemplate(name: 'helm', image: 'cnych/helm', command: 'cat', ttyEnabled: true)
], volumes: [
  hostPathVolume(mountPath: '/root/.m2', hostPath: '/var/run/m2'),
  hostPathVolume(mountPath: '/home/jenkins/.kube', hostPath: '/root/.kube'),
  hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock')
]) {
  node(label) {
    def myRepo = checkout scm
    def gitCommit = myRepo.GIT_COMMIT
    def gitBranch = myRepo.GIT_BRANCH

    stage('单元测试') {
      echo "测试阶段"
    }
    stage('代码编译打包') {
      container('maven') {
        echo "打码编译打包阶段"
      }
    }
    stage('构建 Docker 镜像') {
      container('docker') {
        echo "构建 Docker 镜像阶段"
      }
    }
    stage('运行 Kubectl') {
      container('kubectl') {
        echo "查看 K8S 集群 Pod 列表"
        sh "kubectl get pods"
      }
    }
    stage('运行 Helm') {
      container('helm') {
        echo "查看 Helm Release 列表"
        sh "helm list"
      }
    }
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值