Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

A mysql database is required to store to store the related metadata of OTE models, like users, businesses, projects, apps, deployments, clusters, nodes, etc. The database `sys When the OTE runs, the OpenAPI Server will connect to the database "sys_ote_manage_platform` is consists of following tablesplatform" for providing services. Some brief description of tables which related to this database are shown below:

  • tb_system_config stores global configuration of OTE web portal.
  • tb_business_info maintains the relation between the users of OTE users and the namespace which divide cluster resources between different users.
  • tb_ote_web_users stores the informations of general users and administrator in OTE stack.
  • tb_ote_web_repository_users stores the information of users who are used to pull of harbor server for pulling docker images when applications are being deployed
  • tb_ote_cluster_label stores the labels which are attached to edge clusters, while the information of clusters are stored as CRD resource in the etcd.
  • tb_ote_node_label stores the labels which are attached to edge nodes, while the information of edge nodes are stored as CRD resource in the etcd.
  • tb_app_info stores the information about application that will be deployed, such as name, image, required resource, execution command.
  • tb_deploy_info maintains the information and status of deployment deployments related to the application that stored in tb_app_info.
  • tb_alert_info displays alert messages sent by alertmanager server

Schema scripts

Following the installation steps below, a new mysql database container, which contains the configuration and db tables of OTE, will be deployed to the edge cluster. If you need to store these OTE metadata in your own database, you can execute the following schema script to create the database and the related tables.

Schema scripts

The following schema scripts will help you to generate the database for OTE-stack. The following schema scripts will help you to generate the database for OTE-stack. But It is not necessary to execute the scripts, because a new MySQL database will be deployed on the root edge cluster after executing the installation scripts.

Code Block
collapsetrue
CREATE DATABASE sys_ote_manage_platform;
USE sys_ote_manage_platform;
SET names utf8;

