将 Harbor 集成到流水线

    • 您需要启用 KubeSphere DevOps 系统
    • 您需要创建一个企业空间、一个 DevOps 项目和一个用户 ()。需要邀请该用户至 DevOps 项目并赋予 operator 角色。如果尚未创建,请参见。

    安装 Harbor

    强烈建议您通过 安装 Harbor。或者,您可以使用 Helm3 手动安装 Harbor。

    1. 安装 Harbor 后,请访问 <NodeIP>:30002 并使用默认帐户和密码 (admin/Harbor12345) 登录控制台。在左侧导航栏中点击项目并在项目页面点击新建项目

    2. 在弹出的对话框中,设置项目名称 (ks-devops-harbor) 并点击确定

    3. 点击刚刚创建的项目,在机器人帐户选项卡下点击添加机器人帐户

    4. 在弹出的对话框中,为机器人帐户设置名称 (robot-test) 并点击添加。请确保在权限中勾选推送制品的权限选框。

    5. 在弹出的对话框中,点击导出到文件中,保存该令牌。

    启用 Insecure Registry

    您需要配置 Docker,使其忽略您 Harbor 仓库的安全性。

    1. 运行以下命令重启 Docker,使更改生效。

      备注

      建议您在隔离的测试环境或者严格控制的离线环境中使用该方案。有关更多信息,请参考 。完成上述操作后,即可在项目中部署工作负载时使用您 Harbor 仓库中的镜像。您需要为自己的 Harbor 仓库创建一个镜像密钥,然后在容器镜像选项卡下的容器设置中,选择您的 Harbor 仓库并输入镜像的绝对路径以搜索您的镜像。

    1. 以 身份登录 KubeSphere 控制台,转到您的 DevOps 项目,在 DevOps 项目设置下的凭证页面为 Harbor 创建凭证。

    2. 创建凭证页面,设置凭证 ID (robot-test),类型选择用户名和密码用户名字段必须和您刚刚下载的 JSON 文件中 name 的值相同,并在密码/令牌中输入该文件中 token 的值。

    3. 点击确定以保存。

    创建流水线

    1. 转到流水线页面,点击创建。在基本信息选项卡,输入名称 (demo-pipeline),然后点击下一步

    1. 点击该流水线进入其详情页面,然后点击编辑 Jenkinsfile

    2. 将以下内容复制粘贴至 Jenkinsfile。请注意,您必须将 REGISTRYHARBOR_NAMESPACEAPP_NAMEHARBOR_CREDENTIAL 替换为您自己的值。

      ``` pipeline {
      agent {

      1. node {
      2. label 'maven'
      3. }

      }

      environment {

      }

      stages {

      1. stage('docker login') {
      2. container ('maven') {
      3. sh '''echo $HARBOR_CREDENTIAL_PSW | docker login $REGISTRY -u 'robot$robot-test' --password-stdin'''
      4. }
      5. }
      6. }
      7. stage('build & push') {
      8. steps {
      9. container ('maven') {
      10. sh 'git clone https://github.com/kstaken/dockerfile-examples.git'
      11. sh 'cd dockerfile-examples/rethinkdb && docker build -t $REGISTRY/$HARBOR_NAMESPACE/$APP_NAME:devops-test .'
      12. sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/$APP_NAME:devops-test'
      13. }
      14. }

      }

    运行流水线