制品库部署

在此之前,应该准备好Mysql、Harbor、Gitlab、Minio,Chartmuseum、Nexus这些组件的信息。按以下搭建顺序进行搭建,请不要随意调整搭建顺序。

添加choerodon chart仓库

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

创建数据库

  • 编写参数配置文件 create-c7nrepo-db.yaml

    1. env:
    2. MYSQL_HOST: c7n-mysql.c7n-system.svc
    3. MYSQL_PORT: "3306"
    4. MYSQL_USER: root
    5. MYSQL_PASS: password
    6. SQL_SCRIPT: |
    7. CREATE USER IF NOT EXISTS 'choerodon'@'%' IDENTIFIED BY 'password';
    8. CREATE DATABASE IF NOT EXISTS hrds_code_repo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    9. CREATE DATABASE IF NOT EXISTS hrds_prod_repo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    10. GRANT ALL PRIVILEGES ON hrds_code_repo.* TO choerodon@'%';
    11. GRANT ALL PRIVILEGES ON hrds_prod_repo.* TO choerodon@'%';
    12. FLUSH PRIVILEGES;
  • 执行安装

    1. helm upgrade --install create-c7nrepo-db c7n/mysql-client \
    2. -f create-c7nrepo-db.yaml \
    3. --create-namespace \
    4. --version 0.1.0 \
    5. --namespace c7n-system

部署 code repo service

  • 若需了解项目详情及各项参数含义,请移步 open-hand/code-repo-service
  • 如何获取 GITLAB_PRIVATETOKEN 请查看这里
  • 编写参数配置文件 code-repo-service.yaml

    1. preJob:
    2. preInitDB:
    3. datasource:
    4. driver: com.mysql.jdbc.Driver
    5. password: password
    6. url: jdbc:mysql://c7n-mysql.c7n-system:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    7. username: choerodon
    8. datasources:
    9. # 初始化菜单数据
    10. platform:
    11. url: jdbc:mysql://c7n-mysql.c7n-system:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    12. username: choerodon
    13. password: password
    14. driver: com.mysql.jdbc.Driver
    15. env:
    16. open:
    17. EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system:8000/eureka/
    18. GITLAB_PRIVATETOKEN: xxxxxxxxxxxxxx
    19. GITLAB_URL: http://gitlab.example.choerodon.io
    20. SPRING_DATASOURCE_PASSWORD: password
    21. SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system:3306/hrds_code_repo?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    22. SPRING_DATASOURCE_USERNAME: choerodon
    23. SPRING_REDIS_DATABASE: 0
    24. SPRING_REDIS_HOST: c7n-redis.c7n-system
    25. SPRING_REDIS_PORT: 6379
  • 部署服务

    1. helm upgrade --install code-repo-service c7n/code-repo-service \
    2. -f code-repo-service.yaml \
    3. --create-namespace \
    4. --version 0.23.2 \
    5. --namespace c7n-system
  • 验证部署

    • 验证命令
  1. ```
  2. curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=code-repo-service -o jsonpath="{.items[0].status.podIP}"):8081/actuator/health | jq -r .status
  3. ```
  4. - 出现以下类似信息即为成功部署
  5. ```
  6. UP
  7. ```