CREATE TABLE IF NOT EXISTS `tb_system_config` (
  `key` varchar(64) NOT NULL,
  `value` varchar(64) NOT NULL,
  PRIMARY KEY (`key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='system configuration';

CREATE TABLE IF NOT EXISTS `tb_business_info` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL COMMENT 'business name',
  `namespace` varchar(64) NOT NULL DEFAULT '' COMMENT 'namespace',
  `user_id` bigint(20) unsigned NOT NULL COMMENT 'user id',
  `introduce` varchar(512) NOT NULL COMMENT 'business introduction',
  `objective` varchar(512) NOT NULL COMMENT 'resource requirements',
  `scale` varchar(512) NOT NULL COMMENT 'business scale',
  `comment` varchar(512) NOT NULL DEFAULT '' COMMENT 'review comments',
  `status` tinyint NOT NULL DEFAULT 0 COMMENT 'status',
  `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `create_time` TIMESTAMP NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `tb_ote_web_users` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `uid` varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT 'user id',
  `namespace` varchar(64) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'namespace',
  `user_name` varchar(50) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'username',
  `display_name` varchar(50) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'nickname',
  `real_name` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'real name',
  `password` varchar(60) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'password',
  `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'email',
  `phone` varchar(11) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'phone',
  `status` tinyint(4) unsigned NOT NULL DEFAULT '3' COMMENT 'status: 0:pending,1:reviewed,2:failed,3:forbidden,',
  `is_admin` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT 'is admin',
  `role` tinyint unsigned NOT NULL DEFAULT '0' COMMENT 'role:0:unauthorized,1:general manager,2:admin,3:super admin',
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `created_at` timestamp NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `tb_ote_web_users_uid_unique` (`uid`) USING BTREE,
  UNIQUE KEY `tb_ote_web_users_phone_unique` (`phone`) USING BTREE,
  UNIQUE KEY `tb_ote_web_users_user_name_unique` (`user_name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE IF NOT EXISTS `tb_ote_web_repository_users` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `namespace` varchar(64) NOT NULL DEFAULT '' COMMENT 'namespace',
  `repository_uid` bigint(20) unsigned DEFAULT '0' COMMENT 'uid',
  `repository_username` varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT 'username',
  `repository_email` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'email',
  `repository_password` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'password',
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `created_at` timestamp NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY (`namespace`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='harbor user';

CREATE TABLE IF NOT EXISTS `tb_ote_web_third_repository` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `namespace` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'user namespace',
  `repository_id` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'repository id',
  `repository_url` varchar(500) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'repository addr',
  `repository_username` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'username,
  `repository_password` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'passwoed',
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `created_at` timestamp NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY (`namespace`, `repository_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='third repo';

CREATE TABLE IF NOT EXISTS `tb_ote_cluster_label` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `cluster_name` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'cluster name',
  `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'label',
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `created_at` timestamp NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY (`cluster_name`, `label`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE IF NOT EXISTS `tb_ote_node_label` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `cluster_name` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'cluste',
  `node_name` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nodename',
  `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'node label',
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `created_at` timestamp NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY (`cluster_name`, `node_name`, `label`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE IF NOT EXISTS `tb_app_info` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `namespace` varchar(64) NOT NULL COMMENT 'namespace',
  `app_name` varchar(64) NOT NULL COMMENT 'app_name',
  `main_version` varchar(32) NOT NULL COMMENT 'major version',
  `version_count` int(11) NOT NULL COMMENT 'minor version',
  `image` varchar(256) NOT NULL COMMENT 'image',
  `repository_id` varchar(64) NOT NULL DEFAULT '' COMMENT 'repository_id',
  `port` varchar(1024) NOT NULL DEFAULT '0' COMMENT 'port',
  `env` varchar(1024) NOT NULL DEFAULT '' COMMENT 'env',
  `volume` varchar(1024) NOT NULL DEFAULT '' COMMENT 'volume',
  `dependence` varchar(1024) NOT NULL DEFAULT '' COMMENT '',
  `replicas` int(10) NOT NULL DEFAULT '1' COMMENT 'replicas',
  `command` varchar(512) NOT NULL DEFAULT '' COMMENT 'command',
  `deploy_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'deploy_type: 0:deployment, 1:daemonset',
  `gpu` int(10) NOT NULL DEFAULT '0',
  `request_cpu` int(10) NOT NULL DEFAULT '80',
  `request_mem` int(10) NOT NULL DEFAULT '4096',
  `limit_cpu` int(10) NOT NULL DEFAULT '80',
  `limit_mem` int(10) NOT NULL DEFAULT '4096',
  `min_replicas` int(10) NOT NULL DEFAULT '1',
  `max_replicas` int(10) NOT NULL DEFAULT '5',
  `is_hpa` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'is_hpa:0:no,1:yes',
  `hpa_target_cpu` int(10) NOT NULL DEFAULT '80',
  `hpa_target_mem` int(10) NOT NULL DEFAULT '4096',
  `min_ready_seconds` int(10) NOT NULL DEFAULT '10',
  `max_surge` int(10) NOT NULL DEFAULT '1',
  `max_unavailable` int(10) NOT NULL DEFAULT '0',
  `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'statur:0:init,1:success,2:fail,3:logical del,4:del',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ,
  `create_time` timestamp NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `namespace` (`namespace`,`app_name`,`main_version`,`version_count`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `tb_deploy_info` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(128) NOT NULL COMMENT 'name',
  `namespace` varchar(64) NOT NULL COMMENT 'namespace',
  `app_name` varchar(64) NOT NULL COMMENT 'app_name',
  `version` varchar(48) NOT NULL COMMENT 'version',
  `cluster` varchar(64) NOT NULL COMMENT 'cluster',
  `node_label` varchar(64) NOT NULL DEFAULT 'all',
  `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'status',
  `editable` tinyint(4) NOT NULL DEFAULT '1' COMMENT 'editable: 0:no,1:yes',
  `running` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'running: 0:no,1:yes',
  `deploy_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'deploy_type: 0:new,1:upgrade,2:rollback,3:del',
  `comment` varchar(256) NOT NULL DEFAULT '' COMMENT 'comment',
  `audit_comment` varchar(256) NOT NULL DEFAULT '' COMMENT 'audit_comment',
  `error_message` varchar(256) NOT NULL DEFAULT '' COMMENT 'error_message',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `create_time` timestamp NOT NULL,
  `execute_time` timestamp NOT NULL,
  PRIMARY KEY (`id`),
  KEY `name` (`namespace`,`name`),
  KEY `namespace` (`namespace`,`app_name`,`cluster`,`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS tb_domain_info (
  `id`       BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  `namespace`  varchar(64) NOT NULL COMMENT 'namespace',
  `domain`   varchar(128) NOT NULL COMMENT 'domain',
  `used_count`   int NOT NULL DEFAULT 0 COMMENT 'used_count',
  `update_time`  TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `create_time`  TIMESTAMP NOT NULL,
  PRIMARY KEY(`id`),
  KEY(`namespace`),
  UNIQUE KEY(`domain`)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8;

CREATE TABLE IF NOT EXISTS tb_ingress_info (
  `id`         BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  `namespace`  varchar(64) NOT NULL COMMENT 'namespace',
  `domain`     varchar(128) NOT NULL COMMENT 'domain',
  `uri`        varchar(128) NOT NULL COMMENT 'uri',
  `is_rewrite` int8 NOT NULL DEFAULT 0 COMMENT '',
  `deploy_name`  varchar(64) NOT NULL COMMENT 'deploy name',
  `status`       tinyint(4) NOT NULL DEFAULT '0' COMMENT 'status',
  `unique_key`   varchar(64) NOT NULL DEFAULT 'unique key',
  `update_time`  TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `create_time`  TIMESTAMP NOT NULL,
  PRIMARY KEY(`id`),
  UNIQUE KEY(`namespace`,`unique_key`)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8;

CREATE TABLE IF NOT EXISTS `tb_alert_info` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `instance` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'alert host',
  `ipaddr` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'alert ip',
  `alert_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'alert name',
  `alert_user` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'alert user',
  `limit_value` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'alert limit value',
  `current_value` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'current alert value',
  `description` varchar(1000) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'description',
  `generator_url` varchar(500) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '',
  `status` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'status',
  `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `create_time` TIMESTAMP NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY(`instance`, `alert_name`,`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

...

Clone the AIEdge git repo and edit the configuration file (interface_conf) by setting:

  • hostname of the node _name in edge cluster which would deploy that the ote-stack platform will be deployed to
  • docker repository for pulling images of ote-stack components
  • informations of harbor repository such as admin password and domain
Code Block
git clone https://gerrit.akraino.org/r/aiedge.git
cd aiedge
git submodule init
git submodule update
cd ote-stack/aiedge/deployments
vim interface_conf

...

After executing the installation script, the ote-stack web platform will be deployed on the node1_name set in the configuration file and expose port 8995. You Now you can open the website through URL http://<node1_name_ip>:8995/ , and the login page is as follows.to use ote-stack. Below is the the index page of OTE.

Image AddedimageImage Removed

When ote-stack runs, a super administrator will be created. The username and password can be modified by changing parameters `superAdminName` and `superAdminPassword` in file deployments/open-api/open-api.yml.  Note that the initial username and password of admin, only works for the first time when ote-stack starts.

...

Definitions, acronyms and abbreviations