- Gitlab Runner部署
- 预备知识
- 方式一:一键安装Runner
- 方式二:手动安装Runner
- 获取Runner注册Token
- 添加choerodon chart仓库
- 部署Runner
Gitlab Runner部署
Gitlab Runner,用于代码提交后自动进行代码测试、构建服务的镜像及生成helm chart并将结果发回给Choerodon。它与GitLab CI一起使用,Gitlab CI是Gitlab中包含的开源持续集成服务,用于协调作业。
预备知识
如果你不知道Gitlab Runner是做什么的,那么请参考下面链接(包括但不限于)进行学习:
- Gitlab Runner
方式一:一键安装Runner
若你使用一键部署安装的猪齿鱼,可以使用下面命令一键部署Gitlab-Runner。
./c7nctl config gitlab runner -c config.yml
方式二:手动安装Runner
获取Runner注册Token
此教程注册的Runner属性为共享,若需注册私有Runner或者无法进入Gitlab管理界面,注册Token请在Git项目仓库 Settings > CI/CD > Runners settings 菜单中获取。
添加choerodon chart仓库
helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/
helm repo update
部署Runner
启用持久化存储请执行提前创建所对应的物理目录,PV和PVC可使用以下语句进行创建;可在部署命令中添加—debug —dry-run参数,进行渲染预览不进行部署。
- 创建缓存所需PV和PVC
helm install c7n/persistentvolumeclaim \
--set accessModes={ReadWriteMany} \
--set requests.storage=5Gi \
--set storageClassName="nfs-provisioner" \
--version 0.1.0 \
--name runner-maven-pvc \
--namespace c7n-system
helm install c7n/persistentvolumeclaim \
--set accessModes={ReadWriteMany} \
--set requests.storage=5Gi \
--set storageClassName="nfs-provisioner" \
--version 0.1.0 \
--name runner-cache-pvc \
--namespace c7n-system
- 部署Runner
请确认你所搭建的K8S集群是否已开启RBAC授权(按照本站Kubernetes部署教程部署的集群默认是开启RBAC授权的),若未开启,请删除下面执行命令中的—set rbac.create=true设置后执行。
helm install c7n/gitlab-runner \
--set rbac.create=true \
--set env.concurrent=3 \
--set env.gitlabUrl=http://gitlab.example.choerodon.io/ \
--set env.runnerRegistrationToken=xwxobLNoPQUzyMt_4RGF \
--set env.environment.DOCKER_REGISTRY=registry.example.choerodon.io \
--set env.environment.DOCKER_USER=admin \
--set env.environment.DOCKER_PWD=Harbor12345 \
--set env.environment.CHOERODON_URL=http://api.example.choerodon.io \
--set env.persistence.runner-maven-pvc="/root/.m2" \
--set env.persistence.runner-cache-pvc="/cache" \
--name runner \
--version 0.2.0 \
--namespace c7n-system
参数:
env.environment.
为CI时Pod的环境变量键值对,就是环境变量名,等号后面的为该变量的值,这里例子中添加这几个环境变量建议配置,使用Choerodon管理的项目进行CI时会用到它们,若还需其他环境变量请自定义。
env.persistence.
为CI时Pod的挂载PVC与Pod内目录的键值对,就是PVC的名称,等号后面的值为要挂载到Pod的哪个目录,这里注意一点用引号引起来。本例中我们新建了两个PVC即
runner-maven-pvc
、runner-cache-pvc
分别挂载到/root/.m2
和/cache
目录中。
参数含义rbac.create创建sa及授权env.concurrent可以同时进行的CI数量env.gitlabUrlGitlab地址env.runnerRegistrationTokenRunner注册tokenenv.environment.DOCKER_REGISTRYDocker镜像仓库地址env.environment.DOCKER_USERDocker镜像仓库用户名env.environment.DOCKER_PWDDocker镜像仓库用户密码env.environment.CHOERODON_URLChoerodon API地址env.persistence.runner-maven-pvc持久化数据,此处runner-maven-pvc
为PVC名称,值为要挂载到Pod的/root/.m2
目录env.persistence.runner-cache-pvc持久化数据,此处runner-cache-pvc
为PVC名称,值为要挂载到Pod的/cache
目录
更多Runner设置请参考官方文档