部署 prod-repo-service

  • 若需了解项目详情及各项参数含义,请移步 open-hand/prod-repo-service
  • 编写参数配置文件 prod-repo-service.yaml

    1. preJob:
    2. preInitDB:
    3. datasource:
    4. driver: com.mysql.jdbc.Driver
    5. password: password
    6. url: jdbc:mysql://c7n-mysql.c7n-system:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    7. username: choerodon
    8. datasources:
    9. # 多数据源初始化
    10. platform:
    11. url: jdbc:mysql://c7n-mysql.c7n-system:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    12. username: choerodon
    13. password: password
    14. driver: com.mysql.jdbc.Driver
    15. env:
    16. open:
    17. EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system:8000/eureka/
    18. # devops的数据库 迁移数据使用 只会在0.23版本使用
    19. HARBOR_INIT_CUSTOM_REPO_PASSWORD: password
    20. HARBOR_INIT_CUSTOM_REPO_URL: jdbc:mysql://c7n-mysql.c7n-system:3306/devops_service?useUnicode=true&characterEncoding=utf-8&useSSL=false
    21. HARBOR_INIT_CUSTOM_REPO_USERNAME: choerodon
    22. # platform的数据库 迁移数据使用 只会在0.23版本使用
    23. HARBOR_INIT_DEFAULT_REPO_PASSWORD: Uc9Cw6gDyJPL
    24. HARBOR_INIT_DEFAULT_REPO_URL: jdbc:mysql://c7n-mysql.c7n-system:3306/hzero_platform?useUnicode=true&characterEncoding=utf-8&useSSL=false
    25. HARBOR_INIT_DEFAULT_REPO_USERNAME: choerodon
    26. HARBOR_BASE_URL: https://registry.example.choerodon.io
    27. HARBOR_PASSWORD: Harbor12345
    28. HARBOR_USER_NAME: admin
    29. SPRING_DATASOURCE_PASSWORD: password
    30. SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system:3306/hrds_prod_repo?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    31. SPRING_DATASOURCE_USERNAME: choerodon
    32. SPRING_REDIS_DATABASE: 0
    33. SPRING_REDIS_HOST: c7n-redis.c7n-system
    34. SPRING_REDIS_PORT: 6379
    35. ##系统默认nexus服务地址
    36. NEXUS_DEFAULT_BASE_URL: http://nexus.example.choerodon.io
    37. #系统默认nexus服务,超级管理员用户
    38. NEXUS_DEFAULT_USER_NAME: admin
    39. #系统默认nexus服务,超级管理员用户密码
    40. NEXUS_DEFAULT_PASSWORD: admin
    41. #系统默认nexus服务,是否启用仓库级的匿名访问控制。 1:启用 0:不启用
    42. NEXUS_DEFAULT_ENABLE_ANONYMOUS_FLAG: 0
    43. #系统默认nexus服务,启用仓库级的匿名访问控制时需要配置该值(即enableAnonymousFlag==1时)。 nexus服务开启全局匿名访问时,配置的用户
    44. NEXUS_DEFAULT_ANONYMOUS_USER: test-anonymous-user
    45. #系统默认nexus服务,启用仓库级的匿名访问控制时需要配置该值(即enableAnonymousFlag==1时)。 nexus服务开启全局匿名访问时,配置的用户对应的角色
    46. NEXUS_DEFAULT_ANONYMOUS_ROLE: test-anonymous
  • 其它配置
    上述变量配置中:NEXUS_DEFAULT_ENABLE_ANONYMOUS_FLAG(是否启用仓库级的匿名访问控制)、NEXUS_DEFAULT_ANONYMOUS_USER、NEXUS_DEFAULT_ANONYMOUS_ROLE这几个变量的配置。 当NEXUS_DEFAULT_ENABLE_ANONYMOUS_FLAG配置为1(启用时),还需要做以下配置,若配置为0(不启用),可以不做以下配置

    • 说明
      nexus服务上开启匿名访问,是全局生效的。nexus3版本及其以上,如果服务上允许匿名访问,默认有一个匿名访问用户,但这个用户拥有所有仓库的访问权限,故需要更改此处设置

    image

    • 配置

    • 创建一个用户匿名访问的角色,如:test-anonymous。将允许匿名访问仓库的read、browse权限给到这个用户 image

    • 创建一个用户,将上述角色赋予这个用户,如 test-anonymous-user。并将匿名访问的用户设置为该新建的用户 image

      image

    • 如上在nexus服务配置后,上述变量配置值配置为:

      1. #系统默认nexus服务,是否启用仓库级的匿名访问控制。 1:启用 0:不启用
      2. NEXUS_DEFAULT_ENABLE_ANONYMOUS_FLAG: 1
      3. #系统默认nexus服务,启用仓库级的匿名访问控制时需要配置该值(即enableAnonymousFlag==1时)。 nexus服务开启全局匿名访问时,配置的用户
      4. NEXUS_DEFAULT_ANONYMOUS_USER: test-anonymous-user
      5. #系统默认nexus服务,启用仓库级的匿名访问控制时需要配置该值(即enableAnonymousFlag==1时)。 nexus服务开启全局匿名访问时,配置的用户对应的角色
      6. NEXUS_DEFAULT_ANONYMOUS_ROLE: test-anonymous
  • 部署服务

    1. helm upgrade --install prod-repo-service c7n/prod-repo-service \
    2. -f prod-repo-service.yaml \
    3. --create-namespace \
    4. --version 0.23.3 \
    5. --namespace c7n-system
  • 验证部署

    • 验证命令
  1. ```
  2. curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=prod-repo-service -o jsonpath="{.items[0].status.podIP}"):7145/actuator/health | jq -r .status
  3. ```
  4. - 出现以下类似信息即为成功部署
  5. ```
  6. UP
  7. ```