目的
根据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权限.