对于原生kubesphere ci流程修改项:
增加jenkins插件(Generic Webhook Trigger) 获取gitlab post 过来的数据
dockerfile将不在源码中存储,使用统一dockerfile
chart.yml将不在源码中存储,使用统一chart-template
测试用例:
choerodon组织:系统运维组
应用id:kubesphere-ci-test
步骤:
1)从gitlab触发jenkins并获取对应参数:
webhook地址:http://172.25.17.21:30180/generic-webhook-trigger/invoke?token=xxx
Post content parameters
CI_COMMIT_REF_NAME ref
CI_COMMIT_SHA checkout_sha
CI_PROJECT_ID project:id
CI_PROJECT_NAME project:name
CI_GITLABURL project:web_url
CI_GITLAB_NAMESPACES project:path_with_namespace
Header parameters:
X-Gitlab-Token
2)check out scm
git(url: '$CI_GITLABURL', credentialsId: 'gitlab-paas', branch: "${CI_COMMIT_REF_NAME}", changelog: true, poll: false)
3)Image Build and PusH
使用paas现用的java基础镜像,存储至镜像仓库符合现命名规则
4)Chart Build and PusH
使用paas现用的chart模板,存储至chart私服符合现命名规则
jenkins修改项:
变更jenkins时区
kubectl edit deployments. -n kubesphere-devops-system ks-jenkins
Env.JAVA_TOOL_OPTIONS 增加 -Duser.timezone=Asia/Shanghai
获取当前时间做为镜像tag
Zentimestamp plugin(data fromat配置遵循paas现有格式:yyyy.MM.dd-HHmmss)
接入方式:
1)在choerodon端git上添加webhook(此地址为现测试环境jenkins地址,token为job执行token,此token固定):
http://172.25.17.21:30180/generic-webhook-trigger/invoke?token=192TFxzDqE7vIB9YkpRNk12M
2)在webhook添加Secret Token(此token每个应用不同,为choerodon生成应用时生成,步骤中chart包上传时依赖此token辨识应用):
3)项目需添加push@xforceplus.com此账号到member中,使其拥有拉取项目权限(此账号为测试用,后期可能更改):
4)因后端流程通用,编译后的jar包应为app.jar
待处理项:
确定适用此流程的分支
确定某些分支流程结束后的动作,比如部署之类
风险项:
1)在kubesphere页面修改任务会同步到jenkins,因kubesphere配置页面中不支持获取post的数据,所以会导致在jenkins端的配置项丢失,因jenkins部分配置不被kubesphere支持,故后期可能不在kubesphere页面端进行配置修改