• 部署知识管理
    • 添加choerodon chart仓库
    • 创建数据库
    • 部署基础知识服务
    • 部署xwiki
    • 同步已有项目和组织

    部署知识管理

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

    添加choerodon chart仓库

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

    创建数据库

    1. helm install c7n/mysql-client \
    2. --set env.MYSQL_HOST=c7n-mysql.c7n-system.svc \
    3. --set env.MYSQL_PORT=3306 \
    4. --set env.MYSQL_USER=root \
    5. --set env.MYSQL_PASS=password \
    6. --set env.SQL_SCRIPT="\
    7. CREATE USER IF NOT EXISTS 'choerodon'@'%' IDENTIFIED BY 'password';\
    8. CREATE DATABASE IF NOT EXISTS knowledgebase_service DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\
    9. CREATE DATABASE IF NOT EXISTS wiki_service DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\
    10. CREATE DATABASE IF NOT EXISTS xwiki DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\
    11. GRANT ALL PRIVILEGES ON wiki_service.* TO choerodon@'%';\
    12. GRANT ALL PRIVILEGES ON xwiki.* TO choerodon@'%';\
    13. GRANT ALL PRIVILEGES ON knowledgebase_service.* TO choerodon@'%';\
    14. FLUSH PRIVILEGES;" \
    15. --version 0.1.0 \
    16. --name create-c7nwiki-db \
    17. --namespace c7n-system

    部署基础知识服务

    • 部署服务
    1. helm install c7n/knowledgebase-service \
    2. --set preJob.preConfig.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    3. --set preJob.preConfig.datasource.username=choerodon \
    4. --set preJob.preConfig.datasource.password=password \
    5. --set preJob.preInitDB.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/knowledgebase_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    6. --set preJob.preInitDB.datasource.username=choerodon \
    7. --set preJob.preInitDB.datasource.password=password \
    8. --set env.open.SPRING_DATASOURCE_URL="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/knowledgebase_service?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true" \
    9. --set env.open.SPRING_DATASOURCE_USERNAME=choerodon \
    10. --set env.open.SPRING_DATASOURCE_PASSWORD=password \
    11. --set env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE="http://register-server.c7n-system:8000/eureka/" \
    12. --set env.open.SPRING_CLOUD_CONFIG_ENABLED=true \
    13. --set env.open.SPRING_CLOUD_CONFIG_URI="http://register-server.c7n-system:8000/" \
    14. --set env.open.SERVICE_ATTACHMENT_URL="http://minio.example.choerodon.io/knowledgebase-service/" \
    15. --name knowledgebase-service \
    16. --version 0.17.2 \
    17. --namespace c7n-system

    参数名含义preJob.preConfig.datasource{}初始化配置所需manager-service数据库信息preJob.preInitDB.datasource{}初始化数据库所需数据库信息env.open.SPRING_DATASOURCE_URL数据库链接地址env.open.SPRING_DATASOURCE_USERNAME数据库用户名env.open.SPRING_DATASOURCE_PASSWORD数据库密码env.open.SPRING_CLOUD_CONFIG_ENABLED启用配置中心env.open.SPRING_CLOUD_CONFIG_URI配置中心地址env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE注册服务地址

    • 验证部署

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

    部署xwiki

    • 创建数据卷
    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 wiki-pvc \
    7. --namespace c7n-system
    • 部署xwiki
    部署xwiki需要初始化一些数据,安装需要几分钟,请耐心等待。
    1. helm install c7n/xwiki \
    2. --set env.JAVA_OPTS=-Xmx4096m \
    3. --set env.DB_USER=choerodon \
    4. --set env.DB_PASSWORD=password \
    5. --set env.DB_HOST=c7n-mysql.c7n-system.svc \
    6. --set env.DB_PORT=3306 \
    7. --set env.DB_DATABASE=xwiki \
    8. --set env.OIDC_ENDPOINT_AUTHORIZATION=http://api.example.choerodon.io/oauth/oauth/authorize \
    9. --set env.OIDC_ENDPOINT_TOKEN=http://api.example.choerodon.io/oauth/oauth/token \
    10. --set env.OIDC_ENDPOINT_USERINFO=http://api.example.choerodon.io/iam/v1/users/self \
    11. --set env.OIDC_ENDPOINT_LOGOUT=http://api.example.choerodon.io/oauth/logout \
    12. --set env.CHOERODON_REQUEST_API_URL=http://api.example.choerodon.io \
    13. --set env.CHOERODON_REQUEST_FRONT_URL=http://c7n.example.choerodon.io \
    14. --set env.OIDC_CLIENTID=wiki \
    15. --set env.OIDC_SECRET=secret \
    16. --set env.OIDC_WIKI_TOKEN=Choerodon \
    17. --set persistence.enabled=true \
    18. --set persistence.existingClaim=wiki-pvc \
    19. --set service.enabled=true \
    20. --set ingress.enabled=true \
    21. --set "ingress.hosts[0]"=wiki.example.choerodon.io \
    22. --timeout 3000 \
    23. --name xwiki \
    24. --version 0.16.0 \
    25. --namespace c7n-system

    参数名含义env.JAVA_OPTSJVM相关运行参数env.DB_USER数据库用户名env.DB_PASSWORD数据库密码env.DB_HOST数据库地址env.DB_PORT数据库端口,默认3306env.DB_DATABASE数据库env.OIDC_ENDPOINT_AUTHORIZATIONOIDC认证地址env.OIDC_ENDPOINT_TOKENOIDC TOKEN校验地址env.OIDC_ENDPOINT_USERINFOOIDC用户信息地址env.OIDC_ENDPOINT_LOGOUTOAuth登出地址env.CHOERODON_REQUEST_API_URL网关的域名地址env.CHOERODON_REQUEST_FRONT_URL前端地址env.OIDC_CLIENTIDOIDC客户端env.OIDC_SECRETOIDC秘钥env.OIDC_WIKI_TOKENOIDC TOKEN,必须agile-service中的env.open.SERVICES_WIKI_TOKEN参数值一致service.enabled创建service对象ingress.enable创建ingress对象ingress.hostswiki域名地址

    • 校验安装:安装完成后打开配置的域名如果安装成功会返回xwiki的界面。
      • 添加oauth client
    1. helm install c7n/mysql-client \
    2. --set env.MYSQL_HOST=c7n-mysql.c7n-system.svc \
    3. --set env.MYSQL_PORT=3306 \
    4. --set env.MYSQL_USER=root \
    5. --set env.MYSQL_PASS=password \
    6. --set env.SQL_SCRIPT="\
    7. INSERT INTO iam_service.oauth_client (\
    8. name\,organization_id\,resource_ids\,secret\,scope\,\
    9. authorized_grant_types\,web_server_redirect_uri\,\
    10. access_token_validity\,refresh_token_validity\,\
    11. additional_information\,auto_approve\,object_version_number\,\
    12. created_by\,creation_date\,last_updated_by\,last_update_date)\
    13. VALUES('wiki'\,1\,'default'\,'secret'\,'default'\,\
    14. 'password\,implicit\,client_credentials\,authorization_code\,refresh_token'\,\
    15. 'http://wiki.example.choerodon.io/oidc/authenticator/callback'\,3600\,3600\,'{}'\,'default'\,1\,0\,NOW()\,0\,NOW());" \
    16. --version 0.1.0 \
    17. --name c7n-wiki-client \
    18. --namespace c7n-system
    • 部署知识管理后端
    1. helm install c7n/wiki-service \
    2. --set preJob.preConfig.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    3. --set preJob.preConfig.datasource.username=choerodon \
    4. --set preJob.preConfig.datasource.password=password \
    5. --set preJob.preInitDB.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/wiki_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    6. --set preJob.preInitDB.datasource.username=choerodon \
    7. --set preJob.preInitDB.datasource.password=password \
    8. --set env.open.SPRING_DATASOURCE_URL="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/wiki_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    9. --set env.open.SPRING_DATASOURCE_USERNAME=choerodon \
    10. --set env.open.SPRING_DATASOURCE_PASSWORD=password \
    11. --set env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE="http://register-server.c7n-system:8000/eureka/" \
    12. --set env.open.EUREKA_DEFAULT_ZONE=http://register-server.c7n-system:8000/eureka/ \
    13. --set env.open.SPRING_CLOUD_CONFIG_ENABLED=true \
    14. --set env.open.SPRING_CLOUD_CONFIG_URI=http://register-server.c7n-system:8000/ \
    15. --set env.open.WIKI_CLIENT=xwiki \
    16. --set env.open.WIKI_URL=http://wiki.example.choerodon.io \
    17. --set env.open.WIKI_TOKEN=Choerodon \
    18. --set env.open.WIKI_DEFAULT_GROUP=XWikiAllGroup \
    19. --name wiki-service \
    20. --version 0.17.1 \
    21. --namespace c7n-system

    参数名含义preJob.preConfig.datasource{}初始化配置所需manager_service数据库信息env.open.SPRING_CLOUD_CONFIG_ENABLED启用配置中心env.open.SPRING_CLOUD_CONFIG_URI配置中心地址env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE注册服务地址env.open.WIKI_TOKENwiki-service的env.open.WIKI_TOKEN,必须与xwiki中的env.OIDC_WIKI_TOKEN参数值和agile-service中的env.open.SERVICES_WIKI_TOKEN参数值一致

    • 验证部署

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

    同步已有项目和组织

    • 服务部署完成之后,使用有平台管理员角色的用户登录Choerodon平台,点击顶部导航栏的管理按钮,选择平台服务菜单下的平台接口
    • 找到微服务wiki-service下0.17.0版本的接口,打开wiki-scanning-controller,使用/v1/site/scan接口,点击发送之后,就会同步所有的组织和项目到新部署的wiki。
    1. 注:同步会在后台执行,请耐心等待同步完成。