Jenkins BlueOcean 多分支 部署 Kubernetes 应用
在实际的项? 中,往往?个代码仓库都会有很多分?的,?如开发、测试、线上这些分?都是分开的,?般情况下 开发或者测试的分?我们希望提交代码后就直接进? CI/CD 操作,?线上的话最好增加?个???预 的步骤,这就需要 Jenkins 对代码仓库有多分?的?持。这里我们使用 BlueOcean 来完成此处的 CICD 。
插件安装
登录 Jenkins Web UI -> 点击左侧的 Manage Jenkins -> Manage Plugins -> Available -> 搜索查找 BlueOcean -> 点击下载安装并重启
创建新 pipeline
安装完成后,我们可以在 Jenkins Web UI ??左侧看到会多?个 Open Blue Ocean 的??,我们点 击就可以打开
点击开始创建?个新的 Pipeline,我们可以看到可以选择 Git、Bitbucket、GitHub,我们这? 选择 GitHub,
可以看到这?需要?个访问我们 GitHub 仓库权限的 token,在 GitHub 的仓库中创建?个 Personal access token:
将?成的 token 填?下?的创建 Pipeline 的流程中,然后我们就有权限选择??的仓库,包括下?需要构建的仓库,?如我们这?需要构建的是 jenkins-demo 这个仓库,然后创建 Pipeline 即可:
Blue Ocean 会?动扫描仓库中的每个分?,会为根?件夹中包含Jenkinsfile的每个分?创建?个 Pipeline,?如我们这?有 master 和 dev 两个分?,并且两个分?下?都有 Jenkinsfile ?件,所以创建完成后会?成两个 Pipeline。
两个文件中 k8s.yaml 文件中 namespace 不一样,用来区分不同的分支
构建结果
~]# kubectl get pod -n default -o wide # master 分支部署到 default 分支 NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES mvnweb-demo-8f8d69455-l4s4c 1/1 Running 0 5m5s 10.244.1.3 node2 <none> <none> ~]# kubectl get pod -n dev -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES mvnweb-demo-8ef7d50-578945f7fb-cr6kv 1/1 Running 0 5m40s 10.244.1.2 node2 <none> <none>