From 9c2687bd230238b5752d2a2bb9d083ac1003eeba Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=88=98=E6=B4=AA=E9=9D=92?= Date: Thu, 10 Sep 2020 15:53:39 +0800 Subject: [PATCH] =?utf8?q?docs:=20=E6=95=B4=E7=90=86=E8=AE=A4=E8=AF=81?= =?utf8?q?=E6=8E=88=E6=9D=83=E4=BA=A7=E5=93=81=E7=9A=84=E9=83=A8=E7=BD=B2?= =?utf8?q?=E6=96=87=E6=A1=A3=EF=BC=9B=E5=B0=86=E4=BA=91=E5=B9=B3=E5=8F=B0?= =?utf8?q?=E7=9A=84=E9=83=A8=E7=BD=B2=E6=96=87=E6=A1=A3=E8=BF=81=E7=A7=BB?= =?utf8?q?=E8=87=B3=20deploy-admin-platform?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- ...50\347\275\262\346\211\213\345\206\214.md" | 237 +++++++-------- ...0\347\275\262\346\211\213\345\206\214.pdf" | Bin 146441 -> 155047 bytes .../4.2.thirdparty-agent-service.yaml | 14 +- .../4.2.user-data-service-goa.yaml | 2 +- .../4.3.user-data-service-biz.yaml | 5 + .../4.2.user-authorization-sa.yaml | 7 +- .../4.cas-server/4.2.cas-server-sa-api.yaml | 17 +- .../4.5.cas-server-site-webapp.yaml | 1 + .../5.token-server/4.1.token-server.yaml | 9 +- .../4.4.personal-security-center-bff.yaml | 5 +- .../4.5.personal-security-center-zuul.yaml | 5 +- .../0.communicate-center-base.yaml | 17 -- .../1.communicate-center-env.yaml | 27 -- .../2.communicate-center-ingresses.yaml | 19 -- .../4.0.communicate-center-installer.yaml | 46 --- .../4.1.communicate-center-poa.yaml | 111 ------- .../6.admin-platform/10.0.init.sql | 73 ----- .../6.admin-platform/10.1.init-flow.sql | 96 ------ .../6.admin-platform/10.1.init-message.sql | 105 ------- .../6.admin-platform/10.1.init-portal.sql | 287 ------------------ .../6.admin-center/0.admin-center-base.yaml | 188 ------------ .../6.admin-center/1.admin-center-env.yaml | 39 --- .../2.admin-center-ingresses.yaml | 62 ---- .../4.0.admin-center-sa-installer.yaml | 47 --- .../6.admin-center/4.1.admin-center-poa.yaml | 117 ------- .../6.admin-center/4.2.admin-center-sa.yaml | 101 ------ .../6.admin-center/4.4.admin-center-bff.yaml | 143 --------- .../6.admin-center/4.5.admin-center-zuul.yaml | 170 ----------- .../4.9.admin-center-management.yaml | 69 ----- .../6.admin-center/certs/jwt/readme.md | 83 ----- .../0.admin-platform-base.yaml | 29 -- .../2.admin-platform-ingresses.yaml | 36 --- .../7.admin-platform/4.2.admin-platform.yaml | 74 ----- 33 files changed, 152 insertions(+), 2089 deletions(-) delete mode 100644 deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/0.communicate-center-base.yaml delete mode 100644 deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/1.communicate-center-env.yaml delete mode 100644 deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/2.communicate-center-ingresses.yaml delete mode 100644 deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/4.0.communicate-center-installer.yaml delete mode 100644 deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/4.1.communicate-center-poa.yaml delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/10.0.init.sql delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/10.1.init-flow.sql delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/10.1.init-message.sql delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/10.1.init-portal.sql delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/0.admin-center-base.yaml delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/1.admin-center-env.yaml delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/2.admin-center-ingresses.yaml delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.0.admin-center-sa-installer.yaml delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.1.admin-center-poa.yaml delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.2.admin-center-sa.yaml delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.4.admin-center-bff.yaml delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.5.admin-center-zuul.yaml delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.9.admin-center-management.yaml delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/certs/jwt/readme.md delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/7.admin-platform/0.admin-platform-base.yaml delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/7.admin-platform/2.admin-platform-ingresses.yaml delete mode 100644 deploy-manifests/k8s-rancher/6.admin-platform/7.admin-platform/4.2.admin-platform.yaml diff --git "a/deploy-manifests/k8s-rancher/0.1.1.\350\256\244\350\257\201\346\216\210\346\235\203\346\234\215\345\212\241\345\256\211\350\243\205\351\203\250\347\275\262\346\211\213\345\206\214.md" "b/deploy-manifests/k8s-rancher/0.1.1.\350\256\244\350\257\201\346\216\210\346\235\203\346\234\215\345\212\241\345\256\211\350\243\205\351\203\250\347\275\262\346\211\213\345\206\214.md" index 89e4873..8f8e499 100644 --- "a/deploy-manifests/k8s-rancher/0.1.1.\350\256\244\350\257\201\346\216\210\346\235\203\346\234\215\345\212\241\345\256\211\350\243\205\351\203\250\347\275\262\346\211\213\345\206\214.md" +++ "b/deploy-manifests/k8s-rancher/0.1.1.\350\256\244\350\257\201\346\216\210\346\235\203\346\234\215\345\212\241\345\256\211\350\243\205\351\203\250\347\275\262\346\211\213\345\206\214.md" @@ -16,7 +16,7 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 ## 安装准备 -### mysql 初始配置 +### MySQL 初始配置及相关基础命令 数据文件目录:/var/lib/mysql @@ -53,26 +53,12 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 * 创建 database - ``` - user - user_authz - cas_server - token_server - personal_security_center - - agent_service - communicate_center - - admin_center - - tmp_data - ``` - 参考命令: ``` create database `user` DEFAULT CHARSET utf8 COLLATE utf8_general_ci; ``` + * 授予权限 将 database 的权限授予对应的帐号 @@ -106,10 +92,7 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 mysqldump -u root -p token_server > token_server.sql mysqldump -u root -p user > user.sql mysqldump -u root -p user_authz > user_authz.sql - mysqldump -u root -p admin_center > admin_center.sql - mysqldump -u root -p personal_security_center > personal_security_center.sql mysqldump -u root -p agent_service > agent_service.sql - mysqldump -u root -p communicate_center > communicate_center.sql ``` 还原: @@ -118,47 +101,11 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 mysql -u root -p token_server < token_server.sql mysql -u root -p user < user.sql mysql -u root -p user_authz < user_authz.sql - mysql -u root -p admin_center < admin_center.sql - mysql -u root -p personal_security_center < personal_security_center.sql mysql -u root -p agent_service < agent_service.sql - mysql -u root -p communicate_center < communicate_center.sql ``` -* 创建交换帐号 - - **待部署完成后操作** - - 如果,存在数据交换 须将组织机构数据、帐号数据 同步到用户服务的数据库的 - 则,需要创建一个 交换用的数据库帐号(user_trans),并为该帐号授予 表 user.TMP_ORGANIZATION_ORIGIN、user.TMP_ACCOUNT_ORIGIN 的读写操作的权限 - - 参考命令: - ``` - create user 'user_trans'@'%' identified with mysql_native_password by 'your_password'; - - grant select on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%'; - grant insert on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%'; - grant update on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%'; - grant delete on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%'; - - grant select on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%'; - grant insert on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%'; - grant update on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%'; - grant delete on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%'; - - grant select on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%'; - grant insert on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%'; - grant update on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%'; - grant delete on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%'; - - grant select on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%'; - grant insert on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%'; - grant update on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%'; - grant delete on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%'; - ``` - - -### harbor 准备 +### Harbor 准备及相关说明 * 创建 devops 帐号 @@ -184,17 +131,15 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 authx-service authx-service/* thirdparty-agent-service thirdparty-agent-service/* + user-data-service goa/* user-authorization-service user-authorization-service/* cas-server cas-server/* token-server token-server/* - communicate-center communicate-center/* + jobs-server jobs-server/* personal-security-center personal-security-center/* - admin-center admin-center/* - - admin-platform admin-platform/* ``` 同步规则,创建完成后,进行镜像同步 @@ -207,7 +152,7 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 项目 下,点击 项目名称,进入到 成员,添加用户,查找用户 devops,选择角色 访客,确定,添加即可 -### rancher 准备 +### Rancher 准备及相关说明 * 创建项目 @@ -224,6 +169,7 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 输入 名称,保存 + * 导入YAML 进入 全局 - 集群(具体名称视项目安装而定) - 项目(某个项目) @@ -245,10 +191,6 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 personal-security-center.paas.xxx.edu.cn 个人安全中心后端API security-center.paas.xxx.edu.cn 安全中心前端UI(帐号激活、忘记密码) - - admin-center.paas.xxx.edu.cn 云平台后端API - - admin-platform.paas.xxx.edu.cn 云平台前端UI ``` 如果使用 学校域名,则去除 .paas 即可,同时申请开通相关域名 @@ -261,7 +203,9 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 * 数据库帐号 - 服务 | 帐号 + 以下是 各服务对应的数据库帐号 + + 服务 | 数据库帐号 - | - 用户服务 user-data-service | user 授权服务 user-authorization-service | user_authz @@ -269,14 +213,10 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 认证服务(APP适用) token-server | token_server - | - 第三方代理服务 thridparty-agent-service | agent_service - 通信服务 communicate-center | communicate_center - - | - - 管理中心 admin-center | admin_center - | - v4认证迁移数据 | tmp_data - 创建命令 - + 命令: **请修改命令中的 `your_password` 为实际的数据库帐号的密码** ``` create user 'user'@'%' identified with mysql_native_password by 'your_password'; @@ -285,14 +225,102 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 create user 'token_server'@'%' identified with mysql_native_password by 'your_password'; create user 'agent_service'@'%' identified with mysql_native_password by 'your_password'; - create user 'communicate_center'@'%' identified with mysql_native_password by 'your_password'; - - create user 'admin_center'@'%' identified with mysql_native_password by 'your_password'; create user 'tmp_data'@'%' identified with mysql_native_password by 'your_password'; ``` +* 数据库 + + 以下是 各服务对应的数据库 + + 服务 | 数据库 + - | - + 用户服务 user-data-service | user + 授权服务 user-authorization-service | user_authz + 认证服务 cas-server | cas_server + 认证服务(APP适用) token-server | token_server + - | - + 第三方代理服务 thridparty-agent-service | agent_service + - | - + v4认证迁移数据 | tmp_data + + 命令: + ``` + create database `user` DEFAULT CHARSET utf8 COLLATE utf8_general_ci; + create database `user_authz` DEFAULT CHARSET utf8 COLLATE utf8_general_ci; + create database `cas_server` DEFAULT CHARSET utf8 COLLATE utf8_general_ci; + create database `token_server` DEFAULT CHARSET utf8 COLLATE utf8_general_ci; + + create database `agent_service` DEFAULT CHARSET utf8 COLLATE utf8_general_ci; + + create database `tmp_data` DEFAULT CHARSET utf8 COLLATE utf8_general_ci; + ``` + + +* 数据库权限授予 + + 将 database 的权限授予对应的帐号 + + 命令: + ``` + grant all privileges on `user`.* to 'user'@'%' with grant option; + grant all privileges on `user_authz`.* to 'user_authz'@'%' with grant option; + grant all privileges on `cas_server`.* to 'cas_server'@'%' with grant option; + grant all privileges on `token_server`.* to 'token_server'@'%' with grant option; + + grant all privileges on `agent_service`.* to 'agent_service'@'%' with grant option; + + grant all privileges on `tmp_data`.* to 'tmp_data'@'%' with grant option; + ``` + + +* SUPER 权限授予 + + 由于 部分帐号 需要创建 触发器,故,需要 SUPER 权限 + 涉及帐号有 user、user_authz、cas_server + + 命令: + ``` + grant SUPER on *.* to 'user'@'%'; + grant SUPER on *.* to 'user_authz'@'%'; + grant SUPER on *.* to 'cas_server'@'%'; + + grant SUPER on *.* to 'tmp_data'@'%'; + ``` + + +* 用户数据的交换帐号 + + **待部署完成后操作** + + 如果,存在数据交换 须将组织机构数据、帐号数据 同步到用户服务的数据库的 + 则,需要创建一个 交换用的数据库帐号(user_trans),并为该帐号授予 表 user.TMP_ORGANIZATION_ORIGIN、user.TMP_ACCOUNT_ORIGIN 的读写操作的权限 + + 命令: + ``` + create user 'user_trans'@'%' identified with mysql_native_password by 'your_password'; + + grant select on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%'; + grant insert on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%'; + grant update on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%'; + grant delete on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%'; + + grant select on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%'; + grant insert on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%'; + grant update on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%'; + grant delete on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%'; + + grant select on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%'; + grant insert on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%'; + grant update on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%'; + grant delete on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%'; + + grant select on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%'; + grant insert on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%'; + grant update on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%'; + grant delete on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%'; + ``` ### rancher 容器部署 @@ -301,7 +329,6 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 具体参考 yaml 文件中的说明 - 0.infras 基础设施,目前包含 MySQL数据库的Web管理端、SpringBoot服务的管理端 @@ -315,7 +342,6 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 ``` - 1.authx-service 业务中台 之 认证授权服务 @@ -332,7 +358,6 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 2.*-ingresses.yaml 请修改 访问域名 - 0.0.trans-service-v4 此为 认证v4 的数据迁移服务(可选) @@ -341,7 +366,6 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 数据迁移后,还需要手动编写脚本,将数据迁移至 用户服务、授权服务 的数据库中 - 0.authx-service 此为 公共基础服务 @@ -358,14 +382,12 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 根据情况修改 pvc 的 storageClassName - 9.poa-api-docs_install.yaml 用于将 认证授权服务的 poa 接口文档,导入到 poa-sa 中,**请在 poa 安装完成后处理** 请修改 poa 的服务地址 `POA_SERVER_URL` - 1.thirdparty-agent-service 此为 第三方服务的代理服务 @@ -383,7 +405,6 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 如果 学校使用 阿里云的短信服务,提供 `ACCESS_KEY_ID`、`ACCESS_SECRET`; 否则,提供相关的短信平台,进行定制开发 - 2.user-data-service 此为 用户服务 @@ -392,12 +413,10 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 如果 须将用户数据的变更下发到 Openldap 等第三方业务中,则须配置 `JOBS_RABBITMQ_*` 为开启(ENABLED=true) - 3.user-authorization-service 此为 授权服务 - 4.cas-server 此为 认证服务 @@ -422,7 +441,6 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 如果 须开启图片验证码,修改 `CASSERVERSITE_CAPTCHA_ENABLED: "true"` - 5.token-server 此为 认证服务(适用于APP,可选) @@ -445,19 +463,15 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 1. 注册 POA client,获取 `clientId`、`clientSecret`,申请 Scope `messagecenter:v1:sendMessage` 2. 获取 消息服务的 `appId` - 6.personal-security-center 此为 个人安全中心 后端API,安全中心 前端UI 提供个人帐号相关的操作的接口,以及 帐号激活、密码找回 等功能 - - TODO: 修改 bff、zuul 配置 TODO: 修改 security-center-ui 配置 - 9.jobs-server 此为 任务调度服务 @@ -468,26 +482,6 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 * 源头数据进入到临时表后,写入用户的正式表 * 用户数据更新后,通过消息队列,增量更新 Openldap 数据 - - - ``` - - - 6.admin-platform - - 云平台 - - ``` - - 6.admin-center - - 此为 云平台 后端API - - - 7.admin-platform - - 此为 云平台 前端UI - ``` @@ -531,21 +525,10 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 personal-security-center - communicate-center - jobs-server ``` - 在项目 admin-platform 下创建 命名空间: - - ``` - admin-center - - admin-platform - - ``` - * 导入YAML @@ -562,10 +545,7 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 在项目 authx-service 中,将 1.authx-service 下的 yaml 按编号依次导入 - 务必确保 `4.0.*-installer.yaml` 执行成功 - - - 在项目 admin-platform 中,将 6.admin-platform 下的 yaml 按编号依次导入 + **务必确保 `4.0.*-installer.yaml` 执行成功** ### 数据配置 @@ -586,14 +566,3 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 可默认创建几个管理员帐号,以及初始授权 - -* **必选,6.admin-platform/10.0.init.sql** - - 修改 数据库数据初始化时的默认配置 - - -* 可选,6.admin-platform/10.1.init-flow.sql - - 若部署了 流程平台 的产品 - - 将 流程平台 的管理菜单 添加到 云平台中 diff --git "a/deploy-manifests/k8s-rancher/0.1.1.\350\256\244\350\257\201\346\216\210\346\235\203\346\234\215\345\212\241\345\256\211\350\243\205\351\203\250\347\275\262\346\211\213\345\206\214.pdf" "b/deploy-manifests/k8s-rancher/0.1.1.\350\256\244\350\257\201\346\216\210\346\235\203\346\234\215\345\212\241\345\256\211\350\243\205\351\203\250\347\275\262\346\211\213\345\206\214.pdf" index de752a8e4552138e37b32a79cb2fbb0ba04e2f73..ca16e4cb3ac8a3687e5c026498724c32d7a5422f 100644 GIT binary patch delta 132615 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�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 delta 124391 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%0Ag)^v3# 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 diff --git a/deploy-manifests/k8s-rancher/1.authx-service/1.thirdparty-agent-service/4.2.thirdparty-agent-service.yaml b/deploy-manifests/k8s-rancher/1.authx-service/1.thirdparty-agent-service/4.2.thirdparty-agent-service.yaml index 9d68a04..4eb005e 100644 --- a/deploy-manifests/k8s-rancher/1.authx-service/1.thirdparty-agent-service/4.2.thirdparty-agent-service.yaml +++ b/deploy-manifests/k8s-rancher/1.authx-service/1.thirdparty-agent-service/4.2.thirdparty-agent-service.yaml @@ -14,10 +14,16 @@ data: SERVER_MAXHTTPHEADERSIZE: "10240" - # SERVER_TOMCAT_ACCEPT_COUNT: "1000" - # SERVER_TOMCAT_MAX_CONNECTIONS: "10000" - # SERVER_TOMCAT_MAX_THREADS: "1000" - # SERVER_TOMCAT_MIN_SPARE_THREADS: "10" + SERVER_TOMCAT_ACCEPT_COUNT: "5000" + SERVER_TOMCAT_MAX_CONNECTIONS: "10000" + SERVER_TOMCAT_MAX_THREADS: "800" + SERVER_TOMCAT_MIN_SPARE_THREADS: "100" + + + SPRING_DATASOURCE_DRUID_INITIAL_SIZE: "10" + SPRING_DATASOURCE_DRUID_MAX_ACTIVE: "20" + SPRING_DATASOURCE_DRUID_MIN_IDLE: "10" + ## file-db FILE_DB_AUTOCONFIGURE_ENABLED: "false" diff --git a/deploy-manifests/k8s-rancher/1.authx-service/2.user-data-service/4.2.user-data-service-goa.yaml b/deploy-manifests/k8s-rancher/1.authx-service/2.user-data-service/4.2.user-data-service-goa.yaml index 982b380..d8ae7b2 100644 --- a/deploy-manifests/k8s-rancher/1.authx-service/2.user-data-service/4.2.user-data-service-goa.yaml +++ b/deploy-manifests/k8s-rancher/1.authx-service/2.user-data-service/4.2.user-data-service-goa.yaml @@ -16,12 +16,12 @@ data: SERVER_MAXHTTPHEADERSIZE: "10240" - SERVER_TOMCAT_ACCEPT_COUNT: "5000" SERVER_TOMCAT_MAX_CONNECTIONS: "10000" SERVER_TOMCAT_MAX_THREADS: "800" SERVER_TOMCAT_MIN_SPARE_THREADS: "100" + SPRING_DATASOURCE_DRUID_INITIAL_SIZE: "10" SPRING_DATASOURCE_DRUID_MAX_ACTIVE: "20" SPRING_DATASOURCE_DRUID_MIN_IDLE: "10" diff --git a/deploy-manifests/k8s-rancher/1.authx-service/2.user-data-service/4.3.user-data-service-biz.yaml b/deploy-manifests/k8s-rancher/1.authx-service/2.user-data-service/4.3.user-data-service-biz.yaml index c2f1c21..b1669ef 100644 --- a/deploy-manifests/k8s-rancher/1.authx-service/2.user-data-service/4.3.user-data-service-biz.yaml +++ b/deploy-manifests/k8s-rancher/1.authx-service/2.user-data-service/4.3.user-data-service-biz.yaml @@ -16,6 +16,11 @@ data: SERVER_MAXHTTPHEADERSIZE: "10240" + SERVER_TOMCAT_ACCEPT_COUNT: "5000" + SERVER_TOMCAT_MAX_CONNECTIONS: "10000" + SERVER_TOMCAT_MAX_THREADS: "800" + SERVER_TOMCAT_MIN_SPARE_THREADS: "100" + SPRING_DATASOURCE_DRUID_INITIAL_SIZE: "10" SPRING_DATASOURCE_DRUID_MAX_ACTIVE: "20" diff --git a/deploy-manifests/k8s-rancher/1.authx-service/3.user-authorization-service/4.2.user-authorization-sa.yaml b/deploy-manifests/k8s-rancher/1.authx-service/3.user-authorization-service/4.2.user-authorization-sa.yaml index cbe4218..4cf624a 100644 --- a/deploy-manifests/k8s-rancher/1.authx-service/3.user-authorization-service/4.2.user-authorization-sa.yaml +++ b/deploy-manifests/k8s-rancher/1.authx-service/3.user-authorization-service/4.2.user-authorization-sa.yaml @@ -16,6 +16,12 @@ data: SERVER_MAXHTTPHEADERSIZE: "10240" + SERVER_TOMCAT_ACCEPT_COUNT: "5000" + SERVER_TOMCAT_MAX_CONNECTIONS: "10000" + SERVER_TOMCAT_MAX_THREADS: "800" + SERVER_TOMCAT_MIN_SPARE_THREADS: "100" + + # LOGGING_LEVEL_COM_SUPWISDOM_INSTITUTE_USER_AUTHORIZATION_SERVICE_SA_MANGRANTED: debug SPRING_DATASOURCE_DRUID_INITIAL_SIZE: "10" SPRING_DATASOURCE_DRUID_MAX_ACTIVE: "20" @@ -24,7 +30,6 @@ data: # SBA_URL: http://spring-boot-admin-svc.base.svc.cluster.local:8080 - # LOGGING_LEVEL_COM_SUPWISDOM_INSTITUTE_USER_AUTHORIZATION_SERVICE_SA_MANGRANTED: debug --- diff --git a/deploy-manifests/k8s-rancher/1.authx-service/4.cas-server/4.2.cas-server-sa-api.yaml b/deploy-manifests/k8s-rancher/1.authx-service/4.cas-server/4.2.cas-server-sa-api.yaml index f8e1452..1ab37de 100644 --- a/deploy-manifests/k8s-rancher/1.authx-service/4.cas-server/4.2.cas-server-sa-api.yaml +++ b/deploy-manifests/k8s-rancher/1.authx-service/4.cas-server/4.2.cas-server-sa-api.yaml @@ -16,11 +16,20 @@ data: SERVER_MAXHTTPHEADERSIZE: "10240" + SERVER_TOMCAT_ACCEPT_COUNT: "5000" + SERVER_TOMCAT_MAX_CONNECTIONS: "10000" + SERVER_TOMCAT_MAX_THREADS: "800" + SERVER_TOMCAT_MIN_SPARE_THREADS: "100" + + + SPRING_DATASOURCE_DRUID_INITIAL_SIZE: "10" + SPRING_DATASOURCE_DRUID_MAX_ACTIVE: "20" + SPRING_DATASOURCE_DRUID_MIN_IDLE: "10" + + SPRING_REDIS_JEDIS_POOL_MAXACTIVE: "800" + SPRING_REDIS_JEDIS_POOL_MAXIDLE: "100" + SPRING_REDIS_JEDIS_POOL_MINIDLE: "100" - # SERVER_TOMCAT_ACCEPT_COUNT: "100" - # SERVER_TOMCAT_MAX_CONNECTIONS: "10000" - # SERVER_TOMCAT_MAX_THREADS: "200" - # SERVER_TOMCAT_MIN_SPARE_THREADS: "10" SERVICE_REFRESH_REDIS_TIMER_ENABLED: "true" ACCOUNT_REFRESH_REDIS_TIMER_ENABLED: "false" diff --git a/deploy-manifests/k8s-rancher/1.authx-service/4.cas-server/4.5.cas-server-site-webapp.yaml b/deploy-manifests/k8s-rancher/1.authx-service/4.cas-server/4.5.cas-server-site-webapp.yaml index cbd694e..b780c22 100644 --- a/deploy-manifests/k8s-rancher/1.authx-service/4.cas-server/4.5.cas-server-site-webapp.yaml +++ b/deploy-manifests/k8s-rancher/1.authx-service/4.cas-server/4.5.cas-server-site-webapp.yaml @@ -20,6 +20,7 @@ data: SERVER_TOMCAT_MAX_THREADS: "800" SERVER_TOMCAT_MIN_SPARE_THREADS: "100" + SPRING_REDIS_JEDIS_POOL_MAXACTIVE: "800" SPRING_REDIS_JEDIS_POOL_MAXIDLE: "100" SPRING_REDIS_JEDIS_POOL_MINIDLE: "100" diff --git a/deploy-manifests/k8s-rancher/1.authx-service/5.token-server/4.1.token-server.yaml b/deploy-manifests/k8s-rancher/1.authx-service/5.token-server/4.1.token-server.yaml index 612a50b..d5e219e 100644 --- a/deploy-manifests/k8s-rancher/1.authx-service/5.token-server/4.1.token-server.yaml +++ b/deploy-manifests/k8s-rancher/1.authx-service/5.token-server/4.1.token-server.yaml @@ -20,12 +20,17 @@ data: SERVER_TOMCAT_MAX_THREADS: "800" SERVER_TOMCAT_MIN_SPARE_THREADS: "100" + LOGGING_LEVEL_COM_SUPWISDOM_INSITITUTE_TOKEN_SERVER: INFO + + + SPRING_DATASOURCE_DRUID_INITIAL_SIZE: "10" + SPRING_DATASOURCE_DRUID_MAX_ACTIVE: "50" + SPRING_DATASOURCE_DRUID_MIN_IDLE: "10" + SPRING_REDIS_JEDIS_POOL_MAXACTIVE: "800" SPRING_REDIS_JEDIS_POOL_MAXIDLE: "100" SPRING_REDIS_JEDIS_POOL_MINIDLE: "100" - LOGGING_LEVEL_COM_SUPWISDOM_INSITITUTE_TOKEN_SERVER: INFO - # **修改** 从消息中心申请 MESSAGECENTER_ENABLED: "false" diff --git a/deploy-manifests/k8s-rancher/1.authx-service/6.personal-security-center/4.4.personal-security-center-bff.yaml b/deploy-manifests/k8s-rancher/1.authx-service/6.personal-security-center/4.4.personal-security-center-bff.yaml index 3c380e6..dc93b54 100644 --- a/deploy-manifests/k8s-rancher/1.authx-service/6.personal-security-center/4.4.personal-security-center-bff.yaml +++ b/deploy-manifests/k8s-rancher/1.authx-service/6.personal-security-center/4.4.personal-security-center-bff.yaml @@ -68,12 +68,13 @@ data: SERVER_TOMCAT_MAX_THREADS: "800" SERVER_TOMCAT_MIN_SPARE_THREADS: "100" + LOGGING_LEVEL_COM_SUPWISDOM_INSTITUTE_PERSONAL_SECURITY_CENTER_BFF: INFO + + SPRING_REDIS_JEDIS_POOL_MAXACTIVE: "800" SPRING_REDIS_JEDIS_POOL_MAXIDLE: "100" SPRING_REDIS_JEDIS_POOL_MINIDLE: "100" - LOGGING_LEVEL_COM_SUPWISDOM_INSTITUTE_PERSONAL_SECURITY_CENTER_BFF: INFO - # 修改为学校的 personal-security-center 的访问域名 PERSONAL_SECURITY_CENTER_SERVER_PREFIX: http://personal-security-center.paas.xxx.edu.cn diff --git a/deploy-manifests/k8s-rancher/1.authx-service/6.personal-security-center/4.5.personal-security-center-zuul.yaml b/deploy-manifests/k8s-rancher/1.authx-service/6.personal-security-center/4.5.personal-security-center-zuul.yaml index 19aa3a3..edd1b43 100644 --- a/deploy-manifests/k8s-rancher/1.authx-service/6.personal-security-center/4.5.personal-security-center-zuul.yaml +++ b/deploy-manifests/k8s-rancher/1.authx-service/6.personal-security-center/4.5.personal-security-center-zuul.yaml @@ -21,13 +21,14 @@ data: SERVER_TOMCAT_MAX_THREADS: "800" SERVER_TOMCAT_MIN_SPARE_THREADS: "100" + LOGGING_LEVEL_COM_SUPWISDOM_INSTITUTE_PERSONAL_SECURITY_CENTER: INFO + + ZUUL_HOST_MAX_PER_ROUTE_CONNECTIONS: "1000" ZUUL_HOST_MAX_TOTAL_CONNECTIONS: "1000" ZUUL_SEMAPHORE_MAX_SEMAPHORES: "10000" - LOGGING_LEVEL_COM_SUPWISDOM_INSTITUTE_PERSONAL_SECURITY_CENTER: INFO - ZUUL_ROUTES_PERSONAL_ME_URL: http://personal-security-center-bff-svc.personal-security-center.svc.cluster.local:8080/api/v1/me ZUUL_ROUTES_PERSONAL_BFF_URL: http://personal-security-center-bff-svc.personal-security-center.svc.cluster.local:8080/api/v1 diff --git a/deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/0.communicate-center-base.yaml b/deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/0.communicate-center-base.yaml deleted file mode 100644 index 4181e1c..0000000 --- a/deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/0.communicate-center-base.yaml +++ /dev/null @@ -1,17 +0,0 @@ -# communicate-center-base.yaml - -#################################################### -# supwisdom harbor private docker registry -#################################################### ---- -apiVersion: v1 -kind: Secret -type: kubernetes.io/dockerconfigjson -metadata: - name: harbor-registry - namespace: communicate-center -data: - # 修改harbor仓库配置,并使用 base64 工具进行编码 - # {"auths":{"harbor.supwisdom.com":{"password":"PWMgP85qiLFC","username":"rancher.devops"}}} - .dockerconfigjson: eyJhdXRocyI6eyJoYXJib3Iuc3Vwd2lzZG9tLmNvbSI6eyJwYXNzd29yZCI6IlBXTWdQODVxaUxGQyIsInVzZXJuYW1lIjoicmFuY2hlci5kZXZvcHMifX19 - diff --git a/deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/1.communicate-center-env.yaml b/deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/1.communicate-center-env.yaml deleted file mode 100644 index 3e23835..0000000 --- a/deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/1.communicate-center-env.yaml +++ /dev/null @@ -1,27 +0,0 @@ -# communicate-center-env.yaml - ---- -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: communicate-center - name: jvm-env -data: - MAX_RAM_PERCENTAGE: "75.0" - ---- -apiVersion: v1 -kind: Secret -metadata: - namespace: communicate-center - name: datasource-env-secret -type: Opaque -data: - # jdbc:mysql://mysql-server.authx-service.svc.cluster.local:3306/communicate_center?serverTimezone=Asia/Shanghai - JDBC_URL: amRiYzpteXNxbDovL215c3FsLXNlcnZlci5hdXRoeC1zZXJ2aWNlLnN2Yy5jbHVzdGVyLmxvY2FsOjMzMDYvY29tbXVuaWNhdGVfY2VudGVyP3NlcnZlclRpbWV6b25lPUFzaWEvU2hhbmdoYWk= - # communicate_center - JDBC_USERNAME: Y29tbXVuaWNhdGVfY2VudGVy - # 修改为实际的数据库密码,并使用 base64 工具进行编码 - # kingstar - JDBC_PASSWORD: a2luZ3N0YXI= - diff --git a/deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/2.communicate-center-ingresses.yaml b/deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/2.communicate-center-ingresses.yaml deleted file mode 100644 index 354aeeb..0000000 --- a/deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/2.communicate-center-ingresses.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# communicate-center-ingresses.yaml - -# 暂时不使用,直接使用内部地址 -# --- -# apiVersion: extensions/v1beta1 -# kind: Ingress -# metadata: -# namespace: communicate-center -# name: communicate-center-api-ingress -# spec: -# rules: -# # 修改为学校的根域名 -# - host: communicate-center-api.paas.xxx.edu.cn -# http: -# paths: -# - path: / -# backend: -# serviceName: communicate-center-poa-svc -# servicePort: http diff --git a/deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/4.0.communicate-center-installer.yaml b/deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/4.0.communicate-center-installer.yaml deleted file mode 100644 index 0c3c84f..0000000 --- a/deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/4.0.communicate-center-installer.yaml +++ /dev/null @@ -1,46 +0,0 @@ -# communicate-center-installer.yaml - ---- -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: communicate-center - name: communicate-center-installer-env -data: - DB_TYPE: mysql8 - - ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: communicate-center-installer - namespace: communicate-center -spec: - completions: 1 - parallelism: 1 - template: - metadata: - labels: - app: communicate-center-installer - spec: - restartPolicy: Never - containers: - - name: communicate-center-installer - # 若使用了学校搭设的私有仓库,请修改 - image: harbor.supwisdom.com/communicate-center/communicate-center-installer:1.0.0-SNAPSHOT - imagePullPolicy: Always - envFrom: - - configMapRef: - name: jvm-env - - secretRef: - name: datasource-env-secret - - configMapRef: - name: communicate-center-installer-env - resources: - requests: - memory: "256Mi" - limits: - memory: "256Mi" - imagePullSecrets: - - name: harbor-registry diff --git a/deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/4.1.communicate-center-poa.yaml b/deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/4.1.communicate-center-poa.yaml deleted file mode 100644 index f20140a..0000000 --- a/deploy-manifests/k8s-rancher/1.authx-service/8.communicate-center/4.1.communicate-center-poa.yaml +++ /dev/null @@ -1,111 +0,0 @@ -# communicate-center-poa.yaml - ---- -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: communicate-center - name: communicate-center-poa-env -data: - SERVER_PORT: "8080" - SSL_ENABLED: "false" - #SSL_KEYSTORE_FILE: file:/certs/server/server.keystore - #SSL_KEYSTORE_PASSWORD: "" - #SSL_TRUSTSTORE_FILE: file:/certs/server/server.truststore - #SSL_TRUSTSTORE_PASSWORD: "" - - SERVER_MAXHTTPHEADERSIZE: "10240" - - - USER_DATA_SERVICE_SERVER_URL: http://user-data-service-goa-svc.user-data-service.svc.cluster.local:8080 - USER_DATA_SERVICE_CLIENT_AUTH_ENABLED: "false" - #USER_DATA_SERVICE_CLIENT_AUTH_KEY_PASSWORD: "" - #USER_DATA_SERVICE_CLIENT_AUTH_KEYSTORE_FILE: file:/certs/client/client.keystore - #USER_DATA_SERVICE_CLIENT_AUTH_KEYSTORE_PASSWORD: "" - #USER_DATA_SERVICE_CLIENT_AUTH_TRUSTSTORE_FILE: file:/certs/client/client.truststore - #USER_DATA_SERVICE_CLIENT_AUTH_TRUSTSTORE_PASSWORD: "" - - # 若须对接邮件服务,须提供 SMTP 帐号 - TPAS_MAIL_API_URL: http://agent-service-svc.thirdparty-agent-service.svc.cluster.local:8080/api/v1/tpas/mail/console - # 若须对接sms 接口,须进行二开定制 - TPAS_SMS_API_URL: http://agent-service-svc.thirdparty-agent-service.svc.cluster.local:8080/api/v1/tpas/sms/console - - TPAS_CLIENT_AUTH_ENABLED: "false" - #TPAS_CLIENT_AUTH_KEY_PASSWORD: "" - #TPAS_CLIENT_AUTH_KEYSTORE_FILE: file:/certs/client/client.keystore - #TPAS_CLIENT_AUTH_KEYSTORE_PASSWORD: "" - #TPAS_CLIENT_AUTH_TRUSTSTORE_FILE: file:/certs/client/client.truststore - #TPAS_CLIENT_AUTH_TRUSTSTORE_PASSWORD: "" - - ---- -apiVersion: v1 -kind: Service -metadata: - namespace: communicate-center - name: communicate-center-poa-svc - labels: - app: communicate-center-poa - needMonitor: 'true' -spec: - ports: - - port: 8080 - targetPort: http - protocol: TCP - name: http - - port: 6060 - targetPort: http-metrics - protocol: TCP - name: http-metrics - selector: - app: communicate-center-poa - ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - namespace: communicate-center - name: communicate-center-poa -spec: - selector: - matchLabels: - app: communicate-center-poa - replicas: 1 - template: - metadata: - labels: - app: communicate-center-poa - spec: - containers: - - name: communicate-center-poa - # 若使用了学校搭设的私有仓库,请修改 - image: harbor.supwisdom.com/communicate-center/communicate-center-poa:1.0.0-SNAPSHOT - imagePullPolicy: Always - ports: - - containerPort: 8080 - name: http - - containerPort: 6060 - name: http-metrics - envFrom: - - configMapRef: - name: jvm-env - - secretRef: - name: datasource-env-secret - - configMapRef: - name: communicate-center-poa-env - resources: - requests: - memory: "512Mi" - limits: - memory: "512Mi" - readinessProbe: - httpGet: - path: /actuator/health - port: 8080 - initialDelaySeconds: 20 - periodSeconds: 5 - timeoutSeconds: 5 - successThreshold: 1 - failureThreshold: 10 - imagePullSecrets: - - name: harbor-registry diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/10.0.init.sql b/deploy-manifests/k8s-rancher/6.admin-platform/10.0.init.sql deleted file mode 100644 index 579d3db..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/10.0.init.sql +++ /dev/null @@ -1,73 +0,0 @@ --- 10.1.init.sql - -/* -将 paas.example.com 替换为 paas.学校域名.edu.cn -*/ - - -use cas_server; - --- 更新 服务 admin-center 的信息 - -update TB_SERVICE -set - INFORMATION_URL='http://admin-center.paas.example.com', - LOGOUT_URL='http://admin-center.paas.example.com/cas/slo', - SERVICE_ID='http://admin-center.paas.example.com/cas/(.*)' -where ID='1'; -- todo, modify - --- 更新 服务 personal-security-center 的信息 - -update TB_SERVICE -set - INFORMATION_URL='http://personal-security-center.paas.example.com', - LOGOUT_URL='http://personal-security-center.paas.example.com/cas/slo', - SERVICE_ID='http://personal-security-center.paas.example.com/cas/(.*)' -where ID='2'; -- todo, modify - -commit; - - -use user_authz; - --- 更新 admin-center 下的角色同步地址 - -update TB_APPLICATION -set - SYNC_URL='http://admin-center.paas.example.com/api/v1/open/sync/roles' -where ID='1'; -- todo, modify - -commit; - - -use admin_center; - --- 更新 admin-management 下菜单的访问域 - -update TB_MGT_PERMISSION -set - ORIGIN='http://admin-management.paas.example.com' -where APPLICATION_ID='00000' -; - -commit; - - --- 更新 admin-platform 下菜单的访问域 - -update TB_MGT_PERMISSION -set - ORIGIN='http://admin-platform.paas.example.com' -where APPLICATION_ID='1' -; - -commit; - -/* -insert into TB_MGT_ROUTE (ID, DELETED, CODE, NAME, STATUS, PATH_PREFIX, URL, STRIP_PREFIX) -values ('23', 0, 'user-biz', '用户服务 - 业务接口', '1', '/api/v1/user/biz', 'http://localhost:8023/api/v1/biz', 1); - -update TB_MGT_ROUTE set URL='http://user-data-service-biz-svc.user-data-service.svc.cluster.local:8080/api/v1/biz' where ID='23'; - -commit; -*/ diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/10.1.init-flow.sql b/deploy-manifests/k8s-rancher/6.admin-platform/10.1.init-flow.sql deleted file mode 100644 index 019bfb5..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/10.1.init-flow.sql +++ /dev/null @@ -1,96 +0,0 @@ --- 10.1.init.sql - -/* -将 paas.example.com 替换为 paas.学校域名.edu.cn -*/ - --- 以下脚本为可选操作 - -/* - * 若部署了流程平台、门户的产品 - * 可初始化云平台下的相关菜单数据 - */ - -use admin_center; - --- flow --- 如果部署,流程平台,请处理 - -insert into TB_MGT_ROUTE (ID, DELETED, CODE, NAME, STATUS, PATH_PREFIX, URL, STRIP_PREFIX) -values ('50', 0, 'flow-api', '管理门户 - 流程接口', '1', '/api/v1/flow-release', 'http://formflow-formflow-svc.formflow.svc.cluster.local:8080/formflow', 1); - -commit; - -/* -update TB_MGT_ROUTE -set - URL='http://formflow.paas.example.com' -where ID='50'; -- todo, modify - -commit; -*/ - -insert into TB_MGT_ROLE (ID, DELETED, CODE, NAME, MEMO, STATUS) -values ('50', 0, 'flow-admin', '流程表单管理员', '', '1'); -insert into TB_MGT_ROLE (ID, DELETED, CODE, NAME, MEMO, STATUS) -values ('51', 0, 'flow-biz', '流程操作员', '业务、应用组、应用相关管理的操作人员', '1'); - -commit; - - -update TB_MGT_PERMISSION - set LFT = LFT+10 -where LFT>=82 -; - -update TB_MGT_PERMISSION - set RGT = RGT+10 -where RGT>=82 -; - - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, ICON, URL, APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('50000', 0, 'formflow-manager', '流程管理', '1', '2', '', '/', '1', '1', 50000, 1, 82, 91); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, ICON, URL, APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('50100', 0, 'formflow', '流程表单', '1', '2', 'su-icon-liuchengbiaodan', '/formflow', '1', '50000', 50100, 2, 83, 84); -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, ICON, URL, APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('50200', 0, 'workbench', '工作台', '1', '2', 'su-icon-gongzuotai', '/formflow/workbench', '1', '50000', 50200, 2, 85, 86); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, ICON, URL, APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('50300', 0, 'instanceManage', '实例管理', '1', '2', 'su-icon-shiliguanli', '/formflow/instanceManage', '1', '50000', 50300, 2, 87, 88); -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, ICON, URL, APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('50400', 0, 'agent', '代理代办', '0', '2', 'su-icon-dailidaiban', '/formflow/agent', '1', '50000', 50400, 2, 89, 90); - -commit; - - -insert into TB_MGT_ROLE_PERMISSION (ID, DELETED, ROLE_ID, PERMISSION_ID) - -select CONCAT('1_', ID) as ID, 0 as DELETED, '1' as ROLE_ID, ID as PERMISSION_ID -from TB_MGT_PERMISSION -where (ID like '5____' or ID='1') - and CONCAT('1_', ID) not in (select ID from TB_MGT_ROLE_PERMISSION) -; - -insert into TB_MGT_ROLE_PERMISSION (ID, DELETED, ROLE_ID, PERMISSION_ID) - -select CONCAT('50_', ID) as ID, 0 as DELETED, '50' as ROLE_ID, ID as PERMISSION_ID -from TB_MGT_PERMISSION -where (ID like '5____' or ID='1') - and CONCAT('50_', ID) not in (select ID from TB_MGT_ROLE_PERMISSION) -; - -commit; - - --- 更新 admin-platform 下菜单的访问域 - -update TB_MGT_PERMISSION -set - ORIGIN='http://admin-platform.paas.example.com' -where LFT >= 82 - and RGT <= 91 -; - -commit; diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/10.1.init-message.sql b/deploy-manifests/k8s-rancher/6.admin-platform/10.1.init-message.sql deleted file mode 100644 index 1a03689..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/10.1.init-message.sql +++ /dev/null @@ -1,105 +0,0 @@ --- 10.1.init-message.sql - - -/* -将 paas.example.com 替换为 paas.学校域名.edu.cn -*/ - --- 以下脚本为可选操作 - -/* - * 若部署了流程平台、门户的产品 - * 可初始化云平台下的相关菜单数据 - */ - -use admin_center; - --- message --- 如果部署,流程平台,请处理 - - -insert into TB_MGT_ROLE (ID, DELETED, CODE, NAME, MEMO, STATUS) -values ('80', 0, 'message-admin', '消息平台管理员', '', '1'); -insert into TB_MGT_ROLE (ID, DELETED, CODE, NAME, MEMO, STATUS) -values ('81', 0, 'message-opt', '消息平台操作员', '', '1'); - -commit; - - -/* -消息服务 message-backstage -名称 路由 图标 -消息网关管理 /message-backstage/msgGateWay su-icon-xiaoxiwangguan -短信模板管理 /message-backstage/SMSTemplateManage su-icon-mobanguanli -消息类别管理 /message-backstage/msgTypes su-icon-xiaoxileibie -消息任务监控 /message-backstage/msgTaskMonitor su-icon-renwujiankong -消息日志审计 /message-backstage/msgLogAudit su-icon-details -应用管理 /message-backstage/msgSoftManage su-icon-sort -敏感词管理 /message-backstage/SensitiveWords su-icon-lock-w -设置 /message-backstage/msgSendCondition su-icon-print -*/ - -update TB_MGT_PERMISSION - set LFT = LFT+18 -where LFT>=92 -; - -update TB_MGT_PERMISSION - set RGT = RGT+18 -where RGT>=92 -; - - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, ICON, URL, APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('80000', 0, 'message-backstage', '消息服务', '1', '2', '', '/', '1', '1', 80000, 1, 92, 109); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, ICON, URL, APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('80100', 0, 'formflow', '消息网关管理', '1', '2', 'su-icon-xiaoxiwangguan', '/message-backstage/msgGateWay', '1', '80000', 80100, 2, 93, 94); -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, ICON, URL, APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('80200', 0, 'workbench', '短信模板管理', '1', '2', 'su-icon-mobanguanli', '/message-backstage/SMSTemplateManage', '1', '80000', 80200, 2, 95, 96); -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, ICON, URL, APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('80300', 0, 'instanceManage', '消息类别管理', '1', '2', 'su-icon-xiaoxileibie', '/message-backstage/msgTypes', '1', '80000', 80300, 2, 97, 98); -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, ICON, URL, APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('80400', 0, 'agent', '消息任务监控', '1', '2', 'su-icon-renwujiankong', '/message-backstage/msgTaskMonitor', '1', '80000', 80400, 2, 99, 100); -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, ICON, URL, APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('80500', 0, 'agent', '消息日志审计', '1', '2', 'su-icon-details', '/message-backstage/msgLogAudit', '1', '80000', 80500, 2, 101, 102); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, ICON, URL, APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('80600', 0, 'agent', '应用管理', '1', '2', 'su-icon-sort', '/message-backstage/msgSoftManage', '1', '80000', 80600, 2, 103, 104); -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, ICON, URL, APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('80700', 0, 'agent', '敏感词管理', '1', '2', 'su-icon-lock-w', '/message-backstage/SensitiveWords', '1', '80000', 80700, 2, 105, 106); -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, ICON, URL, APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('80800', 0, 'agent', '设置', '1', '2', 'su-icon-print', '/message-backstage/msgSendCondition', '1', '80000', 80800, 2, 107, 108); - -commit; - - -insert into TB_MGT_ROLE_PERMISSION (ID, DELETED, ROLE_ID, PERMISSION_ID) - -select CONCAT('1_', ID) as ID, 0 as DELETED, '1' as ROLE_ID, ID as PERMISSION_ID -from TB_MGT_PERMISSION -where (ID like '8____' or ID='1') - and CONCAT('1_', ID) not in (select ID from TB_MGT_ROLE_PERMISSION) -; - -insert into TB_MGT_ROLE_PERMISSION (ID, DELETED, ROLE_ID, PERMISSION_ID) - -select CONCAT('80_', ID) as ID, 0 as DELETED, '50' as ROLE_ID, ID as PERMISSION_ID -from TB_MGT_PERMISSION -where (ID like '8____' or ID='1') - and CONCAT('80_', ID) not in (select ID from TB_MGT_ROLE_PERMISSION) -; - -commit; - - --- 更新 admin-platform 下菜单的访问域 - -update TB_MGT_PERMISSION -set - ORIGIN='http://admin-platform.paas.example.com' -where LFT >= 92 - and RGT <= 109 -; - -commit; diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/10.1.init-portal.sql b/deploy-manifests/k8s-rancher/6.admin-platform/10.1.init-portal.sql deleted file mode 100644 index d7357e6..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/10.1.init-portal.sql +++ /dev/null @@ -1,287 +0,0 @@ --- 10.1.init.sql - -/* -将 paas.example.com 替换为 paas.学校域名.edu.cn -*/ - --- 以下脚本为可选操作 - -/* - * 若部署了流程平台、门户的产品 - * 可初始化云平台下的相关菜单数据 - */ - -use admin_center; - --- portal --- 如果部署,门户V5,请处理 - -insert into TB_MGT_ROUTE (ID, DELETED, CODE, NAME, STATUS, PATH_PREFIX, URL, STRIP_PREFIX) -values ('60', 0, 'portal-api', '管理门户 - 门户接口', '1', '/api/v1/portal', 'http://ecampus.paas.example.com/', 1); - -commit; - - -update TB_MGT_ROUTE -set - URL='http://ecampus.paas.example.com' -where ID='60'; -- todo, modify - -commit; -/* -http://portal-web.portal.svc.cluster.local:8080/portal-web/api -*/ - - -insert into TB_MGT_ROLE (ID, DELETED, CODE, NAME, MEMO, STATUS) -values ('60', 0, 'portal-admin', '门户管理员', '', '1'); - -commit; - - -/* -update TB_MGT_PERMISSION - set LFT = LFT+10 -where LFT>=89 -; - -update TB_MGT_PERMISSION - set RGT = RGT+10 -where RGT>=89 -; -*/ - - -/* -门户管理 - web端管理 - 系统管理 - 组件模板 - 主题管理 - 主题方案 - 授权管理 - 角色管理 - 服务管理 - 服务管理 - 服务评价管理 - 标签分类管理 - CMS管理 - 幻灯片管理 - 栏目管理 - 内容管理 - 流程管理 - 模板管理 - 滚动公告管理 - 消息管理 - 第三方消息发送设置 - 消息类型管理 - 消息发送详情 -*/ - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('60', 0, 'portal-manage', '门户管理', '1', '1', 'el-icon-s-help', '/', - '60', '0', 60, 1, 93, 136); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6010000', 0, 'web', 'web端管理', - '1', '2', null, null, - '60', '60', 6010000, 1, 94, 105); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6010001', 0, 'web-systemManager', '系统管理', - '1', '2', 'su-icon-xitongguanli', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#web/systemManager/view.html', - '60', '6010000', 6010001, 2, 95, 96); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6010002', 0, 'web-widgetTemplate', '组件模板', - '1', '2', 'su-icon-zujianmoban', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#web/widgetTemplate/view.html', - '60', '6010000', 6010002, 2, 97, 98); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6010003', 0, 'web-themeManager', '主题管理', - '1', '2', 'su-icon-hutiguanli', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#web/themeManager/view.html', - '60', '6010000', 6010003, 2, 99, 100); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6010004', 0, 'web-themeScheme', '主题方案', - '1', '2', 'su-icon-zhutifangan', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#web/themeScheme/view.html', - '60', '6010000', 6010004, 2, 101, 102); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6010005', 0, 'web-oauthManager', 'oauth管理', - '1', '2', 'su-icon-authguanli', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#web/oauthManager/view.html', - '60', '6010000', 6010005, 2, 103, 104); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6020000', 0, 'auth', '授权管理', - '1', '2', null, null, - '60', '60', 6020000, 1, 106, 109); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6020003', 0, 'auth-roleManager', '角色管理', - '1', '2', 'su-icon-jiaoseguanli', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#auth/roleManager/view.html', - '60', '6020000', 6020003, 2, 107, 108); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6030000', 0, 'service', '服务管理', - '1', '2', null, null, - '60', '60', 6030000, 1, 110, 117); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6030001', 0, 'service-appservice', '服务管理', - '1', '2', 'su-icon-fuwuguanli', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#service/appservice/tabs.html', - '60', '6030000', 6030001, 2, 111, 112); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6030002', 0, 'service-evaluate', '服务评价管理', - '1', '2', 'su-icon-fuwupingjiaguanli', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#service/evaluate/form.html', - '60', '6030000', 6030002, 2, 113, 114); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6030003', 0, 'service-tagging', '标签分类管理', - '1', '2', 'su-icon-biaoqianfenleiguanli', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#service/tagging/form.html', - '60', '6030000', 6030003, 2, 115, 116); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6040000', 0, 'cms', 'CMS管理', - '1', '2', null, null, - '60', '60', 6040000, 1, 118, 131); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6040001', 0, 'cms-slide', '幻灯片管理', - '1', '2', 'su-icon-huandengpianguanli', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#cms/slide/list.html', - '60', '6040000', 6040001, 2, 119, 120); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6040002', 0, 'cms-column', '栏目管理', - '1', '2', 'su-icon-lanmuguanli', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#cms/column/list.html', - '60', '6040000', 6040002, 2, 121, 122); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6040003', 0, 'cms-content', '内容管理', - '1', '2', 'su-icon-neirongguanli', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#cms/content/list-manage.html', - '60', '6040000', 6040003, 2, 123, 124); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6040004', 0, 'cms-flow', '流程管理', - '1', '2', 'su-icon-liuchengguanli', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#cms/flow/list.html', - '60', '6040000', 6040004, 2, 125, 126); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6040005', 0, 'cms-template', '模板管理', - '1', '2', 'su-icon-mobanguanli', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#cms/template/list.html', - '60', '6040000', 6040005, 2, 127, 128); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6040006', 0, 'cms-notice', '滚动公告管理', - '1', '2', 'su-icon-gundonggonggaoguanli', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#cms/notice/list.html', - '60', '6040000', 6040006, 2, 129, 130); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6050000', 0, 'message', '消息管理', - '1', '2', null, null, - '60', '60', 6050000, 1, 132, 139); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6050001', 0, 'message-sendsetting', '第三方消息发送设置', - '1', '2', 'su-icon-disanfangxiaoxifasongshezhi', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#message/sendsetting/tabs.html', - '60', '6050000', 6050001, 2, 133, 134); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6050002', 0, 'message-type', '消息类型管理', - '1', '2', 'su-icon-xiaoxileixingguanli', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#message/type/form.html', - '60', '6050000', 6050002, 2, 135, 136); - -insert into TB_MGT_PERMISSION (ID, DELETED, CODE, NAME, - STATUS, TYPE_, ICON, URL, - APPLICATION_ID, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) -values ('6050003', 0, 'message-log', '消息发送详情', - '1', '2', 'su-icon-xiaoxifasongxiangqing', 'http://ecampus.paas.example.com/portal-web/html/admin/index.html#message/sendlog/list.html', - '60', '6050000', 6050003, 2, 137, 138); - - -commit; - - - -insert into TB_MGT_ROLE_PERMISSION (ID, DELETED, ROLE_ID, PERMISSION_ID) - -select CONCAT('1_', ID) as ID, 0 as DELETED, '1' as ROLE_ID, ID as PERMISSION_ID -from TB_MGT_PERMISSION -where ID like '60_____' or ID='60' -; - - - -insert into TB_MGT_ROLE_PERMISSION (ID, DELETED, ROLE_ID, PERMISSION_ID) - -select CONCAT('60_', ID) as ID, 0 as DELETED, '60' as ROLE_ID, ID as PERMISSION_ID -from TB_MGT_PERMISSION -where ID like '60_____' or ID='60' or ID='1' -; - -commit; - - -/* 更新 TB_MGT_PERMISSION 的 ORIGIN */ -/* -select * -from TB_MGT_PERMISSION -where LFT >= (select LFT from TB_MGT_PERMISSION where ID='1') - and RGT <= (select RGT from TB_MGT_PERMISSION where ID='1') -; -*/ - -update TB_MGT_PERMISSION -set - ORIGIN='http://ecampus.paas.example.com' -where APPLICATION_ID = '60' -; - -commit; - diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/0.admin-center-base.yaml b/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/0.admin-center-base.yaml deleted file mode 100644 index 9aeb1f2..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/0.admin-center-base.yaml +++ /dev/null @@ -1,188 +0,0 @@ -# admin-center-base.yaml - -# 在 rancher 中 命名空间 须手动创建 - -#################################################### -# namespace -#################################################### -apiVersion: v1 -kind: Namespace -metadata: - name: admin-center - # labels: - # istio-injection: enabled - - -#################################################### -# supwisdom harbor private docker registry -#################################################### ---- -apiVersion: v1 -kind: Secret -type: kubernetes.io/dockerconfigjson -metadata: - namespace: admin-center - name: harbor-registry -data: - # 修改harbor仓库配置,并使用 base64 工具进行编码 - # {"auths":{"harbor.supwisdom.com":{"password":"PWMgP85qiLFC","username":"rancher.devops"}}} - .dockerconfigjson: eyJhdXRocyI6eyJoYXJib3Iuc3Vwd2lzZG9tLmNvbSI6eyJwYXNzd29yZCI6IlBXTWdQODVxaUxGQyIsInVzZXJuYW1lIjoicmFuY2hlci5kZXZvcHMifX19 - - -#################################################### -# mysql-server -#################################################### ---- -apiVersion: v1 -kind: Service -metadata: - namespace: admin-center - name: mysql-server -spec: - ports: - - name: tcp-mysql - port: 3306 - protocol: TCP - targetPort: 3306 ---- -kind: Endpoints -apiVersion: v1 -metadata: - namespace: admin-center - name: mysql-server -subsets: - - addresses: - # 修改实际MySQL服务器的IP地址 - - ip: 172.30.104.82 - ports: - - name: tcp-mysql - port: 3306 - protocol: TCP - - -#################################################### -# redis-server -#################################################### - ---- -apiVersion: v1 -kind: Secret -metadata: - labels: - app: redis - release: redis-server - name: redis-server - namespace: admin-center -type: Opaque -data: - REDIS_PASSWORD: OEt1d29zbE9pdXc3SA== - ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: redis - release: redis-server - name: redis-server - namespace: admin-center -spec: - ports: - - name: redis - port: 6379 - protocol: TCP - targetPort: redis - selector: - app: redis - release: redis-server - role: master - type: ClusterIP ---- -apiVersion: apps/v1 -kind: StatefulSet -metadata: - labels: - app: redis - release: redis-server - name: redis-server - namespace: admin-center -spec: - podManagementPolicy: OrderedReady - replicas: 1 - revisionHistoryLimit: 10 - selector: - matchLabels: - app: redis - release: redis-server - role: master - serviceName: redis-master - template: - metadata: - labels: - app: redis - release: redis-server - role: master - spec: - containers: - - name: redis-server - env: - - name: REDIS_DISABLE_COMMANDS - value: FLUSHDB,FLUSHALL - - name: REDIS_REPLICATION_MODE - value: master - - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: redis-server - key: REDIS_PASSWORD - # 若使用了学校搭设的私有仓库,请修改 - image: bitnami/redis:4.0 - # 若使用了学校搭设的私有仓库,请修改 为 Always - imagePullPolicy: IfNotPresent - # imagePullPolicy: Always - livenessProbe: - exec: - command: - - redis-cli - - ping - failureThreshold: 5 - initialDelaySeconds: 30 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - ports: - - containerPort: 6379 - name: redis - protocol: TCP - readinessProbe: - exec: - command: - - redis-cli - - ping - failureThreshold: 5 - initialDelaySeconds: 5 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - volumeMounts: - - mountPath: /bitnami/redis/data - name: redis-data - dnsPolicy: ClusterFirst - restartPolicy: Always - securityContext: - fsGroup: 1001 - # runAsUser: 1001 - # https://github.com/bitnami/bitnami-docker-redis/issues/106#issuecomment-388884372 - runAsUser: 0 - terminationGracePeriodSeconds: 30 - volumes: - - emptyDir: {} - name: redis-data - # 若使用了学校搭设的私有仓库,请增加以下配置(取消注释即可) - # imagePullSecrets: - # - name: harbor-registry - updateStrategy: - rollingUpdate: - partition: 0 - type: RollingUpdate - diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/1.admin-center-env.yaml b/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/1.admin-center-env.yaml deleted file mode 100644 index faaad82..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/1.admin-center-env.yaml +++ /dev/null @@ -1,39 +0,0 @@ -# admin-center-env.yaml - ---- -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: admin-center - name: jvm-env -data: - MAX_RAM_PERCENTAGE: "75.0" - ---- -apiVersion: v1 -kind: Secret -metadata: - namespace: admin-center - name: datasource-env-secret -type: Opaque -data: - # jdbc:mysql://mysql-server:3306/admin_center?serverTimezone=Asia/Shanghai - JDBC_URL: amRiYzpteXNxbDovL215c3FsLXNlcnZlcjozMzA2L2FkbWluX2NlbnRlcj9zZXJ2ZXJUaW1lem9uZT1Bc2lhL1NoYW5naGFp - # admin_center - JDBC_USERNAME: YWRtaW5fY2VudGVy - # 修改为实际的数据库密码,并使用 base64 工具进行编码 - # kingstar - JDBC_PASSWORD: a2luZ3N0YXI= - ---- -apiVersion: v1 -kind: Secret -metadata: - namespace: admin-center - name: redis-env-secret -type: Opaque -data: - SPRING_REDIS_HOST: cmVkaXMtc2VydmVy - SPRING_REDIS_PORT: NjM3OQ== - SPRING_REDIS_PASSWORD: OEt1d29zbE9pdXc3SA== - diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/2.admin-center-ingresses.yaml b/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/2.admin-center-ingresses.yaml deleted file mode 100644 index ec07477..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/2.admin-center-ingresses.yaml +++ /dev/null @@ -1,62 +0,0 @@ -# admin-center-ingresses.yaml - - -# 云平台管理后端接口 ---- -apiVersion: extensions/v1beta1 -kind: Ingress -metadata: - namespace: admin-center - name: admin-center-ingress - annotations: - nginx.ingress.kubernetes.io/proxy-buffer-size: "8k" -spec: - rules: - # 修改为学校的根域名 - - host: admin-center.paas.xxx.edu.cn - http: - paths: - - path: / - backend: - serviceName: admin-center-zuul-svc - servicePort: http - - -# 云平台菜单开放接口 -# 暂时不使用,直接使用内部地址 -# --- -# apiVersion: extensions/v1beta1 -# kind: Ingress -# metadata: -# namespace: admin-center -# name: admin-center-api-ingress -# spec: -# rules: -# # 修改为学校的根域名 -# - host: admin-center-api.paas.xxx.edu.cn -# http: -# paths: -# - path: / -# backend: -# serviceName: admin-center-poa-svc -# servicePort: http - - -# 云平台管理前端 ---- -apiVersion: extensions/v1beta1 -kind: Ingress -metadata: - namespace: admin-center - name: admin-center-management-ingress -spec: - rules: - # 修改为学校的根域名 - - host: admin-management.paas.xxx.edu.cn - http: - paths: - - path: / - backend: - serviceName: admin-center-management-svc - servicePort: http - diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.0.admin-center-sa-installer.yaml b/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.0.admin-center-sa-installer.yaml deleted file mode 100644 index 7f456ce..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.0.admin-center-sa-installer.yaml +++ /dev/null @@ -1,47 +0,0 @@ -# admin-center-sa-installer.yaml - ---- -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: admin-center - name: admin-center-sa-installer-env -data: - DB_TYPE: mysql8 - - ---- -apiVersion: batch/v1 -kind: Job -metadata: - namespace: admin-center - name: admin-center-sa-installer -spec: - completions: 1 - parallelism: 1 - template: - metadata: - labels: - app: admin-center-sa-installer - spec: - restartPolicy: Never - containers: - - name: admin-center-sa-installer - # 若使用了学校搭设的私有仓库,请修改 - image: harbor.supwisdom.com/admin-center/admin-center-sa-installer:1.0.0-SNAPSHOT - imagePullPolicy: Always - envFrom: - - configMapRef: - name: jvm-env - - secretRef: - name: datasource-env-secret - - configMapRef: - name: admin-center-sa-installer-env - resources: - requests: - memory: "256Mi" - limits: - memory: "256Mi" - imagePullSecrets: - - name: harbor-registry - diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.1.admin-center-poa.yaml b/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.1.admin-center-poa.yaml deleted file mode 100644 index 1534603..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.1.admin-center-poa.yaml +++ /dev/null @@ -1,117 +0,0 @@ -# admin-center-poa.yaml - ---- -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: admin-center - name: admin-center-poa-env -data: - SERVER_PORT: "8080" - SSL_ENABLED: "false" - #SSL_KEYSTORE_FILE: file:/certs/server/server.keystore - #SSL_KEYSTORE_PASSWORD: "" - #SSL_TRUSTSTORE_FILE: file:/certs/server/server.truststore - #SSL_TRUSTSTORE_PASSWORD: "" - - SERVER_MAXHTTPHEADERSIZE: "10240" - - LOGGING_LEVEL_COM_SUPWISDOM_INSTITUTE_ADMIN_CENTER_POA: INFO - - - ADMIN_CENTER_SA_SERVER_URL: http://admin-center-sa-svc.admin-center.svc.cluster.local:8080 - ADMIN_CENTER_SA_CLIENT_AUTH_ENABLED: "false" - #ADMIN_CENTER_SA_CLIENT_AUTH_KEY_PASSWORD: "" - #ADMIN_CENTER_SA_CLIENT_AUTH_KEYSTORE_FILE: file:/certs/common/common.keystore - #ADMIN_CENTER_SA_CLIENT_AUTH_KEYSTORE_PASSWORD: "" - #ADMIN_CENTER_SA_CLIENT_AUTH_TRUSTSTORE_FILE: file:/certs/common/common.truststore - #ADMIN_CENTER_SA_CLIENT_AUTH_TRUSTSTORE_PASSWORD: "" - - USER_DATA_SERVICE_SERVER_URL: http://user-data-service-goa-svc.user-data-service.svc.cluster.local:8080 - USER_DATA_SERVICE_CLIENT_AUTH_ENABLED: "false" - #USER_DATA_SERVICE_CLIENT_AUTH_KEY_PASSWORD: "" - #USER_DATA_SERVICE_CLIENT_AUTH_KEYSTORE_FILE: file:/certs/common/common.keystore - #USER_DATA_SERVICE_CLIENT_AUTH_KEYSTORE_PASSWORD: "" - #USER_DATA_SERVICE_CLIENT_AUTH_TRUSTSTORE_FILE: file:/certs/common/common.truststore - #USER_DATA_SERVICE_CLIENT_AUTH_TRUSTSTORE_PASSWORD: "" - - USER_AUTHZ_SERVICE_SERVER_URL: http://user-authorization-sa-svc.user-authorization-service.svc.cluster.local:8080 - USER_AUTHZ_SERVICE_CLIENT_AUTH_ENABLED: "false" - #USER_AUTHZ_SERVICE_CLIENT_AUTH_KEY_PASSWORD: "" - #USER_AUTHZ_SERVICE_CLIENT_AUTH_KEYSTORE_FILE: file:/certs/common/common.keystore - #USER_AUTHZ_SERVICE_CLIENT_AUTH_KEYSTORE_PASSWORD: "" - #USER_AUTHZ_SERVICE_CLIENT_AUTH_TRUSTSTORE_FILE: file:/certs/common/common.truststore - #USER_AUTHZ_SERVICE_CLIENT_AUTH_TRUSTSTORE_PASSWORD: "" - - ---- -apiVersion: v1 -kind: Service -metadata: - namespace: admin-center - name: admin-center-poa-svc - labels: - app: admin-center-poa - needMonitor: 'true' -spec: - ports: - - port: 8080 - targetPort: http - protocol: TCP - name: http - - port: 6060 - targetPort: http-metrics - protocol: TCP - name: http-metrics - selector: - app: admin-center-poa - ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - namespace: admin-center - name: admin-center-poa -spec: - selector: - matchLabels: - app: admin-center-poa - replicas: 1 - template: - metadata: - labels: - app: admin-center-poa - spec: - containers: - - name: admin-center-poa - # 若使用了学校搭设的私有仓库,请修改 - image: harbor.supwisdom.com/admin-center/admin-center-poa:1.0.2-SNAPSHOT - imagePullPolicy: Always - ports: - - containerPort: 8080 - name: http - - containerPort: 6060 - name: http-metrics - envFrom: - - configMapRef: - name: jvm-env - - secretRef: - name: redis-env-secret - - configMapRef: - name: admin-center-poa-env - resources: - requests: - memory: "400Mi" - limits: - memory: "400Mi" - readinessProbe: - httpGet: - path: /actuator/health - port: 8080 - initialDelaySeconds: 20 - periodSeconds: 5 - timeoutSeconds: 5 - successThreshold: 1 - failureThreshold: 10 - imagePullSecrets: - - name: harbor-registry diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.2.admin-center-sa.yaml b/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.2.admin-center-sa.yaml deleted file mode 100644 index d7c8aee..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.2.admin-center-sa.yaml +++ /dev/null @@ -1,101 +0,0 @@ -# admin-center-sa.yaml - ---- -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: admin-center - name: admin-center-sa-env -data: - SERVER_PORT: "8080" - SSL_ENABLED: "false" - #SSL_KEYSTORE_FILE: file:/certs/server/server.keystore - #SSL_TRUSTSTORE_FILE: file:/certs/server/server.truststore - - SERVER_MAXHTTPHEADERSIZE: "10240" - ---- -apiVersion: v1 -kind: Secret -metadata: - namespace: admin-center - name: admin-center-sa-env-secret -type: Opaque -data: - #SSL_KEYSTORE_PASSWORD: "" - #SSL_TRUSTSTORE_PASSWORD: "" - - ---- -apiVersion: v1 -kind: Service -metadata: - namespace: admin-center - name: admin-center-sa-svc - labels: - app: admin-center-sa - needMonitor: 'true' -spec: - ports: - - port: 8080 - targetPort: http - protocol: TCP - name: http - - port: 6060 - targetPort: http-metrics - protocol: TCP - name: http-metrics - selector: - app: admin-center-sa ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - namespace: admin-center - name: admin-center-sa -spec: - selector: - matchLabels: - app: admin-center-sa - replicas: 1 - template: - metadata: - labels: - app: admin-center-sa - spec: - containers: - - name: admin-center-sa - # 若使用了学校搭设的私有仓库,请修改 - image: harbor.supwisdom.com/admin-center/admin-center-sa:1.0.0-SNAPSHOT - imagePullPolicy: Always - ports: - - containerPort: 8080 - name: http - - containerPort: 6060 - name: http-metrics - envFrom: - - configMapRef: - name: jvm-env - - secretRef: - name: datasource-env-secret - - secretRef: - name: admin-center-sa-env-secret - - configMapRef: - name: admin-center-sa-env - resources: - requests: - memory: "400Mi" - limits: - memory: "400Mi" - readinessProbe: - httpGet: - path: /actuator/health - port: 8080 - initialDelaySeconds: 20 - periodSeconds: 5 - timeoutSeconds: 5 - successThreshold: 1 - failureThreshold: 10 - imagePullSecrets: - - name: harbor-registry - diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.4.admin-center-bff.yaml b/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.4.admin-center-bff.yaml deleted file mode 100644 index f03a397..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.4.admin-center-bff.yaml +++ /dev/null @@ -1,143 +0,0 @@ -# admin-center-bff.yaml - ---- -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: admin-center - name: admin-center-bff-env -data: - SERVER_PORT: "8080" - SSL_ENABLED: "false" - #SSL_KEYSTORE_FILE: file:/certs/server/server.keystore - #SSL_KEYSTORE_PASSWORD: "" - #SSL_TRUSTSTORE_FILE: file:/certs/server/server.truststore - #SSL_TRUSTSTORE_PASSWORD: "" - - SERVER_MAXHTTPHEADERSIZE: "10240" - - LOGGING_LEVEL_COM_SUPWISDOM_INSTITUTE_ADMIN_CENTER_BFF: INFO - - - ADMIN_CENTER_SA_SERVER_URL: http://admin-center-sa-svc.admin-center.svc.cluster.local:8080 - ADMIN_CENTER_SA_CLIENT_AUTH_ENABLED: "false" - #ADMIN_CENTER_SA_CLIENT_AUTH_KEY_PASSWORD: "" - #ADMIN_CENTER_SA_CLIENT_AUTH_KEYSTORE_FILE: file:/certs/common/common.keystore - #ADMIN_CENTER_SA_CLIENT_AUTH_KEYSTORE_PASSWORD: "" - #ADMIN_CENTER_SA_CLIENT_AUTH_TRUSTSTORE_FILE: file:/certs/common/common.truststore - #ADMIN_CENTER_SA_CLIENT_AUTH_TRUSTSTORE_PASSWORD: "" - - CASSERVER_SA_API_SERVER_URL: http://cas-server-sa-api-svc.cas-server.svc.cluster.local:8080 - CASSERVER_SA_API_CLIENT_AUTH_ENABLED: "false" - #CASSERVER_SA_API_CLIENT_AUTH_KEY_PASSWORD: "" - #CASSERVER_SA_API_CLIENT_AUTH_KEYSTORE_FILE: file:/certs/common/common.keystore - #CASSERVER_SA_API_CLIENT_AUTH_KEYSTORE_PASSWORD: "" - #CASSERVER_SA_API_CLIENT_AUTH_TRUSTSTORE_FILE: file:/certs/common/common.truststore - #CASSERVER_SA_API_CLIENT_AUTH_TRUSTSTORE_PASSWORD: "" - - USER_DATA_SERVICE_SERVER_URL: http://user-data-service-goa-svc.user-data-service.svc.cluster.local:8080 - USER_DATA_SERVICE_CLIENT_AUTH_ENABLED: "false" - #USER_DATA_SERVICE_CLIENT_AUTH_KEY_PASSWORD: "" - #USER_DATA_SERVICE_CLIENT_AUTH_KEYSTORE_FILE: file:/certs/common/common.keystore - #USER_DATA_SERVICE_CLIENT_AUTH_KEYSTORE_PASSWORD: "" - #USER_DATA_SERVICE_CLIENT_AUTH_TRUSTSTORE_FILE: file:/certs/common/common.truststore - #USER_DATA_SERVICE_CLIENT_AUTH_TRUSTSTORE_PASSWORD: "" - - USER_AUTHZ_SERVICE_SERVER_URL: http://user-authorization-sa-svc.user-authorization-service.svc.cluster.local:8080 - USER_AUTHZ_SERVICE_CLIENT_AUTH_ENABLED: "false" - #USER_AUTHZ_SERVICE_CLIENT_AUTH_KEY_PASSWORD: "" - #USER_AUTHZ_SERVICE_CLIENT_AUTH_KEYSTORE_FILE: file:/certs/common/common.keystore - #USER_AUTHZ_SERVICE_CLIENT_AUTH_KEYSTORE_PASSWORD: "" - #USER_AUTHZ_SERVICE_CLIENT_AUTH_TRUSTSTORE_FILE: file:/certs/common/common.truststore - #USER_AUTHZ_SERVICE_CLIENT_AUTH_TRUSTSTORE_PASSWORD: "" - - # PERSONAL_SECURITY_CENTER_SERVER_URL: http://personal-security-center-sa-api-svc.personal-security-center.svc.cluster.local:8080 - # PERSONAL_SECURITY_CENTER_CLIENT_AUTH_ENABLED: "false" - #PERSONAL_SECURITY_CENTER_CLIENT_AUTH_KEY_PASSWORD: "" - #PERSONAL_SECURITY_CENTER_CLIENT_AUTH_KEYSTORE_FILE: file:/certs/common/common.keystore - #PERSONAL_SECURITY_CENTER_CLIENT_AUTH_KEYSTORE_PASSWORD: "" - #PERSONAL_SECURITY_CENTER_CLIENT_AUTH_TRUSTSTORE_FILE: file:/certs/common/common.truststore - #PERSONAL_SECURITY_CENTER_CLIENT_AUTH_TRUSTSTORE_PASSWORD: "" - - - TPAS_FILE_API_URL: http://agent-service-svc.thirdparty-agent-service.svc.cluster.local:8080/api/v1/tpas/file/db - TPAS_CLIENT_AUTH_ENABLED: "false" - #TPAS_CLIENT_AUTH_KEY_PASSWORD: "" - #TPAS_CLIENT_AUTH_KEYSTORE_FILE: file:/certs/client/client.keystore - #TPAS_CLIENT_AUTH_KEYSTORE_PASSWORD: "" - #TPAS_CLIENT_AUTH_TRUSTSTORE_FILE: file:/certs/client/client.truststore - #TPAS_CLIENT_AUTH_TRUSTSTORE_PASSWORD: "" - - ---- -apiVersion: v1 -kind: Service -metadata: - namespace: admin-center - name: admin-center-bff-svc - labels: - app: admin-center-bff - needMonitor: 'true' -spec: - ports: - - port: 8080 - targetPort: http - protocol: TCP - name: http - - port: 6060 - targetPort: http-metrics - protocol: TCP - name: http-metrics - selector: - app: admin-center-bff - ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - namespace: admin-center - name: admin-center-bff -spec: - selector: - matchLabels: - app: admin-center-bff - replicas: 1 - template: - metadata: - labels: - app: admin-center-bff - spec: - containers: - - name: admin-center-bff - # 若使用了学校搭设的私有仓库,请修改 - image: harbor.supwisdom.com/admin-center/admin-center-bff:1.0.2-SNAPSHOT - imagePullPolicy: Always - ports: - - containerPort: 8080 - name: http - - containerPort: 6060 - name: http-metrics - envFrom: - - configMapRef: - name: jvm-env - - secretRef: - name: redis-env-secret - - configMapRef: - name: admin-center-bff-env - resources: - requests: - memory: "400Mi" - limits: - memory: "400Mi" - readinessProbe: - httpGet: - path: /actuator/health - port: 8080 - initialDelaySeconds: 20 - periodSeconds: 5 - timeoutSeconds: 5 - successThreshold: 1 - failureThreshold: 10 - imagePullSecrets: - - name: harbor-registry - diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.5.admin-center-zuul.yaml b/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.5.admin-center-zuul.yaml deleted file mode 100644 index 71ed6d3..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.5.admin-center-zuul.yaml +++ /dev/null @@ -1,170 +0,0 @@ -# admin-center-zuul.yaml - ---- -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: admin-center - name: admin-center-zuul-env -data: - SERVER_PORT: "8080" - SSL_ENABLED: "false" - #SSL_KEYSTORE_FILE: file:/certs/server/server.keystore - #SSL_KEYSTORE_PASSWORD: "" - #SSL_TRUSTSTORE_FILE: file:/certs/server/server.truststore - #SSL_TRUSTSTORE_PASSWORD: "" - - SERVER_MAXHTTPHEADERSIZE: "10240" - - # SERVER_TOMCAT_MAX_CONNECTIONS: "10000" - # SERVER_TOMCAT_ACCEPT_COUNT: "5000" - # SERVER_TOMCAT_MAX_THREADS: "800" - # SERVER_TOMCAT_MIN_SPARE_THREADS: "100" - - # SPRING_REDIS_JEDIS_POOL_MAXACTIVE: "800" - - - ZUUL_HOST_MAX_PER_ROUTE_CONNECTIONS: "1000" - ZUUL_HOST_MAX_TOTAL_CONNECTIONS: "1000" - - ZUUL_SEMAPHORE_MAX_SEMAPHORES: "10000" - - - INFRAS_SECURITY_BASIC_ENABLED: "false" - - INFRAS_SECURITY_JWT_ENABLED: "true" - #INFRAS_SECURITY_JWT_KEY_ALIAS: "supwisdom-jwt-key" - #INFRAS_SECURITY_JWT_KEY_PASSWORD: "changeit" - #INFRAS_SECURITY_JWT_KEY_STORE: "file:/certs/jwt/jwt.keystore" - #INFRAS_SECURITY_JWT_KEY_STORE_PASSWORD: "changeit" - - INFRAS_SECURITY_JWT_TOKEN_GENERATE_TYPE: cas - INFRAS_SECURITY_JWT_TOKEN_DECRYPT_KEY_PRIVATE_KEY_PEM_PKCS8: "" - INFRAS_SECURITY_JWT_TOKEN_SIGNING_KEY_URL: "http://cas-server-site-webapp-svc.cas-server.svc.cluster.local:8080/cas/jwt/publicKey" - - - INFRAS_SECURITY_CAS_ENABLED: "true" - # 修改为学校的admin-center的访问域名 - APP_SERVER_HOST_URL: "http://admin-center.paas.xxx.edu.cn" - #APP_LOGIN_URL: "/cas/login" - #APP_LOGOUT_URL: "/cas/logout" - # 修改为学校的cas的访问域名 - CAS_SERVER_HOST_URL: "http://cas.paas.xxx.edu.cn/cas" - - - ZUUL_HTTPCLIENT_CLIENT_AUTH_ENABLED: "false" - #ZUUL_HTTPCLIENT_CLIENT_AUTH_KEY_PASSWORD: "" - #ZUUL_HTTPCLIENT_CLIENT_AUTH_KEYSTORE_FILE: file:/certs/common/common.keystore - #ZUUL_HTTPCLIENT_CLIENT_AUTH_KEYSTORE_PASSWORD: "" - - ADMIN_CENTER_SA_SERVER_URL: http://admin-center-sa-svc.admin-center.svc.cluster.local:8080 - ADMIN_CENTER_SA_CLIENT_AUTH_ENABLED: "false" - #ADMIN_CENTER_SA_CLIENT_AUTH_KEY_PASSWORD: "" - #ADMIN_CENTER_SA_CLIENT_AUTH_KEYSTORE_FILE: file:/certs/common/common.keystore - #ADMIN_CENTER_SA_CLIENT_AUTH_KEYSTORE_PASSWORD: "" - #ADMIN_CENTER_SA_CLIENT_AUTH_TRUSTSTORE_FILE: file:/certs/common/common.truststore - #ADMIN_CENTER_SA_CLIENT_AUTH_TRUSTSTORE_PASSWORD: "" - - USER_DATA_SERVICE_SERVER_URL: http://user-data-service-goa-svc.user-data-service.svc.cluster.local:8080 - USER_DATA_SERVICE_CLIENT_AUTH_ENABLED: "false" - #USER_DATA_SERVICE_CLIENT_AUTH_KEY_PASSWORD: "" - #USER_DATA_SERVICE_CLIENT_AUTH_KEYSTORE_FILE: file:/certs/common/common.keystore - #USER_DATA_SERVICE_CLIENT_AUTH_KEYSTORE_PASSWORD: "" - #USER_DATA_SERVICE_CLIENT_AUTH_TRUSTSTORE_FILE: file:/certs/common/common.truststore - #USER_DATA_SERVICE_CLIENT_AUTH_TRUSTSTORE_PASSWORD: "" - - USER_AUTHZ_SERVICE_SERVER_URL: http://user-authorization-sa-svc.user-authorization-service.svc.cluster.local:8080 - USER_AUTHZ_SERVICE_CLIENT_AUTH_ENABLED: "false" - #USER_AUTHZ_SERVICE_CLIENT_AUTH_KEY_PASSWORD: "" - #USER_AUTHZ_SERVICE_CLIENT_AUTH_KEYSTORE_FILE: file:/certs/common/common.keystore - #USER_AUTHZ_SERVICE_CLIENT_AUTH_KEYSTORE_PASSWORD: "" - #USER_AUTHZ_SERVICE_CLIENT_AUTH_TRUSTSTORE_FILE: file:/certs/common/common.truststore - #USER_AUTHZ_SERVICE_CLIENT_AUTH_TRUSTSTORE_PASSWORD: "" - ---- -apiVersion: v1 -kind: Secret -metadata: - namespace: admin-center - name: admin-center-zuul-env-secret -type: Opaque -data: - # 参考 certs/jwt/readme.md 生成公私钥pem,替换相关配置 - INFRAS_SECURITY_JWT_PUBLIC_KEY_PEM: LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FDcWUzYUpRVm1VNWY1VDhIdU1PcEloMjhrZQpNU3hpUkh2NXNNa29iVGd5T3VRaVVYVEJLS3JwUjVNUWFiaERFZG1WSHlVWFowUFRLRHJCYk9rWkVwTVRmbXBHCnBibE5hOHJkS0RRZG5MYVFLNHBkKzN1clJSdDQzYXhISTdQZHdnRmx3ZThybmYvZllVK3lpcWhDaFBjbkdSNXAKUE9hOE4xZFkzQXlwWWhZa2dRSURBUUFCCi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQ== - INFRAS_SECURITY_JWT_PRIVATE_KEY_PEM_PKCS8: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUNlQUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQW1Jd2dnSmVBZ0VBQW9HQkFLcDdkb2xCV1pUbC9sUHcKZTR3NmtpSGJ5UjR4TEdKRWUvbXd5U2h0T0RJNjVDSlJkTUVvcXVsSGt4QnB1RU1SMlpVZkpSZG5ROU1vT3NGcwo2UmtTa3hOK2FrYWx1VTFyeXQwb05CMmN0cEFyaWwzN2U2dEZHM2pkckVjanM5M0NBV1hCN3l1ZC85OWhUN0tLCnFFS0U5eWNaSG1rODVydzNWMWpjREtsaUZpU0JBZ01CQUFFQ2dZRUFuNXN2QXBrMzhQclIvR3ZzZndCbXgyUXAKQ2ljblVtaWpXTVIxejI5UmFWVlJOLy9pdXVRRC9wcVB5Skh4ZkhrOXB5cWRZeWUraS9YaDdDeTJuazZSZWVyMAowcG5lbUFJNFpNVnFaWW8rUHFIdU1ZSnRjS1ZpSHRLUElVZFVEaGpleE1iVjhPdXdFRjdDNERsNXhveXV6cUZvClZzRTFlaVNpVERmQWNUcmc4SEVDUVFEYjVrZU5FUUxtMEFPK0I3TDZvUi9URExHODZiaXU1Szc0VEVzMmphM0gKQ0JBa1FLUXJvMWwxS3c2Y1ZKcXlGR09SMEI1ZG9Mc2V2cVNTWVV5KytrZGpBa0VBeG5oUzh5SnF1Z3ordFV2ZApKMW1sSm9UbTFxNjFHNDBzTFhMY1RtU3F1a2dyTDBDMm1ycXJGQUF4MjF2ek83azF0NU44aEZUY1VnR3BMa015CjNiOGp5d0pBWEFBVk1XekxsUHUwaFIyOWdPUkdaMHNwVll0SFRFeTY4NEVmK3B2OTk0WmxFblhFK2NqbTFZR0YKSkZ5MU9Bb1Z1bHlqUjdMR2RzOTJGUlFHUXVSOVZ3SkJBS1JNUlhicS9la3BDczR3a0ZLYi9vQ2xzcWIwR0E5SAp6ZE9ONjF5bUwwTm9yUDlBRmlwKzcxTHVXbGVhaGYvaDhkc1hxQk93WUhjdTBzdnVhelJ3b0FNQ1FRQ05yM0FrCkZ6aUZBZGQvWkFmaFhpSURHemo1dlRCRkpaQ01TR1hXbVBJcTdnWEN0RUM4Y2VvRHhOY0JLRGtxeEQvaGJVcmwKZStmeDdqeE9kUXhwQkF1RQotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0t - - ---- -apiVersion: v1 -kind: Service -metadata: - namespace: admin-center - name: admin-center-zuul-svc - labels: - app: admin-center-zuul - needMonitor: 'true' -spec: - ports: - - port: 8080 - targetPort: http - protocol: TCP - name: http - - port: 6060 - targetPort: http-metrics - protocol: TCP - name: http-metrics - selector: - app: admin-center-zuul - ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - namespace: admin-center - name: admin-center-zuul -spec: - selector: - matchLabels: - app: admin-center-zuul - replicas: 1 - template: - metadata: - labels: - app: admin-center-zuul - spec: - containers: - - name: admin-center-zuul - # 若使用了学校搭设的私有仓库,请修改 - image: harbor.supwisdom.com/admin-center/admin-center-zuul:1.0.2-SNAPSHOT - imagePullPolicy: Always - ports: - - containerPort: 8080 - name: http - - containerPort: 6060 - name: http-metrics - envFrom: - - configMapRef: - name: jvm-env - - secretRef: - name: redis-env-secret - - secretRef: - name: admin-center-zuul-env-secret - - configMapRef: - name: admin-center-zuul-env - resources: - requests: - memory: "400Mi" - limits: - memory: "400Mi" - readinessProbe: - httpGet: - path: /actuator/health - port: 8080 - initialDelaySeconds: 20 - periodSeconds: 5 - timeoutSeconds: 5 - successThreshold: 1 - failureThreshold: 10 - imagePullSecrets: - - name: harbor-registry - diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.9.admin-center-management.yaml b/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.9.admin-center-management.yaml deleted file mode 100644 index 4684a8c..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/4.9.admin-center-management.yaml +++ /dev/null @@ -1,69 +0,0 @@ -# 4.9.admin-center-management.yaml - ---- -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: admin-center - name: admin-center-management-env -data: - SCHOOL_NAME: "none" - # 修改为学校的 admin-center 的访问域名 - AUTH_URL: http://admin-center.paas.xxx.edu.cn/jwt/cas - # 修改为学校的 admin-center 的访问域名 - BACKEND_URL: http://admin-center.paas.xxx.edu.cn - # 修改为学校的 admin-management 的访问域名 - SERVER_URL: http://admin-management.paas.xxx.edu.cn - - ---- -apiVersion: v1 -kind: Service -metadata: - namespace: admin-center - name: admin-center-management-svc - labels: - app: admin-center-management-svc -spec: - ports: - - port: 80 - targetPort: http - protocol: TCP - name: http - selector: - app: admin-center-management - ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - namespace: admin-center - name: admin-center-management -spec: - selector: - matchLabels: - app: admin-center-management - replicas: 1 - template: - metadata: - labels: - app: admin-center-management - spec: - containers: - - name: admin-center-management - # 若使用了学校搭设的私有仓库,请修改 - image: harbor.supwisdom.com/admin-center/admin-center-management:0.0.1-SNAPSHOT - imagePullPolicy: Always - ports: - - containerPort: 80 - name: http - envFrom: - - configMapRef: - name: admin-center-management-env - resources: - requests: - memory: "128Mi" - limits: - memory: "256Mi" - imagePullSecrets: - - name: harbor-registry diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/certs/jwt/readme.md b/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/certs/jwt/readme.md deleted file mode 100644 index 5ea3539..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/6.admin-center/certs/jwt/readme.md +++ /dev/null @@ -1,83 +0,0 @@ -# readme.md - - -## 使用 openssl 生成 公私钥 - - -1. 生成私钥 App Private Key - -必须为 RSA2(SHA256) - -```bash -openssl genrsa -out jwt_private_key.pem 1024 -``` - -2. 将私钥转换为 PKCS8 格式 - -```bash -openssl pkcs8 -topk8 -inform PEM -in jwt_private_key.pem -outform PEM -nocrypt -out jwt_private_key_pkcs8.pem -``` - -3. 导出公钥 App Public Key - -```bash -openssl rsa -in jwt_private_key.pem -pubout -out jwt_public_key.pem -``` - -4. 将 jwt_public_key.pem 中的内容,去除换行和空格,转成字符串。 - -处理前: -```language ------BEGIN PUBLIC KEY----- -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBr5wUHXSlLSFU17T4wDX8ehAI -2nnZxCc2SnpgfNwuR3jvViSVyr+Pd6JJEeMcl397qKjWqFD/CRlUSB/UEPQRxxbB -XVlXRB289KE9xteDk04bU17ILgX8Vz/7LFRLn2CpaCSICfWENhoMRJm7xIAodrI3 -FugvRF/6jdTQis2LcQIDAQAB ------END PUBLIC KEY----- -``` -处理后: -```language ------BEGIN PUBLIC KEY----- -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBr5wUHXSlLSFU17T4wDX8ehAI2nnZxCc2SnpgfNwuR3jvViSVyr+Pd6JJEeMcl397qKjWqFD/CRlUSB/UEPQRxxbBXVlXRB289KE9xteDk04bU17ILgX8Vz/7LFRLn2CpaCSICfWENhoMRJm7xIAodrI3FugvRF/6jdTQis2LcQIDAQAB ------END PUBLIC KEY----- -``` - -4. 将 jwt_private_key_pkcs8.pem 中的内容,去除换行和空格,转成字符串。 - -处理前: -```language ------BEGIN PRIVATE KEY----- -MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMGvnBQddKUtIVTX -tPjANfx6EAjaednEJzZKemB83C5HeO9WJJXKv493okkR4xyXf3uoqNaoUP8JGVRI -H9QQ9BHHFsFdWVdEHbz0oT3G14OTThtTXsguBfxXP/ssVEufYKloJIgJ9YQ2GgxE -mbvEgCh2sjcW6C9EX/qN1NCKzYtxAgMBAAECgYBKBSjq7w7jCUpRuFYrMpnvMV7r -Y0NqG/K4ZuI5+b3T2fC31v4IWQG4fIoCztky1hscUSqlTpIVxY5ujVnMm+YKMXs+ -qW2zyUdvoqUbFNAZstYatg6FQ7QlwXMDnIzlq6w5lEofsO46+0kH/d9IX+cPN0nH -04J1UKwg0ugyjYVUAQJBAP8di+ECIJkVTbi96JWMCfK1eYdxwe+8DEd7kcW2P6qU -/0fxP6qExkbFqPWQbJVNvOKmH5tVW5oi4Q7vaT4MzJECQQDCW4kMG7a6yBKRWZ1/ -hAixqumBv5FFCnL/yzqH6a5n8tb91vcQCwBGfu+YeQt8zVI56BTP4AJDF5KQu1vq -kcDhAkEA+YaHu2QeSDzrEShG5obbcBaKMK1WmEqg5AX8FZrleM5VRqOztvA5Ex3f -3ZgObJZlinYb8g2yE/fLk5UdpgBU0QJAFw+FU0p2g/L5QQXBCkBAR9RfoGV6dxam -TnNunnG7n9nQaI35Ao5LmhG1nAHAuy4hc311+rQ5kHxbh5Czd0GUAQJBALxZpqPZ -y7LrKmTbVLAdd0K1dQ3jWUsqk5HXwlxzrmmypn5ut41zwZQl0znyrv7XcfDZ6dqR -hh20uoiJ/Hfky6A= ------END PRIVATE KEY----- -``` -处理后: -```language ------BEGIN PRIVATE KEY----- -MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMGvnBQddKUtIVTXtPjANfx6EAjaednEJzZKemB83C5HeO9WJJXKv493okkR4xyXf3uoqNaoUP8JGVRIH9QQ9BHHFsFdWVdEHbz0oT3G14OTThtTXsguBfxXP/ssVEufYKloJIgJ9YQ2GgxEmbvEgCh2sjcW6C9EX/qN1NCKzYtxAgMBAAECgYBKBSjq7w7jCUpRuFYrMpnvMV7rY0NqG/K4ZuI5+b3T2fC31v4IWQG4fIoCztky1hscUSqlTpIVxY5ujVnMm+YKMXs+qW2zyUdvoqUbFNAZstYatg6FQ7QlwXMDnIzlq6w5lEofsO46+0kH/d9IX+cPN0nH04J1UKwg0ugyjYVUAQJBAP8di+ECIJkVTbi96JWMCfK1eYdxwe+8DEd7kcW2P6qU/0fxP6qExkbFqPWQbJVNvOKmH5tVW5oi4Q7vaT4MzJECQQDCW4kMG7a6yBKRWZ1/hAixqumBv5FFCnL/yzqH6a5n8tb91vcQCwBGfu+YeQt8zVI56BTP4AJDF5KQu1vqkcDhAkEA+YaHu2QeSDzrEShG5obbcBaKMK1WmEqg5AX8FZrleM5VRqOztvA5Ex3f3ZgObJZlinYb8g2yE/fLk5UdpgBU0QJAFw+FU0p2g/L5QQXBCkBAR9RfoGV6dxamTnNunnG7n9nQaI35Ao5LmhG1nAHAuy4hc311+rQ5kHxbh5Czd0GUAQJBALxZpqPZy7LrKmTbVLAdd0K1dQ3jWUsqk5HXwlxzrmmypn5ut41zwZQl0znyrv7XcfDZ6dqRhh20uoiJ/Hfky6A= ------END PRIVATE KEY----- -``` - - -5. (可选)将pem内容进行 base64 编码后,配置到k8s - -echo -n '-----BEGIN PUBLIC KEY----- -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBr5wUHXSlLSFU17T4wDX8ehAI2nnZxCc2SnpgfNwuR3jvViSVyr+Pd6JJEeMcl397qKjWqFD/CRlUSB/UEPQRxxbBXVlXRB289KE9xteDk04bU17ILgX8Vz/7LFRLn2CpaCSICfWENhoMRJm7xIAodrI3FugvRF/6jdTQis2LcQIDAQAB ------END PUBLIC KEY-----' |base64 - - -echo -n '-----BEGIN PRIVATE KEY----- -MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMGvnBQddKUtIVTXtPjANfx6EAjaednEJzZKemB83C5HeO9WJJXKv493okkR4xyXf3uoqNaoUP8JGVRIH9QQ9BHHFsFdWVdEHbz0oT3G14OTThtTXsguBfxXP/ssVEufYKloJIgJ9YQ2GgxEmbvEgCh2sjcW6C9EX/qN1NCKzYtxAgMBAAECgYBKBSjq7w7jCUpRuFYrMpnvMV7rY0NqG/K4ZuI5+b3T2fC31v4IWQG4fIoCztky1hscUSqlTpIVxY5ujVnMm+YKMXs+qW2zyUdvoqUbFNAZstYatg6FQ7QlwXMDnIzlq6w5lEofsO46+0kH/d9IX+cPN0nH04J1UKwg0ugyjYVUAQJBAP8di+ECIJkVTbi96JWMCfK1eYdxwe+8DEd7kcW2P6qU/0fxP6qExkbFqPWQbJVNvOKmH5tVW5oi4Q7vaT4MzJECQQDCW4kMG7a6yBKRWZ1/hAixqumBv5FFCnL/yzqH6a5n8tb91vcQCwBGfu+YeQt8zVI56BTP4AJDF5KQu1vqkcDhAkEA+YaHu2QeSDzrEShG5obbcBaKMK1WmEqg5AX8FZrleM5VRqOztvA5Ex3f3ZgObJZlinYb8g2yE/fLk5UdpgBU0QJAFw+FU0p2g/L5QQXBCkBAR9RfoGV6dxamTnNunnG7n9nQaI35Ao5LmhG1nAHAuy4hc311+rQ5kHxbh5Czd0GUAQJBALxZpqPZy7LrKmTbVLAdd0K1dQ3jWUsqk5HXwlxzrmmypn5ut41zwZQl0znyrv7XcfDZ6dqRhh20uoiJ/Hfky6A= ------END PRIVATE KEY-----' |base64 diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/7.admin-platform/0.admin-platform-base.yaml b/deploy-manifests/k8s-rancher/6.admin-platform/7.admin-platform/0.admin-platform-base.yaml deleted file mode 100644 index 3777c8e..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/7.admin-platform/0.admin-platform-base.yaml +++ /dev/null @@ -1,29 +0,0 @@ -# 0.admin-platform-base.yaml - -# 在 rancher 中 命名空间 须手动创建 - -#################################################### -# namespace -#################################################### -apiVersion: v1 -kind: Namespace -metadata: - name: admin-platform - # labels: - # istio-injection: enabled - - -#################################################### -# supwisdom harbor private docker registry -#################################################### ---- -apiVersion: v1 -kind: Secret -type: kubernetes.io/dockerconfigjson -metadata: - name: harbor-registry - namespace: admin-platform -data: - # 修改harbor仓库配置,并使用 base64 工具进行编码 - # {"auths":{"harbor.supwisdom.com":{"password":"PWMgP85qiLFC","username":"rancher.devops"}}} - .dockerconfigjson: eyJhdXRocyI6eyJoYXJib3Iuc3Vwd2lzZG9tLmNvbSI6eyJwYXNzd29yZCI6IlBXTWdQODVxaUxGQyIsInVzZXJuYW1lIjoicmFuY2hlci5kZXZvcHMifX19 diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/7.admin-platform/2.admin-platform-ingresses.yaml b/deploy-manifests/k8s-rancher/6.admin-platform/7.admin-platform/2.admin-platform-ingresses.yaml deleted file mode 100644 index f8c644b..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/7.admin-platform/2.admin-platform-ingresses.yaml +++ /dev/null @@ -1,36 +0,0 @@ -# 2.admin-platform-ingresses.yaml - ---- -apiVersion: extensions/v1beta1 -kind: Ingress -metadata: - name: admin-platform-ingress - namespace: admin-platform -spec: - rules: - # 修改为学校的根域名 - - host: admin-platform.paas.xxx.edu.cn - http: - paths: - - path: / - backend: - serviceName: admin-platform-svc - servicePort: http - - -# --- -# apiVersion: extensions/v1beta1 -# kind: Ingress -# metadata: -# name: personal-center-ingress -# namespace: admin-platform -# spec: -# rules: -# # 修改为学校的根域名 -# - host: personal-center.paas.supwisdom.com -# http: -# paths: -# - path: / -# backend: -# serviceName: personal-center-svc -# servicePort: http diff --git a/deploy-manifests/k8s-rancher/6.admin-platform/7.admin-platform/4.2.admin-platform.yaml b/deploy-manifests/k8s-rancher/6.admin-platform/7.admin-platform/4.2.admin-platform.yaml deleted file mode 100644 index c0f91f4..0000000 --- a/deploy-manifests/k8s-rancher/6.admin-platform/7.admin-platform/4.2.admin-platform.yaml +++ /dev/null @@ -1,74 +0,0 @@ -# 04-2-admin-platform.yaml - ---- -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: admin-platform - name: admin-platform-env -data: - # 修改为学校的 admin-platform 的访问域名 - LAYOUT_SPA_URL: http://admin-platform.paas.xxx.edu.cn/layout - CAS_SERVER_SPA_URL: http://admin-platform.paas.xxx.edu.cn/cas-server - USER_SERVER_SPA_URL: http://admin-platform.paas.xxx.edu.cn/user-server - AUTH_SERVER_SPA_URL: http://admin-platform.paas.xxx.edu.cn/auth-server - ACCOUNT_CENTER_SPA_URL: http://admin-platform.paas.xxx.edu.cn/account-center - FORM_FLOW_SPA_URL: http://admin-platform.paas.xxx.edu.cn/form-flow - - SCHOOL_NAME: "none" - MAIN_SERVER: http://admin-platform.paas.xxx.edu.cn - - # 修改为学校的访问域名 - SERVER_CONFIG: '{"ROOT": "http://admin-platform.paas.xxx.edu.cn/","AUTH": "http://admin-center.paas.xxx.edu.cn/jwt/cas","BASE_BACK_API": "http://admin-center.paas.xxx.edu.cn/","AUTH_PERSONAL": "http://admin-center.paas.xxx.edu.cn/jwt/cas","PERSONAL_CENTER_API": "http://admin-center.paas.xxx.edu.cn/","PERSONAL_CENTER": "http://admin-platform.paas.xxx.edu.cn/personal-center/","AUTH_FORMFLOW": "http://formflow.paas.xxx.edu.cn/release/cas/authen/redirect","FORM_DESIGN": "http://formflow.paas.xxx.edu.cn/form-design","FORM_DESIGN_PORTAL": "http://formflow.paas.xxx.edu.cn/form-design-portal","FORM_FILE": "http://formflow.paas.xxx.edu.cn/form-file","PERSONAL_CENTER_API_L": "http://portal.paas.xxx.edu.cn/portal-web/","PERSONAL_CENTER_IMAGE_API": "http://portal.paas.xxx.edu.cn/resources/",}' - ---- -apiVersion: v1 -kind: Service -metadata: - namespace: admin-platform - name: admin-platform-svc - labels: - app: admin-platform-svc -spec: - ports: - - port: 80 - targetPort: http - protocol: TCP - name: http - selector: - app: admin-platform - ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - namespace: admin-platform - name: admin-platform -spec: - selector: - matchLabels: - app: admin-platform - replicas: 1 - template: - metadata: - labels: - app: admin-platform - spec: - containers: - - name: admin-platform - # 若使用了学校搭设的私有仓库,请修改 - image: harbor.supwisdom.com/admin-platform/admin-platform:1.0.0 - imagePullPolicy: Always - ports: - - containerPort: 80 - name: http - envFrom: - - configMapRef: - name: admin-platform-env - resources: - requests: - memory: "128Mi" - limits: - memory: "256Mi" - imagePullSecrets: - - name: harbor-registry -- 2.17.1