CI/CD内部流程
tekton负责CI流程:
- 开发人员提交代码到git仓库
- tekton触发pipeline:执行测试->构建镜像->更新git仓库中的deployment.yaml文件
- 执行测试:执行单元测试,集成测试
- 构建镜像:使用kaniko和buildah在容器内构建镜像
- 推送镜像:将镜像推送到镜像仓库
- 生成deployment.yaml配置文件
argo cd负责CD流程:
-
实时监听git仓库中k8s资源清单
-
当资源清单文件被修改是会自动更新
-
将新的部署配置应用到k8s集群
-
并且支持查看应用状态,回滚,健康检查
工作流程:
-
开发者提交代码到git仓库
-
git发送webhook到tekton
-
-
git仓库中配置的webhook url指向tekton eventlistener的service
-
-
-
触发条件为:push
-
-
tekton trigger处理事件
-
-
eventlistener接收到请求之后
-
-
-
会自动进程过滤
-
-
-
然后根据tekton template自动生成一个pipelinerun资源执行
-
-
tekton pipeline执行构建
-
-
git clone 克隆代码
-
-
-
构建镜像,输出镜像到镜像仓库
-
-
应用部署