• 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。

    1. ./c7nctl config gitlab runner -c config.yml

    方式二:手动安装Runner

    获取Runner注册Token

    此教程注册的Runner属性为共享,若需注册私有Runner或者无法进入Gitlab管理界面,注册Token请在Git项目仓库 Settings > CI/CD > Runners settings 菜单中获取。

    Gitlab Runner部署 - 图1

    添加choerodon chart仓库

    1. helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/
    2. helm repo update

    部署Runner

    启用持久化存储请执行提前创建所对应的物理目录,PV和PVC可使用以下语句进行创建;可在部署命令中添加—debug —dry-run参数,进行渲染预览不进行部署。
    • 创建缓存所需PV和PVC
    1. helm install c7n/persistentvolumeclaim \
    2. --set accessModes={ReadWriteMany} \
    3. --set requests.storage=5Gi \
    4. --set storageClassName="nfs-provisioner" \
    5. --version 0.1.0 \
    6. --name runner-maven-pvc \
    7. --namespace c7n-system
    8. helm install c7n/persistentvolumeclaim \
    9. --set accessModes={ReadWriteMany} \
    10. --set requests.storage=5Gi \
    11. --set storageClassName="nfs-provisioner" \
    12. --version 0.1.0 \
    13. --name runner-cache-pvc \
    14. --namespace c7n-system
    • 部署Runner
    请确认你所搭建的K8S集群是否已开启RBAC授权(按照本站Kubernetes部署教程部署的集群默认是开启RBAC授权的),若未开启,请删除下面执行命令中的—set rbac.create=true设置后执行。
    1. helm install c7n/gitlab-runner \
    2. --set rbac.create=true \
    3. --set env.concurrent=3 \
    4. --set env.gitlabUrl=http://gitlab.example.choerodon.io/ \
    5. --set env.runnerRegistrationToken=xwxobLNoPQUzyMt_4RGF \
    6. --set env.environment.DOCKER_REGISTRY=registry.example.choerodon.io \
    7. --set env.environment.DOCKER_USER=admin \
    8. --set env.environment.DOCKER_PWD=Harbor12345 \
    9. --set env.environment.CHOERODON_URL=http://api.example.choerodon.io \
    10. --set env.persistence.runner-maven-pvc="/root/.m2" \
    11. --set env.persistence.runner-cache-pvc="/cache" \
    12. --set enabled_mount_host_docker_sock=true \
    13. --name runner \
    14. --version 0.2.2 \
    15. --namespace c7n-system
    • 参数:

      • env.environment.为CI时Pod的环境变量键值对,就是环境变量名,等号后面的为该变量的值,这里例子中添加这几个环境变量建议配置,使用Choerodon管理的项目进行CI时会用到它们,若还需其他环境变量请自定义。
      • env.persistence.为CI时Pod的挂载PVC与Pod内目录的键值对,就是PVC的名称,等号后面的值为要挂载到Pod的哪个目录,这里注意一点用引号引起来。本例中我们新建了两个PVC即runner-maven-pvcrunner-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目录enabled_mount_host_docker_sock是否将节点 docker.sock 文件挂载到Pod中,以便 build docker 镜像
    • 更多Runner设置请参考官方文档