From 9a61ef7ae6d971ab7566d58cf206195e2d9f7b35 Mon Sep 17 00:00:00 2001 From: dellnoantechnp Date: Thu, 11 Jul 2024 22:31:02 +0800 Subject: [PATCH] feat: add apollo chart. --- charts/apollo-portal/.helmignore | 23 - charts/apollo/Chart.yaml | 27 +- charts/apollo/init-db/apolloconfigdb.sql | 501 ++++++++++++++++++ charts/apollo/init-db/apolloportaldb.sql | 444 ++++++++++++++++ charts/apollo/templates/NOTES.txt | 30 +- charts/apollo/templates/_helpers.tpl | 122 ++++- .../admin-service/configmap-adminservice.yaml | 16 + .../deployment-adminservice.yaml | 22 +- .../ingress-adminservice.yaml | 0 .../service-adminservice.yaml | 21 +- .../configmap-configservice.yaml | 18 + .../deployment-configservice.yaml | 22 +- .../ingress-configservice.yaml | 0 .../service-configdb.yaml | 12 +- .../service-configservice.yaml | 21 +- .../templates/portal/configmap-portal.yaml | 24 + .../templates/portal}/deployment-portal.yaml | 77 +-- .../templates/portal}/ingress-portal.yaml | 16 +- .../templates/portal}/service-portal.yaml | 8 +- .../templates/portal}/service-portaldb.yaml | 12 +- charts/apollo/values.yaml | 155 +++++- 21 files changed, 1390 insertions(+), 181 deletions(-) create mode 100644 charts/apollo/init-db/apolloconfigdb.sql create mode 100644 charts/apollo/init-db/apolloportaldb.sql create mode 100644 charts/apollo/templates/admin-service/configmap-adminservice.yaml rename charts/apollo/templates/{ => admin-service}/deployment-adminservice.yaml (82%) rename charts/apollo/templates/{ => admin-service}/ingress-adminservice.yaml (100%) rename charts/apollo/templates/{ => admin-service}/service-adminservice.yaml (59%) create mode 100644 charts/apollo/templates/config-service/configmap-configservice.yaml rename charts/apollo/templates/{ => config-service}/deployment-configservice.yaml (77%) rename charts/apollo/templates/{ => config-service}/ingress-configservice.yaml (100%) rename charts/apollo/templates/{ => config-service}/service-configdb.yaml (79%) rename charts/apollo/templates/{ => config-service}/service-configservice.yaml (59%) create mode 100644 charts/apollo/templates/portal/configmap-portal.yaml rename charts/{apollo-portal/templates => apollo/templates/portal}/deployment-portal.yaml (54%) rename charts/{apollo-portal/templates => apollo/templates/portal}/ingress-portal.yaml (83%) rename charts/{apollo-portal/templates => apollo/templates/portal}/service-portal.yaml (80%) rename charts/{apollo-portal/templates => apollo/templates/portal}/service-portaldb.yaml (80%) diff --git a/charts/apollo-portal/.helmignore b/charts/apollo-portal/.helmignore index 0e8a0eb..e69de29 100644 --- a/charts/apollo-portal/.helmignore +++ b/charts/apollo-portal/.helmignore @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/charts/apollo/Chart.yaml b/charts/apollo/Chart.yaml index 98c4c84..4d8f513 100644 --- a/charts/apollo/Chart.yaml +++ b/charts/apollo/Chart.yaml @@ -1,12 +1,27 @@ apiVersion: v2 appVersion: 2.2.0 -description: A Helm chart for Apollo Config Service and Apollo Admin Service +annotations: + artifacthub.io/images: | + - name: apolloconfig/apollo-adminservice:2.2.0 + image: apolloconfig/apollo-adminservice:2.2.0 + artifacthub.io/links: | + - name: Chart Source + url: https://github.com/dellnoantechnp/helm-chart-xxl-job-admin/tree/main/charts +description: This Helm chart for Apollo Config Service, Apollo Admin Service and Apollo portal. home: https://github.com/apolloconfig/apollo icon: https://raw.githubusercontent.com/apolloconfig/apollo/master/apollo-portal/src/main/resources/static/img/logo-simple.png maintainers: -- email: nobodyiam@gmail.com - name: nobodyiam - url: https://github.com/nobodyiam -name: apollo-service +- email: dellnoantechnp@gmail.com + name: dellnoantechnp + url: https://github.com/dellnoantechnp/helm-chart-xxl-job-admin +name: apollo type: application -version: 0.7.0 +version: 0.7.1 +dependencies: + - name: common + repository: oci://registry-1.docker.io/bitnamicharts + tags: + - bitnami-common + version: 2.x.x +sources: + - https://github.com/apolloconfig/apollo \ No newline at end of file diff --git a/charts/apollo/init-db/apolloconfigdb.sql b/charts/apollo/init-db/apolloconfigdb.sql new file mode 100644 index 0000000..9f85a87 --- /dev/null +++ b/charts/apollo/init-db/apolloconfigdb.sql @@ -0,0 +1,501 @@ +-- +-- Copyright 2024 Apollo Authors +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- ${gists.autoGeneratedDeclaration} +-- ${gists.h2Function} +-- ${gists.setupDatabase} + +-- Dump of table app +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `App`; + +CREATE TABLE `App` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID', + `Name` varchar(500) NOT NULL DEFAULT 'default' COMMENT '应用名', + `OrgId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '部门Id', + `OrgName` varchar(64) NOT NULL DEFAULT 'default' COMMENT '部门名字', + `OwnerName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerName', + `OwnerEmail` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerEmail', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_AppId_DeletedAt` (`AppId`,`DeletedAt`), + KEY `DataChange_LastTime` (`DataChange_LastTime`), + KEY `IX_Name` (`Name`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用表'; + + + +-- Dump of table appnamespace +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `AppNamespace`; + +CREATE TABLE `AppNamespace` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `Name` varchar(32) NOT NULL DEFAULT '' COMMENT 'namespace名字,注意,需要全局唯一', + `AppId` varchar(64) NOT NULL DEFAULT '' COMMENT 'app id', + `Format` varchar(32) NOT NULL DEFAULT 'properties' COMMENT 'namespace的format类型', + `IsPublic` bit(1) NOT NULL DEFAULT b'0' COMMENT 'namespace是否为公共', + `Comment` varchar(64) NOT NULL DEFAULT '' COMMENT '注释', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_AppId_Name_DeletedAt` (`AppId`,`Name`,`DeletedAt`), + KEY `Name_AppId` (`Name`,`AppId`), + KEY `DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用namespace定义'; + + + +-- Dump of table audit +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `Audit`; + +CREATE TABLE `Audit` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `EntityName` varchar(50) NOT NULL DEFAULT 'default' COMMENT '表名', + `EntityId` int(10) unsigned DEFAULT NULL COMMENT '记录ID', + `OpName` varchar(50) NOT NULL DEFAULT 'default' COMMENT '操作类型', + `Comment` varchar(500) DEFAULT NULL COMMENT '备注', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + KEY `DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='日志审计表'; + + + +-- Dump of table cluster +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `Cluster`; + +CREATE TABLE `Cluster` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `Name` varchar(32) NOT NULL DEFAULT '' COMMENT '集群名字', + `AppId` varchar(64) NOT NULL DEFAULT '' COMMENT 'App id', + `ParentClusterId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父cluster', + `Comment` varchar(64) DEFAULT NULL COMMENT '备注', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_AppId_Name_DeletedAt` (`AppId`,`Name`,`DeletedAt`), + KEY `IX_ParentClusterId` (`ParentClusterId`), + KEY `DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='集群'; + + + +-- Dump of table commit +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `Commit`; + +CREATE TABLE `Commit` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `ChangeSets` longtext NOT NULL COMMENT '修改变更集', + `AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID', + `ClusterName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ClusterName', + `NamespaceName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'namespaceName', + `Comment` varchar(500) DEFAULT NULL COMMENT '备注', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + KEY `DataChange_LastTime` (`DataChange_LastTime`), + KEY `AppId` (`AppId`), + KEY `ClusterName` (`ClusterName`(191)), + KEY `NamespaceName` (`NamespaceName`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='commit 历史表'; + +-- Dump of table grayreleaserule +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `GrayReleaseRule`; + +CREATE TABLE `GrayReleaseRule` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID', + `ClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Cluster Name', + `NamespaceName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Namespace Name', + `BranchName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'branch name', + `Rules` varchar(16000) DEFAULT '[]' COMMENT '灰度规则', + `ReleaseId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '灰度对应的release', + `BranchStatus` tinyint(2) DEFAULT '1' COMMENT '灰度分支状态: 0:删除分支,1:正在使用的规则 2:全量发布', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + KEY `DataChange_LastTime` (`DataChange_LastTime`), + KEY `IX_Namespace` (`AppId`,`ClusterName`,`NamespaceName`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='灰度规则表'; + + +-- Dump of table instance +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `Instance`; + +CREATE TABLE `Instance` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID', + `ClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'ClusterName', + `DataCenter` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'Data Center Name', + `Ip` varchar(32) NOT NULL DEFAULT '' COMMENT 'instance ip', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `IX_UNIQUE_KEY` (`AppId`,`ClusterName`,`Ip`,`DataCenter`), + KEY `IX_IP` (`Ip`), + KEY `IX_DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='使用配置的应用实例'; + + + +-- Dump of table instanceconfig +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `InstanceConfig`; + +CREATE TABLE `InstanceConfig` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `InstanceId` int(11) unsigned DEFAULT NULL COMMENT 'Instance Id', + `ConfigAppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'Config App Id', + `ConfigClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Config Cluster Name', + `ConfigNamespaceName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Config Namespace Name', + `ReleaseKey` varchar(64) NOT NULL DEFAULT '' COMMENT '发布的Key', + `ReleaseDeliveryTime` timestamp NULL DEFAULT NULL COMMENT '配置获取时间', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `IX_UNIQUE_KEY` (`InstanceId`,`ConfigAppId`,`ConfigNamespaceName`), + KEY `IX_ReleaseKey` (`ReleaseKey`), + KEY `IX_DataChange_LastTime` (`DataChange_LastTime`), + KEY `IX_Valid_Namespace` (`ConfigAppId`,`ConfigClusterName`,`ConfigNamespaceName`,`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用实例的配置信息'; + + + +-- Dump of table item +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `Item`; + +CREATE TABLE `Item` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `NamespaceId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '集群NamespaceId', + `Key` varchar(128) NOT NULL DEFAULT 'default' COMMENT '配置项Key', + `Type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '配置项类型,0: String,1: Number,2: Boolean,3: JSON', + `Value` longtext NOT NULL COMMENT '配置项值', + `Comment` varchar(1024) DEFAULT '' COMMENT '注释', + `LineNum` int(10) unsigned DEFAULT '0' COMMENT '行号', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + KEY `IX_GroupId` (`NamespaceId`), + KEY `DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置项目'; + + + +-- Dump of table namespace +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `Namespace`; + +CREATE TABLE `Namespace` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID', + `ClusterName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'Cluster Name', + `NamespaceName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'Namespace Name', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_AppId_ClusterName_NamespaceName_DeletedAt` (`AppId`,`ClusterName`(191),`NamespaceName`(191),`DeletedAt`), + KEY `DataChange_LastTime` (`DataChange_LastTime`), + KEY `IX_NamespaceName` (`NamespaceName`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='命名空间'; + + + +-- Dump of table namespacelock +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `NamespaceLock`; + +CREATE TABLE `NamespaceLock` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', + `NamespaceId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '集群NamespaceId', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + `IsDeleted` bit(1) DEFAULT b'0' COMMENT '软删除', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_NamespaceId_DeletedAt` (`NamespaceId`,`DeletedAt`), + KEY `DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='namespace的编辑锁'; + + + +-- Dump of table release +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `Release`; + +CREATE TABLE `Release` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `ReleaseKey` varchar(64) NOT NULL DEFAULT '' COMMENT '发布的Key', + `Name` varchar(64) NOT NULL DEFAULT 'default' COMMENT '发布名字', + `Comment` varchar(256) DEFAULT NULL COMMENT '发布说明', + `AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID', + `ClusterName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ClusterName', + `NamespaceName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'namespaceName', + `Configurations` longtext NOT NULL COMMENT '发布配置', + `IsAbandoned` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否废弃', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_ReleaseKey_DeletedAt` (`ReleaseKey`,`DeletedAt`), + KEY `AppId_ClusterName_GroupName` (`AppId`,`ClusterName`(191),`NamespaceName`(191)), + KEY `DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='发布'; + + +-- Dump of table releasehistory +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `ReleaseHistory`; + +CREATE TABLE `ReleaseHistory` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID', + `ClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'ClusterName', + `NamespaceName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'namespaceName', + `BranchName` varchar(32) NOT NULL DEFAULT 'default' COMMENT '发布分支名', + `ReleaseId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '关联的Release Id', + `PreviousReleaseId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '前一次发布的ReleaseId', + `Operation` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '发布类型,0: 普通发布,1: 回滚,2: 灰度发布,3: 灰度规则更新,4: 灰度合并回主分支发布,5: 主分支发布灰度自动发布,6: 主分支回滚灰度自动发布,7: 放弃灰度', + `OperationContext` longtext NOT NULL COMMENT '发布上下文信息', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + KEY `IX_Namespace` (`AppId`,`ClusterName`,`NamespaceName`,`BranchName`), + KEY `IX_ReleaseId` (`ReleaseId`), + KEY `IX_DataChange_LastTime` (`DataChange_LastTime`), + KEY `IX_PreviousReleaseId` (`PreviousReleaseId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='发布历史'; + + +-- Dump of table releasemessage +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `ReleaseMessage`; + +CREATE TABLE `ReleaseMessage` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `Message` varchar(1024) NOT NULL DEFAULT '' COMMENT '发布的消息内容', + `DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + KEY `DataChange_LastTime` (`DataChange_LastTime`), + KEY `IX_Message` (`Message`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='发布消息'; + + + +-- Dump of table serverconfig +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `ServerConfig`; + +CREATE TABLE `ServerConfig` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `Key` varchar(64) NOT NULL DEFAULT 'default' COMMENT '配置项Key', + `Cluster` varchar(32) NOT NULL DEFAULT 'default' COMMENT '配置对应的集群,default为不针对特定的集群', + `Value` varchar(2048) NOT NULL DEFAULT 'default' COMMENT '配置项值', + `Comment` varchar(1024) DEFAULT '' COMMENT '注释', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_Key_Cluster_DeletedAt` (`Key`,`Cluster`,`DeletedAt`), + KEY `DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置服务自身配置'; + +-- Dump of table accesskey +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `AccessKey`; + +CREATE TABLE `AccessKey` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID', + `Secret` varchar(128) NOT NULL DEFAULT '' COMMENT 'Secret', + `IsEnabled` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: enabled, 0: disabled', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_AppId_Secret_DeletedAt` (`AppId`,`Secret`,`DeletedAt`), + KEY `DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='访问密钥'; + + +-- Dump of table serviceregistry +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `ServiceRegistry`; + +CREATE TABLE `ServiceRegistry` ( + `Id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `ServiceName` VARCHAR(64) NOT NULL COMMENT '服务名', + `Uri` VARCHAR(64) NOT NULL COMMENT '服务地址', + `Cluster` VARCHAR(64) NOT NULL COMMENT '集群,可以用来标识apollo.cluster或者网络分区', + `Metadata` VARCHAR(1024) NOT NULL DEFAULT '{}' COMMENT '元数据,key value结构的json object,为了方面后面扩展功能而不需要修改表结构', + `DataChange_CreatedTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE INDEX `IX_UNIQUE_KEY` (`ServiceName`, `Uri`), + INDEX `IX_DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='注册中心'; + +-- Dump of table AuditLog +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `AuditLog`; + +CREATE TABLE `AuditLog` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `TraceId` varchar(32) NOT NULL DEFAULT '' COMMENT '链路全局唯一ID', + `SpanId` varchar(32) NOT NULL DEFAULT '' COMMENT '跨度ID', + `ParentSpanId` varchar(32) DEFAULT NULL COMMENT '父跨度ID', + `FollowsFromSpanId` varchar(32) DEFAULT NULL COMMENT '上一个兄弟跨度ID', + `Operator` varchar(64) NOT NULL DEFAULT 'anonymous' COMMENT '操作人', + `OpType` varchar(50) NOT NULL DEFAULT 'default' COMMENT '操作类型', + `OpName` varchar(150) NOT NULL DEFAULT 'default' COMMENT '操作名称', + `Description` varchar(200) DEFAULT NULL COMMENT '备注', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) DEFAULT NULL COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + KEY `IX_TraceId` (`TraceId`), + KEY `IX_OpName` (`OpName`), + KEY `IX_DataChange_CreatedTime` (`DataChange_CreatedTime`), + KEY `IX_Operator` (`Operator`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审计日志表'; + +-- Dump of table AuditLogDataInfluence +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `AuditLogDataInfluence`; + +CREATE TABLE `AuditLogDataInfluence` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `SpanId` char(32) NOT NULL DEFAULT '' COMMENT '跨度ID', + `InfluenceEntityId` varchar(50) NOT NULL DEFAULT '0' COMMENT '记录ID', + `InfluenceEntityName` varchar(50) NOT NULL DEFAULT 'default' COMMENT '表名', + `FieldName` varchar(50) DEFAULT NULL COMMENT '字段名称', + `FieldOldValue` varchar(500) DEFAULT NULL COMMENT '字段旧值', + `FieldNewValue` varchar(500) DEFAULT NULL COMMENT '字段新值', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) DEFAULT NULL COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + KEY `IX_SpanId` (`SpanId`), + KEY `IX_DataChange_CreatedTime` (`DataChange_CreatedTime`), + KEY `IX_EntityId` (`InfluenceEntityId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审计日志数据变动表'; + +-- Config +-- ------------------------------------------------------------ +INSERT INTO `ServerConfig` (`Key`, `Cluster`, `Value`, `Comment`) +VALUES + ('eureka.service.url', 'default', 'http://localhost:8080/eureka/', 'Eureka服务Url,多个service以英文逗号分隔'), + ('namespace.lock.switch', 'default', 'false', '一次发布只能有一个人修改开关'), + ('item.key.length.limit', 'default', '128', 'item key 最大长度限制'), + ('item.value.length.limit', 'default', '20000', 'item value最大长度限制'), + ('config-service.cache.enabled', 'default', 'false', 'ConfigService是否开启缓存,开启后能提高性能,但是会增大内存消耗!'); + +-- ${gists.autoGeneratedDeclaration} + +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/charts/apollo/init-db/apolloportaldb.sql b/charts/apollo/init-db/apolloportaldb.sql new file mode 100644 index 0000000..323a819 --- /dev/null +++ b/charts/apollo/init-db/apolloportaldb.sql @@ -0,0 +1,444 @@ +-- +-- Copyright 2024 Apollo Authors +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- ${gists.autoGeneratedDeclaration} +-- ${gists.h2Function} +-- ${gists.setupDatabase} + +-- Dump of table app +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `App`; + +CREATE TABLE `App` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID', + `Name` varchar(500) NOT NULL DEFAULT 'default' COMMENT '应用名', + `OrgId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '部门Id', + `OrgName` varchar(64) NOT NULL DEFAULT 'default' COMMENT '部门名字', + `OwnerName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerName', + `OwnerEmail` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerEmail', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_AppId_DeletedAt` (`AppId`,`DeletedAt`), + KEY `DataChange_LastTime` (`DataChange_LastTime`), + KEY `IX_Name` (`Name`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用表'; + + + +-- Dump of table appnamespace +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `AppNamespace`; + +CREATE TABLE `AppNamespace` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `Name` varchar(32) NOT NULL DEFAULT '' COMMENT 'namespace名字,注意,需要全局唯一', + `AppId` varchar(64) NOT NULL DEFAULT '' COMMENT 'app id', + `Format` varchar(32) NOT NULL DEFAULT 'properties' COMMENT 'namespace的format类型', + `IsPublic` bit(1) NOT NULL DEFAULT b'0' COMMENT 'namespace是否为公共', + `Comment` varchar(64) NOT NULL DEFAULT '' COMMENT '注释', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_AppId_Name_DeletedAt` (`AppId`,`Name`,`DeletedAt`), + KEY `Name_AppId` (`Name`,`AppId`), + KEY `DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用namespace定义'; + + + +-- Dump of table consumer +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `Consumer`; + +CREATE TABLE `Consumer` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID', + `Name` varchar(500) NOT NULL DEFAULT 'default' COMMENT '应用名', + `OrgId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '部门Id', + `OrgName` varchar(64) NOT NULL DEFAULT 'default' COMMENT '部门名字', + `OwnerName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerName', + `OwnerEmail` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerEmail', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_AppId_DeletedAt` (`AppId`,`DeletedAt`), + KEY `DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='开放API消费者'; + + + +-- Dump of table consumeraudit +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `ConsumerAudit`; + +CREATE TABLE `ConsumerAudit` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `ConsumerId` int(11) unsigned DEFAULT NULL COMMENT 'Consumer Id', + `Uri` varchar(1024) NOT NULL DEFAULT '' COMMENT '访问的Uri', + `Method` varchar(16) NOT NULL DEFAULT '' COMMENT '访问的Method', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + KEY `IX_DataChange_LastTime` (`DataChange_LastTime`), + KEY `IX_ConsumerId` (`ConsumerId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='consumer审计表'; + + + +-- Dump of table consumerrole +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `ConsumerRole`; + +CREATE TABLE `ConsumerRole` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `ConsumerId` int(11) unsigned DEFAULT NULL COMMENT 'Consumer Id', + `RoleId` int(10) unsigned DEFAULT NULL COMMENT 'Role Id', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_ConsumerId_RoleId_DeletedAt` (`ConsumerId`,`RoleId`,`DeletedAt`), + KEY `IX_DataChange_LastTime` (`DataChange_LastTime`), + KEY `IX_RoleId` (`RoleId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='consumer和role的绑定表'; + + + +-- Dump of table consumertoken +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `ConsumerToken`; + +CREATE TABLE `ConsumerToken` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `ConsumerId` int(11) unsigned DEFAULT NULL COMMENT 'ConsumerId', + `Token` varchar(128) NOT NULL DEFAULT '' COMMENT 'token', + `Expires` datetime NOT NULL DEFAULT '2099-01-01 00:00:00' COMMENT 'token失效时间', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_Token_DeletedAt` (`Token`,`DeletedAt`), + KEY `DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='consumer token表'; + +-- Dump of table favorite +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `Favorite`; + +CREATE TABLE `Favorite` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `UserId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '收藏的用户', + `AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID', + `Position` int(32) NOT NULL DEFAULT '10000' COMMENT '收藏顺序', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_UserId_AppId_DeletedAt` (`UserId`,`AppId`,`DeletedAt`), + KEY `AppId` (`AppId`), + KEY `DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COMMENT='应用收藏表'; + +-- Dump of table permission +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `Permission`; + +CREATE TABLE `Permission` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `PermissionType` varchar(32) NOT NULL DEFAULT '' COMMENT '权限类型', + `TargetId` varchar(256) NOT NULL DEFAULT '' COMMENT '权限对象类型', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_TargetId_PermissionType_DeletedAt` (`TargetId`,`PermissionType`,`DeletedAt`), + KEY `IX_DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='permission表'; + + + +-- Dump of table role +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `Role`; + +CREATE TABLE `Role` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `RoleName` varchar(256) NOT NULL DEFAULT '' COMMENT 'Role name', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_RoleName_DeletedAt` (`RoleName`,`DeletedAt`), + KEY `IX_DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色表'; + + + +-- Dump of table rolepermission +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `RolePermission`; + +CREATE TABLE `RolePermission` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `RoleId` int(10) unsigned DEFAULT NULL COMMENT 'Role Id', + `PermissionId` int(10) unsigned DEFAULT NULL COMMENT 'Permission Id', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_RoleId_PermissionId_DeletedAt` (`RoleId`,`PermissionId`,`DeletedAt`), + KEY `IX_DataChange_LastTime` (`DataChange_LastTime`), + KEY `IX_PermissionId` (`PermissionId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色和权限的绑定表'; + + + +-- Dump of table serverconfig +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `ServerConfig`; + +CREATE TABLE `ServerConfig` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `Key` varchar(64) NOT NULL DEFAULT 'default' COMMENT '配置项Key', + `Value` varchar(2048) NOT NULL DEFAULT 'default' COMMENT '配置项值', + `Comment` varchar(1024) DEFAULT '' COMMENT '注释', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_Key_DeletedAt` (`Key`,`DeletedAt`), + KEY `DataChange_LastTime` (`DataChange_LastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置服务自身配置'; + + + +-- Dump of table userrole +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `UserRole`; + +CREATE TABLE `UserRole` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `UserId` varchar(128) DEFAULT '' COMMENT '用户身份标识', + `RoleId` int(10) unsigned DEFAULT NULL COMMENT 'Role Id', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_UserId_RoleId_DeletedAt` (`UserId`,`RoleId`,`DeletedAt`), + KEY `IX_DataChange_LastTime` (`DataChange_LastTime`), + KEY `IX_RoleId` (`RoleId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户和role的绑定表'; + +-- Dump of table Users +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `Users`; + +CREATE TABLE `Users` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `Username` varchar(64) NOT NULL DEFAULT 'default' COMMENT '用户登录账户', + `Password` varchar(512) NOT NULL DEFAULT 'default' COMMENT '密码', + `UserDisplayName` varchar(512) NOT NULL DEFAULT 'default' COMMENT '用户名称', + `Email` varchar(64) NOT NULL DEFAULT 'default' COMMENT '邮箱地址', + `Enabled` tinyint(4) DEFAULT NULL COMMENT '是否有效', + PRIMARY KEY (`Id`), + UNIQUE KEY `UK_Username` (`Username`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表'; + + +-- Dump of table Authorities +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `Authorities`; + +CREATE TABLE `Authorities` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id', + `Username` varchar(64) NOT NULL, + `Authority` varchar(50) NOT NULL, + PRIMARY KEY (`Id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- spring session (https://github.com/spring-projects/spring-session/blob/faee8f1bdb8822a5653a81eba838dddf224d92d6/spring-session-jdbc/src/main/resources/org/springframework/session/jdbc/schema-mysql.sql) +-- Dump of table SPRING_SESSION +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `SPRING_SESSION`; + +CREATE TABLE `SPRING_SESSION` ( + `PRIMARY_ID` char(36) NOT NULL, + `SESSION_ID` char(36) NOT NULL, + `CREATION_TIME` bigint NOT NULL, + `LAST_ACCESS_TIME` bigint NOT NULL, + `MAX_INACTIVE_INTERVAL` int NOT NULL, + `EXPIRY_TIME` bigint NOT NULL, + `PRINCIPAL_NAME` varchar(100) DEFAULT NULL, + PRIMARY KEY (`PRIMARY_ID`), + UNIQUE KEY `SPRING_SESSION_IX1` (`SESSION_ID`), + KEY `SPRING_SESSION_IX2` (`EXPIRY_TIME`), + KEY `SPRING_SESSION_IX3` (`PRINCIPAL_NAME`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; + +-- Dump of table SPRING_SESSION_ATTRIBUTES +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `SPRING_SESSION_ATTRIBUTES`; + +CREATE TABLE `SPRING_SESSION_ATTRIBUTES` ( + `SESSION_PRIMARY_ID` char(36) NOT NULL, + `ATTRIBUTE_NAME` varchar(200) NOT NULL, + `ATTRIBUTE_BYTES` blob NOT NULL, + PRIMARY KEY (`SESSION_PRIMARY_ID`,`ATTRIBUTE_NAME`), + CONSTRAINT `SPRING_SESSION_ATTRIBUTES_FK` FOREIGN KEY (`SESSION_PRIMARY_ID`) REFERENCES `SPRING_SESSION` (`PRIMARY_ID`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; + +-- Dump of table AuditLog +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `AuditLog`; + +CREATE TABLE `AuditLog` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `TraceId` varchar(32) NOT NULL DEFAULT '' COMMENT '链路全局唯一ID', + `SpanId` varchar(32) NOT NULL DEFAULT '' COMMENT '跨度ID', + `ParentSpanId` varchar(32) DEFAULT NULL COMMENT '父跨度ID', + `FollowsFromSpanId` varchar(32) DEFAULT NULL COMMENT '上一个兄弟跨度ID', + `Operator` varchar(64) NOT NULL DEFAULT 'anonymous' COMMENT '操作人', + `OpType` varchar(50) NOT NULL DEFAULT 'default' COMMENT '操作类型', + `OpName` varchar(150) NOT NULL DEFAULT 'default' COMMENT '操作名称', + `Description` varchar(200) DEFAULT NULL COMMENT '备注', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) DEFAULT NULL COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + KEY `IX_TraceId` (`TraceId`), + KEY `IX_OpName` (`OpName`), + KEY `IX_DataChange_CreatedTime` (`DataChange_CreatedTime`), + KEY `IX_Operator` (`Operator`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审计日志表'; + +-- Dump of table AuditLogDataInfluence +-- ------------------------------------------------------------ + +DROP TABLE IF EXISTS `AuditLogDataInfluence`; + +CREATE TABLE `AuditLogDataInfluence` ( + `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `SpanId` char(32) NOT NULL DEFAULT '' COMMENT '跨度ID', + `InfluenceEntityId` varchar(50) NOT NULL DEFAULT '0' COMMENT '记录ID', + `InfluenceEntityName` varchar(50) NOT NULL DEFAULT 'default' COMMENT '表名', + `FieldName` varchar(50) DEFAULT NULL COMMENT '字段名称', + `FieldOldValue` varchar(500) DEFAULT NULL COMMENT '字段旧值', + `FieldNewValue` varchar(500) DEFAULT NULL COMMENT '字段新值', + `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal', + `DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds', + `DataChange_CreatedBy` varchar(64) DEFAULT NULL COMMENT '创建人邮箱前缀', + `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人邮箱前缀', + `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + PRIMARY KEY (`Id`), + KEY `IX_SpanId` (`SpanId`), + KEY `IX_DataChange_CreatedTime` (`DataChange_CreatedTime`), + KEY `IX_EntityId` (`InfluenceEntityId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审计日志数据变动表'; + +-- Config +-- ------------------------------------------------------------ +INSERT INTO `ServerConfig` (`Key`, `Value`, `Comment`) +VALUES + ('apollo.portal.envs', 'dev', '可支持的环境列表'), + ('organizations', '[{"orgId":"TEST1","orgName":"样例部门1"},{"orgId":"TEST2","orgName":"样例部门2"}]', '部门列表'), + ('superAdmin', 'apollo', 'Portal超级管理员'), + ('api.readTimeout', '10000', 'http接口read timeout'), + ('consumer.token.salt', 'someSalt', 'consumer token salt'), + ('admin.createPrivateNamespace.switch', 'true', '是否允许项目管理员创建私有namespace'), + ('configView.memberOnly.envs', 'pro', '只对项目成员显示配置信息的环境列表,多个env以英文逗号分隔'), + ('apollo.portal.meta.servers', '{}', '各环境Meta Service列表'); + + +INSERT INTO `Users` (`Username`, `Password`, `UserDisplayName`, `Email`, `Enabled`) +VALUES + ('apollo', '$2a$10$7r20uS.BQ9uBpf3Baj3uQOZvMVvB1RN3PYoKE94gtz2.WAOuiiwXS', 'apollo', 'apollo@acme.com', 1); + +INSERT INTO `Authorities` (`Username`, `Authority`) VALUES ('apollo', 'ROLE_user'); + +-- ${gists.autoGeneratedDeclaration} + +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/charts/apollo/templates/NOTES.txt b/charts/apollo/templates/NOTES.txt index db165c1..8e4a8b1 100644 --- a/charts/apollo/templates/NOTES.txt +++ b/charts/apollo/templates/NOTES.txt @@ -27,6 +27,34 @@ Ingress: {{- end }} {{- end }} + +Portal url for current release: +{{- if contains "NodePort" .Values.portal.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "apollo.portal.fullName" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.portal.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "apollo.portal.fullName" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "apollo.portal.serviceName" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.portal.service.port }} +{{- else if contains "ClusterIP" .Values.portal.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ include "apollo.portal.fullName" . }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8070 to use your application" + kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8070:8070 +{{- end }} + +{{- if .Values.portal.ingress.enabled }} + +Ingress: +{{- range $host := .Values.portal.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.portal.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }} + {{- end }} +{{- end }} +{{- end }} + + Urls registered to meta service: Config service: {{ include "apollo.configService.serviceUrl" .}} -Admin service: {{ include "apollo.adminService.serviceUrl" .}} +Admin service: {{ include "apollo.adminService.serviceUrl" .}} \ No newline at end of file diff --git a/charts/apollo/templates/_helpers.tpl b/charts/apollo/templates/_helpers.tpl index 4850f22..3a710b3 100644 --- a/charts/apollo/templates/_helpers.tpl +++ b/charts/apollo/templates/_helpers.tpl @@ -1,26 +1,61 @@ {{/* vim: set filetype=mustache: */}} +{{- define "apollo.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "apollo.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "apollo.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + {{/* Common labels */}} {{- define "apollo.service.labels" -}} -{{- if .Chart.AppVersion -}} +app.kubernetes.io/name: {{ include "apollo.name" . }} +helm.sh/chart: {{ include "apollo.chart" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- if .Chart.AppVersion }} app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} {{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} {{- end -}} + + {{/* Service name for configdb */}} {{- define "apollo.configdb.serviceName" -}} -{{- if .Values.configdb.service.enabled -}} -{{- if .Values.configdb.service.fullNameOverride -}} -{{- .Values.configdb.service.fullNameOverride | trunc 63 | trimSuffix "-" -}} +{{- if .Values.db.configdb.service.enabled -}} +{{- if .Values.db.configdb.service.fullNameOverride -}} +{{- .Values.db.configdb.service.fullNameOverride | trunc 63 | trimSuffix "-" -}} {{- else -}} -{{- printf "%s-%s" .Release.Name .Values.configdb.name | trunc 63 | trimSuffix "-" -}} +{{- printf "%s-%s" .Release.Name .Values.db.configdb.name | trunc 63 | trimSuffix "-" -}} {{- end -}} {{- else -}} -{{- .Values.configdb.host -}} +{{- .Values.db.configdb.host -}} {{- end -}} {{- end -}} @@ -28,10 +63,10 @@ Service name for configdb Service port for configdb */}} {{- define "apollo.configdb.servicePort" -}} -{{- if .Values.configdb.service.enabled -}} -{{- .Values.configdb.service.port -}} +{{- if .Values.db.configdb.service.enabled -}} +{{- .Values.db.configdb.service.port -}} {{- else -}} -{{- .Values.configdb.port -}} +{{- .Values.db.configdb.port -}} {{- end -}} {{- end -}} @@ -108,3 +143,72 @@ Admin service url to be accessed by apollo-portal http://{{ include "apollo.adminService.serviceName" .}}.{{ .Release.Namespace }}:{{ .Values.adminService.service.port }}{{ .Values.adminService.config.contextPath }} {{- end -}} {{- end -}} + + + + +{{/* +Portal +*/}} +{{/* vim: set filetype=mustache: */}} + +{{/* +Full name for apollo-portal +*/}} +{{- define "apollo.portal.fullName" -}} +{{- if .Values.fullNameOverride -}} +{{- .Values.fullNameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- if contains .Values.portal.name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name .Values.portal.name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Common labels +*/}} +{{- define "apollo.portal.labels" -}} +{{- if .Chart.AppVersion -}} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +{{- end -}} + +{{/* +Service name for portal +*/}} +{{- define "apollo.portal.serviceName" -}} +{{- if .Values.portal.service.fullNameOverride -}} +{{- .Values.portal.service.fullNameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{ include "apollo.portal.fullName" .}} +{{- end -}} +{{- end -}} + +{{/* +Service name for portaldb +*/}} +{{- define "apollo.portaldb.serviceName" -}} +{{- if .Values.db.portaldb.service.enabled -}} +{{- if .Values.db.portaldb.service.fullNameOverride -}} +{{- .Values.db.portaldb.service.fullNameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name .Values.db.portaldb.name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- else -}} +{{- .Values.db.portaldb.host -}} +{{- end -}} +{{- end -}} + +{{/* +Service port for portaldb +*/}} +{{- define "apollo.portaldb.servicePort" -}} +{{- if .Values.db.portaldb.service.enabled -}} +{{- .Values.db.portaldb.service.port -}} +{{- else -}} +{{- .Values.db.portaldb.port -}} +{{- end -}} +{{- end -}} diff --git a/charts/apollo/templates/admin-service/configmap-adminservice.yaml b/charts/apollo/templates/admin-service/configmap-adminservice.yaml new file mode 100644 index 0000000..e1e8f4e --- /dev/null +++ b/charts/apollo/templates/admin-service/configmap-adminservice.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + {{- $adminServiceFullName := include "apollo.adminService.fullName" . }} + name: {{ $adminServiceFullName }} + labels: + app.kubernetes.io/component: adminService + {{- include "apollo.service.labels" . | nindent 4 }} +data: + application-github.properties: | + spring.datasource.url = jdbc:mysql://{{include "apollo.configdb.serviceName" .}}:{{include "apollo.configdb.servicePort" .}}/{{ .Values.db.configdb.dbName }}{{ if .Values.db.configdb.connectionStringProperties }}?{{ .Values.db.configdb.connectionStringProperties }}{{ end }} + spring.datasource.username = {{ required "configdb.userName is required!" .Values.db.configdb.userName | quote }} + spring.datasource.password = {{ required "configdb.password is required!" .Values.db.configdb.password | quote }} + {{- if .Values.adminService.config.contextPath }} + server.servlet.context-path = {{ .Values.adminService.config.contextPath }} + {{- end }} \ No newline at end of file diff --git a/charts/apollo/templates/deployment-adminservice.yaml b/charts/apollo/templates/admin-service/deployment-adminservice.yaml similarity index 82% rename from charts/apollo/templates/deployment-adminservice.yaml rename to charts/apollo/templates/admin-service/deployment-adminservice.yaml index 2c8bb7a..ece42cc 100644 --- a/charts/apollo/templates/deployment-adminservice.yaml +++ b/charts/apollo/templates/admin-service/deployment-adminservice.yaml @@ -13,29 +13,15 @@ # See the License for the specific language governing permissions and # limitations under the License. # ---- -# configmap for apollo-adminservice -kind: ConfigMap -apiVersion: v1 -metadata: - {{- $adminServiceFullName := include "apollo.adminService.fullName" . }} - name: {{ $adminServiceFullName }} -data: - application-github.properties: | - spring.datasource.url = jdbc:mysql://{{include "apollo.configdb.serviceName" .}}:{{include "apollo.configdb.servicePort" .}}/{{ .Values.configdb.dbName }}{{ if .Values.configdb.connectionStringProperties }}?{{ .Values.configdb.connectionStringProperties }}{{ end }} - spring.datasource.username = {{ required "configdb.userName is required!" .Values.configdb.userName }} - spring.datasource.password = {{ required "configdb.password is required!" .Values.configdb.password }} - {{- if .Values.adminService.config.contextPath }} - server.servlet.context-path = {{ .Values.adminService.config.contextPath }} - {{- end }} - ---- -kind: Deployment apiVersion: apps/v1 +kind: Deployment metadata: + {{- $adminServiceFullName := include "apollo.adminService.fullName" . }} name: {{ $adminServiceFullName }} labels: {{- include "apollo.service.labels" . | nindent 4 }} + annotations: + checksum/config: {{ include (print $.Template.BasePath "/admin-service/configmap-adminservice.yaml") . | sha256sum }} spec: replicas: {{ .Values.adminService.replicaCount }} selector: diff --git a/charts/apollo/templates/ingress-adminservice.yaml b/charts/apollo/templates/admin-service/ingress-adminservice.yaml similarity index 100% rename from charts/apollo/templates/ingress-adminservice.yaml rename to charts/apollo/templates/admin-service/ingress-adminservice.yaml diff --git a/charts/apollo/templates/service-adminservice.yaml b/charts/apollo/templates/admin-service/service-adminservice.yaml similarity index 59% rename from charts/apollo/templates/service-adminservice.yaml rename to charts/apollo/templates/admin-service/service-adminservice.yaml index b9b3af9..dc1a29d 100644 --- a/charts/apollo/templates/service-adminservice.yaml +++ b/charts/apollo/templates/admin-service/service-adminservice.yaml @@ -13,18 +13,29 @@ # See the License for the specific language governing permissions and # limitations under the License. # -kind: Service apiVersion: v1 +kind: Service metadata: name: {{ include "apollo.adminService.serviceName" . }} labels: {{- include "apollo.service.labels" . | nindent 4 }} spec: - type: {{ .Values.adminService.service.type }} +{{- with .Values.adminService.service }} + type: {{ .type }} + {{- if and (eq .type "LoadBalancer") .externalTrafficPolicy }} + externalTrafficPolicy: {{ .externalTrafficPolicy }} + {{- end }} + {{- if and (eq .type "LoadBalancer") .loadBalancerIP }} + loadBalancerIP: {{ .externalTrafficPolicy }} + {{- end }} ports: - name: http protocol: TCP - port: {{ .Values.adminService.service.port }} - targetPort: {{ .Values.adminService.service.targetPort }} + port: {{ .port }} + targetPort: http + {{- if and (or (eq .type "NodePort") (eq .type "LoadBalancer")) .nodePort }} + nodePort: {{ .nodePort }} + {{- end }} selector: - app: {{ include "apollo.adminService.fullName" . }} \ No newline at end of file + app: {{ include "apollo.adminService.fullName" $ }} +{{- end }} \ No newline at end of file diff --git a/charts/apollo/templates/config-service/configmap-configservice.yaml b/charts/apollo/templates/config-service/configmap-configservice.yaml new file mode 100644 index 0000000..9deb74b --- /dev/null +++ b/charts/apollo/templates/config-service/configmap-configservice.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + {{- $configServiceFullName := include "apollo.configService.fullName" . }} + name: {{ $configServiceFullName }} + labels: + app.kubernetes.io/component: configService + {{- include "apollo.service.labels" . | nindent 4 }} +data: + application-github.properties: | + spring.datasource.url = jdbc:mysql://{{include "apollo.configdb.serviceName" .}}:{{include "apollo.configdb.servicePort" .}}/{{ .Values.db.configdb.dbName }}{{ if .Values.db.configdb.connectionStringProperties }}?{{ .Values.db.configdb.connectionStringProperties }}{{ end }} + spring.datasource.username = {{ required "configdb.userName is required!" .Values.db.configdb.userName | quote }} + spring.datasource.password = {{ required "configdb.password is required!" .Values.db.configdb.password | quote }} + apollo.config-service.url = {{ include "apollo.configService.serviceUrl" .}} + apollo.admin-service.url = {{ include "apollo.adminService.serviceUrl" .}} + {{- if .Values.configService.config.contextPath }} + server.servlet.context-path = {{ .Values.configService.config.contextPath }} + {{- end }} \ No newline at end of file diff --git a/charts/apollo/templates/deployment-configservice.yaml b/charts/apollo/templates/config-service/deployment-configservice.yaml similarity index 77% rename from charts/apollo/templates/deployment-configservice.yaml rename to charts/apollo/templates/config-service/deployment-configservice.yaml index 9158152..8b73dbd 100644 --- a/charts/apollo/templates/deployment-configservice.yaml +++ b/charts/apollo/templates/config-service/deployment-configservice.yaml @@ -13,31 +13,15 @@ # See the License for the specific language governing permissions and # limitations under the License. # ---- -# configmap for apollo-configservice -kind: ConfigMap -apiVersion: v1 -metadata: - {{- $configServiceFullName := include "apollo.configService.fullName" . }} - name: {{ $configServiceFullName }} -data: - application-github.properties: | - spring.datasource.url = jdbc:mysql://{{include "apollo.configdb.serviceName" .}}:{{include "apollo.configdb.servicePort" .}}/{{ .Values.configdb.dbName }}{{ if .Values.configdb.connectionStringProperties }}?{{ .Values.configdb.connectionStringProperties }}{{ end }} - spring.datasource.username = {{ required "configdb.userName is required!" .Values.configdb.userName }} - spring.datasource.password = {{ required "configdb.password is required!" .Values.configdb.password }} - apollo.config-service.url = {{ include "apollo.configService.serviceUrl" .}} - apollo.admin-service.url = {{ include "apollo.adminService.serviceUrl" .}} - {{- if .Values.configService.config.contextPath }} - server.servlet.context-path = {{ .Values.configService.config.contextPath }} - {{- end }} - ---- +{{- $configServiceFullName := include "apollo.configService.fullName" . }} kind: Deployment apiVersion: apps/v1 metadata: name: {{ $configServiceFullName }} labels: {{- include "apollo.service.labels" . | nindent 4 }} + annotations: + checksum/config: {{ include (print $.Template.BasePath "/config-service/configmap-configservice.yaml") . | sha256sum }} spec: replicas: {{ .Values.configService.replicaCount }} selector: diff --git a/charts/apollo/templates/ingress-configservice.yaml b/charts/apollo/templates/config-service/ingress-configservice.yaml similarity index 100% rename from charts/apollo/templates/ingress-configservice.yaml rename to charts/apollo/templates/config-service/ingress-configservice.yaml diff --git a/charts/apollo/templates/service-configdb.yaml b/charts/apollo/templates/config-service/service-configdb.yaml similarity index 79% rename from charts/apollo/templates/service-configdb.yaml rename to charts/apollo/templates/config-service/service-configdb.yaml index 3443599..017ee19 100644 --- a/charts/apollo/templates/service-configdb.yaml +++ b/charts/apollo/templates/config-service/service-configdb.yaml @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # -{{- if .Values.configdb.service.enabled -}} +{{- if .Values.db.configdb.service.enabled -}} --- # service definition for mysql kind: Service @@ -25,12 +25,12 @@ metadata: spec: type: {{ .Values.configdb.service.type }} {{- if eq .Values.configdb.service.type "ExternalName" }} - externalName: {{ required "configdb.host is required!" .Values.configdb.host }} + externalName: {{ required "configdb.host is required!" .Values.db.configdb.host }} {{- else }} ports: - protocol: TCP - port: {{ .Values.configdb.service.port }} - targetPort: {{ .Values.configdb.port }} + port: {{ .Values.db.configdb.service.port }} + targetPort: {{ .Values.db.configdb.port }} --- kind: Endpoints apiVersion: v1 @@ -38,9 +38,9 @@ metadata: name: {{include "apollo.configdb.serviceName" .}} subsets: - addresses: - - ip: {{ required "configdb.host is required!" .Values.configdb.host }} + - ip: {{ required "configdb.host is required!" .Values.db.configdb.host }} ports: - protocol: TCP - port: {{ .Values.configdb.port }} + port: {{ .Values.db.configdb.port }} {{- end }} {{- end }} \ No newline at end of file diff --git a/charts/apollo/templates/service-configservice.yaml b/charts/apollo/templates/config-service/service-configservice.yaml similarity index 59% rename from charts/apollo/templates/service-configservice.yaml rename to charts/apollo/templates/config-service/service-configservice.yaml index 0ceab16..7da4fea 100644 --- a/charts/apollo/templates/service-configservice.yaml +++ b/charts/apollo/templates/config-service/service-configservice.yaml @@ -13,18 +13,29 @@ # See the License for the specific language governing permissions and # limitations under the License. # -kind: Service apiVersion: v1 +kind: Service metadata: name: {{ include "apollo.configService.serviceName" . }} labels: {{- include "apollo.service.labels" . | nindent 4 }} spec: - type: {{ .Values.configService.service.type }} +{{- with .Values.configService.service }} + type: {{ .type }} + {{- if and (eq .type "LoadBalancer") .externalTrafficPolicy }} + externalTrafficPolicy: {{ .externalTrafficPolicy }} + {{- end }} + {{- if and (eq .type "LoadBalancer") .loadBalancerIP }} + loadBalancerIP: {{ .externalTrafficPolicy }} + {{- end }} ports: - name: http protocol: TCP - port: {{ .Values.configService.service.port }} - targetPort: {{ .Values.configService.service.targetPort }} + port: {{ .port }} + targetPort: http + {{- if and (or (eq .type "NodePort") (eq .type "LoadBalancer")) .nodePort }} + nodePort: {{ .nodePort }} + {{- end }} selector: - app: {{ include "apollo.configService.fullName" . }} \ No newline at end of file + app: {{ include "apollo.configService.fullName" $ }} +{{- end }} \ No newline at end of file diff --git a/charts/apollo/templates/portal/configmap-portal.yaml b/charts/apollo/templates/portal/configmap-portal.yaml new file mode 100644 index 0000000..c35c622 --- /dev/null +++ b/charts/apollo/templates/portal/configmap-portal.yaml @@ -0,0 +1,24 @@ +kind: ConfigMap +apiVersion: v1 +metadata: + {{- $portalFullName := include "apollo.portal.fullName" . }} + name: {{ $portalFullName }} +data: + application-github.properties: | + spring.datasource.url = jdbc:mysql://{{include "apollo.portaldb.serviceName" .}}:{{include "apollo.portaldb.servicePort" .}}/{{ .Values.db.portaldb.dbName }}{{ if .Values.db.portaldb.connectionStringProperties }}?{{ .Values.db.portaldb.connectionStringProperties }}{{ end }} + spring.datasource.username = {{ required "portaldb.userName is required!" .Values.db.portaldb.userName }} + spring.datasource.password = {{ required "portaldb.password is required!" .Values.db.portaldb.password }} + {{- if .Values.portal.config.envs }} + apollo.portal.envs = {{ .Values.portal.config.envs }} + {{- end }} + {{- if .Values.portal.config.contextPath }} + server.servlet.context-path = {{ .Values.portal.config.contextPath }} + {{- end }} + apollo-env.properties: | + {{- range $env, $address := .Values.portal.config.metaServers }} + {{ $env }}.meta = {{ $address }} + {{- end }} +{{- range $fileName, $content := .Values.portal.config.files }} +{{ $fileName | indent 2 }}: | +{{ $content | indent 4 }} +{{- end }} \ No newline at end of file diff --git a/charts/apollo-portal/templates/deployment-portal.yaml b/charts/apollo/templates/portal/deployment-portal.yaml similarity index 54% rename from charts/apollo-portal/templates/deployment-portal.yaml rename to charts/apollo/templates/portal/deployment-portal.yaml index c79bbc7..4ede62a 100644 --- a/charts/apollo-portal/templates/deployment-portal.yaml +++ b/charts/apollo/templates/portal/deployment-portal.yaml @@ -13,46 +13,21 @@ # See the License for the specific language governing permissions and # limitations under the License. # ---- -# configmap for apollo-portal -kind: ConfigMap -apiVersion: v1 -metadata: - {{- $portalFullName := include "apollo.portal.fullName" . }} - name: {{ $portalFullName }} -data: - application-github.properties: | - spring.datasource.url = jdbc:mysql://{{include "apollo.portaldb.serviceName" .}}:{{include "apollo.portaldb.servicePort" .}}/{{ .Values.portaldb.dbName }}{{ if .Values.portaldb.connectionStringProperties }}?{{ .Values.portaldb.connectionStringProperties }}{{ end }} - spring.datasource.username = {{ required "portaldb.userName is required!" .Values.portaldb.userName }} - spring.datasource.password = {{ required "portaldb.password is required!" .Values.portaldb.password }} - {{- if .Values.config.envs }} - apollo.portal.envs = {{ .Values.config.envs }} - {{- end }} - {{- if .Values.config.contextPath }} - server.servlet.context-path = {{ .Values.config.contextPath }} - {{- end }} - apollo-env.properties: | - {{- range $env, $address := .Values.config.metaServers }} - {{ $env }}.meta = {{ $address }} - {{- end }} -{{- range $fileName, $content := .Values.config.files }} -{{ $fileName | indent 2 }}: | -{{ $content | indent 4 }} -{{- end }} - ---- -kind: Deployment apiVersion: apps/v1 +kind: Deployment metadata: + {{- $portalFullName := include "apollo.portal.fullName" . }} name: {{ $portalFullName }} labels: {{- include "apollo.portal.labels" . | nindent 4 }} + annotations: + checksum/config: {{ include (print $.Template.BasePath "/portal/configmap-portal.yaml") . | sha256sum }} spec: - replicas: {{ .Values.replicaCount }} + replicas: {{ .Values.portal.replicaCount }} selector: matchLabels: app: {{ $portalFullName }} - {{- with .Values.strategy }} + {{- with .Values.portal.strategy }} strategy: {{- toYaml . | nindent 4 }} {{- end }} @@ -60,12 +35,12 @@ spec: metadata: labels: app: {{ $portalFullName }} - {{- with .Values.annotations }} + {{- with .Values.portal.annotations }} annotations: {{- toYaml . | nindent 8 }} {{- end }} spec: - {{- with .Values.imagePullSecrets }} + {{- with .Values.portal.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} @@ -78,23 +53,23 @@ spec: path: application-github.properties - key: apollo-env.properties path: apollo-env.properties - {{- range $fileName, $content := .Values.config.files }} + {{- range $fileName, $content := .Values.portal.config.files }} - key: {{ $fileName }} path: {{ $fileName }} {{- end }} defaultMode: 420 containers: - - name: {{ .Values.name }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} + - name: {{ .Values.portal.name }} + image: "{{ .Values.portal.image.repository }}:{{ .Values.portal.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.portal.image.pullPolicy }} ports: - name: http - containerPort: {{ .Values.containerPort }} + containerPort: {{ .Values.portal.containerPort }} protocol: TCP env: - name: SPRING_PROFILES_ACTIVE - value: {{ .Values.config.profiles | quote }} - {{- range $key, $value := .Values.env }} + value: {{ .Values.portal.config.profiles | quote }} + {{- range $key, $value := .Values.portal.env }} - name: {{ $key }} value: {{ $value }} {{- end }} @@ -105,33 +80,33 @@ spec: - name: configmap-{{ $portalFullName }} mountPath: /apollo-portal/config/apollo-env.properties subPath: apollo-env.properties - {{- range $fileName, $content := .Values.config.files }} + {{- range $fileName, $content := .Values.portal.config.files }} - name: configmap-{{ $portalFullName }} mountPath: /apollo-portal/config/{{ $fileName }} subPath: {{ $fileName }} {{- end }} livenessProbe: tcpSocket: - port: {{ .Values.containerPort }} - initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} - periodSeconds: {{ .Values.liveness.periodSeconds }} + port: {{ .Values.portal.containerPort }} + initialDelaySeconds: {{ .Values.portal.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.portal.liveness.periodSeconds }} readinessProbe: httpGet: - path: {{ .Values.config.contextPath }}/health - port: {{ .Values.containerPort }} - initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} - periodSeconds: {{ .Values.readiness.periodSeconds }} + path: {{ .Values.portal.config.contextPath }}/health + port: {{ .Values.portal.containerPort }} + initialDelaySeconds: {{ .Values.portal.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.portal.readiness.periodSeconds }} resources: {{- toYaml .Values.resources | nindent 12 }} - {{- with .Values.nodeSelector }} + {{- with .Values.portal.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} - {{- with .Values.affinity }} + {{- with .Values.portal.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} - {{- with .Values.tolerations }} + {{- with .Values.portal.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }} diff --git a/charts/apollo-portal/templates/ingress-portal.yaml b/charts/apollo/templates/portal/ingress-portal.yaml similarity index 83% rename from charts/apollo-portal/templates/ingress-portal.yaml rename to charts/apollo/templates/portal/ingress-portal.yaml index c78e4ff..71b8a30 100644 --- a/charts/apollo-portal/templates/ingress-portal.yaml +++ b/charts/apollo/templates/portal/ingress-portal.yaml @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. # -{{- if .Values.ingress.enabled -}} +{{- if .Values.portal.ingress.enabled -}} {{- $fullName := include "apollo.portal.fullName" . -}} -{{- $svcPort := .Values.service.port -}} +{{- $svcPort := .Values.portal.service.port -}} {{- $apiVersion := "extensions/v1beta1" -}} {{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" -}} {{- $apiVersion = "networking.k8s.io/v1" }} @@ -28,17 +28,17 @@ metadata: name: {{ $fullName }} labels: {{- include "apollo.portal.labels" . | nindent 4 }} - {{- with .Values.ingress.annotations }} + {{- with .Values.portal.ingress.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: -{{- if .Values.ingress.ingressClassName }} - ingressClassName: {{ .Values.ingress.ingressClassName }} +{{- if .Values.portal.ingress.ingressClassName }} + ingressClassName: {{ .Values.portal.ingress.ingressClassName }} {{- end }} -{{- if .Values.ingress.tls }} +{{- if .Values.portal.ingress.tls }} tls: - {{- range .Values.ingress.tls }} + {{- range .Values.portal.ingress.tls }} - hosts: {{- range .hosts }} - {{ . | quote }} @@ -47,7 +47,7 @@ spec: {{- end }} {{- end }} rules: - {{- range .Values.ingress.hosts }} + {{- range .Values.portal.ingress.hosts }} - host: {{ .host | quote }} http: paths: diff --git a/charts/apollo-portal/templates/service-portal.yaml b/charts/apollo/templates/portal/service-portal.yaml similarity index 80% rename from charts/apollo-portal/templates/service-portal.yaml rename to charts/apollo/templates/portal/service-portal.yaml index a22f66b..d4dafdb 100644 --- a/charts/apollo-portal/templates/service-portal.yaml +++ b/charts/apollo/templates/portal/service-portal.yaml @@ -20,12 +20,12 @@ metadata: labels: {{- include "apollo.portal.labels" . | nindent 4 }} spec: - type: {{ .Values.service.type }} + type: {{ .Values.portal.service.type }} ports: - name: http protocol: TCP - port: {{ .Values.service.port }} - targetPort: {{ .Values.service.targetPort }} + port: {{ .Values.portal.service.port }} + targetPort: {{ .Values.portal.service.targetPort }} selector: app: {{ include "apollo.portal.fullName" . }} - sessionAffinity: {{ .Values.service.sessionAffinity }} \ No newline at end of file + sessionAffinity: {{ .Values.portal.service.sessionAffinity }} \ No newline at end of file diff --git a/charts/apollo-portal/templates/service-portaldb.yaml b/charts/apollo/templates/portal/service-portaldb.yaml similarity index 80% rename from charts/apollo-portal/templates/service-portaldb.yaml rename to charts/apollo/templates/portal/service-portaldb.yaml index 8f1cbd0..11faa75 100644 --- a/charts/apollo-portal/templates/service-portaldb.yaml +++ b/charts/apollo/templates/portal/service-portaldb.yaml @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # -{{- if .Values.portaldb.service.enabled -}} +{{- if .Values.db.portaldb.service.enabled -}} --- # service definition for mysql kind: Service @@ -23,14 +23,14 @@ metadata: labels: {{- include "apollo.portal.labels" . | nindent 4 }} spec: - type: {{ .Values.portaldb.service.type }} -{{- if eq .Values.portaldb.service.type "ExternalName" }} - externalName: {{ required "portaldb.host is required!" .Values.portaldb.host }} + type: {{ .Values.db.portaldb.service.type }} +{{- if eq .Values.db.portaldb.service.type "ExternalName" }} + externalName: {{ required "portaldb.host is required!" .Values.db.portaldb.host }} {{- else }} ports: - protocol: TCP - port: {{ .Values.portaldb.service.port }} - targetPort: {{ .Values.portaldb.port }} + port: {{ .Values.db.portaldb.service.port }} + targetPort: {{ .Values.db.portaldb.port }} --- kind: Endpoints apiVersion: v1 diff --git a/charts/apollo/values.yaml b/charts/apollo/values.yaml index 4bec424..ff34c18 100644 --- a/charts/apollo/values.yaml +++ b/charts/apollo/values.yaml @@ -13,23 +13,48 @@ # See the License for the specific language governing permissions and # limitations under the License. # -configdb: - name: apollo-configdb - # apolloconfigdb host - host: "" - port: 3306 - dbName: ApolloConfigDB - # apolloconfigdb user name - userName: "" - # apolloconfigdb password - password: "" - connectionStringProperties: characterEncoding=utf8 - service: - # whether to create a Service for this host or not - enabled: false - fullNameOverride: "" +db: + configdb: + name: apollo-configdb + # apolloconfigdb host + host: "x.x.x.x" port: 3306 - type: ClusterIP + dbName: ApolloConfigDB + # apolloconfigdb user name + userName: "abc" + # apolloconfigdb password + password: "abc" + connectionStringProperties: characterEncoding=utf8&useSSL=false + + ## @param service: create a externalName service for foreign database endpoint + ## + service: + # whether to create a Service for this host or not + enabled: false + fullNameOverride: "" + port: 3306 + type: ClusterIP + + portaldb: + name: apollo-portaldb + # apolloportaldb host + host: "x.x.x.x" + port: 3306 + dbName: ApolloPortalDB + # apolloportaldb user name + userName: "" + # apolloportaldb password + password: "" + connectionStringProperties: characterEncoding=utf8&useSSL=false + + ## @param service: create a externalName service for foreign database endpoint + ## + service: + # whether to create a Service for this host or not + enabled: false + fullNameOverride: "" + port: 3306 + type: ClusterIP configService: name: apollo-configservice @@ -44,8 +69,18 @@ configService: service: fullNameOverride: "" port: 8080 + ## @param nodePort: when type is NodePort or LoadBalancer, use this to assign a port number. + ## Normal port range in 30000-32767. + nodePort: "" targetPort: 8080 + ## @param type for Service type, choice one in ClusterIP, NodePort, LoadBalancer. + ## type: ClusterIP + + ## @param loadBalancerIP externalTrafficPolicy: only on service type is LoadBalancer + loadBalancerIP: "" + externalTrafficPolicy: Cluster + ingress: ingressClassName: null enabled: false @@ -72,7 +107,13 @@ configService: # environment variables passed to the container, e.g. JAVA_OPTS env: {} strategy: {} - resources: {} + resources: + requests: + cpu: 200m + memory: 1Gi + limits: + cpu: 2 + memory: 2Gi nodeSelector: {} tolerations: [] affinity: {} @@ -88,14 +129,25 @@ adminService: tag: "" pullPolicy: IfNotPresent imagePullSecrets: [] + service: fullNameOverride: "" port: 8090 - targetPort: 8090 + ## @param nodePort: when type is NodePort or LoadBalancer, use this to assign a port number. + ## Normal port range in 30000-32767. + nodePort: "" + + ## @param type for Service type, choice one in ClusterIP, NodePort, LoadBalancer. + ## type: ClusterIP + + ## @param loadBalancerIP externalTrafficPolicy: only on service type is LoadBalancer + loadBalancerIP: "" + externalTrafficPolicy: Cluster + ingress: - ingressClassName: null enabled: false + ingressClassName: null annotations: { } hosts: - host: "" @@ -115,8 +167,71 @@ adminService: # environment variables passed to the container, e.g. JAVA_OPTS env: {} strategy: {} - resources: {} + resources: + requests: + cpu: 200m + memory: 1Gi + limits: + cpu: 2 + memory: 2Gi nodeSelector: {} tolerations: [] affinity: {} annotations: {} + +portal: + ## @param enabled: boolean value for install portal web-ui. + ## + enabled: true + + name: apollo-portal + fullNameOverride: "" + replicaCount: 1 + containerPort: 8070 + image: + repository: apolloconfig/apollo-portal + tag: "" + pullPolicy: IfNotPresent + imagePullSecrets: [ ] + service: + fullNameOverride: "" + port: 8070 + targetPort: 8070 + type: ClusterIP + sessionAffinity: ClientIP + ingress: + ingressClassName: null + enabled: false + annotations: { } + hosts: + - host: "" + paths: [ ] + tls: [ ] + liveness: + initialDelaySeconds: 100 + periodSeconds: 10 + readiness: + initialDelaySeconds: 30 + periodSeconds: 5 + # environment variables passed to the container, e.g. JAVA_OPTS + env: { } + strategy: { } + resources: { } + nodeSelector: { } + tolerations: [ ] + affinity: { } + annotations: { } + + config: + # spring profiles to activate + profiles: "github,auth" + # specify the env names, e.g. dev,pro + envs: "" + # specify the meta servers, e.g. + # dev: http://apollo-configservice-dev:8080 + # pro: http://apollo-configservice-pro:8080 + metaServers: { } + # specify the context path, e.g. /apollo + contextPath: "" + # extra config files for apollo-portal, e.g. application-ldap.yml + files: { } \ No newline at end of file