jenkins-gitops-cd

阅读量: zyh 2020-03-27 16:41:22
Categories: > Tags:

目的

根据gitlab的程序配置仓库,当配置变更的时候,执行jenkins cd工程,部署程序。

在kubernetes中,配置仓库里就是kubernetes清单。

操作步骤

与gitlab的关联,方法与ci一致.

配置仓库的Jenkinsfile

pipeline{
    agent{
        kubernetes{
            //label "jenkins-agent" // pod 模板标签
            //cloud 'kubernetes'  // 插件配置名
            inheritFrom "kubectl" // 从标签为 kubectl 的 pod 模板继承
        }
    }

    stages {
		stage("git") {
			steps {
				git branch: 'master', url: 'https://github.com/abc-deployment.git' //从https://github.com/abc-deployment.git的master分支克隆代码
			}
		}
		stage('deploy') {
			steps {
				container('kubectl') {
                    withKubeConfig([credentialsId: 'k8s-cluster-admin-kubeconfig']){ // 这个指令基于 Kubernetes CLI 插件,k8s-cluster-admin-kubeconfig 是 secret file 类型凭据,加载 kubeconfig
                        sh 'kubectl apply -f kubernetes/'
                    }
				}
			}
		}
    }
}

✨关于kubectl的容器,可以选用 kubesphere/kubectl 镜像.

💥关于k8s-cluster-admin-kubeconfig凭据,应该只拥有对应命名空间的RBAC权限.