From 7e6f74ce0c109095fc917138e2a162bb52dd93fe Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:20:56 +0800 Subject: [PATCH 001/398] New translations intro.md (English) --- .../current/api/Intro.md | 160 ++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/Intro.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/Intro.md b/i18n/en/docusaurus-plugin-content-docs/current/api/Intro.md new file mode 100644 index 0000000000..2dd58a3227 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/Intro.md @@ -0,0 +1,160 @@ +--- +title: How to use OpenAPI +slug: /Intro +--- + +## How to call console OpenAPI + +1. Before calling the console OpenAPI, the user needs to click the personal center-access token-add in the upper right corner of the platform to create an access token for authorization +2. Before calling the console OpenAPI, make sure you have obtained the access token required by the API and added it to the request header +3. Only relative paths are displayed in the OpenAPI documentation, such as `/openapi/v1/administrators`, and the actual request path is not displayed.You need to piece together your console access address as a path to form the full address.eg `http://192.168.2.225:7070/openapi/v1/administrators`Your console access address needs to be patched together with the path to form the full address.e.g. `http://192.168.2.2.225:7070/openapi/v1/administrators` + +## OpenAPI Documentation Convention Format + +The console OpenAPI document format is mainly as: + +``` +Request: + Basic information: Introduce what the API does + Request method: Introduce the request methods required by the API (POST, PUT, DELETE, GET, etc.) + Request parameters: A brief description of the path parameters and query parameters used by the API + Request Body: This part of the parameters needs to be placed in the Body of the HTTP request, usually in JSON format + Request body example: Example of a successful request parameter corresponding to the API +Response: + Response body: After an API call, the body part of the HTTP response Content + Example Response Body: Example of API Successful Request Result +``` + +## OpenAPI common parameter description + +The following parameters are descriptions of the path parameters that are often used when calling the platform. + +| name | Location | type | Chinese name | illustrate | +| -------------------------------- | -------- | -------- | ------------------------- | --------------------------------------------------------------------------------- | +| team_id | Path | String | Team ID | ID that identifies a team, 32-bit string | +| app_id | Path | Annex II | App ID | Identifies an application, integer | +| service_id | Path | String | component ID | ID that identifies a component, 32-bit string | +| region_name | Path | String | Cluster unique identifier | A name that identifies a cluster, unique under the enterprise, user-defined value | +| user_id | Path | Annex II | User ID | ID that identifies a user, integer | + +## Parameter acquisition and interface example + +Rainbond is mainly divided into four views:enterprise view, team view, application view, and component view, so Openapi documents are also organized according to this logic. + +The following describes the specific request sample: + +### Get the list of teams under the enterprise + +```bash +curl -X GET 'http://192.168.2.225:7070/openapi/v1/teams' -H 'Authorization: obtained from the console here' +``` + +#### Example of response result + +Here `tenant_id` corresponds to the value of `team_id` + +```json +{ + "tenants":[ + { + "ID":1, + "tenant_id":"8e5a07dd37e34dd7a2a74b0a2ab29d95", + "tenant_name":"o19p6wen", + "tenant_alias":"admin's team", + "is_active": true, + "enterprise_id":"f246bce23170eeaac90d6f7b150793f0", + "create_time":"2022-06-01T13:52:13.321196", + "creater":"admin", + "role_infos":[ + { + "role_id": "1", + "role_name":"Administrator" + } + ] + } + ], + "total":1, + "page":1, + "page_size":10 +} +``` + +### Get a list of clusters + +```bash +curl -X GET 'http://192.168.2.225:7070/openapi/v1/regions' -H 'Authorization: obtained from the console here' +``` + +#### Example of response result + +`region_name` here corresponds to the unique identifier of the cluster + +```json +[ + { + "region_id":"febc993cefe84d158b3ac245d7aa0943", + "region_name":"test", + "region_alias":"Self-built cluster", + "url":"https://192.168.2.225:8443", + "status":"1", + "desc":"Provide host to install Kubernetes cluster and connect", + "scope":"private", + "ssl_ca_cert":null, + "cert_file":null, + "key_file" :null + } +] +``` + +### Get application list + +`team_id` and `region_name` Please fill in the response values obtained from the above two interfaces + +```bash +curl -X GET 'http://192.168.2.225:7070/openapi/v1/teams/{team_id}/regions/{region_name}/apps' -H 'Authorization: obtained from the console here' +``` + +#### Example of response result + +Here `ID` corresponds to `app_id` + +```json +[ + { + "ID":1, + "tenant_id":"8e5a07dd37e34dd7a2a74b0a2ab29d95", + "group_name":"Test Application", + "region_name":"test", + "is_default":true, + "order_index": 0, + "note":"", + "username":"", + "governance_mode":"BUILD_IN_SERVICE_MESH", + "create_time":"2022-06-01T13:52:13.407637", + "update_time":" 2022-06-15T15:37:51.020167", + "app_type":"rainbond", + "app_store_name":null, + "app_store_url":null, + "app_template_name":null, + "version":null, + " logo":"", + "k8s_app":"app-38b4d14a" + } +] +``` + +### build components + +According to the above interface request example, we can continue to find the corresponding `service_id` to operate the component.Here is an example of building a componentHere are examples of building components + +```bash +curl -X POST 'http://192.168.2.225:7070/openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/services/{service_id}/build' -H 'Authorization: ' +``` + +#### Example of response result + +```json +LO + "event_id": "5821167607ec460b89b326084fb3d1e0" +} +``` From 3dcb95a70813ea6e8fc94fe41435efb663fc52ed Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:20:58 +0800 Subject: [PATCH 002/398] New translations bindvolumes.md (English) --- .../current/api/application/bindVolumes.md | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/bindVolumes.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/bindVolumes.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/bindVolumes.md new file mode 100644 index 0000000000..5138fd6d2e --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/bindVolumes.md @@ -0,0 +1,58 @@ +--- +title: Mount Component Storage +--- + +## Basic Information + +This interface is primarily used to mount component storage. + +```shell title="请求路径" +POST /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/services/{service_id}/volumes +``` + +```json title="Body 请求体示例" +LO + "volume_name": "name", + "volume_type": "share-file", + "volume_path": "/data4", + "volume_capacity": 1 +} +``` + +## Request Parameters + +| Name | Locations | Type | Required | Chinese name | Note | +| -------------------------------- | --------- | --------------------- | -------- | ------------ | ------------ | +| app_id | Path | integer | Yes | | App group id | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| service_id | Path | String | Yes | | Component id | +| body | body | [VolumeBody](#volume) | No | | none | + +## Back to results + +| Status Code | Status code meanings | Note | Data Model | +| ----------- | -------------------- | ------- | ---------- | +| 200 | OK | Success | Inline | + +## Model + +### VolumeBody + +```json +LO + "volume_name": "name", + "volume_type": "share-file", + "volume_path": "/data4", + "volume_capacity": 1 +} +``` + +### Properties + +| Name | Type | Required | Constraints | Chinese name | Note | +| ------------------------------------ | ------ | -------- | ----------- | ------------ | ------------------------------------ | +| volume_name | String | true | none | | Name | +| volume_type | String | true | none | | Mount type | +| volume_path | String | true | none | | Mount Path | +| volume_capacity | String | true | none | | Storage size (GB) | From 5d87c3f8cfe3826160f47a537ea07235a042100f Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:20:59 +0800 Subject: [PATCH 003/398] New translations buildcomponent.md (English) --- .../current/api/application/buildComponent.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/buildComponent.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/buildComponent.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/buildComponent.md new file mode 100644 index 0000000000..4bf7d48f3d --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/buildComponent.md @@ -0,0 +1,89 @@ +--- +title: build components +--- + +## Basic Information + +This interface is mainly used to build components for CI/CD workflow calls + +```shell title="请求路径" +POST /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/services/{service_id}/build +``` + +```json title="Body 请求体示例" +{ + "build_type": "source_code", + "server_type": "svn", + "branch": "master", + "repo_url": "string", + "username": "string", + "password" : "string" +} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------------------------------------------------------------------- | -------- | ------------ | -------------------- | +| team_id | Path | String | Yes | | Team ID, name | +| region_name | Path | String | Yes | | data center name | +| app_id | Path | integer | Yes | | application group id | +| service_id | Path | String | Yes | | component ID | +| body | body | [ComponentBuildReqSerializers](#schemacomponentbuildreqserializers) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ------------------------------------------------------------- | +| 200 | OK | success | [ComponentEventSerializers](#schemacomponenteventserializers) | + +## Model + +### ComponentBuildReqSerializers + +```json +{ + "build_type": "source_code", + "server_type": "svn", + "branch": "master", + "repo_url": "string", + "username": "string", + "password" : "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| -------------------------------- | ----------- | -------- | ---------- | ------------ | ------------------------------------------------------------------------------------------------ | +| build_type | Stringenull | false | none | Build Type | Component build source type | +| server_type | Stringenull | false | none | Server Type | Source source type | +| Branch | Stringenull | false | none | Branch | Code branch, tag information | +| repo_url | Stringenull | false | none | Repo url | Source repository service address, including code repository, mirror repository, and OSS address | +| username | Stringenull | false | none | Username | Source warehouse service account | +| password | Stringenull | false | none | Password | Source warehouse service password | + +#### enumeration value + +| Attributes | value | +| -------------------------------- | --------------------------------- | +| build_type | source_code | +| build_type | docker_image | +| build_type | market | +| server_type | svn | +| server_type | git | +| server_type | loss | + +### ComponentEventSerializers + +```json +LO + "event_id": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----------------------------- | ------ | -------- | ---------- | ------------ | ---------- | +| event_id | String | true | none | Event id | Event ID | From bbef1f0698af99933b4e04ef3a52a0d18ff771f7 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:01 +0800 Subject: [PATCH 004/398] New translations buildhelmapp.md (English) --- .../current/api/application/buildHelmApp.md | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/buildHelmApp.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/buildHelmApp.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/buildHelmApp.md new file mode 100644 index 0000000000..25e17e4718 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/buildHelmApp.md @@ -0,0 +1,101 @@ +--- +title: Create Helm App +--- + +## Basic Information + +This interface is primarily used to check and install Helm Chart Packages app + +### Get Request + +```shell title="请求路径" +Get /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/helm_chart +``` + +```json title="Body 请求体示例" +LO + "repo_name": "string", + "chart_name": "string", + "version": "string", +} +``` + +#### Request Parameters + +| Name | Locations | Type | Required | Chinese name | Note | +| -------------------------------- | --------- | -------------------- | -------- | ------------ | ---------------- | +| team_id | Path | String | Yes | | Team ID, name | +| region_name | Path | String | Yes | | Data Center Name | +| app_id | Path | integer | Yes | | App group id | +| body | body | [请求模型](#RequestBody) | No | | none | + +#### Back to results + +| Status Code | Status code meanings | Note | Data Model | +| ----------- | -------------------- | ------- | ------------------------ | +| 200 | OK | Success | [响应模型](#getResponseBody) | + +### Postrequest + +```shell title="请求路径" +Post /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/helm_chart +``` + +```json title="Body 请求体示例" +LO + "repo_name": "string", + "chart_name": "string", + "version": "string", +} +``` + +#### Request Parameters + +| Name | Locations | Type | Required | Chinese name | Note | +| -------------------------------- | --------- | -------------------- | -------- | ------------ | ---------------- | +| team_id | Path | String | Yes | | Team ID, name | +| region_name | Path | String | Yes | | Data Center Name | +| app_id | Path | integer | Yes | | App group id | +| body | body | [请求模型](#RequestBody) | No | | none | + +#### Back to results + +| Status Code | Status code meanings | Note | Data Model | +| ----------- | -------------------- | ------- | ---------- | +| 200 | OK | Success | | + +## Model + +### Request Model + +```json +LO + "repo_name": "string", + "chart_name": "string", + "version": "string", +} +``` + +### Properties + +| Name | Type | Required | Constraints | Chinese name | Note | +| ------------------------------- | ------ | -------- | ----------- | ------------ | -------------------- | +| repo_name | String | false | none | repo name | helm repository name | +| Chart_name | String | false | none | chart name | helm chart app name | +| version | String | false | none | version | App Version | + +### Response Model + +```json +LO + "checkAdopt": "bool", + "yaml": "string", +} +``` + +### Properties + +| Name | Type | Required | Constraints | Chinese name | Note | +| ------------- | ------ | -------- | ----------- | -------------- | ----------------- | +| CheckAdoption | String | true | none | Check adoption | Check pass status | +| yaml | String | true | none | yaml | Failed Reason | From 1aae6c622c700a60c838e5eb6a292446c30f805e Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:02 +0800 Subject: [PATCH 005/398] New translations changeimagename.md (English) --- .../api/application/changeImageName.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/changeImageName.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/changeImageName.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/changeImageName.md new file mode 100644 index 0000000000..1e3f42daba --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/changeImageName.md @@ -0,0 +1,34 @@ +--- +title: Change Image Name +--- + +## Basic Information + +This interface is mainly used to replace components built by docker and to change their addresses + +```shell title="请求路径" +PUT /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/services/{service_id}/docker-image-change +``` + +```json title="Body 请求体示例" +LOCK + "image": "nginx:" +} +``` + +## Request Parameters + +| Name | Locations | Type | Required | Chinese name | Note | +| -------------------------------- | --------- | ------- | -------- | ------------ | ------------ | +| app_id | Path | integer | Yes | | App group id | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| service_id | Path | String | Yes | | Component id | + +\| body | body | json | No | none | + +## Back to results + +| Status Code | Status code meanings | Note | Data Model | +| ----------- | -------------------- | ------- | ---------- | +| 200 | OK | Success | Inline | From c686a9c98de8fe4672633225e427e6a10d6657ff Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:04 +0800 Subject: [PATCH 006/398] New translations closeapp.md (English) --- .../current/api/application/closeApp.md | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/closeApp.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/closeApp.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/closeApp.md new file mode 100644 index 0000000000..10b71b815d --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/closeApp.md @@ -0,0 +1,59 @@ +--- +title: Close apps in batches +--- + +## Basic Information + +This interface is mainly used to close applications in batches + +```shell title="请求路径" +POST /openapi/v1/teams/{team_id}/regions/{region_name}/apps/close +``` + +```json title="Body 请求体示例" +LO + "service_ids": [ + "string" + ] +} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ----------------------------------------------------------- | -------- | ------------ | ---------- | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| body | body | [TeamAppsCloseSerializers](#schemateamappscloseserializers) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ----------------------------------------------------------- | +| 201 | Created | success | [TeamAppsCloseSerializers](#schemateamappscloseserializers) | + +```json title="响应示例" +LO + "service_ids": [ + "string" + ] +} +``` + +## Model + +### TeamAppsCloseSerializers + +```json +LO + "service_ids": [ + "string" + ] +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----------------------------------- | ------------------------------------------------------------ | -------- | ---------- | ------------ | ---------- | +| service_weight | [string] | false | none | | none | From c0623fc1ea5ead4647f9e7ef4559cd7b8fd624f2 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:20 +0800 Subject: [PATCH 007/398] New translations componenthistorymonitorunderapp.md (English) --- .../componentHistoryMonitorUnderApp.md | 171 ++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/componentHistoryMonitorUnderApp.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/componentHistoryMonitorUnderApp.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/componentHistoryMonitorUnderApp.md new file mode 100644 index 0000000000..498c6b8d93 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/componentHistoryMonitorUnderApp.md @@ -0,0 +1,171 @@ +--- +title: Application component history monitoring +--- + +## Basic Information + +This interface is mainly used to obtain monitoring data of the component prometheus under an application for a period of time + +```shell title="请求路径" +GET /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/monitor/query_range +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------- | -------- | ------------ | ------------------------------------------------- | +| team_id | Path | String | Yes | | Team ID, name | +| region_name | Path | String | Yes | | data center name | +| app_id | Path | integer | Yes | | app id | +| Start | Path | Number | Yes | | start timestamp | +| end | Path | Number | Yes | | end timestamp | +| step | Path | Number | Yes | | step size (default 60) | +| is_outer | Query | String | no | | Whether to get only external component monitoring | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 200 | OK | success | Inline | + +## return data structure + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------------ | ------------------------------------------------------------------------------------------------------------- | -------- | ---------- | ------------- | ------------------ | +| _anonymous_ | [[ComponentMonitorSerializers](#schemacomponentmonitors)] | false | none | | none | +| » Monitors | [[ComponentMonitorItemsSerializers](#schemacomponentmonitortemsserializers)hull | false | none | | none | +| » data | [Data](#schemadata) | false | none | Data | none | +| resultType | String | false | none | Resulttype | return type | +| » Result | [[MonitorDataSerializers](#schemamonitordaaterializers)] | true | none | | none | +| »» value | [string] | true | none | | none | +| » monitor_item | String | true | none | Monitor item | Monitoring item | +| » status | String | false | none | Status | monitor status | +| » service_id | String | true | none | Service id | component id | +| » service_name | String | true | none | Service cname | component name | +| » service_alias | String | true | none | Service alias | component nickname | + +```json title="响应示例" +[ + { + "monitors": [ + { + "data": { + "resultType": "string", + "result": [ + { + "value": [ + "string" + ] + } + ] + }, + "monitor_item": "string", + "status": "string" + } + ], + "service_id": "string", + "service_cname": "string", + "service_alias": "string " + } +] +``` + +## Model + +### ComponentMonitor Serializers + +```json +Flag + "monitors": [ + Fum + "data": LOs + "resultType": "string", + "result": [ + { + "value": null + } + ] + }, + "monitor_item": "string", + "status": "string" + } + ], + "service_id": "string", + "service_cname": "string", + "service_alias": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------- | --------------------------------------------------------------------------------------------------------- | -------- | ---------- | ------------- | ------------------ | +| Monitors | [[ComponentMonitorItemsSerializers](#schemacomponentmonitortemsserializers)hull | false | none | | none | +| service_id | String | true | none | Service id | component id | +| service_name | String | true | none | Service cname | component name | +| service_alias | String | true | none | Service alias | component nickname | + +### ComponentMonitor ItemsSerializers + +```json +{ + "data": { + "resultType": "string", + "result": [ + { + "value": [ + "string" + ] + } + ] + }, + "monitor_item": "string ", + "status": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| --------------------------------- | ------------------- | -------- | ---------- | ------------ | --------------- | +| Data | [Data](#schemadata) | false | none | | none | +| monitor_item | String | true | none | Monitor item | Monitoring item | +| Status | String | false | none | Status | monitor status | + +### Data + +```json +LO + "resultType": "string", + "result": [ + LO + "value": [ + "string" + ] + } + ] +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------- | ------------------------------------------------------------------------------------------------------------ | -------- | ---------- | ------------ | ----------- | +| ResultType | String | false | none | Resulttype | return type | +| Result | [[MonitorDataSerializers](#schemamonitordaaterializers)] | true | none | | none | + +### MonitorDataSerializers + +```json +LO + "value": [ + "string" + ] +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----- | ------------------------------------------------------------ | -------- | ---------- | ------------ | ---------- | +| Value | [string] | true | none | | none | From b1e8a4327f4f6651509f7b974527aa9a41e7e05a Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:22 +0800 Subject: [PATCH 008/398] New translations componentmonitorunderapp.md (English) --- .../application/componentMonitorUnderApp.md | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/componentMonitorUnderApp.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/componentMonitorUnderApp.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/componentMonitorUnderApp.md new file mode 100644 index 0000000000..aefafaf148 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/componentMonitorUnderApp.md @@ -0,0 +1,169 @@ +--- +title: Real-time monitoring of components under the application +--- + +## Basic Information + +This interface is mainly used to obtain the monitoring data of the component prometheus under an application + +```shell title="请求路径" +GET /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/monitor/query +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------- | -------- | ------------ | ------------------------------------------------- | +| app_id | Path | integer | Yes | | app id | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| is_outer | Query | String | no | | Whether to get only external component monitoring | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 200 | OK | success | Inline | + +## return data structure + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------------ | ------------------------------------------------------------------------------------------------------------- | -------- | ---------- | ------------- | ------------------ | +| _anonymous_ | [[ComponentMonitorSerializers](#schemacomponentmonitors)] | false | none | | none | +| » Monitors | [[ComponentMonitorItemsSerializers](#schemacomponentmonitortemsserializers)hull | false | none | | none | +| » data | [Data](#schemadata) | false | none | Data | none | +| resultType | String | false | none | Resulttype | return type | +| » Result | [[MonitorDataSerializers](#schemamonitordaaterializers)] | true | none | | none | +| »» value | [string] | true | none | | none | +| » monitor_item | String | true | none | Monitor item | Monitoring item | +| » status | String | false | none | Status | monitor status | +| » service_id | String | true | none | Service id | component id | +| » service_name | String | true | none | Service cname | component name | +| » service_alias | String | true | none | Service alias | component nickname | + +```json title="响应示例" +[ + { + "monitors": [ + { + "data": { + "resultType": "vector", + "result": [ + { + "value": [ + "1655531430.126", + "0" + ] + } + ] + }, + "monitor_item": "request_client", + "status": "success" + } + ], + "service_id": "8377bede3b344e3daa96563a55516625", + "service_cname": "Mysql5.5 (single machine) )", + "service_alias": "gr516625" + } +] +``` + +## Model + +### ComponentMonitor Serializers + +```json +Flag + "monitors": [ + Fum + "data": LOs + "resultType": "string", + "result": [ + { + "value": null + } + ] + }, + "monitor_item": "string", + "status": "string" + } + ], + "service_id": "string", + "service_cname": "string", + "service_alias": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------- | --------------------------------------------------------------------------------------------------------- | -------- | ---------- | ------------- | ------------------ | +| Monitors | [[ComponentMonitorItemsSerializers](#schemacomponentmonitortemsserializers)hull | false | none | | none | +| service_id | String | true | none | Service id | component id | +| service_name | String | true | none | Service cname | component name | +| service_alias | String | true | none | Service alias | component nickname | + +### ComponentMonitor ItemsSerializers + +```json +{ + "data": { + "resultType": "string", + "result": [ + { + "value": [ + "string" + ] + } + ] + }, + "monitor_item": "string ", + "status": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| --------------------------------- | ------------------- | -------- | ---------- | ------------ | --------------- | +| Data | [Data](#schemadata) | false | none | | none | +| monitor_item | String | true | none | Monitor item | Monitoring item | +| Status | String | false | none | Status | monitor status | + +### Data + +```json +LO + "resultType": "string", + "result": [ + LO + "value": [ + "string" + ] + } + ] +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------- | ------------------------------------------------------------------------------------------------------------ | -------- | ---------- | ------------ | ----------- | +| ResultType | String | false | none | Resulttype | return type | +| Result | [[MonitorDataSerializers](#schemamonitordaaterializers)] | true | none | | none | + +### MonitorDataSerializers + +```json +LO + "value": [ + "string" + ] +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----- | ------------------------------------------------------------ | -------- | ---------- | ------------ | ---------- | +| Value | [string] | true | none | | none | From 3b00e9cbc5b40e628d252fe89759d039fc1f981e Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:24 +0800 Subject: [PATCH 009/398] New translations copyapp.md (English) --- .../current/api/application/copyApp.md | 352 ++++++++++++++++++ 1 file changed, 352 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/copyApp.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/copyApp.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/copyApp.md new file mode 100644 index 0000000000..81d87c2643 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/copyApp.md @@ -0,0 +1,352 @@ +--- +title: Duplicate the app +--- + +## Basic Information + +This interface is mainly used for replication applications + +```shell title="请求路径" +POST /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/copy +``` + +```json title="Body 请求体示例" +{ + "services": [ + { + "service_id": "string" + } + ], + "target_team_name": "string", + "target_region_name": "string", + "target_app_id": 3 +} +``` + +Here `target_team_name` specifies the target team name, corresponding to `tenant_name` or `team_name`, the value is similar to `o19p6wen`, not user-defined team name + +Here `target_region_name` specifies the target cluster name, corresponding to the data returned by the cluster list interface `region_name` + +Here `target_app_id` specifies the target app name + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | --------------------------- | -------- | ------------ | ---------- | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| app_id | Path | String | Yes | | none | +| body | body | [AppCopyC](#schemaappcopyc) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | -------------------------------- | +| 200 | OK | success | [AppCopyCRes](#schemaappcopyces) | + +## return data structure + +```json title="响应示例" +{ + "services": [ + { + "status": "", + "access_infos": [ + "string" + ], + "service_id": "string", + "tenant_id": "string", + " service_key": "string", + "service_alias": "string", + "service_cname": "string", + "service_region": "string", + "desc": "string", + "category": "string ", + "version": "string", + "update_version": 3, + "image": "string", + "cmd": "string", + "min_node": 3, + "min_cpu": 3, + "container_gpu": 3, + "min_memory": 3, + "extend_method": "string", + "code_from": "string", + "git_url": "string", + "git_project_id": 3, + " code_version": "string", + "service_type": "string", + "creater": 3, + "language": "string", + "total_memory": 3, + "is_service": true, + "service_origin" : "string", + "tenant_service_group_id": 3, + "open_webhooks": true, + "service_source": "string", + "create_status": "string", + "check_uuid": "string", + "check_event_id" : "string", + "docker_cmd": "string", + "server_type": "string", + "is_upgrate": true, + "buil d_upgrade": true, + "oauth_service_id": 3, + "k8s_component_name": "string" + } + ] +} +``` + +## Model + +### AppPostInfo + +```json +{ + "services": [ + { + "status": "", + "access_infos": [], + "service_id": "string", + "tenant_id": "string", + "service_key": "string ", + "service_alias": "string", + "service_cname": "string", + "service_region": "string", + "desc": "string", + "category": "string", + "version ": "string", + "update_version": -2147483648, + "image": "string", + "cmd": "string", + "min_node": -2147483648, + "min_cpu": -2147483648, + " container_gpu": -2147483648, + "min_memory": -2147483648, + "extend_method": "string", + "code_from": "string", + "git_url": "string", + "git_project_id": -2147483648, + "code_version": "string", + "service_type": "string", + "creater": -2147483648, + "language": "string", + "total_memory": -2147483648, + "is_service": true, + "service_origin": "string", + "tenant_service_group_id": -2147483648, + "open_webhooks": true, + "service_source": "string", + "create_status": "string", + "check_uuid": "string", + "check_event_id": "string", + "docker_c md": "string", + "server_type": "strin", + "is_upgrate": true, + "build_upgrade": true, + "oauth_service_id": -2147483648, + "k8s_component_name": "string" + } + ] +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| -------- | ----------------------------------------------------------------------------------------------- | -------- | ---------- | ------------ | ---------- | +| Services | [[ServiceBaseInfo](#schemaservicebaseinfo)] | true | none | | none | + +### ServiceBaseInfo + +```json +{ + "status": "", + "access_infos": [], + "service_id": "string", + "tenant_id": "string", + "service_key": "string", + "service_alias": " string", + "service_cname": "string", + "service_region": "string", + "desc": "string", + "category": "string", + "version": "string", + " update_version": -2147483648, + "image": "string", + "cmd": "string", + "min_node": -2147483648, + "min_cpu": -2147483648, + "container_gpu": -2147483648, + " min_memory": -2147483648, + "extend_method": "string", + "code_from": "string", + "git_url": "string", + "git_project_id": -2147483648, + "code_version": "string", + "service_type": "string", + "creater": -2147483648, + "language": "string", + "total_memory": -2147483648, + "is_service": true, + "service_origin": "string", + "tenant_service_group_id": -2147483648, + "open_webhooks": true, + "service_source": "string", + "create_status": "string", + "check_uuid": "string", + "check_event_id": "string" , + "docker_cmd": "string", + "ser ver_type": "strin", + "is_upgrate": true, + "build_upgrade": true, + "oauth_service_id": -2147483648, + "k8s_component_name": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| -------------------------------------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Status | String | false | none | Status | component status | +| access_infos | [string] | false | none | | component access address | +| service_id | String | true | none | Service id | component id | +| tenant_id | String | true | none | Tenant id | tenant id | +| service_key | String | true | none | Service key | component key | +| service_alias | String | true | none | Service alias | component alias | +| service_name | String | false | none | Service cname | component name | +| service_region | String | true | none | Service region | The area to which the component belongs | +| desc | Stringenull | false | none | Desc | describe | +| Category | String | true | none | Category | Component classification:application, cache, store | +| version | String | true | none | Version | Basic Information | +| update_version | integer | false | none | Update version | Internal Releases | +| Image | String | true | none | Image | mirror | +| cmd | Stringenull | false | none | Cmd | startup parameters | +| min_node | integer | false | none | Min mode | number of instances | +| min_cpu | integer | false | none | Min cpu | CPU allocation 1000=1core | +| container_gpu | integer | false | none | Container GPUs | Amount of GPU memory | +| min_memory | integer | false | none | Min memory | Memory size unit (M) | +| extend_method | String | false | none | Extend method | Component deployment type, stateless or state | +| code_from | Stringenull | false | none | Code from | Code source: gitlab, github | +| git_url | Stringenull | false | none | Git url | code code repository | +| git_project_id | integer | false | none | Git project id | Project id in gitlab | +| code_version | Stringenull | false | none | Code version | code version | +| service_type | Stringenull | false | none | Service type | Component type: web, mysql, redis, mongodb, phpadmin | +| creator | integer | false | none | Creator | component creator | +| Language | Stringenull | false | none | Language | code language | +| Total_memory | integer | false | none | Total memory | Memory usage M | +| is_service | boolean | false | none | Is service | Whether the inner component | +| service_origin | String | false | none | Service origin | Component creation type cloud cloud city component, assistant cloud help component | +| tenant_service_group_id | integer | false | none | Tenant service group id | The component group id to which the component belongs. For components installed from the application template, this field needs to be assigned a value | +| open_webhooks | boolean | false | none | Open webhooks | Whether to enable the automatic trigger deployment function (compatible with older version components) | +| service_source | Stringenull | false | none | Service source | Component sources (source_code, market, docker_run, docker_compose) | +| create_status | Stringenull | false | none | Create status | Component creation state creating | +| check_uid | Stringenull | false | none | Check uuid | Component detection ID | +| check_event_id | Stringenull | false | none | Check event id | Component detection event ID | +| docker_cmd | Stringenull | false | none | Docker-cmd | Image creation command | +| server_type | String | false | none | Server Type | Source repository type | +| is_uprate | boolean | false | none | Is upgrade | Is it possible to update | +| build_upgrade | boolean | false | none | Build up | Whether to upgrade components after building | +| oauth_service_id | integerexecutive null | false | none | Oauth service id | The OAuth service id used to pull the source code | +| k8s_component_name | String | true | none | K8s component name | Cluster component name | + +### AppCopyC + +```json +LO + "services": [ + Fum + "service_id": "string", + "change": "string" + } + ], + "target_team_name": "string", + "target_region_name": "string", + "target_app_id": 0 +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------------------------------------ | ------------------------------------------------------------------------------------------- | -------- | ---------- | ------------------ | ---------------- | +| Services | [[AppCopyModify](#schemaappcopymodify)] | true | none | | none | +| target_team_name | String | true | none | Target team name | Team Name | +| target_region_name | String | true | none | Target region name | data center name | +| target_app_id | integer | true | none | Target app id | app id | + +### AppCopyCodes + +```json +{ + "services": [ + { + "status": "", + "access_infos": [], + "service_id": "string", + "tenant_id": "string", + "service_key": "string ", + "service_alias": "string", + "service_cname": "string", + "service_region": "string", + "desc": "string", + "category": "string", + "version ": "string", + "update_version": -2147483648, + "image": "string", + "cmd": "string", + "min_node": -2147483648, + "min_cpu": -2147483648, + " container_gpu": -2147483648, + "min_memory": -2147483648, + "extend_method": "string", + "code_from": "string", + "git_url": "string", + "git_project_id": -2147483648, + "code_version": "string", + "service_type": "string", + "creater": -2147483648, + "language": "string", + "total_memory": -2147483648, + "is_service": true, + "service_origin": "string", + "tenant_service_group_id": -2147483648, + "open_webhooks": true, + "service_source": "string", + "create_status": "string", + "check_uuid": "string", + "check_event_id": "string", + "docker_c md": "string", + "server_type": "strin", + "is_upgrate": true, + "build_upgrade": true, + "oauth_service_id": -2147483648, + "k8s_component_name": "string" + } + ] +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| -------- | ----------------------------------------------------------------------------------------------- | -------- | ---------- | ------------ | ---------- | +| Services | [[ServiceBaseInfo](#schemaservicebaseinfo)] | true | none | | none | + +### AppCopyModify + +```json +LO + "service_id": "string", + "change": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------- | ------ | -------- | ---------- | ------------ | ------------ | +| service_id | String | true | none | Service id | component ID | +| Change | String | false | read-only | Change | none | From 429deee15d4ebc567986838eb968a3cd7415e155 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:25 +0800 Subject: [PATCH 010/398] New translations createcomponent.md (English) --- .../api/application/createComponent.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/createComponent.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/createComponent.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/createComponent.md new file mode 100644 index 0000000000..714156fd41 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/createComponent.md @@ -0,0 +1,67 @@ +--- +title: Create Component +--- + +## Basic Information + +This interface is primarily used to create components by mirror + +```bash title="请求路径" +/openapi/v1/teams/{team_name}/regions/{region_name}/apps/{group_id}/services +``` + +```json title="Body 请求体示例" +LO + "group_id": 9, + "docker_cmd": "", + "image": "nginx:late", + "service_cname": "nginx", + "k8s_component_name": "nginx", + "user_name": "", + "password": "", + "is_employ": true +} +``` + +## Request Parameters + +Interface Parameters + +| Name | Type | Required | Note | +| -------------------------------- | ------- | -------- | -------------- | +| team_name | String | Yes | Team ID | +| region_name | String | Yes | Cluster ID | +| group_id | integer | Yes | Application ID | + +Body parameters + +| Name | Type | Required | Note | +| ------------------------------------------------------------ | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| group_id | String | Yes | Application ID | +| docker_cmd | String | No | Container start command | +| Image | String | Yes | Mirror address, example:nginx:latest | +| service_name | String | Yes | Component name, only lowercase letters, numbers or '-' is supported and must start with letters, end with numbers or letters | +| k8s_component_name | String | Yes | Component in English, only lowercase letters, numbers or '-' is supported and must start with letters, end with numbers or letters | +| user_name | String | No | Mirror repository user | +| password | String | No | Image repository password | +| is_upload | Bool | Yes | Whether to build automatically after creation | + +## Back to results + +| Status Code | Status code meanings | Note | +| ----------- | -------------------- | ------- | +| 200 | OK | Success | + +```json +{ + "code": 200, + "msg": "success", + "msg_show": "组件创建成功", + "data": { + "bean": { + "service_id": "0941ab572e006f49e7855e6213f7915c" + }, + "list": [] + } +} +``` From a76e4aef23273d7a4d45352e82bcc8c0bb45351a Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:27 +0800 Subject: [PATCH 011/398] New translations creategatewayrules.md (English) --- .../api/application/createGatewayRules.md | 336 ++++++++++++++++++ 1 file changed, 336 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/createGatewayRules.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/createGatewayRules.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/createGatewayRules.md new file mode 100644 index 0000000000..6412e74b54 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/createGatewayRules.md @@ -0,0 +1,336 @@ +--- +title: Create a gateway policy +--- + +## Basic Information + +This interface is mainly used to create gateway policies + +```shell title="请求路径" +POST /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/domains +``` + +```json title="Body 请求体示例" +{ + "protocol": "string", + "tcp": { + "container_port": 3, + "service_id": "string", + "end_point": "string", + "rule_extensions": [ + { + "key": "string", + "value": "string" + } + ], + "default_port": 3, + "default_ip": "string" + }, + "http": { + "service_id": "string", + "container_port": 3, + "certificate_id": 0, + "domain_name": "string", + "domain_cookie": "string", + "domain_header": "string", + "the_weight": 3, + "domain_path": "/", + "rule_extensions": [ + "string" + ], + "whether_open": false, + "auto_ssl": false, + "auto_ssl_config": "string", + "configuration ": { + "proxy_body_size": 0, + "proxy_buffer_numbers": 4, + "proxy_buffer_size": 4, + "proxy_buffering": "off", + "proxy_connect_timeout": 75, + "proxy_read_timeout": 60, + "proxy_send_timeout" ": 60, + "set_headers": [ + { + "key": "string", + "value": "string" + } + ] + } + } +} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ----------------------------------------- | -------- | ------------ | ---------- | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| app_id | Path | String | Yes | | none | +| body | body | [PostGatewayRule](#schemapostgatewayrule) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | --------------------------------- | +| 200 | OK | success | [GatewayRule](#schemagatewayrule) | + +## return data structure + +```json title="响应示例" +{ + "http": [ + { + "ID": 3, + "rule_extensions": [ + "string" + ], + "http_rule_id": "string", + "region_id": "string", + "tenant_id ": "string", + "service_id": "string", + "service_name": "string", + "domain_name": "string", + "container_port": 3, + "protocol": "string", + "certificate_id": 3, + "domain_type": "string", + "service_alias": "string", + "is_senior": true, + "domain_path": "string", + "domain_cookie": "string", + "domain_heander": "string", + "type": 3, + "the_weight": 3, + "is_outer_service": true, + "auto_ssl": true, + "auto_ssl_config": "string", + "path_rewrite": true, + "rewrites": "string" + } + ], + "tcp": [ + { + "ID": 3, + "tcp_rule_id": "string", + "region_id": "string", + " tenant_id": "string", + "service_id": "string", + "service_name": "string", + "end_point": "string", + "protocol": "string", + "container_port": 3, + "service_alias": "string", + "type": 3, + "rule_extensions": "string", + "is_outer_service": true + } + ] +} +``` + +## Model + +### PostGatewayRule + +```json +{ + "protocol": "string", + "tcp": { + "container_port": 0, + "service_id": "string", + "end_point": "string", + "rule_extensions": [ + { + "key": "string", + "value": "string" + } + ], + "default_port": 0, + "default_ip": "string" + }, + "http": { + "service_id": "string", + "container_port": 0, + "certificate_id": 0, + "domain_name": "string", + "domain_cookie": "string", + "domain_header": "string", + "the_weight": 0, + "domain_path": "/", + "rule_extensions": [], + "whether_open": false, + "auto_ssl": false, + "auto_ssl_config": "string", + "configuration": { + " proxy_body_size": 0, + "proxy_buffer_numbers": 4, + "proxy_buffer_size": 4, + "proxy_buffering": "off", + "proxy_connect_timeout": 75, + "proxy_read_timeout": 60, + "proxy_send_timeout": 60, + "set_headers": [ + { + "key": "string", + "value": "string" + } + ] + } + } +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------- | ------------------- | -------- | ---------- | ------------ | ---------- | +| protocol | String | true | none | Protocol | Protocol | +| tcp | [tcp](#schematcp) | false | none | | none | +| country_pc | [Http](#schemahttp) | false | none | | none | + +### tcp + +```json +{ + "container_port": 0, + "service_id": "string", + "end_point": "string", + "rule_extensions": [ + { + "key": "string", + "value": "string " + } + ], + "default_port": 0, + "default_ip": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------- | -------- | ---------- | -------------- | -------------------------------- | +| container_port | integer | true | none | Container port | component port | +| service_id | String | true | none | Service id | component id | +| end_point | String | true | none | End point | ip address: port | +| Rule_extensions | [[PostTCPGatewayRuleExtensions](#schememapostcpgatewayrule)] | false | none | | rule extension | +| default_port | integer | true | none | Default port | map port | +| default_ip | String | true | none | Default ip | map id address | + +### PostTCP GatewayRuleExtensions + +```json +LO + "key": "string", + "value": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----- | ------ | -------- | ---------- | ------------ | ---------- | +| Key | String | true | none | Key | none | +| Value | String | true | none | Value | none | + +### Http + +```json +{ + "service_id": "string", + "container_port": 0, + "certificate_id": 0, + "domain_name": "string", + "domain_cookie": "string", + "domain_header": "string" , + "the_weight": 0, + "domain_path": "/", + "rule_extensions": [], + "whether_open": false, + "auto_ssl": false, + "auto_ssl_config": "string", + " configuration": { + "proxy_body_size": 0, + "proxy_buffer_numbers": 4, + "proxy_buffer_size": 4, + "proxy_buffering": "off", + "proxy_connect_timeout": 75, + "proxy_read_timeout": 60, + " proxy_send_timeout": 60, + "set_headers": [ + { + "key": "string", + "value": "string" + } + ] + } +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| --------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| service_id | String | true | none | Service id | application component id | +| container_port | integer | true | none | Container port | bind port | +| certificate_id | integer | false | none | Certificate id | certificate id | +| domain_name | String | true | none | Domain name | domain name | +| domain_cookies | String | false | none | Domain cookies | domain cookie | +| domain_header | String | false | none | Domain header | domain header | +| the_weight | integer | false | none | The Weight | none | +| domain_path | String | false | none | Domain path | domain name path | +| Rule_extensions | [string] | false | none | | rule extension | +| whether_open | boolean | false | none | Whether open | Is it open | +| auto_ssl | boolean | false | none | Auto ssl | Whether to automatically match the certificate and upgrade to https, if enabled, the upgrade will be completed by an external service | +| auto_ssl_config | String | false | none | Auto ssl config | Automatic distribution certificate configuration | +| Configuration | [Configuration](#schemaconfiguration) | false | none | | Advanced parameter configuration | + +### Configuration + +```json +{ + "proxy_body_size": 0, + "proxy_buffer_numbers": 4, + "proxy_buffer_size": 4, + "proxy_buffering": "off", + "proxy_connect_timeout": 75, + "proxy_read_timeout": 60, + "proxy_send_timeout": 60, + "set_headers": [ + { + "key": "string", + "value": "string" + } + ] +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| --------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------- | ---------- | --------------------- | ----------------------------- | +| proxy_body_size | integer | false | none | Proxy body size | request body size | +| proxy_buff_numbers | integer | false | none | Proxy buffer numbers | number of buffers | +| proxy_buffer_size | integer | false | none | Proxy buffer size | buffer size | +| proxy_buffering | String | false | none | Proxy buffering | Whether to enable ProxyBuffer | +| proxy_connect_timeout | integer | false | none | Proxy connection time | connection timeout | +| proxy_read_timeout | integer | false | none | Proxy read time out | read timeout | +| proxy_send_timeout | integer | false | none | Proxy time out | send timeout | +| set_headers | [[HTTPHeader](#schemahttpgeadeer)] | true | none | | none | + +### HTTPHeader + +```json +LO + "key": "string", + "value": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----- | ------ | -------- | ---------- | ------------ | -------------------- | +| Key | String | true | none | Key | Request header Key | +| Value | String | true | none | Value | Request header Value | From 686d1c139370b83d07d7128605f5605e178cf46a Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:29 +0800 Subject: [PATCH 012/398] New translations createteamapps.md (English) --- .../current/api/application/createTeamApps.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/createTeamApps.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/createTeamApps.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/createTeamApps.md new file mode 100644 index 0000000000..da257a8f90 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/createTeamApps.md @@ -0,0 +1,96 @@ +--- +title: Create an app +--- + +## Basic Information + +This interface is mainly used to create applications + +```shell title="请求路径" +POST /openapi/v1/teams/{team_id}/regions/{region_name}/apps +``` + +```json title="Body 请求体示例" +LO + "app_name": "Test", + "app_note": "sint dolor in consectetur" +} +``` + +## request parameters + +| name | Location | type | required | illustrate | +| -------------------------------- | -------- | --------------------------------- | -------- | ---------- | +| team_id | Path | String | Yes | none | +| region_name | Path | String | Yes | none | +| body | body | [AppPostInfo](#schemaapppostinfo) | no | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 200 | OK | success | Inline | + +## return data structure + +| name | type | required | constraint | Chinese name | illustrate | +| ----------------------------------------------------------- | ------------------------------------ | -------- | ---------- | ----------------- | --------------------------- | +| ID | integer | false | read-only | ID | none | +| tenant_id | String | true | none | Tenant id | tenant id | +| group_name | String | true | none | Group name | group name | +| region_name | String | true | none | Region name | Regional center name | +| is_default | boolean | false | none | Is default | default components | +| order_index | integer | false | none | Order index | Apply sorting | +| Notes | Stringenull | false | none | Note | Remark | +| username | Stringenull | false | none | Username | The username of principal | +| governance_mode | Stringenull | false | none | Governance mode | Governance mode | +| create_time | string(date-time) | true | none | Create time | creation time | +| update_time | string(date-time) | true | none | Update time | update time | +| app_type | String | false | none | App type | App types | +| app_store_name | Stringenull | false | none | App store name | app store name | +| app_store_url | Stringenull | false | none | App store url | App store URL | +| app_template_name | Stringenull | false | none | App template name | Basic Information | +| version | Stringenull | false | none | Version | Helm app version | +| logo | Stringenull | false | none | Logo | application logo | +| k8s_app | String | false | none | K8s app | In-cluster application name | + +```json title="响应示例" +{ + "ID": 3, + "tenant_id": "string", + "group_name": "string", + "region_name": "string", + "is_default": true, + "order_index": 3, + "note": "string", + "username": "string", + "governance_mode": "string", + "create_time": "2004-01-01 11:11:11", + "update_time": " 2004-01-01 11:11:11", + "app_type": "string", + "app_store_name": "string", + "app_store_url": "string", + "app_template_name": "string", + " version": "string", + "logo": "string", + "k8s_app": "string" +} +``` + +## Model + +### AppPostInfo + +```json +LO + "app_name": "string", + "app_note": "" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----------------------------- | ------ | -------- | ---------- | ------------ | ----------------- | +| app_name | String | true | none | App name | Application Name | +| app_note | String | false | none | App note | Application Notes | From 165d010aba7ef8f6b98e2832ac56f6bdf4cc25dd Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:31 +0800 Subject: [PATCH 013/398] New translations deleteapp.md (English) --- .../current/api/application/deleteApp.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/deleteApp.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/deleteApp.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/deleteApp.md new file mode 100644 index 0000000000..02a18cdf9c --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/deleteApp.md @@ -0,0 +1,26 @@ +--- +title: delete app +--- + +## Basic Information + +This interface is mainly used to delete applications + +```shell title="请求路径" +DELETE /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------- | -------- | ------------ | ------------ | +| app_id | Path | integer | Yes | | app id | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| Force | Query | integer | no | | Force delete | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 204 | No Content | success | Inline | From 1f57327a08722577a4069827184a3e2cc95a4bb6 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:32 +0800 Subject: [PATCH 014/398] New translations deletecomponent.md (English) --- .../api/application/deleteComponent.md | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/deleteComponent.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/deleteComponent.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/deleteComponent.md new file mode 100644 index 0000000000..a1baa641f7 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/deleteComponent.md @@ -0,0 +1,27 @@ +--- +title: remove component +--- + +## Basic Information + +This interface is mainly used to delete components + +```shell title="请求路径" +DELETE /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/services/{service_id} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------- | -------- | ------------ | ------------ | +| app_id | Path | integer | Yes | | app id | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| service_id | Path | String | Yes | | none | +| Force | Query | integer | no | | Force delete | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 200 | OK | success | Inline | From 57aa370381589aa61abcf0e5eac26e7012693bd6 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:34 +0800 Subject: [PATCH 015/398] New translations getappdetail.md (English) --- .../current/api/application/getAppDetail.md | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/getAppDetail.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/getAppDetail.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/getAppDetail.md new file mode 100644 index 0000000000..591fc7f1c8 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/getAppDetail.md @@ -0,0 +1,132 @@ +--- +title: Get app details +--- + +## Basic Information + +This interface is mainly used to obtain application details + +```shell title="请求路径" +GET /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------- | -------- | ------------ | ---------- | +| app_id | Path | integer | Yes | | app id | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ------------------------- | +| 200 | OK | success | [AppInfo](#schemaappinfo) | + +## return data structure + +```json title="响应示例" +{ + "ID": 0, + "enterprise_id": "string", + "service_count": 0, + "running_service_count": 0, + "used_momory": 0, + "used_cpu": 0, + "app_id": 0, + "team_name": "string", + "status": "running", + "tenant_id": "string", + "group_name": "string", + "region_name": "string", + "is_default ": true, + "order_index": -2147483648, + "note": "string", + "username": "string", + "governance_mode": "string", + "create_time": "2019-08-24T14 :15:22Z", + "update_time": "2019-08-24T14:15:22Z", + "app_type": "string", + "app_store_name": "string", + "app_store_url": "string", + "app_template_name": "string", + "version": "string", + "logo": "string", + "k8s_app": "string" +} +``` + +## Model + +### AppInfo + +```json +{ + "ID": 0, + "enterprise_id": "string", + "service_count": 0, + "running_service_count": 0, + "used_momory": 0, + "used_cpu": 0, + "app_id": 0, + "team_name": "string", + "status": "running", + "tenant_id": "string", + "group_name": "string", + "region_name": "string", + "is_default ": true, + "order_index": -2147483648, + "note": "string", + "username": "string", + "governance_mode": "string", + "create_time": "2019-08-24T14 :15:22Z", + "update_time": "2019-08-24T14:15:22Z", + "app_type": "string", + "app_store_name": "string", + "app_store_url": "string", + "app_template_name": "string", + "version": "string", + "logo": "string", + "k8s_app": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| --------------------------------------------------------------- | ------------------------------------ | -------- | ---------- | --------------------- | ----------------------------------------------------- | +| ID | integer | false | read-only | ID | none | +| Enterprise_id | String | true | none | Enterprise id | Enterprise ID (Federated Cloud ID) | +| service_count | integer | true | none | Service count | number of components | +| running_service_count | integer | true | none | Running service count | number of components running | +| used_momory | integer | true | none | Used momory | allocated memory | +| used_cpu | integer | true | none | used cpu | allocated cpu | +| app_id | integer | true | none | App id | app id | +| team_name | String | true | none | Team name | team name | +| Status | String | true | none | Status | application status | +| tenant_id | String | true | none | Tenant id | tenant id | +| group_name | String | true | none | Group name | group name | +| region_name | String | true | none | Region name | Regional center name | +| is_default | boolean | false | none | Is default | default components | +| order_index | integer | false | none | Order index | Apply sorting | +| Notes | Stringenull | false | none | Note | Remark | +| username | Stringenull | false | none | Username | The username of principal | +| governance_mode | Stringenull | false | none | Governance mode | Governance mode | +| create_time | string(date-time) | true | none | Create time | creation time | +| update_time | string(date-time) | true | none | Update time | update time | +| app_type | String | false | none | App type | App types | +| app_store_name | Stringenull | false | none | App store name | app store name | +| app_store_url | Stringenull | false | none | App store url | App store URL | +| app_template_name | Stringenull | false | none | App template name | Application Template Name | +| version | Stringenull | false | none | Version | Helm app version | +| logo | Stringenull | false | none | Logo | application logo | +| k8s_app | String | false | none | K8s app | In-cluster application name | + +#### enumeration value + +| Attributes | value | +| ---------- | --------------------------------- | +| Status | Running | +| Status | part_running | +| Status | Closed | From 70e7e1f660832230d985f41b99f8b27c46d73958 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:35 +0800 Subject: [PATCH 016/398] New translations getappupgradeinfo.md (English) --- .../api/application/getAppUpgradeInfo.md | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/getAppUpgradeInfo.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/getAppUpgradeInfo.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/getAppUpgradeInfo.md new file mode 100644 index 0000000000..6f3a931a65 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/getAppUpgradeInfo.md @@ -0,0 +1,88 @@ +--- +title: Get application upgradeable information +--- + +## Basic Information + +This interface is mainly used to obtain application upgradeable information + +```shell title="请求路径" +GET /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/upgrade +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------- | -------- | ------------ | -------------------- | +| app_id | Path | integer | Yes | | application group id | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 200 | OK | success | Inline | + +## return data structure + +```json title="响应示例" +[ + { + "market_name": "string", + "app_model_id": "string", + "app_model_name": "string", + "current_version": "string", + "enterprise_id": "string", + " can_upgrade": true, + "upgrade_versions": [ + "string" + ], + "source": "string" + } +] +``` + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------------------------------- | --------------------------------------------------------------------------------------- | -------- | ---------- | --------------- | ---------------------------- | +| _anonymous_ | [[ListUpgrade](#schemalistupgrade)] | false | none | | none | +| » market_name | String | true | none | Market name | app store name | +| » app_model_id | String | true | none | App model id | application model id | +| » app_model_name | String | true | none | App model name | Application model name | +| » current_version | String | true | none | Current version | current version | +| » enterprise_id | String | true | none | Enterprise id | enterprise id | +| can_upgrade | boolean | true | none | Can upgrade | upgradeable | +| » upgrade_versions | [string] | true | none | | List of upgradeable versions | +| » source | String | true | none | Source | Application Model Source | + +## Model + +### ListUpgrade + +```json +{ + "market_name": "string", + "app_model_id": "string", + "app_model_name": "string", + "current_version": "string", + "enterprise_id": "string", + "can_upgrade" : true, + "upgrade_versions": [ + "string" + ], + "source": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| -------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | --------------- | ---------------------------- | +| market_name | String | true | none | Market name | app store name | +| app_model_id | String | true | none | App model id | application model id | +| app_model_name | String | true | none | App model name | Basic Information | +| current_version | String | true | none | Current version | current version | +| Enterprise_id | String | true | none | Enterprise id | enterprise id | +| can_upgrade | boolean | true | none | Can upgrade | upgradeable | +| upgrade_versions | [string] | true | none | | List of upgradeable versions | +| source | String | true | none | Source | Application Model Source | From 9c8b1be0662d38cf88393207d2bda69df11657ec Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:37 +0800 Subject: [PATCH 017/398] New translations getcomponentdetail.md (English) --- .../api/application/getComponentDetail.md | 172 ++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/getComponentDetail.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/getComponentDetail.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/getComponentDetail.md new file mode 100644 index 0000000000..98003975af --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/getComponentDetail.md @@ -0,0 +1,172 @@ +--- +title: Get component details +--- + +## Basic Information + +This interface is mainly used to query component details + +```shell title="请求路径" +GET /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/services/{service_id} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------- | -------- | ------------ | ---------- | +| app_id | Path | integer | Yes | | app id | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| service_id | Path | String | Yes | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 200 | OK | success | Inline | + +## return data structure + +```json title="响应示例" +{ + "status": "", + "access_infos": [ + "string" + ], + "service_id": "string", + "tenant_id": "string", + "service_key": "string", + "service_alias": "string", + "service_cname": "string", + "service_region": "string", + "desc": "string", + "category": "string", + "version": " string", + "update_version": 3, + "image": "string", + "cmd": "string", + "min_node": 3, + "min_cpu": 3, + "container_gpu": 3, + "min_memory": 3, + "extend_method": "string", + "code_from": "string", + "git_url": "string", + "git_project_id": 3, + "code_version": "string", + "service_type": "string", + "creater": 3, + "language": "string", + "total_memory": 3, + "is_service": true, + "service_origin": "string", + "tenant_service_group_id ": 3, + "open_webhooks": true, + "service_source": "string", + "create_status": "string", + "check_uuid": "string", + "check_event_id": "string", + "docker_cmd ": "string", + "server_type": "string", + "is_upgrate": true, + "build_upgrade": true, + " oauth_service_id": 3, + "k8s_component_name": "string" +} +``` + +## Model + +### ServiceBaseInfo + +```json +{ + "status": "", + "access_infos": [], + "service_id": "string", + "tenant_id": "string", + "service_key": "string", + "service_alias": " string", + "service_cname": "string", + "service_region": "string", + "desc": "string", + "category": "string", + "version": "string", + " update_version": -2147483648, + "image": "string", + "cmd": "string", + "min_node": -2147483648, + "min_cpu": -2147483648, + "container_gpu": -2147483648, + " min_memory": -2147483648, + "extend_method": "string", + "code_from": "string", + "git_url": "string", + "git_project_id": -2147483648, + "code_version": "string", + "service_type": "string", + "creater": -2147483648, + "language": "string", + "total_memory": -2147483648, + "is_service": true, + "service_origin": "string", + "tenant_service_group_id": -2147483648, + "open_webhooks": true, + "service_source": "string", + "create_status": "string", + "check_uuid": "string", + "check_event_id": "string" , + "docker_cmd": "string", + "ser ver_type": "strin", + "is_upgrate": true, + "build_upgrade": true, + "oauth_service_id": -2147483648, + "k8s_component_name": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| -------------------------------------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Status | String | false | none | Status | component status | +| access_infos | [string] | false | none | | component access address | +| service_id | String | true | none | Service id | component id | +| tenant_id | String | true | none | Tenant id | tenant id | +| service_key | String | true | none | Service key | component key | +| service_alias | String | true | none | Service alias | component alias | +| service_name | String | false | none | Service cname | component name | +| service_region | String | true | none | Service region | The area to which the component belongs | +| desc | Stringenull | false | none | Desc | describe | +| Category | String | true | none | Category | Component classification:application, cache, store | +| version | String | true | none | Version | Basic Information | +| update_version | integer | false | none | Update version | Internal Releases | +| Image | String | true | none | Image | mirror | +| cmd | Stringenull | false | none | Cmd | startup parameters | +| min_node | integer | false | none | Min mode | number of instances | +| min_cpu | integer | false | none | Min cpu | CPU allocation 1000=1core | +| container_gpu | integer | false | none | Container GPUs | Amount of GPU memory | +| min_memory | integer | false | none | Min memory | Memory size unit (M) | +| extend_method | String | false | none | Extend method | Component deployment type, stateless or state | +| code_from | Stringenull | false | none | Code from | Code source: gitlab, github | +| git_url | Stringenull | false | none | Git url | code code repository | +| git_project_id | integer | false | none | Git project id | Project id in gitlab | +| code_version | Stringenull | false | none | Code version | code version | +| service_type | Stringenull | false | none | Service type | Component type: web, mysql, redis, mongodb, phpadmin | +| creator | integer | false | none | Creator | component creator | +| Language | Stringenull | false | none | Language | code language | +| Total_memory | integer | false | none | Total memory | Memory usage M | +| is_service | boolean | false | none | Is service | Whether the inner component | +| service_origin | String | false | none | Service origin | Component creation type cloud cloud city component, assistant cloud help component | +| tenant_service_group_id | integer | false | none | Tenant service group id | The component group id to which the component belongs. For components installed from the application template, this field needs to be assigned a value | +| open_webhooks | boolean | false | none | Open webhooks | Whether to enable the automatic trigger deployment function (compatible with older version components) | +| service_source | Stringenull | false | none | Service source | Component sources (source_code, market, docker_run, docker_compose) | +| create_status | Stringenull | false | none | Create status | Component creation state creating | +| check_uid | Stringenull | false | none | Check uuid | Component detection ID | +| check_event_id | Stringenull | false | none | Check event id | Component detection event ID | +| docker_cmd | Stringenull | false | none | Docker-cmd | Image creation command | +| server_type | String | false | none | Server Type | Source repository type | +| is_uprate | boolean | false | none | Is upgrade | Is it possible to update | +| build_upgrade | boolean | false | none | Build up | Whether to upgrade components after building | +| oauth_service_id | integerexecutive null | false | none | Oauth service id | The OAuth service id used to pull the source code | +| k8s_component_name | String | true | none | K8s component name | Cluster component name | From bb764952684efa477d61fc8d3e8e8671114462ac Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:38 +0800 Subject: [PATCH 018/398] New translations getcomponentevents.md (English) --- .../api/application/getComponentEvents.md | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/getComponentEvents.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/getComponentEvents.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/getComponentEvents.md new file mode 100644 index 0000000000..72984ce5d4 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/getComponentEvents.md @@ -0,0 +1,113 @@ +--- +title: Get component event information +--- + +## Basic Information + +This interface is mainly used to query component event information + +```shell title="请求路径" +GET /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/services/{service_id}/events +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------- | -------- | ------------ | ----------------- | +| app_id | Path | integer | Yes | | app id | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| service_id | Path | String | Yes | | none | +| page | Query | integer | no | | page number | +| page_size | Query | integer | no | | Quantity per page | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ------------------------------------------------------------- | +| 200 | OK | success | [ListServiceEventsResponse](#schemalistserviceeventsresponse) | + +## Model + +### ListServiceEventsResponse + +```json +{ + "page": 0, + "page_size": 0, + "total": 0, + "events": [ + { + "EventID": "string", + "UserName": "string", + " EndTime": "string", + "Target": "string", + "OptType": "string", + "TargetID": "string", + "ServiceID": "string", + "Status": "string ", + "RequestBody": "string", + "create_time": "string", + "FinalStatus": "string", + "StartTime": "string", + "SynType": "string", + "Message ": "string", + "TenantID": "string", + "ID": "string" + } + ] +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------ | ------------------------------------------------------------------------------------------------- | -------- | ---------- | ------------ | ------------------- | +| page | integer | true | none | Page | current page number | +| page_size | integer | true | none | Page size | Quantity per page | +| Total | integer | true | none | Total | Total data | +| Events | [[AppServiceEvents](#schemaappserviceevents)] | true | none | | none | + +### AppServiceEvents + +```json +{ + "EventID": "string", + "UserName": "string", + "EndTime": "string", + "Target": "string", + "OptType": "string", + "TargetID" : "string", + "ServiceID": "string", + "Status": "string", + "RequestBody": "string", + "create_time": "string", + "FinalStatus": "string", + "StartTime": "string", + "SynType": "string", + "Message": "string", + "TenantID": "string", + "ID": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| -------------------------------- | ------ | -------- | ---------- | ------------ | ------------------- | +| EventID | String | true | none | Eventid | event id | +| UserName | String | true | none | Username | Operator | +| EndTime | String | true | none | Endtime | end event | +| Target | String | true | none | Target | Action target type | +| OptType | String | true | none | OptType | event type | +| TargetID | String | true | none | Targetid | Operation target id | +| ServiceID | String | true | none | Serviceid | service id | +| Status | String | true | none | Status | state | +| Request Body | String | true | none | RequestBody | request parameters | +| create_time | String | true | none | Create time | creation time | +| FinalStatus | String | true | none | Finalstatus | final state | +| StartTime | String | true | none | Starttime | Starting time | +| Syntype | String | true | none | Syntype | sync status | +| Message | String | true | none | Message | log | +| TenantID | String | true | none | Tenantid | team id | +| ID | String | true | none | Id | record id | From 41b8054f0146a3983cc2b55ccddd76696d964242 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:40 +0800 Subject: [PATCH 019/398] New translations getcopyappinfo.md (English) --- .../current/api/application/getCopyAppInfo.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/getCopyAppInfo.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/getCopyAppInfo.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/getCopyAppInfo.md new file mode 100644 index 0000000000..49f8c7189a --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/getCopyAppInfo.md @@ -0,0 +1,80 @@ +--- +title: Get the application component information that needs to be copied +--- + +## Basic Information + +This interface is mainly used to obtain the application component information that needs to be copied + +```shell title="请求路径" +GET /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/copy +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------ | -------- | ------------ | ---------- | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| app_id | Path | String | Yes | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 200 | OK | success | Inline | + +## return data structure + +Status code **200** + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------------- | --------------------------------------------------------------------------------- | -------- | ---------- | -------------- | ------------------------ | +| _anonymous_ | [[AppCopyL](#schemaappcopyl)] | false | none | | none | +| » build_source | String | false | read-only | Build source | none | +| » update_time | String | true | none | Update time | Updated | +| » employ_version | String | true | none | Upload version | build version | +| » create_status | String | true | none | Create status | Create state | +| » service_alias | String | true | none | Service alias | component nickname | +| » service_name | String | true | none | Service cname | Component Chinese name | +| » version | String | true | none | Version | Version | +| » service_type | String | true | none | Service type | component type | +| » service_id | String | true | none | Service id | Id | +| » app_name | String | true | none | App name | Application Name | +| » min_memory | String | true | none | Min memory | component running memory | + +## Model + +### AppCopyL + +```json +{ + "build_source": "string", + "update_time": "string", + "deploy_version": "string", + "create_status": "string", + "service_alias": "string", + "service_cname" : "string", + "version": "string", + "service_type": "string", + "service_id": "string", + "app_name": "string", + "min_memory": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----------------------------------- | ------ | -------- | ---------- | -------------- | ------------------------ | +| build_source | String | false | read-only | Build source | none | +| update_time | String | true | none | Update time | Updated | +| Deploy_version | String | true | none | Upload version | build version | +| create_status | String | true | none | Create status | Create state | +| service_alias | String | true | none | Service alias | component nickname | +| service_name | String | true | none | Service cname | Component Chinese name | +| version | String | true | none | Version | Basic Information | +| service_type | String | true | none | Service type | component type | +| service_id | String | true | none | Service id | Id | +| app_name | String | true | none | App name | Application Name | +| min_memory | String | true | none | Min memory | component running memory | From a3e6994ed025e50da2b9343a275fc16769ddfb68 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:41 +0800 Subject: [PATCH 020/398] New translations getteamapps.md (English) --- .../current/api/application/getTeamApps.md | 124 ++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/getTeamApps.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/getTeamApps.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/getTeamApps.md new file mode 100644 index 0000000000..6da13f53ba --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/getTeamApps.md @@ -0,0 +1,124 @@ +--- +title: Get a list of team apps +--- + +## Basic Information + +This interface is mainly used to get the list of all applications under the team + +```shell title="请求路径" +GET /openapi/v1/teams/{team_id}/regions/{region_name}/apps +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------ | -------- | ------------ | ---------------------------------------- | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| Query | Query | String | no | | Search query application name, team name | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 200 | OK | success | Inline | + +## return data structure + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -------- | ---------- | ----------------- | --------------------------- | +| _anonymous_ | [[AppBaseInfo](#schemaappbasefo)] | false | none | | none | +| » ID | integer | false | read-only | ID | none | +| » tenant_id | String | true | none | Tenant id | tenant id | +| » group_name | String | true | none | Group name | group name | +| » region_name | String | true | none | Region name | Regional center name | +| » is_default | boolean | false | none | Is default | default components | +| » order_index | integer | false | none | Order index | Apply sorting | +| » note | Stringenull | false | none | Note | Remark | +| » username | Stringenull | false | none | Username | The username of principal | +| » governance_mode | Stringenull | false | none | Governance mode | Governance mode | +| » create_time | string(date-time) | true | none | Create time | creation time | +| » update_time | string(date-time) | true | none | Update time | update time | +| » app_type | String | false | none | App type | App types | +| » app_store_name | Stringenull | false | none | App store name | app store name | +| » app_store_url | Stringenull | false | none | App store url | App store URL | +| » app_template_name | Stringenull | false | none | App template name | Application Template Name | +| » version | Stringenull | false | none | Version | Helm app version | +| » logo | Stringenull | false | none | Logo | application logo | +| » k8s_app | String | false | none | K8s app | In-cluster application name | + +```json title="响应示例" +[ + { + "ID": 3, + "tenant_id": "string", + "group_name": "string", + "region_name": "string", + "is_default": true, + "order_index": 3 , + "note": "string", + "username": "string", + "governance_mode": "string", + "create_time": "2004-01-01 11:11:11", + "update_time" : "2004-01-01 11:11:11", + "app_type": "string", + "app_store_name": "string", + "app_store_url": "string", + "app_template_name": "string", + "version": "string", + "logo": "string", + "k8s_app": "string" + } +] +``` + +## Model + +### AppBaseInfo + +```json +{ + "ID": 0, + "tenant_id": "string", + "group_name": "string", + "region_name": "string", + "is_default": true, + "order_index": -2147483648, + "note": "string", + "username": "string", + "governance_mode": "string", + "create_time": "2019-08-24T14:15:22Z", + "update_time": " 2019-08-24T14:15:22Z", + "app_type": "string", + "app_store_name": "string", + "app_store_url": "string", + "app_template_name": "string", + "version ": "string", + "logo": "string", + "k8s_app": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----------------------------------------------------------- | ------------------------------------ | -------- | ---------- | ----------------- | ---------------------------- | +| ID | integer | false | read-only | ID | none | +| tenant_id | String | true | none | Tenant id | tenant id | +| group_name | String | true | none | Group name | group name | +| region_name | String | true | none | Region name | Regional center name | +| is_default | boolean | false | none | Is default | default components | +| order_index | integer | false | none | Order index | Apply sorting | +| Notes | Stringenull | false | none | Note | Remark | +| username | Stringenull | false | none | Username | application manager | +| governance_mode | Stringenull | false | none | Governance mode | Application Governance Model | +| create_time | string(date-time) | true | none | Create time | creation time | +| update_time | string(date-time) | true | none | Update time | update time | +| app_type | String | false | none | App type | App types | +| app_store_name | Stringenull | false | none | App store name | app store name | +| app_store_url | Stringenull | false | none | App store url | App store URL | +| app_template_name | Stringenull | false | none | App template name | Basic Information | +| version | Stringenull | false | none | Version | Helm app version | +| logo | Stringenull | false | none | Logo | application logo | +| k8s_app | String | false | none | K8s app | In-cluster application name | From be04fb00faec36739b34c9198df4eeb392a74da7 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:43 +0800 Subject: [PATCH 021/398] New translations handlecomponentports.md (English) --- .../api/application/handleComponentPorts.md | 264 ++++++++++++++++++ 1 file changed, 264 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/handleComponentPorts.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/handleComponentPorts.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/handleComponentPorts.md new file mode 100644 index 0000000000..41e0671112 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/handleComponentPorts.md @@ -0,0 +1,264 @@ +--- +title: Operational Component Port +--- + +This is primarily an openAPI interface introduction for component ports, which contains a list of component ports, updates component port configuration (on/in-house, external), adding a port, deleting a port. + +## Get Component Port + +### Basic Information + +```shell title="请求路径" + GET /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/services/{service_id}/ports +``` + +### Request Parameters + +| Name | Locations | Type | Required | Chinese name | Note | +| -------------------------------- | --------- | ------- | -------- | ------------ | ------------ | +| app_id | Path | integer | Yes | | App id | +| service_id | Path | String | Yes | | App id | +| team_id | Path | String | Yes | | Team id | +| region_name | Path | String | Yes | | Cluster name | + +### Back to results + +| Status Code | Status code meanings | Note | Data Model | +| ----------- | -------------------- | ------- | -------------- | +| 200 | OK | Success | [返回模型](#ports) | + +#### Back to Model + +```json + LO + "container_port": "int", + "protocol": "string", + "port_alias": "string", + "is_inner_service": "bool", + "is_outer_service": "bool", + "k8s_service_name": "string" +} +``` + +**Properties** + +| Name | Type | Required | Constraints | Chinese name | Note | +| ---------------------------------------------------------- | -------- | -------- | ----------- | ---------------- | ---------------------------------------- | +| container_port | Annex II | true | none | ContainerPort | Port number | +| protocol | String | true | none | Protocol | Port Protocol | +| port_alias | String | true | none | Port Alias | Port Alias | +| is_inner_service | boolean | true | none | IS Inner Service | Whether to turn on inner service | +| is_over_service | boolean | true | none | IS Outer Service | Whether or not to open external services | +| k8s_service_name | String | true | none | K8S Service Name | Service name in cluster | + +## Add Component Port + +### Basic Information + +```shell title="请求路径" + POST /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/services/{service_id}/ports +``` + +```json title="Body 请求体示例" +LO + "port": "80", + "port_alias": "NGINX_PORT", + "protocol": "tcp", + "is_inner_service": True, +} +``` + +### Request Parameters + +| Name | Locations | Type | Required | Chinese name | Note | +| -------------------------------- | --------- | ---------------------- | -------- | ------------ | ------------ | +| app_id | Path | integer | Yes | | App id | +| service_id | Path | String | Yes | | App id | +| team_id | Path | String | Yes | | Team id | +| region_name | Path | String | Yes | | Cluster name | +| body | body | [请求模型](#req_post_port) | No | | none | + +#### Model + +```json + LO + "port": "int", + "port_alias": "string", + "protocol": "string", + "is_inner_service": "bool", +} +``` + +**Properties** + +| Name | Type | Required | Constraints | Chinese name | Note | +| ---------------------------------------------------------- | ------- | -------- | --------------------------- | ---------------- | -------------------------------- | +| Ports | String | true | none | ContainerPort | Port number | +| protocol | String | true | tcp, http, mysql, grpc, udp | Protocol | Port Protocol | +| port_alias | String | False | none | Port Alias | Port Alias | +| is_inner_service | boolean | False | none | IS Inner Service | Whether to turn on inner service | + +### Back to results + +| Status Code | Status code meanings | Note | Data Model | +| ----------- | -------------------- | ------- | ------------------ | +| 200 | OK | Success | [返回模型](#post_port) | + +#### Back to Model + +```json + LO + "container_port": "int", + "protocol": "string", + "port_alias": "string", + "is_inner_service": "bool", + "is_outer_service": "bool", + "k8s_service_name": "string" +} +``` + +**Properties** + +| Name | Type | Required | Constraints | Chinese name | Note | +| ---------------------------------------------------------- | -------- | -------- | ----------- | ---------------- | ---------------------------------------- | +| container_port | Annex II | true | none | ContainerPort | Port number | +| protocol | String | true | none | Protocol | Port Protocol | +| port_alias | String | true | none | Port Alias | Port Alias | +| is_inner_service | boolean | true | none | IS Inner Service | Whether to turn on inner service | +| is_over_service | boolean | true | none | IS Outer Service | Whether or not to open external services | +| k8s_service_name | String | true | none | K8S Service Name | k8s Internal Domain | + +## Update Component Port + +### Basic Information + +```shell title="请求路径" + PUT /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/services/{service_id}/ports/{port} +``` + +```json title="Body 请求体示例" +LO + "action": "change_port_alias", + "port_alias": "NGINX_PORT", + "k8s_service_name": "nginx_port", + "protocol": "tcp", +} +``` + +### Request Parameters + +| Name | Locations | Type | Required | Chinese name | Note | +| -------------------------------- | --------- | --------------------- | -------- | ------------ | ------------ | +| app_id | Path | integer | Yes | | App id | +| service_id | Path | String | Yes | | App id | +| team_id | Path | String | Yes | | Team id | +| region_name | Path | String | Yes | | Cluster name | +| Ports | Path | String | Yes | | Port number | +| body | body | [请求模型](#req_put_port) | No | | none | + +#### Model + +```json + LO + "action": "strin", + "port_alias": "string", + "protocol": "string", + "k8s_service_name": "string", +} +``` + +**Properties** + +| Name | Type | Required | Constraints | Chinese name | Note | +| ---------------------------------------------------------- | ------ | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ------------------- | +| Action | String | true | open_outer, close_outer, open_inner, close_inner, change_protocol, change_port_alias | Action | Method of operation | +| protocol | String | False | tcp, http, mysql, grpc, udp | Protocol | Port Protocol | +| port_alias | String | False | none | Port Alias | Port Alias | +| k8s_service_name | String | False | none | K8S Service Name | k8s Internal Domain | + +**action field introductions** + +- open_outer: 开启端口对外服务 +- close_outer:close port service +- open_inner: open port to internal service +- close_inner:close port to internal service +- change_protocol: Change port protocol +- change_port_alias:Change port alias and k8s internal domains + +### Back to results + +| Status Code | Status code meanings | Note | Data Model | +| ----------- | -------------------- | ------- | ----------------- | +| 200 | OK | Success | [返回模型](#put_port) | + +#### Back to Model + +```json + LO + "container_port": "int", + "protocol": "string", + "port_alias": "string", + "is_inner_service": "bool", + "is_outer_service": "bool", + "k8s_service_name": "string" +} +``` + +**Properties** + +| Name | Type | Required | Constraints | Chinese name | Note | +| ---------------------------------------------------------- | -------- | -------- | ----------- | ---------------- | ---------------------------------------- | +| container_port | Annex II | true | none | ContainerPort | Port number | +| protocol | String | true | none | Protocol | Port Protocol | +| port_alias | String | true | none | Port Alias | Port Alias | +| is_inner_service | boolean | true | none | IS Inner Service | Whether to turn on inner service | +| is_over_service | boolean | true | none | IS Outer Service | Whether or not to open external services | +| k8s_service_name | String | true | none | K8S Service Name | Service name in cluster | + +## Remove Component Port + +### Basic Information + +```shell title="请求路径" + DELETE /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/services/{service_id}/ports/{port} +``` + +### Request Parameters + +| Name | Locations | Type | Required | Chinese name | Note | +| -------------------------------- | --------- | ------- | -------- | ------------ | ------------ | +| app_id | Path | integer | Yes | | App id | +| service_id | Path | String | Yes | | App id | +| team_id | Path | String | Yes | | Team id | +| region_name | Path | String | Yes | | Cluster name | +| Ports | Path | String | Yes | | Port number | + +### Back to results + +| Status Code | Status code meanings | Note | Data Model | +| ----------- | -------------------- | ------- | -------------------- | +| 200 | OK | Success | [返回模型](#delete_port) | + +#### Back to Model + +```json + LO + "container_port": "int", + "protocol": "string", + "port_alias": "string", + "is_inner_service": "bool", + "is_outer_service": "bool", + "k8s_service_name": "string" +} +``` + +**Properties** + +| Name | Type | Required | Constraints | Chinese name | Note | +| ---------------------------------------------------------- | -------- | -------- | ----------- | ---------------- | ---------------------------------------- | +| container_port | Annex II | true | none | ContainerPort | Port number | +| protocol | String | true | none | Protocol | Port Protocol | +| port_alias | String | true | none | Port Alias | Port Alias | +| is_inner_service | boolean | true | none | IS Inner Service | Whether to turn on inner service | +| is_over_service | boolean | true | none | IS Outer Service | Whether or not to open external services | +| k8s_service_name | String | true | none | K8S Service Name | Service name in cluster | From 0b07fe781c5af545c1159a9684fc1a71f7d6ec17 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:44 +0800 Subject: [PATCH 022/398] New translations horizontalscalingofcomponents.md (English) --- .../horizontalScalingOfComponents.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/horizontalScalingOfComponents.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/horizontalScalingOfComponents.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/horizontalScalingOfComponents.md new file mode 100644 index 0000000000..1b468da468 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/horizontalScalingOfComponents.md @@ -0,0 +1,49 @@ +--- +title: Component horizontal scaling +--- + +## Basic Information + +This interface is mainly used for horizontal scaling of components + +```shell title="请求路径" +POST /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/services/{service_id}/telescopic/horizontal +``` + +```json title="Body 请求体示例" +LO + "new_node": 0 +} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ----------------------------------------------------------------------- | -------- | ------------ | ---------- | +| app_id | Path | integer | Yes | | app id | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| service_id | Path | String | Yes | | none | +| body | body | [AppServiceTelescopicHorizontal](#schemaappservicetelescopichorizontal) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ----------------------------------------------------------------------- | +| 201 | Created | success | [AppServiceTelescopicHorizontal](#schemaappservicetelescopichorizontal) | + +## Model + +### AppServiceTelescopicHorizontal + +```json +LO + "new_node": 0 +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----------------------------- | ------- | -------- | ---------- | ------------ | -------------- | +| new_node | integer | true | none | new node | component node | From f95acf5cf7678a7ebbd01fab2dabbcb4748deeab Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:46 +0800 Subject: [PATCH 023/398] New translations installappbymarket.md (English) --- .../api/application/installAppByMarket.md | 287 ++++++++++++++++++ 1 file changed, 287 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/installAppByMarket.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/installAppByMarket.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/installAppByMarket.md new file mode 100644 index 0000000000..4a6420a382 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/installAppByMarket.md @@ -0,0 +1,287 @@ +--- +title: Install apps from the app store +--- + +## Basic Information + +This interface is mainly used to install applications from the application store + +```shell title="请求路径" +POST /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/install +``` + +```json title="Body 请求体示例" +LO + "market_url": "https://hub.grapps.cn", + "market_domain": "rainbond", + "market_type": "rainstance", + "market_access_key": "123456789012340af5dff63cb740788e", + "app_model_id": "string", + "app_model_version": "string" +} +``` + +`market_type` default value pass `rainstore` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------------------------- | -------- | ------------ | -------------------- | +| app_id | Path | integer | Yes | | application group id | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| is_upload | Query | String | no | | whether to build | +| body | body | [Install](#schemainstall) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | -------------------------------------- | +| 200 | OK | success | [MarketInstall](#schemamarketingstall) | + +## return data structure + +```json title="响应示例" +{ + "enterprise_id": "string", + "team_id": "string", + "note": "string", + "ID": 3, + "region_name": "string", + "service_list": [ + { + "status": "", + "access_infos": [ + "string" + ], + "service_id": "string", + "tenant_id": "string", + "service_key": "string", + "service_alias": "string", + "service_cname": "string", + "service_region": "string", + "desc": "string", + "category": "string", + "version": "string", + "update_version": 3, + "image": "string", + "cmd": "string", + "min_node": 3, + "min_cpu": 3, + "container_gpu": 3, + "min_memory": 3, + "extend_method": "string", + "code_from": "string", + "git_url": "string", + "git_project_id": 3, + "code_version": "string", + "service_type": "string", + "creater": 3, + "language": "string", + "total_memory": 3, + "is_service": true, + "service_origin": "string", + " tenant_service_group_id": 3, + "open_webhooks": true, + "service_source": "string", + "create_status": "string", + "check_uuid": "string" , + "check_event_id": "string", + "docker_cmd": "string", + "server_type": "string", + "is_upgrate": true, + "build_upgrade": true, + "oauth_service_id": 3, + "k8s_component_name": "string" + } + ] +} +``` + +## Model + +### Install + +```json +{ + "market_url": "string", + "market_domain": "string", + "market_type": "string", + "market_access_key": "string", + "app_model_id": "string", + "app_model_version" : "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----------------------------------------------------------- | ------ | -------- | ---------- | ----------------- | ----------------- | +| market_url | String | true | none | Market url | App store routing | +| market_domain | String | true | none | Market domain | app store domain | +| market_type | String | true | none | Market type | App store type | +| market_access_key | String | true | none | Market access key | app store token | +| app_model_id | String | true | none | App model id | app id | +| app_model_version | String | true | none | App model version | App version | + +### Market Installation + +```json +{ + "enterprise_id": "string", + "team_id": "string", + "note": "string", + "ID": 0, + "region_name": "string", + "service_list": [ + { + "status": "", + "access_infos": [], + "service_id": "string", + "tenant_id": "string", + "service_key": "string", + "service_alias": "string", + "service_cname": "string", + "service_region": "string", + "desc": "string", + "category": "string", + "version": "string", + "update_version": -2147483648, + "image": "string", + "cmd": "string", + "min_node": -2147483648, + "min_cpu": -2147483648, + "container_gpu": -2147483648, + "min_memory": -2147483648, + "extend_method": "string", + "code_from": "string", + "git_url": "string", + "git_project_id": -2147483648, + "code_version": "string" , + "service_type": "string", + "creater": -2147483648, + "language": "string", + "total_memory": -2147483648, + "is_service": true, + "service_origin": "string" , + "tenant_service_group_id": -2147483648, + "open_webhooks": true, + "service_ source": "string", + "create_status": "string", + "check_uuid": "string", + "check_event_id": "string", + "docker_cmd": "string", + "server_type": "strin ", + "is_upgrate": true, + "build_upgrade": true, + "oauth_service_id": -2147483648, + "k8s_component_name": "string" + } + ] +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------- | ----------------------------------------------------------------------------------------------- | -------- | ---------- | ------------- | ----------------------------------------------------- | +| Enterprise_id | String | true | none | Enterprise id | Enterprise ID (Federated Cloud ID) | +| team_id | String | true | none | team id | team id | +| Notes | String | true | none | Note | Remark | +| ID | integer | true | none | Id | app id | +| region_name | String | true | none | Region name | data center name | +| service_list | [[ServiceBaseInfo](#schemaservicebaseinfo)] | true | none | | none | + +### ServiceBaseInfo + +```json +{ + "status": "", + "access_infos": [], + "service_id": "string", + "tenant_id": "string", + "service_key": "string", + "service_alias": " string", + "service_cname": "string", + "service_region": "string", + "desc": "string", + "category": "string", + "version": "string", + " update_version": -2147483648, + "image": "string", + "cmd": "string", + "min_node": -2147483648, + "min_cpu": -2147483648, + "container_gpu": -2147483648, + " min_memory": -2147483648, + "extend_method": "string", + "code_from": "string", + "git_url": "string", + "git_project_id": -2147483648, + "code_version": "string", + "service_type": "string", + "creater": -2147483648, + "language": "string", + "total_memory": -2147483648, + "is_service": true, + "service_origin": "string", + "tenant_service_group_id": -2147483648, + "open_webhooks": true, + "service_source": "string", + "create_status": "string", + "check_uuid": "string", + "check_event_id": "string" , + "docker_cmd": "string", + "ser ver_type": "strin", + "is_upgrate": true, + "build_upgrade": true, + "oauth_service_id": -2147483648, + "k8s_component_name": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| -------------------------------------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Status | String | false | none | Status | component status | +| access_infos | [string] | false | none | | component access address | +| service_id | String | true | none | Service id | component id | +| tenant_id | String | true | none | Tenant id | tenant id | +| service_key | String | true | none | Service key | component key | +| service_alias | String | true | none | Service alias | component alias | +| service_name | String | false | none | Service cname | component name | +| service_region | String | true | none | Service region | The area to which the component belongs | +| desc | Stringenull | false | none | Desc | describe | +| Category | String | true | none | Category | Component classification:application, cache, store | +| version | String | true | none | Version | Basic Information | +| update_version | integer | false | none | Update version | Internal Releases | +| Image | String | true | none | Image | mirror | +| cmd | Stringenull | false | none | Cmd | startup parameters | +| min_node | integer | false | none | Min mode | number of instances | +| min_cpu | integer | false | none | Min cpu | CPU allocation 1000=1core | +| container_gpu | integer | false | none | Container GPUs | Amount of GPU memory | +| min_memory | integer | false | none | Min memory | Memory size unit (M) | +| extend_method | String | false | none | Extend method | Component deployment type, stateless or state | +| code_from | Stringenull | false | none | Code from | Code source: gitlab, github | +| git_url | Stringenull | false | none | Git url | code code repository | +| git_project_id | integer | false | none | Git project id | Project id in gitlab | +| code_version | Stringenull | false | none | Code version | code version | +| service_type | Stringenull | false | none | Service type | Component type: web, mysql, redis, mongodb, phpadmin | +| creator | integer | false | none | Creator | component creator | +| Language | Stringenull | false | none | Language | code language | +| Total_memory | integer | false | none | Total memory | Memory usage M | +| is_service | boolean | false | none | Is service | Whether the inner component | +| service_origin | String | false | none | Service origin | Component creation type cloud cloud city component, assistant cloud help component | +| tenant_service_group_id | integer | false | none | Tenant service group id | The component group id to which the component belongs. For components installed from the application template, this field needs to be assigned a value | +| open_webhooks | boolean | false | none | Open webhooks | Whether to enable the automatic trigger deployment function (compatible with older version components) | +| service_source | Stringenull | false | none | Service source | Component sources (source_code, market, docker_run, docker_compose) | +| create_status | Stringenull | false | none | Create status | Component creation state creating | +| check_uid | Stringenull | false | none | Check uuid | Component detection ID | +| check_event_id | Stringenull | false | none | Check event id | Component detection event ID | +| docker_cmd | Stringenull | false | none | Docker-cmd | Image creation command | +| server_type | String | false | none | Server Type | Source repository type | +| is_uprate | boolean | false | none | Is upgrade | Is it possible to update | +| build_upgrade | boolean | false | none | Build up | Whether to upgrade components after building | +| oauth_service_id | integerexecutive null | false | none | Oauth service id | The OAuth service id used to pull the source code | +| k8s_component_name | String | true | none | K8s component name | Cluster component name | From a2fb25b42ab2bc885bf03aa5e87ffd770fb77375 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:48 +0800 Subject: [PATCH 024/398] New translations listcomponents.md (English) --- .../current/api/application/listComponents.md | 218 ++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/listComponents.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/listComponents.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/listComponents.md new file mode 100644 index 0000000000..7439ae5ce5 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/listComponents.md @@ -0,0 +1,218 @@ +--- +title: Query the list of components under the application +--- + +## Basic Information + +This interface is mainly used to query the list of components under the application + +```shell title="请求路径" +GET /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/services +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------- | -------- | ------------ | ---------- | +| app_id | Path | integer | Yes | | app id | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 200 | OK | success | Inline | + +## return data structure + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -------- | ---------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| _anonymous_ | [[ServiceBaseInfo](#schemaservicebaseinfo)] | false | none | | none | +| » status | String | false | none | Status | component status | +| » access_infos | [string] | false | none | | component access address | +| » service_id | String | true | none | Service id | component id | +| » tenant_id | String | true | none | Tenant id | tenant id | +| » service_key | String | true | none | Service key | component key | +| » service_alias | String | true | none | Service alias | component alias | +| » service_name | String | false | none | Service cname | component name | +| » service_region | String | true | none | Service region | The area to which the component belongs | +| » desc | Stringenull | false | none | Desc | describe | +| ( ) Category | String | true | none | Category | Component classification:application, cache, store | +| » version | String | true | none | Version | Basic Information | +| » update_version | integer | false | none | Update version | Internal Releases | +| » Image | String | true | none | Image | mirror | +| » cmd | Stringenull | false | none | Cmd | startup parameters | +| » min_node | integer | false | none | Min mode | number of instances | +| » min_cpu | integer | false | none | Min cpu | CPU allocation 1000=1core | +| » container_gpu | integer | false | none | Container GPUs | Amount of GPU memory | +| » min_memory | integer | false | none | Min memory | Memory size unit (M) | +| » extend_method | String | false | none | Extend method | Component deployment type, stateless or state | +| » code_from | Stringenull | false | none | Code from | Code source: gitlab, github | +| » git_url | Stringenull | false | none | Git url | code code repository | +| » git_project_id | integer | false | none | Git project id | Project id in gitlab | +| » code_version | Stringenull | false | none | Code version | code version | +| » service_type | Stringenull | false | none | Service type | Component type: web, mysql, redis, mongodb, phpadmin | +| » creator | integer | false | none | Creator | component creator | +| » Language | Stringenull | false | none | Language | code language | +| » Total_memory | integer | false | none | Total memory | Memory usage M | +| » is_service | boolean | false | none | Is service | Whether the inner component | +| » service_origin | String | false | none | Service origin | Component creation type cloud cloud city component, assistant cloud help component | +| » tenant_service_group_id | integer | false | none | Tenant service group id | The component group id to which the component belongs. For components installed from the application template, this field needs to be assigned a value | +| » open_webhooks | boolean | false | none | Open webhooks | Whether to enable the automatic trigger deployment function (compatible with older version components) | +| » service_source | Stringenull | false | none | Service source | Component sources (source_code, market, docker_run, docker_compose) | +| » create_status | Stringenull | false | none | Create status | Component creation state creating | +| » check_uuid | Stringenull | false | none | Check uuid | Component detection ID | +| » check_event_id | Stringenull | false | none | Check event id | Component detection event ID | +| » docker_cmd | Stringenull | false | none | Docker-cmd | Image creation command | +| » server_type | String | false | none | Server Type | Source repository type | +| » is_uprate | boolean | false | none | Is upgrade | Is it possible to update | +| » build_upgrade | boolean | false | none | Build up | Whether to upgrade components after building | +| » oauth_service_id | integerexecutive null | false | none | Oauth service id | The OAuth service id used to pull the source code | +| » k8s_component_name | String | true | none | K8s component name | Cluster component name | + +```json title="响应示例" +[ + { + "status": "", + "access_infos": [ + "string" + ], + "service_id": "string", + "tenant_id": "string", + "service_key": "string" , + "service_alias": "string", + "service_cname": "string", + "service_region": "string", + "desc": "string", + "category": "string", + "version" : "string", + "update_version": 3, + "image": "string", + "cmd": "string", + "min_node": 3, + "min_cpu": 3, + "container_gpu": 3 , + "min_memory": 3, + "extend_method": "string", + "code_from": "string", + "git_url": "string", + "git_project_id": 3, + "code_version": "string" , + "service_type": "string", + "creater": 3, + "language": "string", + "total_memory": 3, + "is_service": true, + "service_origin": "string", + "tenant_service_group_id": 3, + "open_webhooks": true, + "service_source": "string", + "create_status": "string", + "check_uuid": "string", + "check_event_id": "string", + "docker_cmd": "string", + "server_type": "string", + "is_upgrate": true, + "build_upgrade": true, + "oauth_service_id": 3, + "k8s_component_name": "string" + } +] +``` + +## Model + +### ServiceBaseInfo + +```json +{ + "status": "", + "access_infos": [], + "service_id": "string", + "tenant_id": "string", + "service_key": "string", + "service_alias": " string", + "service_cname": "string", + "service_region": "string", + "desc": "string", + "category": "string", + "version": "string", + " update_version": -2147483648, + "image": "string", + "cmd": "string", + "min_node": -2147483648, + "min_cpu": -2147483648, + "container_gpu": -2147483648, + " min_memory": -2147483648, + "extend_method": "string", + "code_from": "string", + "git_url": "string", + "git_project_id": -2147483648, + "code_version": "string", + "service_type": "string", + "creater": -2147483648, + "language": "string", + "total_memory": -2147483648, + "is_service": true, + "service_origin": "string", + "tenant_service_group_id": -2147483648, + "open_webhooks": true, + "service_source": "string", + "create_status": "string", + "check_uuid": "string", + "check_event_id": "string" , + "docker_cmd": "string", + "ser ver_type": "strin", + "is_upgrate": true, + "build_upgrade": true, + "oauth_service_id": -2147483648, + "k8s_component_name": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| -------------------------------------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Status | String | false | none | Status | component status | +| access_infos | [string] | false | none | | component access address | +| service_id | String | true | none | Service id | component id | +| tenant_id | String | true | none | Tenant id | tenant id | +| service_key | String | true | none | Service key | component key | +| service_alias | String | true | none | Service alias | component alias | +| service_name | String | false | none | Service cname | component name | +| service_region | String | true | none | Service region | The area to which the component belongs | +| desc | Stringenull | false | none | Desc | describe | +| Category | String | true | none | Category | Component classification:application, cache, store | +| version | String | true | none | Version | Version | +| update_version | integer | false | none | Update version | Internal Releases | +| Image | String | true | none | Image | mirror | +| cmd | Stringenull | false | none | Cmd | startup parameters | +| min_node | integer | false | none | Min mode | number of instances | +| min_cpu | integer | false | none | Min cpu | CPU allocation 1000=1core | +| container_gpu | integer | false | none | Container GPUs | Amount of GPU memory | +| min_memory | integer | false | none | Min memory | Memory size unit (M) | +| extend_method | String | false | none | Extend method | Component deployment type, stateless or state | +| code_from | Stringenull | false | none | Code from | Code source: gitlab, github | +| git_url | Stringenull | false | none | Git url | code code repository | +| git_project_id | integer | false | none | Git project id | Project id in gitlab | +| code_version | Stringenull | false | none | Code version | code version | +| service_type | Stringenull | false | none | Service type | Component type: web, mysql, redis, mongodb, phpadmin | +| creator | integer | false | none | Creator | component creator | +| Language | Stringenull | false | none | Language | code language | +| Total_memory | integer | false | none | Total memory | Memory usage M | +| is_service | boolean | false | none | Is service | Whether the inner component | +| service_origin | String | false | none | Service origin | Component creation type cloud cloud city component, assistant cloud help component | +| tenant_service_group_id | integer | false | none | Tenant service group id | The component group id to which the component belongs. For components installed from the application template, this field needs to be assigned a value | +| open_webhooks | boolean | false | none | Open webhooks | Whether to enable the automatic trigger deployment function (compatible with older version components) | +| service_source | Stringenull | false | none | Service source | Component sources (source_code, market, docker_run, docker_compose) | +| create_status | Stringenull | false | none | Create status | Component creation state creating | +| check_uid | Stringenull | false | none | Check uuid | Component detection ID | +| check_event_id | Stringenull | false | none | Check event id | Component detection event ID | +| docker_cmd | Stringenull | false | none | Docker-cmd | Image creation command | +| server_type | String | false | none | Server Type | Source repository type | +| is_uprate | boolean | false | none | Is upgrade | Is it possible to update | +| build_upgrade | boolean | false | none | Build up | Whether to upgrade components after building | +| oauth_service_id | integerexecutive null | false | none | Oauth service id | The OAuth service id used to pull the source code | +| k8s_component_name | String | true | none | K8s component name | Cluster component name | From 7777f72a878206cda27e5e7b65f09ce64d292baf Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:50 +0800 Subject: [PATCH 025/398] New translations operateapp.md (English) --- .../current/api/application/operateApp.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/operateApp.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/operateApp.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/operateApp.md new file mode 100644 index 0000000000..3fa3c4dca6 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/operateApp.md @@ -0,0 +1,69 @@ +--- +title: operating application +--- + +## Basic Information + +This interface is mainly used for components under batch operation applications, and supports start, stop, update, and build + +```shell title="请求路径" +POST /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/operations +``` + +```json title="Body 请求体示例" +LO + "action": "stop", + "service_ids": [ + "string" + ] + } } } } } +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ---------------------------------------------- | -------- | ------------ | ---------- | +| app_id | Path | integer | Yes | | app id | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| body | body | [ServiceGroupOperations](#schemaservicegroups) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 200 | OK | success | Success | + +## return data structure + +```json title="响应示例" +``` + +## Model + +### ServiceGroupOperations + +```json +LO + "action": "stop", + "service_ids": [ + "string" + ] + } } } } } +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----------------------------------- | ------------------------------------------------------------ | -------- | ---------- | ------------ | --------------------------------------------------------------------------------------------------- | +| Action | String | true | none | Action | Operation type | +| service_weight | [string] | false | none | | List of component IDs, if no value is passed, all components under the application will be operated | + +#### enumeration value + +| Attributes | value | +| ---------- | ------- | +| Action | Stop | +| Action | Start | +| Action | upgrade | +| Action | Drop | From 86b7eb5f527bdfc61c49b6b9435dfe763c901e64 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:51 +0800 Subject: [PATCH 026/398] New translations updatecomponentenvs.md (English) --- .../api/application/updateComponentEnvs.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/updateComponentEnvs.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/updateComponentEnvs.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/updateComponentEnvs.md new file mode 100644 index 0000000000..8d0abc4be1 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/updateComponentEnvs.md @@ -0,0 +1,87 @@ +--- +title: Update component environment variables +--- + +## Basic Information + +This interface is mainly used to update component environment variables + +```shell title="请求路径" +PUT /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/services/{service_id}/envs +``` + +```json title="Body 请求体示例" +{ + "envs": [ + { + "note": "string", + "name": "string", + "value": "string", + "is_change": true, + "scope": "inner " + } + ] +} +``` + +## request parameters + +| Name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ----------------------------------------------------------- | -------- | ------------ | ------------ | +| app_id | Path | integer | Yes | | app id | +| service_id | Path | String | Yes | | app id | +| team_id | Path | String | Yes | | team id | +| region_name | Path | String | Yes | | cluster name | +| body | body | [ComponentEnvsSerializers](#schemacomponentenvsserializers) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ----------------------------------------------------------- | +| 200 | OK | success | [ComponentEnvsSerializers](#schemacomponentenvsserializers) | + +## Model + +### ComponentEnvsSerializers + +```json +{ + "envs": [ + { + "note": "string", + "name": "string", + "value": "string", + "is_change": true, + "scope": "inner " + } + ] +} +``` + +### Attributes + +| Name | type | required | constraint | Chinese name | illustrate | +| ---- | ------------------------------------------------------------------------------------------------------------------------- | -------- | ---------- | ------------ | ---------- | +| envs | [[ComponentEnvsBaseSerializers](#schemacomponentenvsbaseserializers)] | true | none | | none | + +### ComponentEnvBaseSerializers + +```json +LO + "note": "string", + "name": "string", + "value": "string", + "is_change": true, + "scope": "inner" +} +``` + +### Attributes + +| Basic Information | type | required | constraint | Chinese name | illustrate | +| ------------------------------ | ------- | -------- | ---------- | ------------ | -------------------------- | +| Notes | String | false | none | Note | Remark | +| Name | String | true | none | Name | environment variable name | +| Value | String | true | none | Value | environment variable value | +| is_change | boolean | false | none | Is change | Can it be changed | +| Scope | String | false | none | Scope | Scope | From 953ac243c84e8bb2568daab55b93baf44aab03e7 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:53 +0800 Subject: [PATCH 027/398] New translations upgradeapp.md (English) --- .../current/api/application/upgradeApp.md | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/upgradeApp.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/upgradeApp.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/upgradeApp.md new file mode 100644 index 0000000000..87c94dde48 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/upgradeApp.md @@ -0,0 +1,139 @@ +--- +title: Upgrade the app +--- + +## Basic Information + +This interface is mainly used to upgrade applications + +```shell title="请求路径" +POST /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/upgrade +``` + +```json title="Body 请求体示例" +LOD + "update_versions": [ + Fum + "market_name": "string", + "app_model_id": "string", + "app_model_version": "string" + } } + ] +} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------------------------ | -------- | ------------ | -------------------- | +| app_id | Path | integer | Yes | | application group id | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| body | body | [Upgrade](#schemaugrade) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 200 | OK | success | Inline | + +## return data structure + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------------------------------- | --------------------------------------------------------------------------------------- | -------- | ---------- | --------------- | ---------------------------- | +| _anonymous_ | [[ListUpgrade](#schemalistupgrade)] | false | none | | none | +| » market_name | String | true | none | Market name | app store name | +| » app_model_id | String | true | none | App model id | application model id | +| » app_model_name | String | true | none | App model name | Application model name | +| » current_version | String | true | none | Current version | current version | +| » enterprise_id | String | true | none | Enterprise id | enterprise id | +| can_upgrade | boolean | true | none | Can upgrade | upgradeable | +| » upgrade_versions | [string] | true | none | | List of upgradeable versions | +| » source | String | true | none | Source | Application Model Source | + +```json title="响应示例" +[ + { + "market_name": "string", + "app_model_id": "string", + "app_model_name": "string", + "current_version": "string", + "enterprise_id": "string", + " can_upgrade": true, + "upgrade_versions": [ + "string" + ], + "source": "string" + } +] +``` + +## Model + +### Upgrade + +```json +LOD + "update_versions": [ + Fum + "market_name": "string", + "app_model_id": "string", + "app_model_version": "string" + } } + ] +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------------ | -------------------------------------------------------------------------------------- | -------- | ---------- | ------------ | ---------- | +| update_versions | [[UpgradeBase](#schemaugradebase)] | true | none | | none | + +### UpgradeBase + +```json +LO + "market_name": "string", + "app_model_id": "string", + "app_model_version": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----------------------------------------------------------- | ------ | -------- | ---------- | ----------------- | -------------------- | +| market_name | String | true | none | Market name | app store name | +| app_model_id | String | true | none | App model id | application model id | +| app_model_version | String | true | none | App model version | current version | + +### ListUpgrade + +```json +{ + "market_name": "string", + "app_model_id": "string", + "app_model_name": "string", + "current_version": "string", + "enterprise_id": "string", + "can_upgrade" : true, + "upgrade_versions": [ + "string" + ], + "source": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| -------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | --------------- | ---------------------------- | +| market_name | String | true | none | Market name | app store name | +| app_model_id | String | true | none | App model id | application model id | +| app_model_name | String | true | none | App model name | Basic Information | +| current_version | String | true | none | Current version | current version | +| Enterprise_id | String | true | none | Enterprise id | enterprise id | +| can_upgrade | boolean | true | none | Can upgrade | upgradeable | +| upgrade_versions | [string] | true | none | | List of upgradeable versions | +| source | String | true | none | Source | Application Model Source | From 19ee28eccdd7a89ea8d79a59d8d4fd2bc38571e2 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:54 +0800 Subject: [PATCH 028/398] New translations verticalscalingofcomponents.md (English) --- .../verticalScalingOfComponents.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/application/verticalScalingOfComponents.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/application/verticalScalingOfComponents.md b/i18n/en/docusaurus-plugin-content-docs/current/api/application/verticalScalingOfComponents.md new file mode 100644 index 0000000000..7691899814 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/application/verticalScalingOfComponents.md @@ -0,0 +1,56 @@ +--- +title: Vertical scaling of components +--- + +## Basic Information + +This interface is mainly used for vertical scaling of components + +```shell title="请求路径" +POST /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/services/{service_id}/telescopic/vertical +``` + +```json title="Body 请求体示例" +LO + "new_memory": 0, + "new_gpu": 0, + "new_cpu": 0 + } } } +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------------------------------------------------------------------- | -------- | ------------ | ---------- | +| app_id | Path | integer | Yes | | app id | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| service_id | Path | String | Yes | | none | +| body | body | [AppServiceTelescopicVertical](#schemaappservicetelescopicvertical) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ------------------------------------------------------------------- | +| 201 | Created | success | [AppServiceTelescopicVertical](#schemaappservicetelescopicvertical) | + +## Model + +### AppServiceTelescopicVertical + +```json +LO + "new_memory": 0, + "new_gpu": 0, + "new_cpu": 0 +} } + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------- | ------- | -------- | ---------- | ------------ | -------------------------------- | +| new_memory | integer | true | none | New memory | component memory | +| new_gpu | integer | true | none | New gpu | Component gpu memory application | +| new_cpu | integer | true | none | new cpu | Component CPU quota application | From 66359c3645a6541eb3747094d637015e65e6f3a1 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:56 +0800 Subject: [PATCH 029/398] New translations getenterpriseconfiginfo.md (English) --- .../api/enterprise/getEnterpriseConfigInfo.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/enterprise/getEnterpriseConfigInfo.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/enterprise/getEnterpriseConfigInfo.md b/i18n/en/docusaurus-plugin-content-docs/current/api/enterprise/getEnterpriseConfigInfo.md new file mode 100644 index 0000000000..b862d545b8 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/enterprise/getEnterpriseConfigInfo.md @@ -0,0 +1,94 @@ +--- +title: Get enterprise configuration information +--- + +## Basic Information + +Get enterprise configuration information + +```json title="请求路径" +GET /openapi/v1/configs +``` + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ------------------------------------------------------- | +| 200 | OK | success | [EnterpriseConfigSeralizer](#enterpriseconconfigalizer) | + +## Model + +### Enterprise ConfigSerializer + +```json +{ + "export_app": { + "enable": false, + "value": "string" + }, + "auto_ssl": { + "enable": false, + "value": "string" + }, + "oauth_services": { + "enable": false, + "value": [ + { + "enable": true, + "auth_url": "string", + "name": "string", + "is_console": false, + "is_auto_login": false, + "service_id": 0, + "oauth_type": "string", + "eid": "string", + "home_url": "string", + "access_token_url": "string ", + "api_url": "string", + "is_deleted": false, + "is_git": false + } + ] + }, + "cloud_market": { + "enable": false, + "value": " string" + }, + "object_storage": { + "enable": false, + "value": { + "provider": "string", + "endpoint": "string", + "access_key": "string" , + "secret_key": "string", + "bucket_name": "string" + } + }, + "appstore_image_hub": { + "enable": false, + "value": { + "namespace": "string" , + "hub_password": "string", + "hub_url": "string", + "hub_user": "string" + } + }, + "newbie_guide": { + "enable": false, + "value ": "string" + } +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------------------------------------ | --------------------------------------------------- | -------- | ---------- | ------------ | ---------- | +| export_app | [Export app](#schemaexport%20app) | false | none | | none | +| auto_ssl | [Auto ssl](#schemaauto%20ssl) | false | none | | none | +| oauth_services | [Oauth services](#schemaoauth%20services) | false | none | | none | +| cloud_market | [Cloud market](#schemacloud%20market) | false | none | | none | +| object_store | [Object storage](#schemaobject%20storage) | false | none | | none | +| appstore_image_hub | [Appstore image hub](#schemaappstore%20image%20hub) | false | none | | none | +| newbie_guide | [Newbie guide](#schemanewbie%20guide) | false | none | | none | From 1da1efb448351c5d8ce164c838121b44d868976f Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:57 +0800 Subject: [PATCH 030/398] New translations getenterpriselist.md (English) --- .../api/enterprise/getEnterpriseList.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/enterprise/getEnterpriseList.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/enterprise/getEnterpriseList.md b/i18n/en/docusaurus-plugin-content-docs/current/api/enterprise/getEnterpriseList.md new file mode 100644 index 0000000000..e232f5014c --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/enterprise/getEnterpriseList.md @@ -0,0 +1,55 @@ +--- +title: Get business list +--- + +## Basic Information + +Get business list + +```json title="请求路径" +GET /openapi/v2/manage/Enterprises +``` + +## request parameters + +| name | Location | type | required | illustrate | +| -------- | -------- | ------ | -------- | --------------------------------------- | +| Query | Query | String | no | Search by business name, business alias | +| Current | Query | String | no | page number | +| pageSize | Query | String | no | Quantity per page | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ----------------------------- | +| 200 | OK | success | [ListEntsResp](#listentsresk) | + +## Model + +### ListEntsResp + +```json +{ + "total": 0, + "data": [ + { + "enterprise_id": "string", + "enterprise_name": "string", + "enterprise_alias": "string", + "create_time": "2019 -08-24T14:15:22Z", + "region_num": 0, + "user_num": 0, + "team_num": 0, + "is_active": true + } + ] +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----- | ----------------------------------------------------------------------------------------------------- | -------- | ---------- | ------------ | ---------- | +| Total | integer | true | none | Total | Total | +| Data | [[EnterpriseListInfo](#schemaenterpriselistinfo)] | true | none | | none | From 1e631d77dc2f38eeda5e3fac8d70064558f072c2 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:21:58 +0800 Subject: [PATCH 031/398] New translations getenterpriseresource.md (English) --- .../api/enterprise/getEnterpriseResource.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/enterprise/getEnterpriseResource.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/enterprise/getEnterpriseResource.md b/i18n/en/docusaurus-plugin-content-docs/current/api/enterprise/getEnterpriseResource.md new file mode 100644 index 0000000000..f6d4e4b00a --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/enterprise/getEnterpriseResource.md @@ -0,0 +1,46 @@ +--- +title: Obtain information about enterprise usage resources +--- + +## Basic Information + +Obtain information about enterprise usage resources + +```json title="请求路径" +GET /openapi/v2/manage/enterprises/{eid}/resource +``` + +## request parameters + +| name | Location | type | required | illustrate | +| ---- | -------- | ------ | -------- | ---------- | +| eid | Path | String | Yes | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | -------------------------------- | +| 200 | OK | success | [EnterpriseSource](#enterprises) | + +## Model + +### Enterprise Source + +```json +LO + "enterprise_id": "string", + "used_cpu": 0, + "used_memory": 0, + "used_disk": 0 +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------- | ------ | -------- | ---------- | ------------- | ----------------------------------------------------- | +| Enterprise_id | String | true | none | Enterprise id | Enterprise ID (Federated Cloud ID) | +| used_cpu | Number | true | none | cpu used | used cpu | +| used_memory | Number | true | none | Used memory | memory used | +| used_disk | Number | true | none | Used Disk | used storage | From 2bbca537ae8215bd3783669df065bae0d7b0b86f Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:00 +0800 Subject: [PATCH 032/398] New translations createhttprule.md (English) --- .../current/api/gateway/createHttpRule.md | 178 ++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/gateway/createHttpRule.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/createHttpRule.md b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/createHttpRule.md new file mode 100644 index 0000000000..64894917fd --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/createHttpRule.md @@ -0,0 +1,178 @@ +--- +title: Create HTTP Gateway Policy +--- + +## Basic Information + +Create HTTP Gateway Policy + +```json title="请求路径" +POST /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/httpdomains +``` + +```json title="Body请求参数" +{ + "service_id": "string", + "container_port": 0, + "certificate_id": 0, + "domain_name": "string", + "domain_cookie": "string", + "domain_header": "string" , + "the_weight": 0, + "domain_path": "/", + "rule_extensions": [], + "whether_open": false, + "auto_ssl": false, + "auto_ssl_config": "string", + " configuration": { + "proxy_body_size": 0, + "proxy_buffer_numbers": 4, + "proxy_buffer_size": 4, + "proxy_buffering": "off", + "proxy_connect_timeout": 75, + "proxy_read_timeout": 60, + " proxy_send_timeout": 60, + "set_headers": [ + { + "key": "string", + "value": "string" + } + ] + } +} +``` + +## request parameters + +| name | Location | Type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------------- | -------- | ------------ | ---------- | +| app_id | Path | integer | Yes | | App ID | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | +| body | body | [Http](#http) | no | Http | none | + +> back to example + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ----------------------------------- | +| 200 | OK | success | [HTTPGatewayRule](#httpgatewayrule) | + +## Model + +### Http + +```json +{ + "service_id": "string", + "container_port": 0, + "certificate_id": 0, + "domain_name": "string", + "domain_cookie": "string", + "domain_header": "string" , + "the_weight": 0, + "domain_path": "/", + "rule_extensions": [], + "whether_open": false, + "auto_ssl": false, + "auto_ssl_config": "string", + " configuration": { + "proxy_body_size": 0, + "proxy_buffer_numbers": 4, + "proxy_buffer_size": 4, + "proxy_buffering": "off", + "proxy_connect_timeout": 75, + "proxy_read_timeout": 60, + " proxy_send_timeout": 60, + "set_headers": [ + { + "key": "string", + "value": "string" + } + ] + } +} + +``` + +### Attributes + +| name | Type | required | constraint | Chinese name | illustrate | +| --------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| service_id | String | true | none | Service id | application component id | +| container_port | integer | true | none | Container port | bind port | +| certificate_id | integer | false | none | Certificate id | certificate id | +| domain_name | String | true | none | Domain name | domain name | +| domain_cookies | String | false | none | Domain cookies | domain cookie | +| domain_header | String | false | none | Domain header | domain header | +| the_weight | integer | false | none | The Weight | none | +| domain_path | String | false | none | Domain path | domain name path | +| Rule_extensions | [string] | false | none | | rule extension | +| whether_open | boolean | false | none | Whether open | Is it open | +| auto_ssl | boolean | false | none | Auto ssl | Whether to automatically match the certificate and upgrade to https, if enabled, the upgrade will be completed by an external service | +| auto_ssl_config | String | false | none | Auto ssl config | Automatic distribution certificate configuration | +| Configuration | [Configuration](#schemaconfiguration) | false | none | | Advanced parameter configuration | + +### HTTP GatewayRule + +```json +{ + "ID": 0, + "rule_extensions": [ + "string" + ], + "http_rule_id": "string", + "region_id": "string", + "tenant_id": "string", + " service_id": "string", + "service_name": "string", + "domain_name": "string", + "container_port": -2147483648, + "protocol": "string", + "certificate_id": -2147483648, + "domain_type": "string", + "service_alias": "string", + "is_senior": true, + "domain_path": "string", + "domain_cookie": "string", + "domain_heander": "string ", + "type": -2147483648, + "the_weight": -2147483648, + "is_outer_service": true, + "auto_ssl": true, + "auto_ssl_config": "string", + "path_rewrite": true, + " rewrites": "string" +} + +``` + +### Attributes + +| name | Type | required | constraint | Chinese name | illustrate | +| --------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| ID | integer | false | read-only | ID | none | +| Rule_extensions | [string] | false | read-only | | none | +| http_rule_id | String | true | none | Http rule id | http_rule_id | +| region_id | String | true | none | Region id | region id | +| tenant_id | String | true | none | Tenant id | tenant id | +| service_id | String | true | none | Service id | component id | +| service_name | String | true | none | Service name | component name | +| domain_name | String | true | none | Domain name | domain name | +| container_port | integer | false | none | Container port | container port | +| protocol | String | false | none | Protocol | Domain type http https httptp https http and https | +| certificate_id | integer | false | none | Certificate id | Certificate ID | +| domain_type | String | false | none | Domain type | Component domain name type | +| service_alias | String | false | none | Service alias | component alias | +| is_senate | boolean | false | none | Is senior | Is there an advanced route | +| domain_path | String | false | none | Domain path | domain name path | +| domain_cookies | String | false | none | Domain cookies | domain cookie | +| domain_heander | String | false | none | Domain heander | domain name heander | +| Type | integer | false | none | Type | Type (default:0, custom:1) | +| the_weight | integer | false | none | The Weight | Weights | +| is_over_service | boolean | false | none | Is external service | Whether the external port has been opened | +| auto_ssl | boolean | false | none | Auto ssl | Whether to automatically match the certificate and upgrade to https, if enabled, the upgrade will be completed by an external service | +| auto_ssl_config | Stringenull | false | none | Auto ssl config | Automatic distribution certificate configuration | +| path_rewrite | boolean | false | none | Path rewrite | Whether to enable simple route rewriting | +| Rewrites | String | false | none | Rewrites | Complex route rewrite configuration | From 19c501e320dd48aa3286b9b219f18da79fc5cfa3 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:01 +0800 Subject: [PATCH 033/398] New translations delgatewayrule.md (English) --- .../current/api/gateway/delGatewayRule.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/gateway/delGatewayRule.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/delGatewayRule.md b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/delGatewayRule.md new file mode 100644 index 0000000000..52bf28cd85 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/delGatewayRule.md @@ -0,0 +1,91 @@ +--- +title: delete access policy +--- + +## Basic Information + +delete access policy + +```json title="请求路径" +DELETE /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/domains/{rule_id} +``` + +## request parameters + +| name | Location | Type | required | illustrate | +| -------------------------------- | -------- | ------ | -------- | ---------- | +| team_id | Path | String | Yes | none | +| region_name | Path | String | Yes | none | +| app_id | Path | String | Yes | none | +| Rule_id | Path | String | Yes | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ----------------------------------- | +| 200 | OK | success | [HTTPGatewayRule](#httpgatewayrule) | + +## Model + +### HTTP GatewayRule + +```json +{ + "ID": 0, + "rule_extensions": [ + "string" + ], + "http_rule_id": "string", + "region_id": "string", + "tenant_id": "string", + " service_id": "string", + "service_name": "string", + "domain_name": "string", + "container_port": -2147483648, + "protocol": "string", + "certificate_id": -2147483648, + "domain_type": "string", + "service_alias": "string", + "is_senior": true, + "domain_path": "string", + "domain_cookie": "string", + "domain_heander": "string ", + "type": -2147483648, + "the_weight": -2147483648, + "is_outer_service": true, + "auto_ssl": true, + "auto_ssl_config": "string", + "path_rewrite": true, + " rewrites": "string" +} + +``` + +### Attributes + +| name | Type | required | constraint | Chinese name | illustrate | +| --------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| ID | integer | false | read-only | ID | none | +| Rule_extensions | [string] | false | read-only | | none | +| http_rule_id | String | true | none | Http rule id | http_rule_id | +| region_id | String | true | none | Region id | region id | +| tenant_id | String | true | none | Tenant id | tenant id | +| service_id | String | true | none | Service id | component id | +| service_name | String | true | none | Service name | component name | +| domain_name | String | true | none | Domain name | domain name | +| container_port | integer | false | none | Container port | container port | +| protocol | String | false | none | Protocol | Domain type http https httptp https http and https | +| certificate_id | integer | false | none | Certificate id | Certificate ID | +| domain_type | String | false | none | Domain type | Component domain name type | +| service_alias | String | false | none | Service alias | component alias | +| is_senate | boolean | false | none | Is senior | Is there an advanced route | +| domain_path | String | false | none | Domain path | domain name path | +| domain_cookies | String | false | none | Domain cookies | domain cookie | +| domain_heander | String | false | none | Domain heander | domain name heander | +| Type | integer | false | none | Type | Type (default:0, custom:1) | +| the_weight | integer | false | none | The Weight | Weights | +| is_over_service | boolean | false | none | Is external service | Whether the external port has been opened | +| auto_ssl | boolean | false | none | Auto ssl | Whether to automatically match the certificate and upgrade to https, if enabled, the upgrade will be completed by an external service | +| auto_ssl_config | Stringenull | false | none | Auto ssl config | Automatic distribution certificate configuration | +| path_rewrite | boolean | false | none | Path rewrite | Whether to enable simple route rewriting | +| Rewrites | String | false | none | Rewrites | Complex route rewrite configuration | From c43622e75d0f0171285d1e1462230c4565133397 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:03 +0800 Subject: [PATCH 034/398] New translations delhttprule.md (English) --- .../current/api/gateway/delHttpRule.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/gateway/delHttpRule.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/delHttpRule.md b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/delHttpRule.md new file mode 100644 index 0000000000..1d10ce6077 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/delHttpRule.md @@ -0,0 +1,91 @@ +--- +title: Remove HTTP access policy +--- + +## Basic Information + +Remove HTTP access policy + +```json title="请求路径" +DELETE /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/httpdomains/{rule_id} +``` + +## request parameters + +| name | Location | Type | required | illustrate | +| -------------------------------- | -------- | ------ | -------- | ---------- | +| team_id | Path | String | Yes | none | +| region_name | Path | String | Yes | none | +| app_id | Path | String | Yes | none | +| Rule_id | Path | String | Yes | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ----------------------------------- | +| 200 | OK | success | [HTTPGatewayRule](#httpgatewayrule) | + +## Model + +### HTTP GatewayRule + +```json +{ + "ID": 0, + "rule_extensions": [ + "string" + ], + "http_rule_id": "string", + "region_id": "string", + "tenant_id": "string", + " service_id": "string", + "service_name": "string", + "domain_name": "string", + "container_port": -2147483648, + "protocol": "string", + "certificate_id": -2147483648, + "domain_type": "string", + "service_alias": "string", + "is_senior": true, + "domain_path": "string", + "domain_cookie": "string", + "domain_heander": "string ", + "type": -2147483648, + "the_weight": -2147483648, + "is_outer_service": true, + "auto_ssl": true, + "auto_ssl_config": "string", + "path_rewrite": true, + " rewrites": "string" +} + +``` + +### Attributes + +| name | Type | required | constraint | Chinese name | illustrate | +| --------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| ID | integer | false | read-only | ID | none | +| Rule_extensions | [string] | false | read-only | | none | +| http_rule_id | String | true | none | Http rule id | http_rule_id | +| region_id | String | true | none | Region id | region id | +| tenant_id | String | true | none | Tenant id | tenant id | +| service_id | String | true | none | Service id | component id | +| service_name | String | true | none | Service name | component name | +| domain_name | String | true | none | Domain name | domain name | +| container_port | integer | false | none | Container port | container port | +| protocol | String | false | none | Protocol | Domain type http https httptp https http and https | +| certificate_id | integer | false | none | Certificate id | Certificate ID | +| domain_type | String | false | none | Domain type | Component domain name type | +| service_alias | String | false | none | Service alias | component alias | +| is_senate | boolean | false | none | Is senior | Is there an advanced route | +| domain_path | String | false | none | Domain path | domain name path | +| domain_cookies | String | false | none | Domain cookies | domain cookie | +| domain_heander | String | false | none | Domain heander | domain name heander | +| Type | integer | false | none | Type | Type (default:0, custom:1) | +| the_weight | integer | false | none | The Weight | Weights | +| is_over_service | boolean | false | none | Is external service | Whether the external port has been opened | +| auto_ssl | boolean | false | none | Auto ssl | Whether to automatically match the certificate and upgrade to https, if enabled, the upgrade will be completed by an external service | +| auto_ssl_config | Stringenull | false | none | Auto ssl config | Automatic distribution certificate configuration | +| path_rewrite | boolean | false | none | Path rewrite | Whether to enable simple route rewriting | +| Rewrites | String | false | none | Rewrites | Complex route rewrite configuration | From 55115287d024acfce4d849d69afea89b9ce058ab Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:05 +0800 Subject: [PATCH 035/398] New translations getenterpriusehttprule.md (English) --- .../api/gateway/getEnterpriuseHttpRule.md | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getEnterpriuseHttpRule.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getEnterpriuseHttpRule.md b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getEnterpriuseHttpRule.md new file mode 100644 index 0000000000..93f17535d9 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getEnterpriuseHttpRule.md @@ -0,0 +1,127 @@ +--- +title: Get the list of enterprise application http access policies +--- + +## Basic Information + +Get the list of enterprise application http access policies + +```json title="请求路径" +GET /openapi/v1/httpomains +``` + +## request parameters + +| name | Location | Type | required | Chinese name | illustrate | +| ----------------------------- | -------- | ------ | -------- | ------------ | --------------------------------------------------------------------------------------------- | +| auto_ssl | Query | String | no | | The query condition, whether it is a policy that needs to automatically match the certificate | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 200 | OK | success | Inline | + +## return data structure + +Status code **200** + +| name | Type | required | constraint | Chinese name | illustrate | +| ------------------------------------------------------------ | ----------------------------------------------------- | -------- | ---------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| _anonymous_ | [EnterpriseHTTPGatewayRule](#enterprisehttpgewayrule) | false | none | | none | +| » ID | integer | false | read-only | ID | none | +| » region_name | String | true | none | Region name | ID of the cluster to which it belongs | +| » team_name | String | true | none | Team name | Unique team name | +| » app_id | integer | true | none | App id | App ID | +| » auto_ssl_config | String | true | none | Auto ssl config | automatic issuance method | +| » http_rule_id | String | true | none | Http rule id | http_rule_id | +| » region_id | String | true | none | Region id | region id | +| » tenant_id | String | true | none | Tenant id | tenant id | +| » service_id | String | true | none | Service id | component id | +| » service_name | String | true | none | Service name | component name | +| » domain_name | String | true | none | Domain name | domain name | +| » Container_port | integer | false | none | Container port | container port | +| » protocol | String | false | none | Protocol | Domain type http https httptp https http and https | +| » certificate_id | integer | false | none | Certificate id | Certificate ID | +| » domain_type | String | false | none | Domain type | Component domain name type | +| » service_alias | String | false | none | Service alias | component alias | +| » is_senior | boolean | false | none | Is senior | Is there an advanced route | +| » domain_path | String | false | none | Domain path | domain name path | +| » domain_cookie | String | false | none | Domain cookies | domain cookie | +| » domain_heander | String | false | none | Domain heander | domain name heander | +| » Type | integer | false | none | Type | Type (default:0, custom:1) | +| » the_weight | integer | false | none | The Weight | Weights | +| » Rule_extensions | String | false | none | Rule extensions | extensions | +| » is_outer_service | boolean | false | none | Is external service | Whether the external port has been opened | +| » auto_ssl | boolean | false | none | Auto ssl | Whether to automatically match the certificate and upgrade to https, if enabled, the upgrade will be completed by an external service | +| » path_rewrite | boolean | false | none | Path rewrite | Whether to enable simple route rewriting | +| » Rewrites | String | false | none | Rewrites | Complex route rewrite configuration | + +## Model + +### EnterpriseHTTPGatewayRule + +```json +{ + "ID": 0, + "region_name": "string", + "team_name": "string", + "app_id": 0, + "auto_ssl_config": "string", + "http_rule_id": "string" , + "region_id": "string", + "tenant_id": "string", + "service_id": "string", + "service_name": "string", + "domain_name": "string", + "container_port" : -2147483648, + "protocol": "string", + "certificate_id": -2147483648, + "domain_type": "string", + "service_alias": "string", + "is_senior": true, + "domain_path" : "string", + "domain_cookie": "string", + "domain_heander": "string", + "type": -2147483648, + "the_weight": -2147483648, + "rule_extensions": "string", + " is_outer_service": true, + "auto_ssl": true, + "path_rewrite": true, + "rewrites": "string" +} + +``` + +### Attributes + +| name | Type | required | constraint | Chinese name | illustrate | +| --------------------------------------------------------- | ------- | -------- | ---------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| ID | integer | false | read-only | ID | none | +| region_name | String | true | none | Region name | ID of the cluster to which it belongs | +| team_name | String | true | none | Team name | Unique team name | +| app_id | integer | true | none | App id | App ID | +| auto_ssl_config | String | true | none | Auto ssl config | automatic issuance method | +| http_rule_id | String | true | none | Http rule id | http_rule_id | +| region_id | String | true | none | Region id | region id | +| tenant_id | String | true | none | Tenant id | tenant id | +| service_id | String | true | none | Service id | component id | +| service_name | String | true | none | Service name | component name | +| domain_name | String | true | none | Domain name | domain name | +| container_port | integer | false | none | Container port | container port | +| protocol | String | false | none | Protocol | Domain type http https httptp https http and https | +| certificate_id | integer | false | none | Certificate id | Certificate ID | +| domain_type | String | false | none | Domain type | Component domain name type | +| service_alias | String | false | none | Service alias | component alias | +| is_senate | boolean | false | none | Is senior | Is there an advanced route | +| domain_path | String | false | none | Domain path | domain name path | +| domain_cookies | String | false | none | Domain cookies | domain cookie | +| domain_heander | String | false | none | Domain heander | domain name heander | +| Type | integer | false | none | Type | Type (default:0, custom:1) | +| the_weight | integer | false | none | The Weight | Weights | +| Rule_extensions | String | false | none | Rule extensions | extensions | +| is_over_service | boolean | false | none | Is external service | Whether the external port has been opened | +| auto_ssl | boolean | false | none | Auto ssl | Whether to automatically match the certificate and upgrade to https, if enabled, the upgrade will be completed by an external service | +| path_rewrite | boolean | false | none | Path rewrite | Whether to enable simple route rewriting | +| Rewrites | String | false | none | Rewrites | Complex route rewrite configuration | From 6384b2c6c085630dc7efb677339813bc674a091e Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:06 +0800 Subject: [PATCH 036/398] New translations getgatewaylist.md (English) --- .../current/api/gateway/getGatewayList.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getGatewayList.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getGatewayList.md b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getGatewayList.md new file mode 100644 index 0000000000..cb440d6e76 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getGatewayList.md @@ -0,0 +1,89 @@ +--- +title: Get a list of app access policies +--- + +## Basic Information + +Get a list of app access policies + +```json title="请求路径" +GET /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/domains +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------- | -------- | ------------ | ---------- | +| app_id | Path | integer | Yes | | App ID | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | --------------------------- | +| 200 | OK | success | [GatewayRule](#gatewayrule) | + +## Model + +### GatewayRule + +```json +{ + "http": [ + { + "ID": 0, + "rule_extensions": [ + "string" + ], + "http_rule_id": "string", + "region_id": "string", + "tenant_id ": "string", + "service_id": "string", + "service_name": "string", + "domain_name": "string", + "container_port": -2147483648, + "protocol": "string", + "certificate_id": -2147483648, + "domain_type": "string", + "service_alias": "string", + "is_senior": true, + "domain_path": "string", + "domain_cookie": "string" , + "domain_heander": "string", + "type": -2147483648, + "the_weight": -2147483648, + "is_outer_service": true, + "auto_ssl": true, + "auto_ssl_config": "string", + "path_rewrite": true, + "rewrites": "string" + } + ], + "tcp": [ + { + "ID": 0, + "tcp_rule_id": "string", + "region_id": "string ", + "tenant_id": "string", + "service_id": "string", + "service_name": "string", + "end_point": "string", + "protocol": "string", + "container_port ": -2147483648, + "service_alias": "string", + "type": -2147483648, + "rule_ extensions": "string", + "is_outer_service": true + } + ] +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------- | --------------------------------------------------------------------------------------------- | -------- | ---------- | ------------ | ---------- | +| country_pc | [[HTTPGatewayRule](#schemahttpgewayrule)] | false | none | | none | +| tcp | [[TCPGatewayRule](#schematcpgatewayrule)] | false | none | | none | From 9a3c1b3923a72ea1d76576a68ee79dc770a650cd Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:08 +0800 Subject: [PATCH 037/398] New translations gethttprule.md (English) --- .../current/api/gateway/getHttpRule.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getHttpRule.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getHttpRule.md b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getHttpRule.md new file mode 100644 index 0000000000..d2fec19345 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getHttpRule.md @@ -0,0 +1,91 @@ +--- +title: Get application http access policy details +--- + +## Basic Information + +Get application http access policy details + +```json title="请求路径" +GET /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/httpdomains/{rule_id} +``` + +## request parameters + +| name | Location | Type | required | illustrate | +| -------------------------------- | -------- | ------- | -------- | ----------------- | +| app_id | Path | integer | Yes | App ID | +| Rule_id | Path | String | Yes | gateway policy id | +| team_id | Path | String | Yes | none | +| region_name | Path | String | Yes | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ----------------------------------- | +| 200 | OK | success | [HTTPGatewayRule](#httpgatewayrule) | + +## Model + +### HTTP GatewayRule + +```json +{ + "ID": 0, + "rule_extensions": [ + "string" + ], + "http_rule_id": "string", + "region_id": "string", + "tenant_id": "string", + " service_id": "string", + "service_name": "string", + "domain_name": "string", + "container_port": -2147483648, + "protocol": "string", + "certificate_id": -2147483648, + "domain_type": "string", + "service_alias": "string", + "is_senior": true, + "domain_path": "string", + "domain_cookie": "string", + "domain_heander": "string ", + "type": -2147483648, + "the_weight": -2147483648, + "is_outer_service": true, + "auto_ssl": true, + "auto_ssl_config": "string", + "path_rewrite": true, + " rewrites": "string" +} + +``` + +### Attributes + +| name | Type | required | constraint | Chinese name | illustrate | +| --------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| ID | integer | false | read-only | ID | none | +| Rule_extensions | [string] | false | read-only | | none | +| http_rule_id | String | true | none | Http rule id | http_rule_id | +| region_id | String | true | none | Region id | region id | +| tenant_id | String | true | none | Tenant id | tenant id | +| service_id | String | true | none | Service id | component id | +| service_name | String | true | none | Service name | component name | +| domain_name | String | true | none | Domain name | domain name | +| container_port | integer | false | none | Container port | container port | +| protocol | String | false | none | Protocol | Domain type http https httptp https http and https | +| certificate_id | integer | false | none | Certificate id | Certificate ID | +| domain_type | String | false | none | Domain type | Component domain name type | +| service_alias | String | false | none | Service alias | component alias | +| is_senate | boolean | false | none | Is senior | Is there an advanced route | +| domain_path | String | false | none | Domain path | domain name path | +| domain_cookies | String | false | none | Domain cookies | domain cookie | +| domain_heander | String | false | none | Domain heander | domain name heander | +| Type | integer | false | none | Type | Type (default:0, custom:1) | +| the_weight | integer | false | none | The Weight | Weights | +| is_over_service | boolean | false | none | Is external service | Whether the external port has been opened | +| auto_ssl | boolean | false | none | Auto ssl | Whether to automatically match the certificate and upgrade to https, if enabled, the upgrade will be completed by an external service | +| auto_ssl_config | Stringenull | false | none | Auto ssl config | Automatic distribution certificate configuration | +| path_rewrite | boolean | false | none | Path rewrite | Whether to enable simple route rewriting | +| Rewrites | String | false | none | Rewrites | Complex route rewrite configuration | From 18614af7b8c5a3e7e29a8383d63172aea960bc3f Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:09 +0800 Subject: [PATCH 038/398] New translations gethttprulelist.md (English) --- .../current/api/gateway/getHttpRuleList.md | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getHttpRuleList.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getHttpRuleList.md b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getHttpRuleList.md new file mode 100644 index 0000000000..b86fe8e274 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/getHttpRuleList.md @@ -0,0 +1,122 @@ +--- +title: Get the list of application http access policies +--- + +## Basic Information + +Get the list of application http access policies + +```json title="请求路径" +GET /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/httpdomains +``` + +## request parameters + +| name | Location | Type | required | illustrate | +| -------------------------------- | -------- | ------- | -------- | ---------- | +| app_id | Path | integer | Yes | App ID | +| team_id | Path | String | Yes | none | +| region_name | Path | String | Yes | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 200 | OK | success | Inline | + +## return data structure + +Status code **200** + +| name | Type | required | constraint | Chinese name | illustrate | +| ------------------------------------------------------------ | ------------------------------------------------------------ | -------- | ---------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| _anonymous_ | [HTTPGatewayRule](#httpgatewayrule) | false | none | | none | +| » ID | integer | false | read-only | ID | none | +| » Rule_extensions | [string] | false | read-only | | none | +| » http_rule_id | String | true | none | Http rule id | http_rule_id | +| » region_id | String | true | none | Region id | region id | +| » tenant_id | String | true | none | Tenant id | tenant id | +| » service_id | String | true | none | Service id | component id | +| » service_name | String | true | none | Service name | component name | +| » domain_name | String | true | none | Domain name | domain name | +| » Container_port | integer | false | none | Container port | container port | +| » protocol | String | false | none | Protocol | Domain type http https httptp https http and https | +| » certificate_id | integer | false | none | Certificate id | Certificate ID | +| » domain_type | String | false | none | Domain type | Component domain name type | +| » service_alias | String | false | none | Service alias | component alias | +| » is_senior | boolean | false | none | Is senior | Is there an advanced route | +| » domain_path | String | false | none | Domain path | domain name path | +| » domain_cookie | String | false | none | Domain cookies | domain cookie | +| » domain_heander | String | false | none | Domain heander | domain name heander | +| » Type | integer | false | none | Type | Type (default:0, custom:1) | +| » the_weight | integer | false | none | The Weight | Weights | +| » is_outer_service | boolean | false | none | Is external service | Whether the external port has been opened | +| » auto_ssl | boolean | false | none | Auto ssl | Whether to automatically match the certificate and upgrade to https, if enabled, the upgrade will be completed by an external service | +| » auto_ssl_config | Stringenull | false | none | Auto ssl config | Automatic distribution certificate configuration | +| » path_rewrite | boolean | false | none | Path rewrite | Whether to enable simple route rewriting | +| » Rewrites | String | false | none | Rewrites | Complex route rewrite configuration | + +## Model + +### HTTP GatewayRule + +```json +{ + "ID": 0, + "rule_extensions": [ + "string" + ], + "http_rule_id": "string", + "region_id": "string", + "tenant_id": "string", + " service_id": "string", + "service_name": "string", + "domain_name": "string", + "container_port": -2147483648, + "protocol": "string", + "certificate_id": -2147483648, + "domain_type": "string", + "service_alias": "string", + "is_senior": true, + "domain_path": "string", + "domain_cookie": "string", + "domain_heander": "string ", + "type": -2147483648, + "the_weight": -2147483648, + "is_outer_service": true, + "auto_ssl": true, + "auto_ssl_config": "string", + "path_rewrite": true, + " rewrites": "string" +} + +``` + +### Attributes + +| name | Type | required | constraint | Chinese name | illustrate | +| --------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| ID | integer | false | read-only | ID | none | +| Rule_extensions | [string] | false | read-only | | none | +| http_rule_id | String | true | none | Http rule id | http_rule_id | +| region_id | String | true | none | Region id | region id | +| tenant_id | String | true | none | Tenant id | tenant id | +| service_id | String | true | none | Service id | component id | +| service_name | String | true | none | Service name | component name | +| domain_name | String | true | none | Domain name | domain name | +| container_port | integer | false | none | Container port | container port | +| protocol | String | false | none | Protocol | Domain type http https httptp https http and https | +| certificate_id | integer | false | none | Certificate id | Certificate ID | +| domain_type | String | false | none | Domain type | Component domain name type | +| service_alias | String | false | none | Service alias | component alias | +| is_senate | boolean | false | none | Is senior | Is there an advanced route | +| domain_path | String | false | none | Domain path | domain name path | +| domain_cookies | String | false | none | Domain cookies | domain cookie | +| domain_heander | String | false | none | Domain heander | domain name heander | +| Type | integer | false | none | Type | Type (default:0, custom:1) | +| the_weight | integer | false | none | The Weight | Weights | +| is_over_service | boolean | false | none | Is external service | Whether the external port has been opened | +| auto_ssl | boolean | false | none | Auto ssl | Whether to automatically match the certificate and upgrade to https, if enabled, the upgrade will be completed by an external service | +| auto_ssl_config | Stringenull | false | none | Auto ssl config | Automatic distribution certificate configuration | +| path_rewrite | boolean | false | none | Path rewrite | Whether to enable simple route rewriting | +| Rewrites | String | false | none | Rewrites | Complex route rewrite configuration | From 61c2551041a3fc1bcce64125b94dfb407b186270 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:11 +0800 Subject: [PATCH 039/398] New translations updatehttpgatewayrule.md (English) --- .../api/gateway/updateHttpGatewayRule.md | 150 ++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/gateway/updateHttpGatewayRule.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/updateHttpGatewayRule.md b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/updateHttpGatewayRule.md new file mode 100644 index 0000000000..fb29026dd4 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/updateHttpGatewayRule.md @@ -0,0 +1,150 @@ +--- +title: Update access policy +--- + +## Basic Information + +Update access policy + +```json title="请求路径" +PUT /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/domains/{rule_id} +``` + +```json title="Body请求参数" +{ + "service_id": "string", + "container_port": 0, + "certificate_id": 0, + "domain_name": "string", + "domain_cookie": "string", + "domain_header": "string" , + "the_weight": 0, + "domain_path": "string", + "rule_extensions": [ + "string" + ], + "whether_open": true, + "auto_ssl": true, + "auto_ssl_config": " string" +} +``` + +## request parameters + +| name | Location | Type | required | illustrate | +| -------------------------------- | -------- | --------------------------------------------------------- | -------- | ---------- | +| app_id | Path | integer | Yes | App ID | +| team_id | Path | String | Yes | none | +| region_name | Path | String | Yes | none | +| Rule_id | Path | String | Yes | none | +| body | body | [UpdatePostHTTPGatewayRule](#updatepatosthttpgatewayrule) | no | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ----------------------------------- | +| 200 | OK | success | [HTTPGatewayRule](#httpgatewayrule) | + +## Model + +### HTTP GatewayRule + +```json +{ + "ID": 0, + "rule_extensions": [ + "string" + ], + "http_rule_id": "string", + "region_id": "string", + "tenant_id": "string", + " service_id": "string", + "service_name": "string", + "domain_name": "string", + "container_port": -2147483648, + "protocol": "string", + "certificate_id": -2147483648, + "domain_type": "string", + "service_alias": "string", + "is_senior": true, + "domain_path": "string", + "domain_cookie": "string", + "domain_heander": "string ", + "type": -2147483648, + "the_weight": -2147483648, + "is_outer_service": true, + "auto_ssl": true, + "auto_ssl_config": "string", + "path_rewrite": true, + " rewrites": "string" +} + +``` + +### Attributes + +| name | Type | required | constraint | Chinese name | illustrate | +| --------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| ID | integer | false | read-only | ID | none | +| Rule_extensions | [string] | false | read-only | | none | +| http_rule_id | String | true | none | Http rule id | http_rule_id | +| region_id | String | true | none | Region id | region id | +| tenant_id | String | true | none | Tenant id | tenant id | +| service_id | String | true | none | Service id | component id | +| service_name | String | true | none | Service name | component name | +| domain_name | String | true | none | Domain name | domain name | +| container_port | integer | false | none | Container port | container port | +| protocol | String | false | none | Protocol | Domain type http https httptp https http and https | +| certificate_id | integer | false | none | Certificate id | Certificate ID | +| domain_type | String | false | none | Domain type | Component domain name type | +| service_alias | String | false | none | Service alias | component alias | +| is_senate | boolean | false | none | Is senior | Is there an advanced route | +| domain_path | String | false | none | Domain path | domain name path | +| domain_cookies | String | false | none | Domain cookies | domain cookie | +| domain_heander | String | false | none | Domain heander | domain name heander | +| Type | integer | false | none | Type | Type (default:0, custom:1) | +| the_weight | integer | false | none | The Weight | Weights | +| is_over_service | boolean | false | none | Is external service | Whether the external port has been opened | +| auto_ssl | boolean | false | none | Auto ssl | Whether to automatically match the certificate and upgrade to https, if enabled, the upgrade will be completed by an external service | +| auto_ssl_config | Stringenull | false | none | Auto ssl config | Automatic distribution certificate configuration | +| path_rewrite | boolean | false | none | Path rewrite | Whether to enable simple route rewriting | +| Rewrites | String | false | none | Rewrites | Complex route rewrite configuration | + +### UpdatePostHTTP GatewayRule + +```json +{ + "service_id": "string", + "container_port": 0, + "certificate_id": 0, + "domain_name": "string", + "domain_cookie": "string", + "domain_header": "string" , + "the_weight": 0, + "domain_path": "string", + "rule_extensions": [ + "string" + ], + "whether_open": true, + "auto_ssl": true, + "auto_ssl_config": " string" +} + +``` + +### Attributes + +| name | Type | required | constraint | Chinese name | illustrate | +| --------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| service_id | String | true | none | Service id | application component id | +| container_port | integer | false | none | Container port | bind port | +| certificate_id | integer | false | none | Certificate id | certificate id | +| domain_name | String | false | none | Domain name | domain name | +| domain_cookies | String | false | none | Domain cookies | domain cookie | +| domain_header | String | false | none | Domain header | domain header | +| the_weight | integer | false | none | The Weight | none | +| domain_path | String | false | none | Domain path | domain name path | +| Rule_extensions | [string] | false | none | | rule extension | +| whether_open | boolean | false | none | Whether open | Is it open | +| auto_ssl | boolean | false | none | Auto ssl | Whether to automatically match the certificate and upgrade to https, if enabled, the upgrade will be completed by an external service | +| auto_ssl_config | String | false | none | Auto ssl config | Automatic distribution certificate configuration | From 78bdfa8909c1bf4dcc91d766fa578b4a71a2e1d8 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:13 +0800 Subject: [PATCH 040/398] New translations updatehttprule.md (English) --- .../current/api/gateway/updateHttpRule.md | 150 ++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/gateway/updateHttpRule.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/updateHttpRule.md b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/updateHttpRule.md new file mode 100644 index 0000000000..7ba6daae14 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/gateway/updateHttpRule.md @@ -0,0 +1,150 @@ +--- +title: Update HTTP access policy +--- + +## Basic Information + +Update HTTP access policy + +```json title="请求路径" +PUT /openapi/v1/teams/{team_id}/regions/{region_name}/apps/{app_id}/httpdomains/{rule_id} +``` + +```json title="Body请求参数" +{ + "service_id": "string", + "container_port": 0, + "certificate_id": 0, + "domain_name": "string", + "domain_cookie": "string", + "domain_header": "string" , + "the_weight": 0, + "domain_path": "string", + "rule_extensions": [ + "string" + ], + "whether_open": true, + "auto_ssl": true, + "auto_ssl_config": " string" +} +``` + +## request parameters + +| name | Location | Type | required | illustrate | +| -------------------------------- | -------- | --------------------------------------------------------- | -------- | ----------------- | +| app_id | Path | integer | Yes | App ID | +| Rule_id | Path | String | Yes | gateway policy id | +| team_id | Path | String | Yes | none | +| region_name | Path | String | Yes | none | +| body | body | [UpdatePostHTTPGatewayRule](#updatepatosthttpgatewayrule) | no | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ----------------------------------- | +| 200 | OK | success | [HTTPGatewayRule](#httpgatewayrule) | + +## Model + +### HTTP GatewayRule + +```json +{ + "ID": 0, + "rule_extensions": [ + "string" + ], + "http_rule_id": "string", + "region_id": "string", + "tenant_id": "string", + " service_id": "string", + "service_name": "string", + "domain_name": "string", + "container_port": -2147483648, + "protocol": "string", + "certificate_id": -2147483648, + "domain_type": "string", + "service_alias": "string", + "is_senior": true, + "domain_path": "string", + "domain_cookie": "string", + "domain_heander": "string ", + "type": -2147483648, + "the_weight": -2147483648, + "is_outer_service": true, + "auto_ssl": true, + "auto_ssl_config": "string", + "path_rewrite": true, + " rewrites": "string" +} + +``` + +### Attributes + +| name | Type | required | constraint | Chinese name | illustrate | +| --------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| ID | integer | false | read-only | ID | none | +| Rule_extensions | [string] | false | read-only | | none | +| http_rule_id | String | true | none | Http rule id | http_rule_id | +| region_id | String | true | none | Region id | region id | +| tenant_id | String | true | none | Tenant id | tenant id | +| service_id | String | true | none | Service id | component id | +| service_name | String | true | none | Service name | component name | +| domain_name | String | true | none | Domain name | domain name | +| container_port | integer | false | none | Container port | container port | +| protocol | String | false | none | Protocol | Domain type http https httptp https http and https | +| certificate_id | integer | false | none | Certificate id | Certificate ID | +| domain_type | String | false | none | Domain type | Component domain name type | +| service_alias | String | false | none | Service alias | component alias | +| is_senate | boolean | false | none | Is senior | Is there an advanced route | +| domain_path | String | false | none | Domain path | domain name path | +| domain_cookies | String | false | none | Domain cookies | domain cookie | +| domain_heander | String | false | none | Domain heander | domain name heander | +| Type | integer | false | none | Type | Type (default:0, custom:1) | +| the_weight | integer | false | none | The Weight | Weights | +| is_over_service | boolean | false | none | Is external service | Whether the external port has been opened | +| auto_ssl | boolean | false | none | Auto ssl | Whether to automatically match the certificate and upgrade to https, if enabled, the upgrade will be completed by an external service | +| auto_ssl_config | Stringenull | false | none | Auto ssl config | Automatic distribution certificate configuration | +| path_rewrite | boolean | false | none | Path rewrite | Whether to enable simple route rewriting | +| Rewrites | String | false | none | Rewrites | Complex route rewrite configuration | + +### UpdatePostHTTP GatewayRule + +```json +{ + "service_id": "string", + "container_port": 0, + "certificate_id": 0, + "domain_name": "string", + "domain_cookie": "string", + "domain_header": "string" , + "the_weight": 0, + "domain_path": "string", + "rule_extensions": [ + "string" + ], + "whether_open": true, + "auto_ssl": true, + "auto_ssl_config": " string" +} + +``` + +### Attributes + +| name | Type | required | constraint | Chinese name | illustrate | +| --------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| service_id | String | true | none | Service id | application component id | +| container_port | integer | false | none | Container port | bind port | +| certificate_id | integer | false | none | Certificate id | certificate id | +| domain_name | String | false | none | Domain name | domain name | +| domain_cookies | String | false | none | Domain cookies | domain cookie | +| domain_header | String | false | none | Domain header | domain header | +| the_weight | integer | false | none | The Weight | none | +| domain_path | String | false | none | Domain path | domain name path | +| Rule_extensions | [string] | false | none | | rule extension | +| whether_open | boolean | false | none | Whether open | Is it open | +| auto_ssl | boolean | false | none | Auto ssl | Whether to automatically match the certificate and upgrade to https, if enabled, the upgrade will be completed by an external service | +| auto_ssl_config | String | false | none | Auto ssl config | Automatic distribution certificate configuration | From bea2a8f08ad8845d29f23f1b83d773e74e35f156 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:14 +0800 Subject: [PATCH 041/398] New translations addregion.md (English) --- .../current/api/region/addRegion.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/region/addRegion.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/region/addRegion.md b/i18n/en/docusaurus-plugin-content-docs/current/api/region/addRegion.md new file mode 100644 index 0000000000..c9253dd41e --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/region/addRegion.md @@ -0,0 +1,100 @@ +--- +title: Add data center +--- + +## basic information + +Add data center + +```json title="请求路径" +POST /openapi/v1/region +``` + +```json title="Body请求参数" +{ + "cert_file": "string", + "desc": "string", + "httpdomain": "string", + "key_file": "string", + "region_alias": "string", + "region_name" : "string", + "scope": "string", + "ssl_ca_cert": "string", + "status": 0, + "tcpdomain": "string", + "url": "string", + " wsurl": "string" +} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ------------------------------------------------------- | -------- | ------- | -------- | ---------------- | ------------- | +| body | body | Object | no | AddRegionRequest | none | +| » cert_file | body | String | no | | none | +| » desc | body | String | no | | Remark | +| » httpomain | body | String | Yes | | none | +| » key_file | body | String | no | | none | +| » region_alias | body | String | Yes | | cluster alias | +| » region_name | body | String | Yes | | cluster ID | +| » scope | body | String | no | | none | +| » ssl_ca_cert | body | String | no | | none | +| » status | body | integer | no | | none | +| » tcpdomain | body | String | Yes | | none | +| » url | body | String | Yes | | none | +| » wsurl | body | String | Yes | | none | + +> back to example + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- | ------------------------- | +| 201 | [Created](https://tools.ietf.org/html/rfc7231#section-6.3.2) | success | [RegionInfo](#regioninfo) | +| 400 | [Bad Request] (https://tools.ietf.org/html/rfc7231#section-6.5.1) | 400 | [Fail](#schemafail) | + +## Model + +### RegionInfo + +```json +{ + "region_id": "string", + "region_name": "string", + "region_alias": "string", + "url": "string", + "token": "string", + "wsurl" : "string", + "httpdomain": "string", + "tcpdomain": "string", + "scope": "string", + "ssl_ca_cert": "string", + "cert_file": "string", + "key_file": "string", + "status": "st", + "desc": "string", + "enterprise_id": "string" +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | | +| ----------------------------------------------------- | ----------- | -------- | ---------- | ------------- | ---------------------------------------------------------------------------------------------------- | ------ | +| region_id | String | true | none | Region id | region id | | +| region_name | String | true | none | Region name | Data center name, cannot be modified | | +| region_alias | String | true | none | Region alias | data center alias | | +| Url | String | true | none | Url | Datacenter API url | | +| token | Stringenull | false | none | Token | data center token | | +| wsurl | String | true | none | Wsurl | datacenter websocket url | | +| pdomain | String | true | none | Httpdain | Data center http application access root domain name | | +| tcpdomain | String | true | none | Tcpdomain | Data center tcp application access root domain name | | +| Scope | String | false | none | Scope | data center scope private | Public | +| ssl_ca_cert | Stringenull | false | none | ssl ca cert | Data center access ca certificate address | | +| cert_file | Stringenull | false | none | Cert file | Verify documents | | +| key_file | Stringenull | false | none | Key file | verification key | | +| Status | String | true | none | Status | Data Center Status 0:Editing 1: Enabled 2:Disabled 3: In Maintenance | | +| desc | String | false | none | Desc | Data Center Description | | +| Enterprise_id | Stringenull | false | none | Enterprise id | Enterprise id | | From 845e30e1229f3f45760fbcfefae68e01f47e9fe1 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:15 +0800 Subject: [PATCH 042/398] New translations addregionv2.md (English) --- .../current/api/region/addRegionv2.md | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/region/addRegionv2.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/region/addRegionv2.md b/i18n/en/docusaurus-plugin-content-docs/current/api/region/addRegionv2.md new file mode 100644 index 0000000000..4644e8a0fa --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/region/addRegionv2.md @@ -0,0 +1,98 @@ +--- +title: add datacenter v2 +--- + +## basic information + +Add data center + +```json title="请求路径" +POST /openapi/v2/manage/regions +``` + +```json title="Body请求参数" +{ + "cert_file": "string", + "desc": "string", + "httpdomain": "string", + "key_file": "string", + "region_alias": "string", + "region_name" : "string", + "scope": "string", + "ssl_ca_cert": "string", + "status": 0, + "tcpdomain": "string", + "url": "string", + " wsurl": "string" +} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ------------------------------------------------------- | -------- | ------- | -------- | ---------------- | ---------- | +| body | body | Object | no | AddRegionRequest | none | +| » cert_file | body | String | no | | none | +| » desc | body | String | no | | none | +| » httpomain | body | String | Yes | | none | +| » key_file | body | String | no | | none | +| » region_alias | body | String | Yes | | none | +| » region_name | body | String | Yes | | none | +| » scope | body | String | no | | none | +| » ssl_ca_cert | body | String | no | | none | +| » status | body | integer | no | | none | +| » tcpdomain | body | String | Yes | | none | +| » url | body | String | Yes | | none | +| » wsurl | body | String | Yes | | none | + +> back to example + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- | -------------------------------------------------------------------------- | +| 201 | [Created](https://tools.ietf.org/html/rfc7231#section-6.3.2) | success | [v2_RegionInfoSerializer](#v2_regionininfoserializer) | +| 400 | [Bad Request] (https://tools.ietf.org/html/rfc7231#section-6.5.1) | 400 | [Fail](#schemafail) | + +## Model + +### v2_RegionInfoSerializer + +```json +{ + "region_id": "string", + "region_name": "string", + "region_alias": "string", + "url": "string", + "token": "string", + "wsurl" : "string", + "httpdomain": "string", + "tcpdomain": "string", + "scope": "string", + "ssl_ca_cert": "string", + "cert_file": "string", + "key_file": "string", + "status": "st", + "desc": "string" +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | | +| ----------------------------------------------------- | ----------- | -------- | ---------- | ------------ | ---------------------------------------------------------------------------------------------------- | ------ | +| region_id | String | true | none | Region id | region id | | +| region_name | String | true | none | Region name | Data center name, cannot be modified | | +| region_alias | String | true | none | Region alias | data center alias | | +| Url | String | true | none | Url | Datacenter API url | | +| token | Stringenull | false | none | Token | data center token | | +| wsurl | String | true | none | Wsurl | datacenter websocket url | | +| pdomain | String | true | none | Httpdain | Data center http application access root domain name | | +| tcpdomain | String | true | none | Tcpdomain | Data center tcp application access root domain name | | +| Scope | String | false | none | Scope | data center scope private | Public | +| ssl_ca_cert | Stringenull | false | none | ssl ca cert | Data center access ca certificate address | | +| cert_file | Stringenull | false | none | Cert file | Verify documents | | +| key_file | Stringenull | false | none | Key file | verification key | | +| Status | String | true | none | Status | Data Center Status 0:Editing 1: Enabled 2:Disabled 3: In Maintenance | | +| desc | String | false | none | Desc | Data Center Description | | From 8ce3ea630c4338b29284b5debb1301d820de91c9 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:17 +0800 Subject: [PATCH 043/398] New translations delregioninfo.md (English) --- .../current/api/region/delRegionInfo.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/region/delRegionInfo.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/region/delRegionInfo.md b/i18n/en/docusaurus-plugin-content-docs/current/api/region/delRegionInfo.md new file mode 100644 index 0000000000..eafe1cf49d --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/region/delRegionInfo.md @@ -0,0 +1,67 @@ +--- +title: Delete the specified data center metadata +--- + +## basic information + +Delete the specified data center metadata + +```json title="请求路径" +DELETE /openapi/v2/manage/regions/{region_id} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ------------------------------ | -------- | ------ | -------- | ------------ | ---------- | +| region_id | Path | String | Yes | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | -------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------- | +| 200 | OK | success | [v2_RegionInfoSerializer](#v2_regionininfoserializer) | +| 404 | [Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4) | 404 | [Fail](#schemafail) | + +## Model + +### v2_RegionInfoSerializer + +```json +{ + "region_id": "string", + "region_name": "string", + "region_alias": "string", + "url": "string", + "token": "string", + "wsurl" : "string", + "httpdomain": "string", + "tcpdomain": "string", + "scope": "string", + "ssl_ca_cert": "string", + "cert_file": "string", + "key_file": "string", + "status": "st", + "desc": "string" +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | | +| ----------------------------------------------------- | ----------- | -------- | ---------- | ------------ | ---------------------------------------------------------------------------------------------------- | ------ | +| region_id | String | true | none | Region id | region id | | +| region_name | String | true | none | Region name | Data center name, cannot be modified | | +| region_alias | String | true | none | Region alias | data center alias | | +| Url | String | true | none | Url | Datacenter API url | | +| token | Stringenull | false | none | Token | data center token | | +| wsurl | String | true | none | Wsurl | datacenter websocket url | | +| pdomain | String | true | none | Httpdain | Data center http application access root domain name | | +| tcpdomain | String | true | none | Tcpdomain | Data center tcp application access root domain name | | +| Scope | String | false | none | Scope | data center scope private | Public | +| ssl_ca_cert | Stringenull | false | none | ssl ca cert | Data center access ca certificate address | | +| cert_file | Stringenull | false | none | Cert file | Verify documents | | +| key_file | Stringenull | false | none | Key file | verification key | | +| Status | String | true | none | Status | Data Center Status 0:Editing 1: Enabled 2:Disabled 3: In Maintenance | | +| desc | String | false | none | Desc | Data Center Description | | From ccf8a151547f4178e3f198712b699c039739ebbb Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:18 +0800 Subject: [PATCH 044/398] New translations getregioninfo.md (English) --- .../current/api/region/getRegionInfo.md | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionInfo.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionInfo.md b/i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionInfo.md new file mode 100644 index 0000000000..aa0ba834c1 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionInfo.md @@ -0,0 +1,78 @@ +--- +title: Get the specified data center data +--- + +## basic information + +Get the specified data center data + +```json title="请求路径" +GET /openapi/v1/regions/{region_id} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------ | -------- | ------------ | ----------------------------------- | +| region_id | Path | String | Yes | | none | +| region_id | Query | String | no | | Data center name, id | +| extend_info | Query | String | no | | Whether additional data is required | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | --------------------------- | +| 200 | OK | success | [RegionInfoR](#regioninfor) | + +## Model + +### RegionInfoR + +```json +{ + "region_name": "string", + "region_alias": "string", + "url": "string", + "wsurl": "string", + "httpdomain": "string", + "tcpdomain" : "string", + "scope": "string", + "ssl_ca_cert": "string", + "cert_file": "string", + "key_file": "string", + "desc": "string", + "used_disk": 0, + "total_disk": 0, + "used_memory": 0, + "total_memory": 0, + "used_cpu": 0, + "total_cpu": 0, + "health_status": "string" , + "status": "string" +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----------------------------------------------------- | ------ | -------- | ---------- | ------------- | -------------------- | +| region_name | String | true | none | Region name | data center name | +| region_alias | String | true | none | Region alias | data center nickname | +| Url | String | true | none | Url | none | +| wsurl | String | true | none | Wsurl | none | +| pdomain | String | true | none | Httpdain | none | +| tcpdomain | String | true | none | Tcpdomain | none | +| Scope | String | true | none | Scope | none | +| ssl_ca_cert | String | true | none | ssl ca cert | none | +| cert_file | String | true | none | Cert file | none | +| key_file | String | true | none | Key file | none | +| desc | String | true | none | Desc | none | +| used_disk | Number | false | none | Used Disk | used storage | +| Total_disk | Number | false | none | Total disk | Store all | +| used_memory | Number | false | none | Used memory | use memory | +| Total_memory | Number | false | none | Total memory | All memory | +| used_cpu | Number | false | none | used cpu | use cpu | +| Total_cpu | Number | false | none | total cpu | all cpus | +| health_status | String | false | none | health status | cluster status | +| Status | String | false | none | Status | state | From ae501ebab0415b491eab7aea462aa6942554b0f1 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:20 +0800 Subject: [PATCH 045/398] New translations getregioninfoser.md (English) --- .../current/api/region/getRegionInfoSer.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionInfoSer.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionInfoSer.md b/i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionInfoSer.md new file mode 100644 index 0000000000..903d215e8e --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionInfoSer.md @@ -0,0 +1,67 @@ +--- +title: Get the specified data center data +--- + +## basic information + +Get the specified data center data + +```json title="请求路径" +GET /openapi/v2/manage/regions/{region_id} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ------------------------------ | -------- | ------ | -------- | ------------ | ---------- | +| region_id | Path | String | Yes | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | -------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------- | +| 200 | OK | success | [v2_RegionInfoSerializer](#v2_regionininfoserializer) | +| 404 | [Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4) | 404 | [Fail](#schemafail) | + +## Model + +### v2_RegionInfoSerializer + +```json +{ + "region_id": "string", + "region_name": "string", + "region_alias": "string", + "url": "string", + "token": "string", + "wsurl" : "string", + "httpdomain": "string", + "tcpdomain": "string", + "scope": "string", + "ssl_ca_cert": "string", + "cert_file": "string", + "key_file": "string", + "status": "st", + "desc": "string" +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | | +| ----------------------------------------------------- | ----------- | -------- | ---------- | ------------ | ---------------------------------------------------------------------------------------------------- | ------ | +| region_id | String | true | none | Region id | region id | | +| region_name | String | true | none | Region name | Data center name, cannot be modified | | +| region_alias | String | true | none | Region alias | data center alias | | +| Url | String | true | none | Url | Datacenter API url | | +| token | Stringenull | false | none | Token | data center token | | +| wsurl | String | true | none | Wsurl | datacenter websocket url | | +| pdomain | String | true | none | Httpdain | Data center http application access root domain name | | +| tcpdomain | String | true | none | Tcpdomain | Data center tcp application access root domain name | | +| Scope | String | false | none | Scope | data center scope private | Public | +| ssl_ca_cert | Stringenull | false | none | ssl ca cert | Data center access ca certificate address | | +| cert_file | Stringenull | false | none | Cert file | Verify documents | | +| key_file | Stringenull | false | none | Key file | verification key | | +| Status | String | true | none | Status | Data Center Status 0:Editing 1: Enabled 2:Disabled 3: In Maintenance | | +| desc | String | false | none | Desc | Data Center Description | | From ff8c6ab733c250ffae6b3d766b751e0f1630f8ba Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:21 +0800 Subject: [PATCH 046/398] New translations getregionlist.md (English) --- .../current/api/region/getRegionList.md | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionList.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionList.md b/i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionList.md new file mode 100644 index 0000000000..3838e2821c --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionList.md @@ -0,0 +1,79 @@ +--- +title: Get a list of all data centers +--- + +## basic information + +Get a list of all data centers + +```json title="请求路径" +GET /openapi/v1/region +``` + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 200 | OK | success | Inline | + +## return data structure + +Status code **200** + +| name | type | required | constraint | Chinese name | illustrate | | +| ------------------------------------------------------- | --------------------------------- | -------- | ---------- | ------------ | ------------------------------------------------------------------------------------------------ | ------ | +| _anonymous_ | [RegionInfoResp](#regioninforesp) | false | none | | none | | +| » region_id | String | false | none | Region id | region id | | +| » region_name | String | true | none | Region name | cluster name | | +| » region_alias | String | true | none | Region alias | cluster alias | | +| » url | String | true | none | Url | Cluster API url | | +| » wsurl | String | false | none | Wsurl | cluster websocket url | | +| » httpomain | String | false | none | Httpdain | Cluster http application access root domain name | | +| » tcpdomain | String | false | none | Tcpdomain | Cluster tcp application access root domain name | | +| » status | String | true | none | Status | Cluster Status 0:Editing 1: Enabled 2:Disabled 3: In Maintenance | | +| » desc | String | true | none | Desc | Cluster description | | +| » scope | String | false | none | Scope | data center scope private | Public | +| » ssl_ca_cert | Stringenull | false | none | ssl ca cert | api ca file | | +| » cert_file | Stringenull | false | none | Cert file | api cert file | | +| » key_file | Stringenull | false | none | Key file | api cert key file | | + +## Model + +### RegionInfoResp + +```json +{ + "region_id": "string", + "region_name": "string", + "region_alias": "string", + "url": "string", + "wsurl": "string", + "httpdomain" : "string", + "tcpdomain": "string", + "status": "st", + "desc": "string", + "scope": "private", + "ssl_ca_cert": "string", + "cert_file": "string", + "key_file": "string" +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | | +| ----------------------------------------------------- | ----------- | -------- | ---------- | ------------ | ------------------------------------------------------------------------------------------------ | ------ | +| region_id | String | false | none | Region id | region id | | +| region_name | String | true | none | Region name | cluster name | | +| region_alias | String | true | none | Region alias | cluster alias | | +| Url | String | true | none | Url | Cluster API url | | +| wsurl | String | false | none | Wsurl | cluster websocket url | | +| pdomain | String | false | none | Httpdain | Cluster http application access root domain name | | +| tcpdomain | String | false | none | Tcpdomain | Cluster tcp application access root domain name | | +| Status | String | true | none | Status | Cluster Status 0:Editing 1: Enabled 2:Disabled 3: In Maintenance | | +| desc | String | true | none | Desc | Cluster description | | +| Scope | String | false | none | Scope | data center scope private | Public | +| ssl_ca_cert | Stringenull | false | none | ssl ca cert | api ca file | | +| cert_file | Stringenull | false | none | Cert file | api cert file | | +| key_file | Stringenull | false | none | Key file | api cert key file | | From 6309e22f455da294f514520e5db458c3e3e0ca16 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:23 +0800 Subject: [PATCH 047/398] New translations getregionlistv2.md (English) --- .../current/api/region/getRegionListv2.md | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionListv2.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionListv2.md b/i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionListv2.md new file mode 100644 index 0000000000..cc01dae266 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/region/getRegionListv2.md @@ -0,0 +1,130 @@ +--- +title: Get all data center list v2 +--- + +## basic information + +Get a list of all data centers + +```json title="请求路径" +GET /openapi/v2/manage/regions +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------- | -------- | ------ | -------- | ------------ | -------------------------- | +| Query | Query | String | no | | Search by data center name | +| Current | Query | String | no | | page number | +| pageSize | Query | String | no | | Quantity per page | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | --------------------------------- | +| 200 | OK | success | [ListRegionsResp](#listregionres) | + +## Model + +### ListRegionsResp + +```json +{ + "total": 0, + "data": [ + { + "region_id": "string", + "enterprise_id": "string", + "enterprise_alias": "string", + "region_name": "string ", + "region_alias": "string", + "region_type": [ + "string" + ], + "url": "string", + "wsurl": "string", + "httpdomain": "string" , + "tcpdomain": "string", + "status": "st", + "desc": "string", + "ssl_ca_cert": "string", + "cert_file": "string", + "key_file" : "string", + "total_memory": 0, + "used_memory": 0, + "total_cpu": 0, + "used_cpu": 0, + "total_disk": 0, + "used_disk": 0, + "rbd_version ": "string" + } + ] +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----- | ----------------------------------------------------------------------------------------------------- | -------- | ---------- | ------------ | ---------- | +| Total | integer | true | none | Total | Total | +| Data | [[RegionInfoAndStatusResp](#regioninfoandstatus)] | true | none | | none | + +### RegionInfoAndStatusResp + +```json +{ + "region_id": "string", + "enterprise_id": "string", + "enterprise_alias": "string", + "region_name": "string", + "region_alias": "string", + "region_type" : [ + "string" + ], + "url": "string", + "wsurl": "string", + "httpdomain": "string", + "tcpdomain": "string", + "status": "st", + "desc": "string", + "ssl_ca_cert": "string", + "cert_file": "string", + "key_file": "string", + "total_memory": 0, + "used_memory ": 0, + "total_cpu": 0, + "used_cpu": 0, + "total_disk": 0, + "used_disk": 0, + "rbd_version": "string" +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | ---------------- | ------------------------------------------------------------------------------------------------ | +| region_id | String | true | none | Region id | region id | +| Enterprise_id | String | true | none | Enterprise id | Enterprise ID | +| Enterprise_alias | String | true | none | Enterprise alias | business alias | +| region_name | String | true | none | Region name | cluster name | +| region_alias | String | true | none | Region alias | cluster alias | +| region_type | [string] | true | none | | Cluster type | +| Url | String | true | none | Url | Cluster API url | +| wsurl | String | true | none | Wsurl | cluster websocket url | +| pdomain | String | true | none | Httpdain | Cluster http application access root domain name | +| tcpdomain | String | true | none | Tcpdomain | Cluster tcp application access root domain name | +| Status | String | true | none | Status | Cluster Status 0:Editing 1: Enabled 2:Disabled 3: In Maintenance | +| desc | String | true | none | Desc | Cluster description | +| ssl_ca_cert | String | true | none | ssl ca cert | api ca file | +| cert_file | String | true | none | Cert file | api cert file | +| key_file | String | true | none | Key file | api cert key file | +| Total_memory | integer | true | none | Total memory | Sum of scheduling memory MB | +| used_memory | integer | true | none | Used memory | Scheduling memory usage MB | +| Total_cpu | integer | true | none | total cpu | Scheduling CPU Sum | +| used_cpu | Number | true | none | used cpu | Schedule CPU usage | +| Total_disk | integer | true | none | Total disk | Total GB of global shared storage | +| used_disk | integer | true | none | Used Disk | Global Shared Storage Usage GB | +| rbd_version | String | true | none | Rbd version | Cluster version | From c9a7fe15af327a60d69e0fc9ab620a54c2882d20 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:24 +0800 Subject: [PATCH 048/398] New translations updateregioninfo.md (English) --- .../current/api/region/updateRegionInfo.md | 125 ++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/region/updateRegionInfo.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/region/updateRegionInfo.md b/i18n/en/docusaurus-plugin-content-docs/current/api/region/updateRegionInfo.md new file mode 100644 index 0000000000..83926a7d43 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/region/updateRegionInfo.md @@ -0,0 +1,125 @@ +--- +title: Update specified data center metadata +--- + +## basic information + +Update specified data center metadata + +```json title="请求路径" +PUT /openapi/v2/manage/regions/{region_id} +``` + +```json title="Body请求参数" +{ + "region_alias": "string", + "url": "string", + "token": "string", + "wsurl": "string", + "httpdomain": "string", + "tcpdomain" : "string", + "scope": "string", + "ssl_ca_cert": "string", + "cert_file": "string", + "key_file": "string", + "status": "st", + "desc": "string" +} + +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ------------------------------ | -------- | --------------------------------- | -------- | ------------ | ---------- | +| region_id | Path | String | Yes | | none | +| body | body | [UpdateRegionReq](#updategionreq) | no | | none | + +> back to example + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- | -------------------------------------------------------------------------- | +| 200 | OK | success | [v2_RegionInfoSerializer](#v2_regionininfoserializer) | +| 400 | [Bad Request] (https://tools.ietf.org/html/rfc7231#section-6.5.1) | 400 | [Fail](#schemafail) | +| 404 | [Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4) | 404 | [Fail](#schemafail) | + +## Model + +### UpdateRegionReq + +```json +{ + "region_alias": "string", + "url": "string", + "token": "string", + "wsurl": "string", + "httpdomain": "string", + "tcpdomain" : "string", + "scope": "string", + "ssl_ca_cert": "string", + "cert_file": "string", + "key_file": "string", + "status": "st", + "desc": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | | +| ----------------------------------------------------- | ----------- | -------- | ---------- | ------------ | ---------------------------------------------------------------------------------------------------- | ------ | +| region_alias | String | true | none | Region alias | data center alias | | +| Url | String | true | none | Url | Datacenter API url | | +| token | Stringenull | false | none | Token | data center token | | +| wsurl | String | true | none | Wsurl | datacenter websocket url | | +| pdomain | String | true | none | Httpdain | Data center http application access root domain name | | +| tcpdomain | String | true | none | Tcpdomain | Data center tcp application access root domain name | | +| Scope | String | false | none | Scope | data center scope private | Public | +| ssl_ca_cert | Stringenull | false | none | ssl ca cert | Data center access ca certificate address | | +| cert_file | Stringenull | false | none | Cert file | Verify documents | | +| key_file | Stringenull | false | none | Key file | verification key | | +| Status | String | true | none | Status | Data Center Status 0:Editing 1: Enabled 2:Disabled 3: In Maintenance | | +| desc | String | false | none | Desc | Data Center Description | | + +### v2_RegionInfoSerializer + +```json +{ + "region_id": "string", + "region_name": "string", + "region_alias": "string", + "url": "string", + "token": "string", + "wsurl" : "string", + "httpdomain": "string", + "tcpdomain": "string", + "scope": "string", + "ssl_ca_cert": "string", + "cert_file": "string", + "key_file": "string", + "status": "st", + "desc": "string" +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | | +| ----------------------------------------------------- | ----------- | -------- | ---------- | ------------ | ---------------------------------------------------------------------------------------------------- | ------ | +| region_id | String | true | none | Region id | region id | | +| region_name | String | true | none | Region name | Data center name, cannot be modified | | +| region_alias | String | true | none | Region alias | data center alias | | +| Url | String | true | none | Url | Datacenter API url | | +| token | Stringenull | false | none | Token | data center token | | +| wsurl | String | true | none | Wsurl | datacenter websocket url | | +| pdomain | String | true | none | Httpdain | Data center http application access root domain name | | +| tcpdomain | String | true | none | Tcpdomain | Data center tcp application access root domain name | | +| Scope | String | false | none | Scope | data center scope private | Public | +| ssl_ca_cert | Stringenull | false | none | ssl ca cert | Data center access ca certificate address | | +| cert_file | Stringenull | false | none | Cert file | Verify documents | | +| key_file | Stringenull | false | none | Key file | verification key | | +| Status | String | true | none | Status | Data Center Status 0:Editing 1: Enabled 2:Disabled 3: In Maintenance | | +| desc | String | false | none | Desc | Data Center Description | | From c4e59701fcb4601f9ca27ed12006e2cf6a0c9237 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:26 +0800 Subject: [PATCH 049/398] New translations createcertificates.md (English) --- .../current/api/team/createCertificates.md | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/team/createCertificates.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/team/createCertificates.md b/i18n/en/docusaurus-plugin-content-docs/current/api/team/createCertificates.md new file mode 100644 index 0000000000..131bbd66aa --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/team/createCertificates.md @@ -0,0 +1,77 @@ +--- +title: Add certificate +--- + +## Basic Information + +This interface is mainly used to add certificates + +```shell title="请求路径" +POST /openapi/v1/teams/{team_id}/certificates +``` + +```json title="Body 请求体示例" +LO + "alias": "string", + "private_key": "string", + "certificate": "string", + "certificate_type": "string" +} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ---------------------------- | -------- | ---------------------------------------------- | -------- | ------------ | ---------- | +| team_id | Path | String | Yes | | none | +| body | body | [TeamCertificatesC](#schemateamcertificateesc) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | --------------------------------------------- | +| 200 | OK | success | [TeamCertificatesR](#schemateamcertificatesr) | + +## Model + +### TeamCertificatesC + +```json +LO + "alias": "string", + "private_key": "string", + "certificate": "string", + "certificate_type": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------------- | ------ | -------- | ---------- | ---------------- | ---------------- | +| alias | String | true | none | Alias | certificate name | +| private key | String | true | none | Private key | Certificates | +| Certificate | String | true | none | Certificates | certificate key | +| Certificate_type | String | true | none | Certificate type | Certificate Type | + +### TeamCertificatesR + +```json +LO + "alias": "string", + "private_key": "string", + "certificate": "string", + "certificate_type": "string", + "id": 0 +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------------- | ------- | -------- | ---------- | ---------------- | ----------------- | +| alias | String | true | none | Alias | certificate name | +| private key | String | true | none | Private key | Certificates | +| Certificate | String | true | none | Certificates | certificate key | +| Certificate_type | String | true | none | Certificate type | Basic Information | +| Id | integer | true | none | Id | Id | From 2aed05c85bb6119ae1e5384805428a461cc5949e Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:27 +0800 Subject: [PATCH 050/398] New translations createteam.md (English) --- .../current/api/team/createTeam.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/team/createTeam.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/team/createTeam.md b/i18n/en/docusaurus-plugin-content-docs/current/api/team/createTeam.md new file mode 100644 index 0000000000..56f172f729 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/team/createTeam.md @@ -0,0 +1,82 @@ +--- +title: Create a team +--- + +## Basic Information + +This interface is mainly used to create teams + +```shell title="请求路径" +POST /openapi/v1/teams +``` + +```json title="Body 请求体示例" +LO + "tenant_name": "string", + "region": "string" +} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ---- | -------- | ----------------------------------- | -------- | ------------ | ---------- | +| body | body | [CreateTeamReq](#schemaccreteamreq) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ----------------------------------- | +| 200 | OK | success | [TeamBaseInfo](#schemateambaseinfo) | + +## Model + +### CreateTeamReq + +```json +LO + "tenant_name": "string", + "region": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| -------------------------------- | ------ | -------- | ---------- | ------------ | ---------------------------------------------------------------------------------------- | +| tenant_name | String | true | none | Tenant name | Team Name | +| Region | String | false | none | Region | The data center that is activated by default, if not specified, it will not be activated | + +### TeamBaseInfo + +```json +{ + "tenant_id": "string", + "tenant_name": "string", + "region": "", + "is_active": true, + "create_time": "string", + "creater": 0, + "limit_memory": 1024, + "update_time": "string", + "expired_time": "string", + "tenant_alias": "", + "enterprise_id": "" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------- | ----------- | -------- | ---------- | ------------- | --------------------------------------- | +| tenant_id | String | true | none | Tenant id | tenant id | +| tenant_name | String | true | none | Tenant name | Basic Information | +| Region | String | false | none | Region | regional center, deprecated | +| is_active | boolean | false | none | Is Active | active state | +| create_time | String | true | none | Create time | creation time | +| creator | integer | false | none | Creator | Tenant creator | +| Limit_memory | integer | false | none | Limit memory | Memory size unit (M) | +| update_time | String | true | none | Update time | update time | +| expired_time | String | true | none | Expired time | Expiration | +| tenant_alias | Stringenull | false | none | Tenant alias | team alias | +| Enterprise_id | Stringenull | false | none | Enterprise id | enterprise id | From 34ea2ef587c9c323e50d835e42df1f9dcc371825 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:29 +0800 Subject: [PATCH 051/398] New translations createteamregion.md (English) --- .../current/api/team/createTeamRegion.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/team/createTeamRegion.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/team/createTeamRegion.md b/i18n/en/docusaurus-plugin-content-docs/current/api/team/createTeamRegion.md new file mode 100644 index 0000000000..f659c5e05f --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/team/createTeamRegion.md @@ -0,0 +1,80 @@ +--- +title: Open a cluster for a team +--- + +## Basic Information + +This interface is mainly used to open a new cluster for a team + +```shell title="请求路径" +POST /openapi/v1/teams/{team_id}/regions +``` + +```json title="Body 请求体示例" +LO + "region": "string" +} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ---------------------------- | -------- | ------------------------------------- | -------- | ------------ | ---------- | +| team_id | Path | String | Yes | | none | +| body | body | [TeamRegionReq](#schemateamregionreq) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ----------------------------------- | +| 201 | Created | success | [TeamBaseInfo](#schemateambaseinfo) | + +## Model + +### TeamRegionReq + +```json +LO + "region": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------ | ------ | -------- | ---------- | ------------ | ---------------- | +| Region | String | false | none | Region | data center name | + +### TeamBaseInfo + +```json +{ + "tenant_id": "string", + "tenant_name": "string", + "region": "", + "is_active": true, + "create_time": "string", + "creater": 0, + "limit_memory": 1024, + "update_time": "string", + "expired_time": "string", + "tenant_alias": "", + "enterprise_id": "" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------- | ----------- | -------- | ---------- | ------------- | --------------------------------------- | +| tenant_id | String | true | none | Tenant id | tenant id | +| tenant_name | String | true | none | Tenant name | Basic Information | +| Region | String | false | none | Region | regional center, deprecated | +| is_active | boolean | false | none | Is Active | active state | +| create_time | String | true | none | Create time | creation time | +| creator | integer | false | none | Creator | Tenant creator | +| Limit_memory | integer | false | none | Limit memory | Memory size unit (M) | +| update_time | String | true | none | Update time | update time | +| expired_time | String | true | none | Expired time | Expiration | +| tenant_alias | Stringenull | false | none | Tenant alias | team alias | +| Enterprise_id | Stringenull | false | none | Enterprise id | enterprise id | From c5075691e5f81fbcffd1fc0f5ea2a55ab1d0ebbe Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:30 +0800 Subject: [PATCH 052/398] New translations deletecertificate.md (English) --- .../current/api/team/deleteCertificate.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/team/deleteCertificate.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/team/deleteCertificate.md b/i18n/en/docusaurus-plugin-content-docs/current/api/team/deleteCertificate.md new file mode 100644 index 0000000000..fb0e5d3650 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/team/deleteCertificate.md @@ -0,0 +1,24 @@ +--- +title: delete certificate +--- + +## Basic Information + +This interface is mainly used to delete the certificate + +```shell title="请求路径" +DELETE /openapi/v1/teams/{team_id}/certificates/{certificate_id} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ----------------------------------- | -------- | ------ | -------- | ------------ | ---------- | +| team_id | Path | String | Yes | | none | +| certificate_id | Path | String | Yes | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 204 | OK | success | Inline | From 4819f8d35327e3b8314677c23c5cc61a82599de9 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:31 +0800 Subject: [PATCH 053/398] New translations deleteteam.md (English) --- .../current/api/team/deleteTeam.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/team/deleteTeam.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/team/deleteTeam.md b/i18n/en/docusaurus-plugin-content-docs/current/api/team/deleteTeam.md new file mode 100644 index 0000000000..b68983d823 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/team/deleteTeam.md @@ -0,0 +1,23 @@ +--- +title: delete team +--- + +## Basic Information + +This interface is mainly used to delete teams + +```shell title="请求路径" +DELETE /openapi/v1/teams/{team_id} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ---------------------------- | -------- | ------ | -------- | ------------ | ---------- | +| team_id | Path | String | Yes | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 204 | OK | success | Inline | From dab9f8b9f3fca38b07a802d91f161e495622fa2c Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:32 +0800 Subject: [PATCH 054/398] New translations getcertificatedetail.md (English) --- .../current/api/team/getCertificateDetail.md | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/team/getCertificateDetail.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/team/getCertificateDetail.md b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getCertificateDetail.md new file mode 100644 index 0000000000..3d40ffc1ca --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getCertificateDetail.md @@ -0,0 +1,48 @@ +--- +title: Get the details of the certificate under the team +--- + +## Basic Information + +This interface is mainly used to obtain the details of the certificate under the team + +```shell title="请求路径" +GET /openapi/v1/teams/{team_id}/certificates/{certificate_id} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ----------------------------------- | -------- | ------ | -------- | ------------ | ---------- | +| team_id | Path | String | Yes | | none | +| certificate_id | Path | String | Yes | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | --------------------------------------------- | +| 200 | OK | success | [TeamCertificatesR](#schemateamcertificatesr) | + +## Model + +### TeamCertificatesR + +```json +LO + "alias": "string", + "private_key": "string", + "certificate": "string", + "certificate_type": "string", + "id": 0 +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------------- | ------- | -------- | ---------- | ---------------- | ----------------- | +| alias | String | true | none | Alias | certificate name | +| private key | String | true | none | Private key | Certificates | +| Certificate | String | true | none | Certificates | certificate key | +| Certificate_type | String | true | none | Certificate type | Basic Information | +| Id | integer | true | none | Id | Id | From 8de3ae45fc7c67fd9b47dba186cbd8ceabada0de Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:34 +0800 Subject: [PATCH 055/398] New translations getcertificatesunderteam.md (English) --- .../api/team/getCertificatesUnderTeam.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/team/getCertificatesUnderTeam.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/team/getCertificatesUnderTeam.md b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getCertificatesUnderTeam.md new file mode 100644 index 0000000000..3360a4f34b --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getCertificatesUnderTeam.md @@ -0,0 +1,87 @@ +--- +title: Get the list of certificates under the team +--- + +## Basic Information + +This interface is mainly used to obtain the list of certificates under the team + +```shell title="请求路径" +GET /openapi/v1/teams/{team_id}/certificates +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ------------------------------ | -------- | ------ | -------- | ------------ | ----------------- | +| team_id | Path | String | Yes | | none | +| page | Query | Number | no | | page number | +| page_size | Query | Number | no | | Quantity per page | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | -------------------------------------------- | +| 200 | OK | success | [TeamCertificatesL](#schemateamcertificates) | + +## Model + +### TeamCertificatesL + +```json +{ + "list": [ + { + "has_expired": true, + "issued_to": [ + "string" + ], + "alias": "string", + "certificate_type": "string", + "end_data ": "string", + "id": 0, + "issued_by": "string" + } + ], + "page": 0, + "page_size": 0, + "total": 0 +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------ | ----------------------------------------------------------------------------------------- | -------- | ---------- | ------------ | ---------- | +| list | [[CertificatesR](#schemacifertifesr)] | true | none | | none | +| page | integer | true | none | Page | none | +| page_size | integer | true | none | Page size | none | +| Total | integer | true | none | Total | none | + +### CertificatesR + +```json +{ + "has_expired": true, + "issued_to": [ + "string" + ], + "alias": "string", + "certificate_type": "string", + "end_data": "string", + " id": 0, + "issued_by": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------------- | ------------------------------------------------------------ | -------- | ---------- | ---------------- | ------------------ | +| has_expiredd | boolean | true | none | Has expiredd | Is it expired | +| Issued_to | [string] | true | none | | Domain name list | +| alias | String | true | none | Alias | certificate name | +| Certificate_type | String | true | none | Certificate type | Expiration | +| end_data | String | true | none | End data | Expiration time | +| Id | integer | true | none | Id | Id | +| Issued_by | String | true | none | Issued by | Certificate source | From a9c3d9f8d49f5587e34e59c35a6465cafd95726e Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:35 +0800 Subject: [PATCH 056/398] New translations geteventlogs.md (English) --- .../current/api/team/getEventLogs.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/team/getEventLogs.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/team/getEventLogs.md b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getEventLogs.md new file mode 100644 index 0000000000..e9048013de --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getEventLogs.md @@ -0,0 +1,65 @@ +--- +title: Get event log +--- + +## Basic Information + +This interface is mainly used to obtain event logs + +```shell title="请求路径" +GET /openapi/v1/teams/{team_id}/regions/{region_name}/events/{event_id}/logs +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------ | -------- | ------------ | ---------------- | +| team_id | Path | String | Yes | | Team ID, name | +| region_name | Path | String | Yes | | data center name | +| event_id | Path | String | Yes | | Event ID | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------------------------------- | +| 200 | OK | success | [TeamEventLog](#schemateaeventlog) | + +## Model + +### TeamEventLog + +```json +LO + "logs": [ + Fum + "message": "string", + "time": "string", + "utilme": 0 + } + ] +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---- | ------------------------------------------------------------------------------------------------- | -------- | ---------- | ------------ | --------------- | +| Logs | [[EventLogMessage](#schemaeventlogssage)]hull | false | none | | log information | + +### EventLogMessage + +```json +LO + "message": "string", + "time": "string", + "utility": 0 + } } +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------- | --------------------- | -------- | ---------- | ------------ | --------------- | +| Message | Stringenull | false | none | Message | log information | +| time | Stringenull | false | none | Time | log time | +| utime | integerexecutive null | false | none | Utime | timestamp | From fe09ffad0a18dabc950ca4f7ba98c464ec6ce430 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:37 +0800 Subject: [PATCH 057/398] New translations getteamdetail.md (English) --- .../current/api/team/getTeamDetail.md | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamDetail.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamDetail.md b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamDetail.md new file mode 100644 index 0000000000..8451b0514e --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamDetail.md @@ -0,0 +1,78 @@ +--- +title: Get team details +--- + +## Basic Information + +This interface is mainly used to obtain team details + +```shell title="请求路径" +GET /openapi/v1/teams/{team_id} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ---------------------------- | -------- | ------ | -------- | ------------ | ---------- | +| team_id | Path | String | Yes | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | --------------------------- | +| 200 | OK | success | [TeamInfo](#schemateaminfo) | + +## Model + +### TeamInfo + +```json +{ + "tenant_id": "string", + "tenant_name": "string", + "tenant_alias": "string", + "enterprise_id": "string", + "is_active": true, + "create_time": " string", + "creater": "string", + "role_infos": [ + { + "role_name": "string", + "role_id": "string" + } + ], + "service_num": 0, + "region_num": 0 +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------- | --------------------------------------------------------------------------------- | -------- | ---------- | ------------- | --------------------------------------------- | +| tenant_id | String | true | none | Tenant id | Team ID | +| tenant_name | String | true | none | Tenant name | Team Name | +| tenant_alias | String | true | none | Tenant alias | team alias | +| Enterprise_id | String | true | none | Enterprise id | Enterprise ID | +| is_active | boolean | false | none | Is Active | Activate now | +| create_time | String | false | none | Create time | creation time | +| creator | String | false | none | Creator | Team owner user | +| Role_infos | [[RoleInfo](#schemaroleinfo)] | false | none | | The roles the user has in the team | +| service_num | integer | false | none | Service num | The number of components in the team | +| region_num | integer | false | none | Region num | The number of data centers opened by the team | + +### RoleInfo + +```json +LO + "role_name": "string", + "role_id": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------ | ------ | -------- | ---------- | ------------ | ---------- | +| role_name | String | true | none | Role name | Role Name | +| role_id | String | true | none | Role id | role id | From aa99085e70b2772eada1a94e6d3e2853ab8137e5 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:39 +0800 Subject: [PATCH 058/398] New translations getteamlist.md (English) --- .../current/api/team/getTeamList.md | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamList.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamList.md b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamList.md new file mode 100644 index 0000000000..aeff1a35f6 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamList.md @@ -0,0 +1,114 @@ +--- +title: Get team list +--- + +## Basic Information + +This interface is mainly used to obtain the list of teams that the user belongs to. + +```shell title="请求路径" +GET /openapi/v1/teams +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ------------------------------ | -------- | ------ | -------- | ------------ | ----------------- | +| Query | Query | String | no | | Team name search | +| page | Query | String | no | | page number | +| page_size | Query | String | no | | Quantity per page | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------------------------------- | +| 200 | OK | success | [ListTeamResp](#schemalistteamres) | + +## Model + +## ListTeamResp + +```json +{ + "total": 0, + "tenants": [ + { + "tenant_id": "string", + "tenant_name": "string", + "tenant_alias": "string", + "enterprise_id": "string ", + "is_active": true, + "create_time": "string", + "creater": "string", + "role_infos": [ + { + "role_name": "string", + "role_id": " string" + } + ], + "service_num": 0, + "region_num": 0 + } + ] +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------- | --------------------------------------------------------------------------------- | -------- | ---------- | ------------ | ---------- | +| Total | integer | false | none | Total | none | +| tenants | [[TeamInfo](#schemateaminfo)] | true | none | | none | + +### TeamInfo + +```json +{ + "tenant_id": "string", + "tenant_name": "string", + "tenant_alias": "string", + "enterprise_id": "string", + "is_active": true, + "create_time": " string", + "creater": "string", + "role_infos": [ + { + "role_name": "string", + "role_id": "string" + } + ], + "service_num": 0, + "region_num": 0 +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------- | --------------------------------------------------------------------------------- | -------- | ---------- | ------------- | --------------------------------------------- | +| tenant_id | String | true | none | Tenant id | Team ID | +| tenant_name | String | true | none | Tenant name | Team Name | +| tenant_alias | String | true | none | Tenant alias | team alias | +| Enterprise_id | String | true | none | Enterprise id | Enterprise ID | +| is_active | boolean | false | none | Is Active | Activate now | +| create_time | String | false | none | Create time | creation time | +| creator | String | false | none | Creator | Team owner user | +| Role_infos | [[RoleInfo](#schemaroleinfo)] | false | none | | The roles the user has in the team | +| service_num | integer | false | none | Service num | The number of components in the team | +| region_num | integer | false | none | Region num | The number of data centers opened by the team | + +### RoleInfo + +```json +LO + "role_name": "string", + "role_id": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------ | ------ | -------- | ---------- | ------------ | ---------- | +| role_name | String | true | none | Role name | Role Name | +| role_id | String | true | none | Role id | role id | From f77ad12606e68e292618c0a7a5e3b2a018d56dcc Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:40 +0800 Subject: [PATCH 059/398] New translations getteamoverview.md (English) --- .../current/api/team/getTeamOverview.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamOverview.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamOverview.md b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamOverview.md new file mode 100644 index 0000000000..463c5a58ad --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamOverview.md @@ -0,0 +1,56 @@ +--- +title: Get team overview information +--- + +## Basic Information + +This interface is mainly used to obtain team overview information + +```shell title="请求路径" +GET /openapi/v1/teams/{team_id}/regions/{region_name}/overview +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| -------------------------------- | -------- | ------ | -------- | ------------ | ---------- | +| team_id | Path | String | Yes | | none | +| region_name | Path | String | Yes | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ------------------------------------------- | +| 200 | OK | success | [TeamAppsResource](#schemateamappsresource) | + +## Model + +### TeamAppsResource + +```json +{ + "total_cpu": 0, + "total_memory": 0, + "used_cpu": 0, + "used_memory": 0, + "used_cpu_percentage": 0, + "used_memory_percentage": 0, + "team_id": "string ", + "team_name": "string", + "team_alias": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------------------------------------- | ------- | -------- | ---------- | ---------------------- | ------------------------- | +| Total_cpu | integer | false | none | total cpu | total cpu | +| Total_memory | integer | false | none | Total memory | total memory | +| used_cpu | integer | false | none | used cpu | occupy cpu | +| used_memory | integer | false | none | Used memory | used internal memory | +| used_cpu_percentage | Number | false | none | Use cpu percentage | percentage of cpu | +| used_memory_percentage | Number | false | none | User memory percentage | percentage of memory used | +| team_id | String | true | none | team id | Team ID | +| team_name | String | true | none | Team name | Team Name | +| team_alias | String | true | none | Team alias | Team nickname | From 9f86d2dea93641511b28d0614e2ccb0cef28558e Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:41 +0800 Subject: [PATCH 060/398] New translations getteamregions.md (English) --- .../current/api/team/getTeamRegions.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamRegions.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamRegions.md b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamRegions.md new file mode 100644 index 0000000000..25ff10904e --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamRegions.md @@ -0,0 +1,95 @@ +--- +title: Get the list of clusters opened by the team +--- + +## Basic Information + +This interface is mainly used to obtain the list of clusters opened by the team + +```shell title="请求路径" +GET /openapi/v1/teams/{team_id}/regions +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ------------------------------ | -------- | ------ | -------- | ------------ | -------------------------- | +| team_id | Path | String | Yes | | none | +| Query | Query | String | no | | Search by data center name | +| page | Query | String | no | | page number | +| page_size | Query | String | no | | Quantity per page | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ------------------------------------------------ | +| 200 | OK | success | [ListTeamRegionsResp](#schemalistteamregionsres) | + +## Model + +### ListTeamRegionsResp + +```json +{ + "total": 0, + "regions": [ + { + "region_id": "string", + "region_name": "string", + "region_alias": "string", + "tenant_name": "string ", + "url": "string", + "wsurl": "string", + "httpdomain": "string", + "tcpdomain": "string", + "token": "", + "status" : "st", + "desc": "string", + "scope": "private" + } + ] +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------- | ---------------------------------------------------------------------------------------------- | -------- | ---------- | ------------ | ---------- | +| Total | integer | true | none | Total | none | +| Regions | [[TeamRegionsResp](#schemateamregionsres)] | true | none | | none | + +### TeamRegionsResp + +```json +{ + "region_id": "string", + "region_name": "string", + "region_alias": "string", + "tenant_name": "string", + "url": "string", + "wsurl" : "string", + "httpdomain": "string", + "tcpdomain": "string", + "token": "", + "status": "st", + "desc": "string", + "scope": "private" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| --------------------------------- | ----------- | -------- | ---------- | ------------ | ---------------------------------------------------------------------------------------------------- | +| region_id | String | true | none | Region id | region id | +| region_name | String | true | none | Region name | data center name | +| region_alias | String | true | none | Region alias | data center alias | +| tenant_name | String | true | none | Tenant name | Tenant Name | +| Url | String | true | none | Url | Datacenter API url | +| wsurl | String | true | none | Wsurl | datacenter websocket url | +| pdomain | String | true | none | Httpdain | Data center http application access root domain name | +| tcpdomain | String | true | none | Tcpdomain | Data center tcp application access root domain name | +| token | Stringenull | false | none | Token | data center token | +| Status | String | true | none | Status | Data Center Status 0:Editing 1: Enabled 2:Disabled 3: In Maintenance | +| desc | String | true | none | Desc | Data Center Description | +| Scope | String | false | none | Scope | Datacenter-wide private | From 4d220f1a6005536a917a22301a969370aae6d034 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:43 +0800 Subject: [PATCH 061/398] New translations getteamresources.md (English) --- .../current/api/team/getTeamResources.md | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamResources.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamResources.md b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamResources.md new file mode 100644 index 0000000000..f17f14ab9e --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/team/getTeamResources.md @@ -0,0 +1,111 @@ +--- +title: Get a list of team resource statistics +--- + +## Basic Information + +This interface is mainly used to obtain a list of team resource statistics + +```shell title="请求路径" +POST /openapi/v1/teams/resource +``` + +```json title="Body 请求体示例" +[ + LO + "tenant_id": "string", + "region_name": "string" + } +] +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ---- | -------- | ------------------------------------------- | -------- | ------------ | ---------- | +| body | body | [TenantRegionList](#schematenantregionlist) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ---------- | +| 200 | OK | success | Inline | + +## return data structure + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------- | -------- | ---------- | ---------------------- | ------------------------- | +| _anonymous_ | [[TeamAppsResource](#schemateamappsresource)] | false | none | | none | +| » Total_cpu | integer | false | none | total cpu | total cpu | +| » Total_memory | integer | false | none | Total memory | total memory | +| » used_cpu | integer | false | none | used cpu | occupy cpu | +| » used_memory | integer | false | none | Used memory | used internal memory | +| used_cpu_percentage | Number | false | none | Use cpu percentage | percentage of cpu | +| » used_memory_percentage | Number | false | none | User memory percentage | percentage of memory used | +| » team_id | String | true | none | team id | Team ID | +| » team_name | String | true | none | Team name | Team Name | +| » team_alias | String | true | none | Team alias | Team nickname | + +```json title="响应示例" +[ + LO + "total_cpu": 0, + "total_memory": 0, + "used_cpu": 0, + "used_memory": 0, + "used_cpu_percent": 0, + "used_memory_percent": 0, + "team_id": "string", + "team_name": "string", + "team_alias": "string" + } +] +``` + +## Model + +### TenantRegionList + +```json +LO + "tenant_id": "string", + "region_name": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| -------------------------------- | ------ | -------- | ---------- | ------------ | ---------------- | +| tenant_id | String | true | none | Tenant id | tenant id | +| region_name | String | true | none | Region name | data center name | + +### TeamAppsResource + +```json +{ + "total_cpu": 0, + "total_memory": 0, + "used_cpu": 0, + "used_memory": 0, + "used_cpu_percentage": 0, + "used_memory_percentage": 0, + "team_id": "string ", + "team_name": "string", + "team_alias": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------------------------------------- | ------- | -------- | ---------- | ---------------------- | ------------------------- | +| Total_cpu | integer | false | none | total cpu | total cpu | +| Total_memory | integer | false | none | Total memory | total memory | +| used_cpu | integer | false | none | used cpu | occupy cpu | +| used_memory | integer | false | none | Used memory | used internal memory | +| used_cpu_percentage | Number | false | none | Use cpu percentage | percentage of cpu | +| used_memory_percentage | Number | false | none | User memory percentage | percentage of memory used | +| team_id | String | true | none | team id | Team ID | +| team_name | String | true | none | Team name | Team Name | +| team_alias | String | true | none | Team alias | Team nickname | From 83fc81cfaa2538cf07e227ceca198e2509a5884c Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:44 +0800 Subject: [PATCH 062/398] New translations updatecertificate.md (English) --- .../current/api/team/updateCertificate.md | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/team/updateCertificate.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/team/updateCertificate.md b/i18n/en/docusaurus-plugin-content-docs/current/api/team/updateCertificate.md new file mode 100644 index 0000000000..b523b6eb79 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/team/updateCertificate.md @@ -0,0 +1,78 @@ +--- +title: Update certificate +--- + +## Basic Information + +This interface is mainly used to update the certificate + +```shell title="请求路径" +PUT /openapi/v1/teams/{team_id}/certificates/{certificate_id} +``` + +```json title="Body 请求体示例" +LO + "alias": "string", + "private_key": "string", + "certificate": "string", + "certificate_type": "string" +} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ----------------------------------- | -------- | ---------------------------------------------- | -------- | ------------ | ---------- | +| team_id | Path | String | Yes | | none | +| certificate_id | Path | String | Yes | | none | +| body | body | [TeamCertificatesC](#schemateamcertificateesc) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | --------------------------------------------- | +| 200 | OK | success | [TeamCertificatesR](#schemateamcertificatesr) | + +## Model + +### TeamCertificatesC + +```json +LO + "alias": "string", + "private_key": "string", + "certificate": "string", + "certificate_type": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------------- | ------ | -------- | ---------- | ---------------- | ---------------- | +| alias | String | true | none | Alias | certificate name | +| private key | String | true | none | Private key | Certificates | +| Certificate | String | true | none | Certificates | certificate key | +| Certificate_type | String | true | none | Certificate type | Certificate Type | + +### TeamCertificatesR + +```json +LO + "alias": "string", + "private_key": "string", + "certificate": "string", + "certificate_type": "string", + "id": 0 +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ------------------------------------- | ------- | -------- | ---------- | ---------------- | ----------------- | +| alias | String | true | none | Alias | certificate name | +| private key | String | true | none | Private key | Certificates | +| Certificate | String | true | none | Certificates | certificate key | +| Certificate_type | String | true | none | Certificate type | Basic Information | +| Id | integer | true | none | Id | Id | From b170b65865950644cf01a580a4d76450e91709e4 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:46 +0800 Subject: [PATCH 063/398] New translations updateteam.md (English) --- .../current/api/team/updateTeam.md | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/team/updateTeam.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/team/updateTeam.md b/i18n/en/docusaurus-plugin-content-docs/current/api/team/updateTeam.md new file mode 100644 index 0000000000..d6775a8b65 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/team/updateTeam.md @@ -0,0 +1,58 @@ +--- +title: Update team information +--- + +## Basic Information + +This interface is mainly used to update team information + +```shell title="请求路径" +PUT /openapi/v1/teams/{team_id} +``` + +```json title="Body 请求体示例" +LO + "region": "string", + "is_activ": true, + "creator": 0, + "tenant_alias": "string", + "enterprise_id": "string" +} +``` + +## request parameters + +| name | Location | type | required | Chinese name | illustrate | +| ---------------------------- | -------- | ------------------------------------------- | -------- | ------------ | ---------- | +| team_id | Path | String | Yes | | none | +| body | body | [UpdateTeamInfoReq](#schemaupdateaminforeq) | no | | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ------------------------------------------- | +| 200 | OK | success | [UpdateTeamInfoReq](#schemaupdateaminforeq) | + +## Model + +### UpdateTeamInfo + +```json +LO + "region": "string", + "is_activ": true, + "creator": 0, + "tenant_alias": "string", + "enterprise_id": "string" +} +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------- | ------- | -------- | ---------- | ------------- | ------------------ | +| Region | String | false | none | Region | data center name | +| is_active | boolean | false | none | Is Active | Activate now | +| creator | integer | false | none | Creator | Team Owner User ID | +| tenant_alias | String | false | none | Tenant alias | team alias | +| Enterprise_id | String | false | none | Enterprise id | Enterprise ID | From cf0be51f7c7b8baffe62dbe93166c56fad2dce3c Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:47 +0800 Subject: [PATCH 064/398] New translations addenterpriseuser.md (English) --- .../current/api/user/addEnterpriseUser.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/user/addEnterpriseUser.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/user/addEnterpriseUser.md b/i18n/en/docusaurus-plugin-content-docs/current/api/user/addEnterpriseUser.md new file mode 100644 index 0000000000..20f08b6a57 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/user/addEnterpriseUser.md @@ -0,0 +1,49 @@ +--- +title: Add enterprise user +--- + +## Basic Information + +Add enterprise user + +```json title="请求路径" +POST /openapi/v1/administrators +``` + +```json title="Body请求参数" +LO + "user_id": "string", + "eid": "string" +} +``` + +## request parameters + +| name | Location | type | required | illustrate | +| ---- | -------- | ----------------------------------------- | -------- | ---------- | +| body | body | [CreateAdminUserReq](#createadminuserreq) | no | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------------------------------------------------ | ---------- | ----------------------------------------- | +| 201 | [Created](https://tools.ietf.org/html/rfc7231#section-6.3.2) | success | [CreateAdminUserReq](#createadminuserreq) | + +## Model + +### CreateAdminUserReq + +```json +LO + "user_id": "string", + "eid": "string" +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------- | ------ | -------- | ---------- | ------------ | ------------- | +| user_id | String | true | none | User id | User ID | +| eid | String | true | none | Eid | Enterprise ID | From 9d377d199a34398b3930d585db5731a6300a7be6 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:49 +0800 Subject: [PATCH 065/398] New translations adduser.md (English) --- .../current/api/user/addUser.md | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/user/addUser.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/user/addUser.md b/i18n/en/docusaurus-plugin-content-docs/current/api/user/addUser.md new file mode 100644 index 0000000000..64b0882175 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/user/addUser.md @@ -0,0 +1,64 @@ +--- +title: Add regular user +--- + +## Basic Information + +Add regular user + +```json title="请求路径" +POST /openapi/v1/users +``` + +```json title="Body请求参数" +LO + "nick_name": "string", + "password": "stringst", + "enterprise_id": "string", + "email": "user@example.com", + "phone": "string", + "is_active": true, + "origin": "string" +} +``` + +## request parameters + +| name | Location | type | required | illustrate | +| ---- | -------- | ------------------------- | -------- | ---------- | +| body | body | [CreateUser](#createuser) | no | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------------------------------------------------ | ---------- | ------------------------- | +| 201 | [Created](https://tools.ietf.org/html/rfc7231#section-6.3.2) | success | [CreateUser](#createuser) | + +## Model + +## createuser + +```json +{ + "nick_name": "string", + "password": "stringst", + "enterprise_id": "string", + "email": "user@example.com", + "phone": "string", + "is_active": true, + "origion": "string" +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------- | -------------------------------- | -------- | ---------- | ----------------------------------- | ---------------------------------- | +| nick_name | String | true | none | Nick name | User's Nickname | +| password | String | true | none | Password | Password | +| Enterprise_id | String | true | none | Enterprise id | Enterprise_id | +| email | string(email) | false | none | Email | email address | +| phone | String | false | none | Phone | cellphone number | +| is_active | boolean | false | none | Is Active | active state | +| Origin | String | false | none | \* Retiring member. | User source | From 32332f59ae14f47b5a21962bd97074bcdaf169da Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:50 +0800 Subject: [PATCH 066/398] New translations changepasswd.md (English) --- .../current/api/user/changePasswd.md | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/user/changePasswd.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/user/changePasswd.md b/i18n/en/docusaurus-plugin-content-docs/current/api/user/changePasswd.md new file mode 100644 index 0000000000..457fed0318 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/user/changePasswd.md @@ -0,0 +1,51 @@ +--- +title: Modify personal account password +--- + +## Basic Information + +Modify personal account password + +```json title="请求路径" +PUT/openapi/v1/changewd +``` + +```json title="Body请求参数" +LO + "password": "stringst", + "password1": "stringst" +} +``` + +## request parameters + +| name | Location | type | required | illustrate | +| ---- | -------- | ----------------------------- | -------- | ---------- | +| body | body | [ChangePassWd](#changepasswd) | no | none | + +> back to example + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ----------------------------- | +| 200 | OK | success | [ChangePassWd](#changepasswd) | + +## Model + +### ChangePassWd + +```json +LO + "password": "stringst", + "password1": "stringst" +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| --------- | ------ | -------- | ---------- | ------------ | ------------------------------ | +| password | String | true | none | Password | new password | +| password1 | String | true | none | Password1 | Confirm the new password again | From 3ce7104e48e6fd1edb473b28fbc215b1dc6fb09a Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:52 +0800 Subject: [PATCH 067/398] New translations changeuserpassword.md (English) --- .../current/api/user/changeUserPassword.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/user/changeUserPassword.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/user/changeUserPassword.md b/i18n/en/docusaurus-plugin-content-docs/current/api/user/changeUserPassword.md new file mode 100644 index 0000000000..71bb875042 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/user/changeUserPassword.md @@ -0,0 +1,55 @@ +--- +title: Modify user password +--- + +## Basic Information + +Modify user password + +```json title="请求路径" +PUT /openapi/v1/users/{user_id}/changepwd +``` + +```json title="Body请求参数" +Jean-Marie + "user_id": 0, + "password": "stringst", + "password1": "stringst" +} +``` + +## request parameters + +| name | Location | type | required | illustrate | +| ---------------------------- | -------- | ------------------------------------- | -------- | ---------- | +| user_id | Path | String | Yes | none | +| body | body | [ChangePassWdUser](#changepasswduser) | no | none | + +> back to example + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ------------------------------------- | +| 200 | OK | success | [ChangePassWdUser](#changepasswduser) | + +## Model + +### Changepasswduser + +```json +LO + "user_id": 0, + "password": "stringst", + "password1": "stringst" +} } + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------- | ------- | -------- | ---------- | ------------ | ------------------------------ | +| user_id | integer | true | none | User id | user_id | +| password | String | true | none | Password | new password | +| password1 | String | true | none | Password1 | Confirm the new password again | From 975a323e0b6d4eb90bf954fcfd99d5a489293a96 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:53 +0800 Subject: [PATCH 068/398] New translations delenterpriseadmin.md (English) --- .../current/api/user/delEnterpriseAdmin.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/user/delEnterpriseAdmin.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/user/delEnterpriseAdmin.md b/i18n/en/docusaurus-plugin-content-docs/current/api/user/delEnterpriseAdmin.md new file mode 100644 index 0000000000..174ba520b5 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/user/delEnterpriseAdmin.md @@ -0,0 +1,44 @@ +--- +title: delete enterprise administrator +--- + +## Basic Information + +delete enterprise administrator + +```json title="请求路径" +DELETE /openapi/v1/administrators/{user_id} +``` + +## request parameters + +| name | Location | type | required | illustrate | +| ---------------------------- | -------- | ------ | -------- | ---------- | +| user_id | Path | String | Yes | none | + +> back to example + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- | ------------- | +| 204 | [No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5) | success | Inline | +| 400 | [Bad Request] (https://tools.ietf.org/html/rfc7231#section-6.5.1) | 400 | [Fail](#fail) | +| 404 | [Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4) | 404 | [Fail](#fail) | + +## Model + +### Fail + +```json +LO + "msg": "string" +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---- | ------ | -------- | ---------- | ------------ | ---------- | +| msg | String | true | none | Msg | none | From 0ded57b9f75295a20502cd3150a951fb329cba03 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:54 +0800 Subject: [PATCH 069/398] New translations deleteuser.md (English) --- .../current/api/user/deleteUser.md | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/user/deleteUser.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/user/deleteUser.md b/i18n/en/docusaurus-plugin-content-docs/current/api/user/deleteUser.md new file mode 100644 index 0000000000..a712204337 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/user/deleteUser.md @@ -0,0 +1,27 @@ +--- +title: delete users +--- + +## delete users + +delete user based on user id + +```json title="请求路径" +DELETE /openapi/v1/users/{user_id} +``` + +## request parameters + +| name | Location | type | required | illustrate | +| ---------------------------- | -------- | ------ | -------- | ---------- | +| user_id | Path | String | Yes | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | --------------------------------------------------------------- | ---------- | ---------- | +| 204 | [No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5) | success | Inline | + +## return data structure + + From f9b2c3ed5aa329bb658fcd6a5c17b54ac87e445a Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:56 +0800 Subject: [PATCH 070/398] New translations getenterpriseadminlist.md (English) --- .../api/user/getEnterpriseAdminList.md | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/user/getEnterpriseAdminList.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/user/getEnterpriseAdminList.md b/i18n/en/docusaurus-plugin-content-docs/current/api/user/getEnterpriseAdminList.md new file mode 100644 index 0000000000..232b2d9127 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/user/getEnterpriseAdminList.md @@ -0,0 +1,86 @@ +--- +title: Get a list of enterprise administrators +--- + +## Basic Information + +Get a list of enterprise administrators + +```json title="请求路径" +GET /openapi/v1/administrators +``` + +## request parameters + +| name | Location | type | required | illustrate | +| ------------------------------ | -------- | ------ | -------- | ----------------- | +| eid | Query | String | no | Enterprise ID | +| page | Query | String | no | page number | +| page_size | Query | String | no | Quantity per page | + +```json title="返回成功示例" +{ + "users": [ + { + "user_id": 20, + "create_time": "1989-05-01 04:39:15", + "origion": null, + "nick_name": "Xiong Qiang" , + "client_ip": "191.197.77.228", + "email": "t.mlnkciau@qq.com", + "is_active": true, + "phone": "18671541879", + "enterprise_id": "18 " + }, + { + "user_id": 26, + "phone": "13176190182", + "create_time": "2016-10-15 03:28:33", + "client_ip": "111.143.107.142" , + "is_active": true, + "nick_name": "Gao Xiuying", + "email": "e.ebvmwo@qq.com", + "enterprise_id": "71", + "origion": "" + } + ], + "total": 7 +} +``` + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | -------------------------------------- | +| 200 | OK | success | [ListUsersRespView](#listusersresview) | + +## Model + +### ListUserReseView + +```json +{ + "users": [ + { + "user_id": 0, + "email": "string", + "nick_name": "string", + "phone": "string", + "is_active": true, + "origion": "string", + "create_time": "string", + "client_ip": "string", + "enterprise_id": "string" + } + ], + "total": 0 +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----- | ----------------------------------------------------------------------------------------------------- | -------- | ---------- | ------------ | ---------- | +| Users | [[UserInfo](/docs/api/user/getUserInfo#userinfo)] | true | none | | none | +| Total | integer | true | none | Total | none | From efab6ee2d44c9fe5e34950e25ef55fb5b6d58e73 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:57 +0800 Subject: [PATCH 071/398] New translations getuserinfo.md (English) --- .../current/api/user/getUserInfo.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/user/getUserInfo.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/user/getUserInfo.md b/i18n/en/docusaurus-plugin-content-docs/current/api/user/getUserInfo.md new file mode 100644 index 0000000000..99d51b8d84 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/user/getUserInfo.md @@ -0,0 +1,56 @@ +--- +title: Get user information +--- + +## Basic Information + +Get user information based on user ID + +```json title="请求路径" +GET /openapi/v1/users/{user_id} +``` + +## request parameters + +| name | Location | type | required | illustrate | +| ---------------------------- | -------- | ------ | -------- | ---------- | +| user_id | Path | String | Yes | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | --------------------- | +| 200 | OK | success | [UserInfo](#UserInfo) | + +## Model + +### UserInfo + +```json +{ + "user_id": 0, + "email": "string", + "nick_name": "string", + "phone": "string", + "is_active": true, + "origion": "string" , + "create_time": "string", + "client_ip": "string", + "enterprise_id": "string" +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------- | ----------- | -------- | ---------- | ----------------------------------- | ---------------------------------- | +| user_id | integer | true | none | User id | none | +| email | Stringenull | false | none | Email | email address | +| nick_name | String | false | none | Nick name | User's Nickname | +| phone | Stringenull | false | none | Phone | cellphone number | +| is_active | boolean | false | none | Is Active | active state | +| Origin | Stringenull | false | none | \* Retiring member. | User source | +| create_time | String | false | none | Create time | creation time | +| client_ip | Stringenull | false | none | Client ip | register ip | +| Enterprise_id | String | false | none | Enterprise id | Enterprise_id | From b93a73426d8781206493b29b82b8599b60a75434 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:22:59 +0800 Subject: [PATCH 072/398] New translations getuserlist.md (English) --- .../current/api/user/getUserLIst.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/user/getUserLIst.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/user/getUserLIst.md b/i18n/en/docusaurus-plugin-content-docs/current/api/user/getUserLIst.md new file mode 100644 index 0000000000..7663e2c4ae --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/user/getUserLIst.md @@ -0,0 +1,56 @@ +--- +title: get user list +--- + +## Basic Information + +get user list + +```json title="请求路径" +GET /openapi/v1/users +``` + +## request parameters + +| name | Location | type | required | illustrate | +| ------------------------------ | -------- | ------ | -------- | ------------------------------------- | +| Query | Query | String | no | Username, Email, Mobile Number Search | +| page | Query | String | no | page number | +| page_size | Query | String | no | Quantity per page | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | -------------------------------------- | +| 200 | OK | success | [ListUsersRespView](#listusersresview) | + +## Model + +### listusersreply + +```json +{ + "users": [ + { + "user_id": 0, + "email": "string", + "nick_name": "string", + "phone": "string", + "is_active": true, + "origion": "string", + "create_time": "string", + "client_ip": "string", + "enterprise_id": "string" + } + ], + "total": 0 +} + +``` + +### Attributes + +| name | type | required | constraint | Chinese name | illustrate | +| ----- | ----------------------------------------------------------------------------------------------------- | -------- | ---------- | ------------ | ---------- | +| Users | [[UserInfo](/docs/api/user/getUserInfo#userinfo)] | true | none | | none | +| Total | integer | true | none | Total | none | From 83cb99c75faece8b8ab2234d6e99627ff679f187 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:00 +0800 Subject: [PATCH 073/398] New translations updateuserinfo.md (English) --- .../current/api/user/updateUserInfo.md | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/api/user/updateUserInfo.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/api/user/updateUserInfo.md b/i18n/en/docusaurus-plugin-content-docs/current/api/user/updateUserInfo.md new file mode 100644 index 0000000000..aea697653d --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/api/user/updateUserInfo.md @@ -0,0 +1,59 @@ +--- +title: Update user information +--- + +## Basic Information + +```json title="请求路径" +PUT /openapi/v1/users/{user_id} +``` + +> + +```json title="Body请求参数" +LO + "password": "stringsta", + "enterprise_id": "string", + "email": "user@example.com", + "phone": "string", + "is_active": true +} +``` + +## request parameters + +| name | Location | type | required | illustrate | +| ---------------------------- | -------- | ------------------------- | -------- | ---------- | +| user_id | Path | String | Yes | none | +| body | body | [UpdateUser](#UpdateUser) | no | none | + +## return result + +| status code | Status code meaning | illustrate | data model | +| ----------- | ------------------- | ---------- | ------------------------- | +| 200 | OK | success | [UpdateUser](#UpdateUser) | + +## Model + +### UpdateUser + +| name | type | required | constraint | Chinese name | illustrate | +| ---------------------------------- | -------------------------------- | -------- | ---------- | ------------- | ---------------------------------- | +| password | String | false | none | Password | Password | +| Enterprise_id | String | false | none | Enterprise id | Enterprise_id | +| email | string(email) | false | none | Email | email address | +| phone | String | false | none | Phone | cellphone number | +| is_active | booleanexecutive | false | none | Is Active | active state | + +### Attributes + +```json +LO + "password": "stringsta", + "enterprise_id": "string", + "email": "user@example.com", + "phone": "string", + "is_activ": true +} + +``` From 10b89ab1d6e0a1105918d8d2f08b4d5096241b84 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:01 +0800 Subject: [PATCH 074/398] New translations app-model-parameters.md (English) --- .../current/delivery/app-model-parameters.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/delivery/app-model-parameters.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/delivery/app-model-parameters.md b/i18n/en/docusaurus-plugin-content-docs/current/delivery/app-model-parameters.md new file mode 100644 index 0000000000..9e89900866 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/delivery/app-model-parameters.md @@ -0,0 +1,42 @@ +--- +title: Application template parameters +--- + +### 1. Apply template and release settings + +- Arguments description for: when creating an app template + +| Option Name | Note | +| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| Name | Define app name (required) | +| Release Range | Application template visibility, **Current team** is visible to the current team, **Business** all teams visible (necessary) | +| Category Label | Apply tags, sorting by architecture, industry, deployment mode | +| Introduction | App description to help users understand this app | +| Logo | Applied logo image | + +- Define app release version: after creating app template + +| Option Name | Note | +| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Version number | When published multiple times as an app, if the version is the same, it will overwrite the published version. If not, it will be published as a new version, it will be judged on the version (required) | +| Version Alias | Apply alias,eg: Premium | +| Version Description | Description of the current release version, you can differentiate between different versions of functionality, etc. | +| as plugin | Check this option if you have plugins in the app template, you can install them on the \`Team Page-Plugins - install them from the local component library, install them directly without installing the app | + +### 2. Publish component model configuration: + +| Option Name | Note | +| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| Connection information | When password class information appears in connection messages, choose to automatically generate random values for each deployment | +| Environment Variables | Edit the default environment variable for this component | +| Scaling Rules | Define the minimum number of nodes that the component can scalable and the minimum installation memory limit. | + +### 3. Publish plugin model information: + +When a component of an app to be published carries a plugin, it will be displayed and will be posted with the component during publication. + +### 4. K8s Resource: + +The display will also be displayed and follow the app release when there is a defined K8s resource in the app to publish. + +When all information is configured, click the **Subred** button to post it, all information about dependencies, environment configurations, persistent storage, plugins, operating environment and the above definition will be packed. From 21c1b121ca1f5cc3c9a7a57757a7f2288c734d55 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:03 +0800 Subject: [PATCH 075/398] New translations index.md (English) --- .../current/delivery/continuous/index.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/index.md b/i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/index.md new file mode 100644 index 0000000000..2f98e8e592 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/index.md @@ -0,0 +1,34 @@ +--- +title: Continuous delivery +description: This section explains how to use Rainbond for continuous delivery +keywords: + - Continuous delivery + - Continuous Delivery +--- + +Import Bvideo from '/src/components/Bvideo'; + + + +Continuous delivery is a software development practice whereby systems can automatically prepare for release of code changes to the production environment. + +## Distinction between continuous integration and continued delivery + +Continuous integration is designed to allow products to quickly iterate, deliver high-quality codes and simplify workflow.Core is that the code must be integrated into the backbone and must pass all automated tests. + +The purpose of continued delivery is to deliver high-quality and valuable products.The core is to frequently deliver new versions of the software to the testing team for testing.If test passes, this version can be used as production. + +## Focus on continued delivery + +The focus of continuous integration is on code, but continued delivery focuses on deliverable products. + +Deliverable products must have the required quality to ensure that they are not problematic in the production environment, so complete testing is required after successful and sustained integration. + +This section will provide information on how to achieve a continuous delivery process on Rainbond + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 8eacc776c2bc7106218a861cd8380eb1699ceadc Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:04 +0800 Subject: [PATCH 076/398] New translations multi-env.md (English) --- .../current/delivery/continuous/multi-env.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/multi-env.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/multi-env.md b/i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/multi-env.md new file mode 100644 index 0000000000..bfbad1da69 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/multi-env.md @@ -0,0 +1,75 @@ +--- +title: Continuous delivery in multiple environments +description: This section explains how to implement multi-environment continuous delivery on Rainbond +keywords: + - Multi-environment + - Continuous delivery +--- + +Import Bvideo from '/src/components/Bvideo'; + + + +## Flow chart of environmental delivery on Rainbond + +As shown in the figure below, we use the Rainbond application template as an example for the ongoing delivery of the cloudy environment, usually requiring the following process. + + + +![](https://static.goodrain.com/docs/5.11/delivery/continuous/source-code/multi-env-delivery.png) + +1. Contains multiple clusters with Rainbond and can connect to private and public clouds, etc. + +2. When the app tests developed by the developer are passed, they are posted to the local app market and finally deployed to various public cloud settings via the app template in the application market. + +## Action step + +### Preparatory work + +1. Have a set of Rainbond clusters, refer to[快速安装](/docs/quick-start/quick-install). + +### Rainbond multiple clusters + +1. After completing installation of the Rainbond Console Console console, enter the Rainbond Console `Platform Management -> Cluster -> Add Cluster`, and install the Rainbond cluster on the server of the public or private clouds, as directed, to add and connect multiple clusters.Multi cluster sequential impact map:point_down: + +image-20211118142459214 + +2. We assume that three clusters have been interfaced in this environment, namely, `intranet', `Aliyun — Qinga`, and `Aliyun — Shanghai, at which time three teams were created on `Platform Managers->Teams`, `Production_Qing`, and `Production_Shanghai`, and the group selected `intranet`, `Aliyun — Teen` and \`Aliyun — Shanghai, respectively. + +### Set Mirror Repository + +1. In `Platform Management>Settings->Internal Component Repository Mirror Repository`, a mirror repository that can be accessed by multiple environments will be pushed to the Marketplace, so that this repository is the key to the app running in multiple environments. + +### Deploying Development Test Environment + +1. 首先可以在`测试-内网`团队内,参考[基于源代码创建组件](/docs/devops/app-deploy/),根据你的代码语言部署你的各个业务模块。 + +2. After each operation has been deployed, you get a fully running app on Rainbond by reference to[微服务架构指南](/docs/microservice/overview) to organize your services. + +### Make Application Template + +1. On the left side of the App Popup page, you can enter the template settings page by selecting `Post->Publish to the component library`.Details for each parameter [Appendix 1: Template Settings Parameters](/docs/delivery/app-model-parameters) + +2. Create a new application template`. Optionally publish in a corporate domain, set the release version `1.0`, click `Subred`, then synchronize the images of all components and push them to the mirror repository we have just set up.Once syncing is finished, click `Confirm Posting`.Then you can see the published app template in `Platform Manager-> App Marketplace -> Local Component Library'. + +:::caution +Note:Only company administrators can see platform management buttons. +::: + +### Multi-environment delivery + +1. After the test has passed the `test-intranet` installation, the test will mark the version as Status of Release, and the final person will be able to deploy and deliver it to other publicly available cloud environments. + +2. Deliveries can be delivered in `Platform Admin -> App Marketplace -> Local Component Library`, see the state of the app's Release, and can be assured with that version. + +3. By clicking on the right side of the `Background Management System` template, the team chooses `Product-Qingy` and the app and version to be installed, you can deploy the production environment in the `Aliyun - Qinga` cluster. + +4. The `Aliyun - Shanghai` cluster is deployed as above. + +### Continuous upgrade and rollback + +1. If there is a problem, it will still be a new version released by the developer, and the test will be released to the application market once the test has passed. + +2. Vehicle personnel will be available online by selecting `Update` in the `production environment` where they are deployed. + +3. If you have problems online, you can use the app in the app page by selecting `Upgrade -> Update Records->Roll`. From b175879d7d34cad5b8cf4811f607dd5247441af4 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:06 +0800 Subject: [PATCH 077/398] New translations ram.md (English) --- .../current/delivery/continuous/ram.md | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/ram.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/ram.md b/i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/ram.md new file mode 100644 index 0000000000..17947df898 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/ram.md @@ -0,0 +1,71 @@ +--- +title: Continuous delivery of application templates +description: This section describes how to implement continuous delivery of application templates on Rainbond +keywords: + - Application template + - Continuous delivery +--- + +Import Bvideo from '/src/components/Bvideo'; + + + +## Rainbond Application Models for Continuous Delivery Flow + +As shown in the graph below, in the case of \`back-office management system', the following processes are usually required using Rainbond application templates for continued delivery. + +1. The user submits the code to the repository when the automated test process is built and performed in the development environment and after the test is completed, if not fed back to the developer to adjust the code quality. + +2. When the developer function is largely developed, the developed `back-office management system` will be released to the Marketplace as version `1.0` and then the testers will install version `1.0` from the Marketplace. The full test environment will be deployed for the test.The developer continues to develop based on the development environment, while the testers conduct full functional tests.If the feature test fails, then continue to feed the developer. + +3. After the developer has modified the code to republish the version of `2.0` from the background management system when the tester can upgrade to the test environment by one click and continue the test after the upgrade has been completed. + +4. When the `3.0` version of the test passes, we can assume that there is a high-quality deliverable version.This version can then be marked on the Marketplace as it has been Release, and then on the production of environmental deployments, the `3.0` version can be deployed directly from the Marketplace. + + + +![](https://static.goodrain.com/docs/5.11/delivery/continuous/source-code/template-delivery.png) + +## Action step + +### Preparatory work + +1. Have a set of Rainbond clusters, refer to[快速安装](/docs/quick-start/quick-install), multiple teams/projects (for simulated development environment, test environment, production environment). + +### Deploying the development environment + +1. 参考[基于源代码创建组件](/docs/devops/app-deploy/),根据你的代码语言部署你的各个业务模块。 + +2. After each operation has been deployed, you get a fully running app on Rainbond by reference to[微服务架构指南](/docs/microservice/overview) to organize your services. + +3. Once your Git repository is configured for[自动部署](/docs/devops/continuous-employ/gitops) you can complete this step by submitting code to trigger the auto-build of the development environment and automated tests and then adjust the code based on the build. + +### Make Application Template + +1. On the left side of the App Popup page, you can enter the template settings page by selecting `Post->Publish to the component library`.Details for each parameter [Appendix 1: Template Settings Parameters](/docs/delivery/app-model-parameters) + +2. Create a new application template `back-office management system`. Optionally publish the release range `1.0`, make the release version `1.0`, click `submit` and then synchronize the image of all components to the local mirror repository.Once syncing is finished, click `Confirm Posting`.Then you can see the published app template in \`Platform Manager-> App Marketplace -> Local Component Library'. + +:::caution +Note:Only company administrators can see platform management buttons. +::: + +### + +### Deployment test environment + +1. Create a new `Test Environment` team that will create the application `Background Management System`. On the app page, click `Add Component -> Local Component Library`, select the template you have just published for the `Background Management System` and select version `1.0` to complete the deployment of the test environment. + +2. The testers test in this environment and then send the question back to the developer when the test is completed.Release version `2.0` again after the developer has made changes to yourself. + +3. At this point, the tester will be able to use the `Update` in the `Background Management System` app for the test environment, choose `Update`, see the difference between version `2.0` and version `1.0`. The tester will be able to perform the test again after the app is upgraded. + +4. Eventually, the developer's release of `3.0` passed the full test when we can see all versions in the template by going to `platform manage->App Marketplace->Local Component Library,` and we can click `Release status`, make it a high-quality deliverable version. + +### Deployment of production environments + +1. Users with the production environment deployment permissions can see the status of the application in `Platform manage->App Marketplace->Local Component Library'.At this point, it can be seen that version 3.0` of the `Background Management System` is a Release Status that users can be assured to deliver with that version. + +2. Click on the `Background Management System` to install the right side of the template, the team chooses \`Production Environment', and the apps and versions to be installed, to deploy the production environment one click on the one. + +3. If there is a problem, the developer still publishes version `3.1`. Once the tester has passed the test, the carrier will be able to use `upgrade` in the `production environment` app. From ec0f9264a55a8eead9ce5e4eebe138b441ac9415 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:07 +0800 Subject: [PATCH 078/398] New translations source-code.md (English) --- .../delivery/continuous/source-code.md | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/source-code.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/source-code.md b/i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/source-code.md new file mode 100644 index 0000000000..6883afa45b --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/delivery/continuous/source-code.md @@ -0,0 +1,59 @@ +--- +title: Continuous source code delivery +description: This section describes how to implement continuous source code delivery on Rainbond +keywords: + - Source + - Continuous delivery +--- + +Import Bvideo from '/src/components/Bvideo'; + + + +## Flow chart for ongoing delivery of Rainbond source code + +As shown in the graph below, the process below is usually required to achieve continued delivery. + +1. The user submits the code to the repository when the automated test process is built and performed in the development environment and after the test is completed, if not fed back to the developer to adjust the code quality. + +2. When the developer function is largely developed, then the code needs to be merged from dev branch into a testing branch and the test environment is deployed for testers.This allows developers to continue their development based on dev branch, while testers perform full functionality tests.If the feature test fails, then continue to feed the developer. + +3. When a version is tested, we can believe that a high-quality deliverable version already exists.This is followed by manual review, merging the code from the testing branch to the master branch for deployment of the production environment online. + + + +![](https://static.goodrain.com/docs/5.11/delivery/continuous/source-code/code-delivery.png) + +## Action step + +### Preparatory work + +1. Have a set of Rainbond clusters, refer to[快速安装](/docs/quick-start/quick-install), multiple teams/projects (for simulated development environment, test environment, production environment). + +2. The project source code has three branches, dev, testing, master. + +### Deploying the development environment + +1. 参考[基于源代码创建组件](/docs/devops/app-deploy/),根据你的代码语言使用 dev 分支部署你的各个业务模块。 + +2. After each operation has been deployed, you get a fully running app on Rainbond by reference to[微服务架构指南](/docs/microservice/overview) to organize your services. + +3. Once your Git repository is configured for[自动部署](/docs/devops/continuous-employ/gitops) you can complete this step by submitting code to trigger the auto-build of the development environment and automated tests and then adjust the code based on the build. + +### Deployment test environment + +When the developer function is largely developed, and when self-testing is completed, the code needs to be delivered to the testers to deploy the testing environment and complete functional testing. + +1. Merge code from dev branch to test branch. + +2. On the `App Pages->Quick Copy `, create a new app in the `Test Team`, change all build source information for all apps under the `Development Environment` to a testing branch, and copy a test set by one button. + +3. After the test environment has been validated, the question has been sent to the developer. Once the developer has completed repair and code merge, the testers will simply be able to quickly update the test environment on the `App Page->List` of the test environment by selecting all components for bulk construction. + +### Delivery of the production environment + +1. Once the test is fully passed, the code needs to be merged from toting branch to master branch.At this time, review is done by users with access to online and merge code. + +2. When the code is merged into the master branch, it continues to create a new app in the `App Page->Quick Replication`, creating a new app in the `Production Team`, and changing all building source information from the `Test Environment` to the master branch, then copy a production environment by one key. + +3. If there is a problem with production.There is still a need for the developer to complete self-measurement on the dev branch, test team to pass on the toting branch, and finally merge and get online by users with a production environment. From d9f918885e04079337ff2a766b0a519a21a1923b Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:09 +0800 Subject: [PATCH 079/398] New translations index.md (English) --- .../current/delivery/index.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/delivery/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/delivery/index.md b/i18n/en/docusaurus-plugin-content-docs/current/delivery/index.md new file mode 100644 index 0000000000..a86b86da9d --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/delivery/index.md @@ -0,0 +1,12 @@ +--- +title: Application delivery guide +--- + +This section focuses on how to achieve continued delivery on Rainbond and offline delivery to improve your delivery efficiency. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From ceb131b1b7c926613317adf84adf0a7327ff9900 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:10 +0800 Subject: [PATCH 080/398] New translations development-iteration.md (English) --- .../delivery/offline/development-iteration.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/delivery/offline/development-iteration.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/delivery/offline/development-iteration.md b/i18n/en/docusaurus-plugin-content-docs/current/delivery/offline/development-iteration.md new file mode 100644 index 0000000000..cc5f3a948c --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/delivery/offline/development-iteration.md @@ -0,0 +1,96 @@ +--- +title: Custom development and continuous iteration for offline environments +description: Use Rainbond for offline environment custom development and continuous iteration +keywords: + - Offline delivery + - toB offline delivery + - toB offline delivery + - Offline environment customization + - Continuous iteration of offline environments +--- + +Import Bvideo from '/src/components/Bvideo'; + + + +## Customize pain points for offline environments + +After the application has been delivered to the customer, the client will see the effect and will continue to iterate until the client is satisfied and the product will need to be frequently upgraded.In this scenario, the following problems will be encountered. + +**Custom delivery iterations are less efficient** + +In the customized delivery scenario, for client feedback, the upgrade process is complex and inefficient if developers are customized in the company.If the developer develops on the site of the client, it does not have a good development tool and environment, and it is inefficient and has a high level of human input; + +**Post-maintenance is more difficult** + +After the delivery of the application has been completed, it will be necessary to guarantee the stability of the application's operation, the offline environment will not be viable, alerts will not be sent and delivery will be difficult, and the support costs will be higher when the product has bugs, some expected changes or upgrades will require a client site. + +## Use Rainbond to achieve customization development and continuous iterations + +### Custom Development + +As shown in the graph below.Developers are developing in the development environment and can put the business together through the source code, mirrors, and generic modules of the application market sediment.Version 1.0 can be published after the tester has verified it.The capacity of the application market can be subsidised.Deliveries export the application template after the customer environment imports.You can be deployed on the customer environment button.Rainbond blocks differences for you, eliminates environmental inconsistencies, and makes your app fully compatible with the development test environment.This has resolved the inefficiencies in the development of the developer field and the difficulty of subsequent upgrading. + +### Continuous iteration + +When the application is delivered to the client environment, the client experiences tend to present some customized needs, and when the developer receives these feedback, it will only be necessary to continue to create new `business module D` and original apps in the development environment.Last released version 2.0 to the Marketplace.After the person is imported into the customer environment, it is up to the user to decide when to upgrade.All changes will be displayed and scroll upgrades will be implemented.Business disruptions were avoided, while consistency was ensured in business applications. + +Of these, Rainbond has a version control system, which means quick upgrades and rolls between different versions of the same application. + +- For developers, make the required changes on the source side of the application, whether built after changes to the code or new components will be added to the new version of the application template during the next release process.The developer must be aware of the version number defined when published, Rainbond uses it to determine if you want to upgrade or not. + +- For deliverers, it is only necessary to import different versions of the application template into the delivery environment, Rainbond automatically identifies different versions of the same application template and can perform one click upgrade. + +![offline-continuous-delivery](https://static.goodrain.com/docs/5.11/delivery/offline/offline-continuous-delivery.png) + +## Action step + +### Preparatory work + +1. Having a cluster of ammunition Rainbond that simulates the development environment and the delivery environment (developing environment as online and delivering as offline). + +2. Development environment installation, reference[快速安装](/docs/quick-start/quick-install), delivery for environmental installation, reference[离线安装](/docs/installation/offline/). + +3. The first delivery from the completed app can be found in[微服务架构离线交付](/docs/delivery/offline/microservice). + +### Make New Application Template + +1. Once the first app delivery has been completed, it can continue to be developed in the development environment according to the needs of customers.As shown in the graph above, add `Business Module D`, continuing to spell the business with the original application and rerelease when development tests are completed. + +2. On the left side of the Apps Topic page, select `Posting`, at this point the release history will be shown, and continue with the `Publish to the Component Library` will enter the template settings page.You can only select a previously published template at this time, enter a new version number and confirm the release.Details for each parameter [Appendix 1: Template Settings Parameters](/docs/delivery/app-model-parameters) + +3. Then you can see the published app template in \`Platform Manager-> App Marketplace -> Local Component Library'.Tap into to see all versions of this template, as shown in the graph below. + +![one-key-deploy-update-6.png](https://static.goodrain.com/wechat/one-key-de-employ-upgrade/one-key-de-update-6.png) + +:::caution +Note:Only company administrators can see platform management buttons. +::: + +### Export Application Template + +1. `Platform manage->Marketplace->Local Component Library', selects `Export App Template`. You can select the version to export and the type of package to export.Here we choose `Apply Model Norms`, and just released version, click `Export\`.This package will contain complete shipping features for continued delivery and upgrading. + +2. After the export is completed, download the app template to local and save it to mobile storage devices such as UDs/CD-ROMs and take it to offline delivery environments. + +### Upgrade app in offline environment + +1. In an offline environment where Rainbond has been deployed, we open the `Platform Manager -> App Marketplace`, choose `Offline Import` and upload the just downloaded app template.After uploading, click `confirm import`. + +2. Once the import is completed, you will automatically jump back to the \`App Marketplace'. + +3. We returned to[微服务架构离线交付](/docs/delivery/offline/micro-service) at this time. In the app page running, in the `Update` option on the left sidebar.It can be seen that Rainbond recognized the latest version, and the upgrade operation was very useful as a one-click trigger. + +![one-key-deploy-update-7.png](https://static.goodrain.com/wechat/one-key-de-employ-upgrade/one-key-de-update-7.png) + +:::caution +Note:does not change environmental configuration class information during upgrading. The value of the environment variable, the content of the configuration file, and the persistent storage will require artificial changes to take effect. +::: + +### Rollback + +1. When an exception is required to roll back after an upgrade version is online, the platform provides a one-click rollback. In the `Upgrade - >Update Records`, select the corresponding record to roll back the upgrade action by clicking the `Roll` button. + +:::caution +Note:does not delete the new component during rollover and needs to be manipulated for changes. +::: From 08636829f0d56194c952f84e1320ecd3242f9a8c Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:11 +0800 Subject: [PATCH 081/398] New translations index.md (English) --- .../current/delivery/offline/index.md | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/delivery/offline/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/delivery/offline/index.md b/i18n/en/docusaurus-plugin-content-docs/current/delivery/offline/index.md new file mode 100644 index 0000000000..7ac7d249c3 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/delivery/offline/index.md @@ -0,0 +1,27 @@ +--- +title: Offline delivery +description: Offline delivery with Rainbond +keywords: + - Offline delivery + - toB offline delivery + - toB offline delivery +--- + +Import Bvideo from '/src/components/Bvideo'; + + + +Because of data privacy and network security concerns, clients in most of the toB scenario need to be delivered by privatization applications, that is, to their client environment. Such customers include government, finance, military labour, public security, large enterprises, specialty industries, etc. These privatization scenes are very restrictive, and it is difficult to improve efficiency in the delivery of privatization applications. + +For microservice applications in particular, an application may have dozens of modules, and the compilation of packages alone will take a long time and each service has its own configuration.Even if complete deployment documents and checklists are prepared, when servers are larger, they may fail due to manual errors.Also, in the offline environment, many sets of development tools are incomplete and problems are extremely difficult to resolve. + +The root causes of these problems are the low efficiency and the focus of problem-solving is on automation of applications such as multi-environment adaptations, deployment of applications, upgrades and application viability, which require a large number of manual operations. + +This section will describe how to use Rainbond to automate application management.Use Rainbond to achieve offline delivery of the micro-service architecture to address customization and continuous iterations of the offline environment. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From f50a87dc73e955bd6c88b8b8fa220e743589c154 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:13 +0800 Subject: [PATCH 082/398] New translations micro-service.md (English) --- .../current/delivery/offline/micro-service.md | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/delivery/offline/micro-service.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/delivery/offline/micro-service.md b/i18n/en/docusaurus-plugin-content-docs/current/delivery/offline/micro-service.md new file mode 100644 index 0000000000..4212a511a4 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/delivery/offline/micro-service.md @@ -0,0 +1,138 @@ +--- +title: Microservices architecture delivered offline +description: Rainbond enables offline delivery of microservice applications in an offline environment +keywords: + - Offline delivery + - toB offline delivery + - toB offline delivery +--- + +Import Bvideo from '/src/components/Bvideo'; + + + +## Offline Pain + +In traditional industries such as government, energy, military labour, public security, industry, transport and so forth, in order to prevent data leakage and operational safety, the network generally adopts an internal and external network isolation strategy to guard against unnecessary risks. After all, in terms of safety and security, network physical isolation is the most effective means of cybersecurity defense, while network isolation in software delivery presents a range of delivery challenges and substantial additional cost inputs for external software developers.e.g.: + +**Environmental network restrictions, affecting delivery efficiencies** + +The lack of easy access to information in the delivery process, network restrictions can affect the use of collaborative tools, some client environments even without mobile phones, the more complex the environment will become; after delivery, applications will need to be sustained and ensure stability and continuity of functionality, and in cases where networks are inaccessible, any problems will require on-site support and even a permanent presence of personnel. + +**Differences in client infrastructure that require adaptation** + +The installation environment varies from client to client in privatization scenarios, some using physical servers, some using virtual machines, and different virtual machine manufacturers.Operating systems also differ, such as the common operating systems of CentOS/Debian/Ubuntu/Redhat and the current multi-country production operating systems.CPU structures may also be different, with X86, ARM, etc.; therefore delivery of applications requires a heavy matching process, either in the company or on the customer site.Due to the high environmental variations, complete testing and validation of the application is required and significant human and time investment is required; + +**Technical threshold for delivery** + +Delivery personnel need to understand bottom hardware and networks, operating systems and system performance, governance, high availability, safety, performance analysis, backup recovery, delivery development, etc. + +## Advances in delivery technology + +The delivery technology has three development phases,:\`Traditional Application Delivery - >Cloud Native Technology Application Delivery - >Future-Oriented Cloud Native Application Model Delivery'.The transition from the delivery pattern of traditional software packages to the cloud-origin technology delivery phase, represented by Docker and Kubernetes. + +In the future, it must be an application-centred delivery model, with complex techniques in the application abstraction and packaging at the bottom of the bottom that will fully decouple the application model with the underlying infrastructure, automatic conversion and matching depending on the interface and delivery infrastructure, a real development that will be deployed automatically. + +
+traditional app delivery + +- **Binary executable:** java Jar,Linux executable, windows' exe, etc. +- **Package:** CentS uses RPM packages, Debian uses DEB packages, Java Web uses WAR packages. + +Installation requires the installation of the dependent environment and underlying software, the YUM and DEB have their own management dependencies, but the offline environment cannot be used and if the customer's operating systems are different, additional solutions need to be found and the operation of such services needs to be managed in a systemd or supervisory manner in order to solve problems of startup and automatic restart.If the application of the monolithic architecture still works well, but if it is a complex micro-service structure, it will be difficult for traditional applications to deliver. + +Managing these operating environments and operating system differences is a painful point in the delivery of traditional applications, and the emergence of containers has resolved this problem. + +
+ +
+2. Cloud native technology app delivery + +Cloud native apps use mainly the container and Kubernetes related technology. + +### Docker Mirror Delivery + +Docker packs the business together with the dependent library into a Docker mirror, which contains all environments and applications, so that you can get a pack and use everywhere, and we can run the image on any operating system that supports the Docker.The Docker character did solve many development, delivery, and many other problems, so the Docker Container concept was rapidly popular. + +In the microservice architecture scenario, multiple services or applications are required to deliver together, services are dependent, and complex configurations, which Docker-Compose solves. + +### Docker-Composer App Delivery + +Docker-compose will be managed using YAML for multiple services or apps. Deployment and management can be installed using docker-compose. For an application of a microservice architecture, a docker-compose command can be installed and run one click on any operating system, provided that Docker and docker-compose are installed. + +For a single airfield docker-compose, docker-compose is not appropriate when applications require high-availability or nodal distribution deployments, and the emergence of Kubernetes solves the high availability and distribution of containers. + +### Kubernetes YAML app delivery + +Deploy in Kubernetes we need to define the type of resources such as the Employment Statefulset Service, use Kubernetes to automatically deploy to multiple nodes by adjusting copies. We just export these YAML resources and Images to deploy and deliver them to customers in their Kubernetes environment.This mode of delivery requires Kubernetes or Kubernetes to be installed in the customer environment. + +When we delivered Kubernetes YAML to a large number of customers, we needed parameters configuration, version management and simple installation and upgrading. Helm resolved this problem on the basis of Kubernetes YAML. + +### Helm App Delivery + +Helm is a package manager of Kubernetes resources that defines a set of resources as Helm Chart templates, provides installation and upgrades based on Helm Chart modules, which can configure different parameters when installed.Helm is also a tool chosen by most people in Kubernetes delivery. + +The biggest problem for Helm is the need for developers to learn the container and the entire technological stack for Kubernetes and the need for Kubernetes to have a high threshold for learning and use.The abstract application model is a solution. + +
+ +
+3. Delivery of the cloud native application model for the future + +The application model emphasizes an application-centred concept, allowing developers to focus on business per se, application of abstraction and complex techniques at the bottom of the packaging, full decoupling of the underlying infrastructure, automatic conversion and matching based on the infrastructure of interface and delivery, real development and automatic deployment everywhere. + +### OAM-based KubeVela app delivery + +OAM(Open Application Model) is a standard norm that describes the application.With this norm, the description of the application can be completely separate from the details of the infrastructure deployment and management applications.By separating the application definition from cluster capacity, the app developers can be more focused on the application itself, rather than on the “details of such dimensions where the application is deployed.KubeVela has implemented cross-cloud-to-environment delivery based on OAM.Application delivery support for offline scenes is currently weak in KubeVela. + +### RAM-based Rainbod app delivery + +Rainbond is a cloud application multi-cloud management platform, Rainbond follows an application-based nuclear philosophy, unifies encapsulation containers, Kubernetes and other complex technologies, unifies Kubernetes resources into RAM (Rainbond Application Model) application models, allows users to use Kubernetes very simply, reduces the threshold used by users and focuses on application development, application delivery and application viability. + +For offline delivery scenario, Rainbod can export three offline delivery packages: based on RAM + +- **Rainbod application template package** containing all elements of complex micro-service framework delivery, supporting upgrades and rollbacks, but requiring customer environments to install Kubernetes and Rainbond; +- **Non-container-based packages** are packaged according to the traditional application delivery method, but are more user-friendly and include environmental dependencies and static compilations for most operating systems, using Systemd management; +- **Docker-Compose** supports launch and management on the standard Docker Compose Environment; + +
+ +## Use Rainbond to achieve offline delivery of the micro-service architecture + +Using Rainbond delivery processes as shown in the graph below, when different micro-service architecture applications are developed in the environment, there is no problem with the full testing test functionality.This means you can apply the template in one click to the local Marketplace for version 1.0.Then you can export the full Rainbond application template package.It contains all the elements of delivery of the complex micro-service architecture. + +The app template package will then be imported in the client environment. You can complete delivery by installing one button.Version 1.1 can also be published after the development environment has been modified when there is a problem with the customer environment.Repeating the above processes, users can complete the one click upgrade of the application.Follow up to implement the entire app rollback based on the application template. + +![offline-delivery](https://static.goodrain.com/docs/5.11/delivery/offline/offline-delivery.png) + +## Action step + +### Preparatory work + +1. Having a cluster of ammunition Rainbond that simulates the development environment and the delivery environment (developing environment as online and delivering as offline). + +2. Development environment installation, reference[快速安装](/docs/quick-start/quick-install), delivery for environmental installation, reference[离线安装](/docs/installation/offline/). + +3. There are already functioning apps in the development environment, reference[快速入门](/docs/quick-start/getting-started). + +### Make Application Template + +1. On the left side of the Apps Popup page, go to the template settings page by selecting `Post->Publish to the component library`.Details for each parameter [Appendix 1: Template Settings Parameters](/docs/delivery/app-model-parameters) + +2. Create an app template that selects the release range to the enterprise and sets the release version, click `Sub` and will then synchronize the image of all components to the local mirror repository.Once syncing is finished, click `Confirm Posting`.Then you can see the published app template in \`Platform Manager-> App Marketplace -> Local Component Library'. + +:::caution +Note:Only company administrators can see platform management buttons. +::: + +### Export Application Template + +1. `Platform manage->Marketplace->Local Component Library', selects `Export App Template`. You can select the version to export and the type of package to export.Here we choose `Apply Model Norms`, click `Export\`.This package will contain complete shipping features for continued delivery and upgrading. + +2. After the export is completed, download the app template to local and save it to mobile storage devices such as UDs/CD-ROMs and take it to offline delivery environments. + +### Delivery app in offline environment + +1. In an offline environment where Rainbond has been deployed, we open the `Platform Manager -> App Marketplace`, choose `Offline Import` and upload the just downloaded app template.After uploading, click `confirm import`. + +2. Once the import is completed, you will automatically jump back to the \`App Marketplace'.Once you have imported the completed application template, you can deploy the business system by clicking on the installation, which is fully compatible with the development environment and thus completes the software delivery in the offline environment. From b768b51dce7c9cfe37a75d5b178e180bd4446481 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:14 +0800 Subject: [PATCH 083/398] New translations gitlab-ci.md (English) --- .../devops/app-deploy/ci-tools/gitlab-ci.md | 172 ++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/ci-tools/gitlab-ci.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/ci-tools/gitlab-ci.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/ci-tools/gitlab-ci.md new file mode 100644 index 0000000000..76cc0e166f --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/ci-tools/gitlab-ci.md @@ -0,0 +1,172 @@ +--- +title: GitLab CI is used +description: Deploy applications in Rainbond using GitLab CI +keywords: + - GitLab CI + - GitLab Runner +--- + +Import Bvideo from '/src/components/Bvideo'; + + + +Students with GitLab are certainly not new to GitLab CI/CD and GitLab CI/CD is an internalized tool in GitLab that helps us to build, test and validate code changes and deploy every time the code is pushed up. + +Rainbond itself integrates CI/CD processes by default. Users only need to provide source code, then build and run completely to Rainbond handling. The process is defined by Rainbond without user intervention.This has both the advantage and the disadvantage of simplifying users' actions and not learning about CI/CD related knowledge; the disadvantage is that users cannot customize their CI/CD process, such as if they want to integrate codes to detect or run a script, which cannot be customized in Rainbond source building processes. + +This paper tells you how to build, test, deploy Spring Boot app using GitLab CI/CD to run the product on Rainbon. + +## GitLab CI Introduction + +Use GitLab CI to create `.gitlab-ci.yml` in the repository root directory.In this document, you can define the compilation, testing, and deployment scripts that need to be running. + +After adding the `.gitlab-ci.yml` file, GitLab Runner automatically executes your defined Pipeline and shows CI process and results on the GitLab CI page. + +GitLab CI is based on: + +1. Developer Push Code +2. Trigger GitLab CI Launch +3. runner executes predefined script + +![](https://static.goodrain.com/wechat/gitlabci/1.png) + +## GitLab CI/CD Quick Start + +### Deployment of GitLab and Runner + +Deploy GitLab and Runner with an open source store at one key, add -> Create Component -> Search `GitLab` in an Open Source Store and then install GitLab and Runner to the specified app. + +![](https://static.goodrain.com/wechat/gitlabci/2.png) + +### Configure Runner on Rainbond + +Prior to Rainbond v5.8, Rainbond did not support unner type components very well.Because Runner runs in the form of a container, it itself needs to load the host's docker.sock file so that it can manage the host's docker environment and create a container to perform tasks.You can customize Volumes and mount local docker.sock in version 5.8 that supports modifying the component YAML. + +When Runner is installed through the App Store, Kubernetes properties can be seen in Runner component -> Other Settings. Rainbond application models are compatible with Kubernetes properties. + +**Register Runner to GitLab :** + +1. Enter sorting mode to connect runner to GitLab and update runner components.(Select 80 ports if GitLab is not enabled for internal ports) + +2. Access GitLab, Menu -> Admin -> Overview -> Runners -> Register an instance runner -> Copy Registration token. + +3. Enter the runner component, click the top right top web terminal to enter, execute the following command to register,\`to change the previous copy of the registration token. + +```shell +gitlab-runner register \ + --non-interactive \ + --executor "docker" \ + --docker-image alpine:latest \ + --url "http://127.0.0.1" \ + --registration-token "NxNuoRXuzYy3GnFbkhtK" \ + --description "docker-runner" \ + --tag-list "newdocker" \ + --run-untagged="true" \ + --locked="false" \ + --docker-volumes /var/run/docker.sock:/var/run/docker.sock \ + --docker-privileged="true" \ + --access-level="not_protected" +``` + +**Parameter descriptions** + +| Parameter | Value | Descripbe | +| -------------------- | --------------------------------------------------------------------------------- | ---------------------------------------- | +| --executor | docker | Executor type is docker. | +| --url | http:///127.0.0.1 | GitLab addr | +| --registration-token | `token` | GitLab token | +| --tag-list | newdocker | Define the label/name of runner | +| --locked | false | runner is enabled | +| --run-untagged | true | Run Job without specified tag | +| --docker-volumes | file_path | Mount file to runner | +| --docker-privileged | true | runner mode:privileges mode | + +4. Online runner can be seen on the GitLab page when registration is completed + +![](https://static.goodrain.com/wechat/gitlabci/3.png) + +### GitLab CI/CD To Rainbond + +![](https://static.goodrain.com/wechat/gitlabci/4.png) + +The entire process can be split into: + +1. Developer submit code to the GitLab repository. +2. Triggers GitLab Waterline Creation, Runner executes the stages defined by `.gitlab-ci.yml` +3. Push created mirrors to an existing mirror warehouse for subsequent Deemployee processes. +4. By customizing the API method in Rainbond, triggers the automatic construction of the platform component and moves into the Deployment. + +### Practical steps + +**Prerequisite:** + +- Rainbond Environment Existing +- Preparing mirror repository, DockerHub for this paper +- The code item used here is [Java-Maven-Demo](https://gitee.com/rainbond/java-maven-demo) + +**1. has already deployed a mirror-based component on Rainbon** + +**2. Import sample code into GitLab.** + +**3. Write .gitlab-ci.yml file:** + +Create `.gitlab-ci.yml` on the root of the project as follows: + +```yaml +# 定义 job 的执行顺序 +stages: + - test + - package + - push +# 定义基础镜像 +image: maven:3.6.3-jdk-8 +job-test: + stage: test + tags: + - newdocker + script: + - echo "===============开始执行代码测试任务===============" + - mvn test +job-package: + stage: package + tags: + - newdocker + script: + - echo "===============开始执行打包任务===============" + - ls + - mvn clean package + - cp Dockerfile target/Dockerfile + cache: + key: devops + paths: + - target/ +job-push: + stage: push + image: docker:dind + cache: + key: devops + paths: + - target/ + tags: + - newdocker + script: + - docker login -u ${DOCKER_USERNAME} -p ${DOCKER_PASSWORD} + - docker build -t ${IMAGE_DOMAIN}/java-maven:latest . + - docker push ${IMAGE_DOMAIN}/java-maven:latest + after_script: + - curl -d '{"secret_key":"${RAINBOND_SECRET}"}' -H "Content-type:application/json" -X POST http://${RAINBOND_IP}:7070/console/custom/deploy/3321861bcadf0789af71898f23e8e740 +``` + +`after_script` is executed after the delivery of the mirror, building components through the Rainbond API and Rainbond will get the latest mirror building running.详情可参阅文档 [配置组件自动构建部署](/docs/devops/continuous-deploy/auto-build)\ 可在组件 -> 构建源 -> 自动构建中看到。 + +**4. Submit code test automatically build** , + +Modify code and submit it, after submission you can see the details of the tasks that are being performed and that have been done in your project CI/CD -> Jobs. + +![](https://static.goodrain.com/wechat/gitlabci/5.png) + +**5. View Rainbond component build** + +Auto-build information can be seen in the operation history of the component. + +![](https://static.goodrain.com/wechat/gitlabci/6.png) From 2f7a9c4cbb6bb2d6f75f90a78e3e70476ff05557 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:15 +0800 Subject: [PATCH 084/398] New translations index.md (English) --- .../current/devops/app-deploy/ci-tools/index.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/ci-tools/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/ci-tools/index.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/ci-tools/index.md new file mode 100644 index 0000000000..62869f5ddb --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/ci-tools/index.md @@ -0,0 +1,15 @@ +--- +title: Deploy an app using a third party CI tool +description: Use third party CI tools to deploy applications on Rainbond +keywords: + - Jenkins + - GitLab CI + - Sonar Scanner +--- + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From dfad447816282104f5fe6de902871b8d7a31a780 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:17 +0800 Subject: [PATCH 085/398] New translations sonarqube.md (English) --- .../devops/app-deploy/ci-tools/sonarqube.md | 173 ++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/ci-tools/sonarqube.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/ci-tools/sonarqube.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/ci-tools/sonarqube.md new file mode 100644 index 0000000000..4e8b5225ef --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/ci-tools/sonarqube.md @@ -0,0 +1,173 @@ +--- +title: SonarQube static scan +description: Statically scan Maven projects on Rainbond with SonarScanner +keywords: + - SonarQube code static scan + - Code Static Scan +--- + +Static scanning of codes is a very common method of code quality assurance that not only does it detect defects in the code, apply best practices from a wide range of industries, but also identify safety gaps and give project code upgrades.Of the various code scanning programmes, SonarQube is the most familiar and the most widely applied.Various ongoing integration schemes have their own way of integrating SonarQube into static scanning of code. + +A method based on the static scanning of Java Maven project by SonarScanner in the Rainbond source building process is presented today. + +## SonarScanner For Maven Introduction + +Use SonarScanner for Maven for code static scanning of the Maven project, which is the default scanner recommended by SonarQube.Just add the specified parameter to the mvn command, you can integrate the scanner and analyze the code loopholes in the build process. + +Sample command: + +```bash +mvn clean sonar:sonar -Dsonar.login=myAuthenticationToken +``` + +In practice, `myAuthenticationToken` will be replaced by a token generated by the actual user itself in SonarQube. + +## Integrate into the continuum + +Once SonarScanner for Maven works we can try to scan the process into the automated continuum chain of Rainbrond.**The effect we want to achieve is to automatically trigger the construction of the project after the code has been submitted, perform a scanning analysis of the code during the process and generate a report accordingly.** + +![](https://static.goodrain.com/wechat/sonarqube/sonarqube-workflow-1.png) + +The entire process can be summarized as the following stages: + +1. The developer submits the code to the repository and triggers the entire continuum chain. +2. The repository uses Webhook to call the Openapi interface of Rainbond to trigger corresponding service components to build itself. +3. Rainbond automatically builds counterpart service components, triggers SonarScanner scanning and sends the results to SonarQube service. +4. SonarQube service analyses scanned results and generates code detection reports. +5. The developer read the code detection report and was informed of improvements. +6. The developers refine the code based on the report and resubmit it back to step 1 to form a closed-loop for continuous integration. + +This will be followed by the implementation of the above chain of continuous integration from an operational point of view based on Rainbond at a point. + +### Prerequisite + +The chain of continuous integration that includes code scanning is presented here and is based on the Rainbond Native Management platform.So the user needs to prepare for the sainbond environment that needs to be connected to the public network to prepare for the use of open source shops. + +### From SonarQube + +In addition to Rainbond native application management platform, there is a need to prepare code repositories and SonarQube services.The former we choose to use Gitlab, while the SonarQube service can be installed directly on the open source store.The Open Source Store currently provides SonarQube version 8.9.9 (lts) for user one-click installation. + +The user can only select an open source store on the application market interface of Rainbond and search for `sonarqube` to find the installation entry: + +![](https://static.goodrain.com/wechat/sonarqube/sonarqube-workflow-2.png) + +By clicking on the installation, select the installation location, you can install the SonarQube service and Postgresql database at the specified location. + +![](https://static.goodrain.com/wechat/sonarqube/sonarqube-workflow-3.png) + +访问 SonarQube 的对外服务端口,即可进入它的登录页面 ,默认的用户名和密码为: `admin / admin` 。 + +> If users do not yet have their own repositories, they can follow similar processes and install Gitlabs based on open source apps. + +### Generate AuthenticationToken + +In SonarQube, each user can generate `AuthenticationToken` as a communication token, using SonarScanner to verify their identity with SonarQube services. + +Here we generate `Administrator` for the `AuthenticationToken` that scan Java Maven project. + +When logged in as admin users, the token can be generated by switching to the **Security** tab on the **My Account** page. + +![](https://static.goodrain.com/wechat/sonarqube/sonarqube-workflow-4.png) + +Copy the created `AuthenticationToken`, it will only appear once! + +### Build Maven from Gitlab + +Rainbond can build projects in Gitlab based on Oauth2.0 versus the Gitlab repository and can be easily selected to build items in Gitlab and automatically configure the code automatically. + +See document:[Rainbond with Gitlab pair](https://www.rainbond.com/docs/use-manual/enterprise-manage/enterprise-settings/base/oauth2.0/) + +A standard Java Maven project code already exists in the Gitlab I use.You can search for items you want to deploy by clicking on the build component based on the source code. Select the Gitlab. + +![](https://static.goodrain.com/wechat/sonarqube/sonarqube-workflow-5.png) + +When creating a component, an auto-build switch can be enabled, which is equivalent to a code push switch configured to trigger automatic build. + +![](https://static.goodrain.com/wechat/sonarqube/sonarqube-workflow-6.png) + +Once you click on confirm to create, you will complete the check of the code language. At this time enter advanced settings, click on the left deployment properties, we need to make some advanced settings to match SonarScanner. + +需要进行的设定包括:声明 SonarQube 服务的地址,对应账户的 `AuthenticationToken` ,以及添加了代码扫描步骤的构建命令。 + +### Configure Settings.xml + +SonarScanner general configuration, including SonarQube Service Address, and `AuthenticationToken` can be configured in Settings.xml global configuration for use in Java Maven project construction. + +Rainbond provides Settings.xml for globally active access configuration when constructing a project of Java Maven type.In advanced settings - Deploy properties, you can edit default Settings.xml by clicking **Manage Maven configuration**.Here we have provided a default configuration, we need to add the following configuration under xml format to define SonarQube Service Address, and `AuthenticationToken`. + +```xml + + + org.sonarsource.scanner. aven + + + + sonar + + true + + + + http://9000. rb63fe.duaqtz0k.17f4cc.grapps. n + + + c1041c2b4ac2e89d1f5f5f5b5971bc8dc85b7 + + + + + +``` + +Of course, users can also create a dedicated Settings.xml configuration, which I named `sonar-scanner` in my environment.Global configuration needs to be defined only once. + +### Modify build command + +SonarScanner For Maven scan code by adding specific parameters to the mvn command. + +In the Maven build command input, change the command below: + +```bash +crean verify sonar:sonar -Dsonar.projectName=Maven-demo -Dsonar.projectKey=Maven-demo install +``` + +For each of the different items, customize the value `-Dsonar.projectName` -Dsonar.projectKey \`.The former defines the name of the project in the SonarQube service and the latter defines the unique ID of the project. + +### Start first build + +SonarScanner currently in use requires JDK version higher than 1.8.Here we choose OpenJDK 11, because this version is another long-run version after 1.8. + +To date, the build source information page should reflect the following: + +![](https://static.goodrain.com/wechat/sonarqube/sonarqube-workflow-7.png) + +Click on confirmation to jump the page to the first build process.Wait a minute, build will be finished, code will be automatically packaged and online, and build logs will be viewed to see the analysis step: in the build process. + +![](https://static.goodrain.com/wechat/sonarqube/sonarqube-workflow-8.png) + +The address mentioned in the access log can be seen in the SonarQube service for new reports. + +![](https://static.goodrain.com/wechat/sonarqube/sonarqube-workflow-9.png) + +### Analysis of code + +The developer refers to the report provided by the SonarQube service to learn about the current code.The SonarQube report provides best practices for the industry to fix the gaps.In the case of my project, 2 bugs were scanned, and 4 security issues were scanned.In one of these bugs for example, SonarQube gave a very detailed hint including a reasonable code prompt. + +![](https://static.goodrain.com/wechat/sonarqube/sonarqube-workflow-10.png) + +### Update Iteration Code + +The developer will automatically trigger project construction and a new round of code scanning based on analyzed reports, fix the code, submit the code again and include key words in the code submission. + +![](https://static.goodrain.com/wechat/sonarqube/sonarqube-workflow-11.png) + +The `@deemploy` contained in the Commit Message is the keyword that triggers automatic construction.For more information about Rainbond auto build, please refer to document [Rainbond自动构建](https://www.rainbond.com/docs/use-manual/component-management/build-source/auto_build) + +Wait for the project to be automatically constructed, review the analysis report again to determine if the bug has been resolved. + +A review of the record of operations of components in Rainbond reveals the difference between manual building and automatic build. + +![](https://static.goodrain.com/wechat/sonarqube/sonarqube-workflow-12.png) From b71033e6ce943e34cc4bd8e32caae90d650f60f0 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:19 +0800 Subject: [PATCH 086/398] New translations index.md (English) --- .../current/devops/app-deploy/index.md | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/index.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/index.md new file mode 100644 index 0000000000..265726e011 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/index.md @@ -0,0 +1,30 @@ +--- +title: Deploying apps +description: Deploy apps on Rainbond +keywords: + - Deploy apps on Rainbond + - 通过源代码一键部署成容器,支持多种语言,例如 Java、Python、PHP、NodeJS、.Net、Golang、Html 等 +--- + +本篇文档介绍在 Rainbond 中创建组件的基础流程。 + +## 从源码开始创建组件 + +Rainbond 会根据源代码根目录下的文件来判断源码的语言类型,目前支持的源码类型有 Java、Python、PHP、NodeJS、.Net、Golang、Html 等。 + +1. 例如源代码目录下有 `pom.xml` 文件,Rainbond 将会识别为 Java 语言类型的源码。Rainbond 会根据源码类型自动识别构建方式,比如 Java 语言类型的源码会自动识别为 Maven 构建方式。 +2. 例如源代码目录下有 `requirements.txt` 文件,Rainbond 将会识别为 Python 语言类型的源码。Rainbond 会根据源码类型自动识别构建方式,比如 Python 语言类型的源码会自动识别为 Pip 构建方式。 + +### 从软件包创建组件 + +Rainbond 支持从软件包创建组件,用户可以通过上传软件包的方式创建组件,Rainbond 会根据软件包的类型自动识别构建方式。支持上传 Jar、War、Zip、Tar 等软件包。 + +1. 例如 Jar、War 软件包会自动识别为 Java 构建方式。 +2. 例如 Zip、Tar 软件包在解压后会自动识别目录中的文件,根据文件类型自动识别构建方式。 + +## 从 Docker 镜像创建 + +Rainbond 支持从 Docker 镜像创建组件,与源码创建流程一样,不同的是提供的构建源信息和类型不同。 + +1. Rainbond 支持解析镜像层中的元数据,获取镜像的元数据信息,比如镜像的环境变量、端口、启动命令等。 +2. Rainbond 支持通过 `docker run` 命令创建组件,用户可以通过 `docker run` 命令提供更多参数,比如 `-e` 设置环境变量、`-p` 设置端口映射、`-v` 设置数据卷等,这些参数都会被 Rainbond 解析并应用到组件中。 From a65c498b298ec921f1c11e9dd9e77ad74057472b Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:20 +0800 Subject: [PATCH 087/398] New translations springboot.md (English) --- .../current/devops/app-deploy/springboot.md | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/springboot.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/springboot.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/springboot.md new file mode 100644 index 0000000000..ef8e613259 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/springboot.md @@ -0,0 +1,71 @@ +--- +title: SpringBoot project deployment +description: Deploy the SpringBoot project in Rainbond +keywords: + - Rainbond Deployment SpringBoot Project + - SpringBoot project deployment + - Java Gradle 项目部署 +--- + +Import Bvideo from '/src/components/Bvideo'; + + + +## 概述 + +Rainbond 支持构建 SpringBoot 单模块和多模块的项目,并自动识别。同时也支持通过 Gradle 构建的项目。 + +### Gradle + +平台默认会根据源码根目录是否有 gradlew 文件或者 build.gradle 来识别为 Java Gradle 项目. + +### 单模块 + +当源代码根目录下存在 `pom.xml` 文件,Rainbond 会将源代码识别为 Java Maven 单模块项目。 + +### 多模块 + +Rainbond 对 Maven 项目的识别是基于 `pom.xml` 文件的内容,主要分为两个部分:构建命令和启动命令。 + +1. **构建命令**:告诉系统需要构建哪些模块。类似于运行 `mvn install -pl 'module name' -am`,其中 `-pl` 是指定要构建的模块,`-am` 表示如果模块有依赖,也一并构建。 +2. **启动命令**:构建完成后,指定执行哪个 Jar 包来启动服务。类似于 `web: java $JAVA_OPTS -jar *.jar`,其中 `*.jar` 会被替换为实际的 Jar 包名。 + +**识别规则**: + +- **模块定位**:首先,根据根 POM 文件中的 `modules` 标签找到子模块的 POM 文件。 +- **打包类型**:如果 `pom.xml` 中的 `packaging` 标签是 `jar` 或 `war`,就会提取模块名和生成的 Jar 包名。如果没有指定 `packaging` 类型,默认认为是 `jar`。 +- **模块名**:模块名是由父 POM 文件中 `module` 标签的值组成,用斜杠 `/` 分隔,比如 `rbd-worker/rbd-thirdparty`。 +- **Jar 包名**:默认情况下,生成的 Jar 包名是 `${artifactId}-*.jar`(其中 `*` 表示版本号)。如果在 POM 文件中设置了 `finalName`,则会使用 `finalName` 中的值。如果 `finalName` 中使用了变量(如 `${project.name}` 或 `${project.artifactId}`),就会使用变量的实际值来替换。 +- **POM 模块**:如果 POM 中的 `packaging` 是 `pom`,并且该 POM 文件中有多个 `module`,则会按以上规则递归解析每个子模块。 + +## Deploy SpringBoot Multimodule Project + +1. Deploy components based on source code, fill in the following information: + +| | Content | +| ---------------------- | -------------------------------------------- | +| Component name | Custom | +| Component English Name | Custom | +| Repository Address | `https://gitee.com/zhangbigqi/RuoYi-Vue.git` | +| Code Version | Master | + +2. Enter the multimodule build, select the **ruoyi-admin** module, which is runnable and other modules are dependent. +3. Enter **Component -> Port** to delete default 5,000 ports, add **8080 http**. +4. Wait for the build to complete. + +## 部署 SpringBoot 单模块项目 + +进入到团队下,新建应用选择**基于源码示例**进行构建,选中 Java Maven Demo 并默认全部下一步即可。 + +## 部署 Gradle 项目 + +1. 基于源码部署组件,填写以下信息: + +| | 内容 | +| ------ | ------------------------------------------------- | +| 组件名称 | 自定义 | +| 组件英文名称 | 自定义 | +| 仓库地址 | `https://gitee.com/rainbond/java-gradle-demo.git` | +| 代码版本 | Master | + +2. 下一步全部默认,等待构建完成。 From e5d7bbfac840836da168a36086995dc889998172 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:22 +0800 Subject: [PATCH 088/398] New translations index.md (English) --- .../current/devops/code-repository/index.md | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/code-repository/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/code-repository/index.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/code-repository/index.md new file mode 100644 index 0000000000..c26d5f6bc4 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/code-repository/index.md @@ -0,0 +1,116 @@ +--- +title: Git Repositories +description: Rainbond interconnects with Git code repositories +keywords: + - Git Repositories + - Rainbond Git Repositories +--- + +Import Bvideo from '/src/components/Bvideo'; + + + +Rainbond supports Git Code Repository, creating components directly from source repository. + +Currently Rainbond supports `GitHub Gitee` of three Oauth types that support Git repository pairs.Rainbond all supported OAuth types require normal configuration permission to work, such as `GitHub GitLab Gitee` requires permission to fetch the repository list. + +## GitHub + +### Create GitHub OAuth Apps + +Go to **Settings -> Developer Settings -> OAuth Apps -> New OAuth App** + +| | Note | +| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Application name | Custom App Name | +| Homepage URL | Visit the url of Rainbond, such as `https://rainbond.com` | +| Authorization callback URL | Go back to path to receive return vouchers, Homepage URLs + /console/oauth/redirect, e.g.:`https://rainbond.com/console/oauth/redirect` | + +### Create Rainbond OAuth + +Go to **Platform Manager -> Settings -> Basic Settings -> OAuth Third-Party Service Integration -> Add** + +| | Note | +| ---------------- | ------------------------------------------ | +| OAuth Type | github | +| Name | Custom | +| Client ID | GitHub OAuth Apps Client ID | +| Client Key | GitHub OAuth Apps Client Secret | +| Callback Address | Default is current Rainbond access address | + +## GitLab + +### Create GitLab Applications + +Enter **User Settings -> Applications** + +| | Note | +| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Name | Custom | +| Redirect URL | Go back to path to receive return vouchers, Homepage URLs + /console/oauth/redirect, e.g.:`https://rainbond.com/console/oauth/redirect` | +| Scopes | Check the `read_user` to `read_repository` | + +### Create Rainbond OAuth + +Go to **Platform Manager -> Settings -> Basic Settings -> OAuth Third-Party Service Integration -> Add** + +| | Note | +| ---------------- | ------------------------------------------ | +| OAuth Type | gitlab | +| Name | Custom | +| Service address | GitLab Access Address | +| Client ID | GitLab Applications Client ID | +| Client Key | GitLab Applications Client Secret | +| Callback Address | Default is current Rainbond access address | + +## Gitee + +### Create a Gitee 3rd party app + +Go to **Settings -> Third-Party Apps -> Create App** + +| | Note | +| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| App name | Custom | +| App Homepage | Rainbond visited addresses, such as `https://rainbond.com` | +| Apply callback address | Go back to path to receive return vouchers, Homepage URLs + /console/oauth/redirect, e.g.:`https://rainbond.com/console/oauth/redirect` | +| Permissions | Check `user_info` for `projects` `hook` | + +### Create Rainbond OAuth + +Go to **Platform Manager -> Settings -> Basic Settings -> OAuth Third-Party Service Integration -> Add** + +| | Note | +| ---------------- | ------------------------------------------ | +| OAuth Type | gitee | +| Name | Custom | +| Service address | Gitee Access Address | +| Client ID | Gitee Client ID | +| Client Key | Gitee Client Secret | +| Callback Address | Default is current Rainbond access address | + +## OAuth Service Authentication + +The OAuth service can be authenticated to the OAuth service in user information from the top right corner of Rainbond after configuring the OAuth service, interacting with third-party platforms. + +Rainbond Top Right **Personal Center -> OAuth Account Bind -> To Verify**. + +## Create components via Git repository + +When configured and authenticated with OAuth services, components can be created directly through items in the repository of code. + +Enter **Team View -> Create a Source Based -> Select Repository -> Create Component Based on Project**. + +:::tip + +GitLab 10.6 is not allowed to send Webhook requests to local networks for security purposes later. + +Resolve:to enter **Admin area -> settings -> OutBound Request** by clicking `Allow requests to the local network from hooks and services` + +Supported api version: + +- Github currently supported version of `api` is `v3` +- Gitlab currently supported version of `api` is `v4` +- Gitee's currently supported version of `api` is `v5` + +::: From df7cb87ed831f6fdbf13b5027ce94067fd3b1ac1 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:23 +0800 Subject: [PATCH 089/398] New translations auto-build.md (English) --- .../devops/continuous-deploy/auto-build.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/continuous-deploy/auto-build.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/continuous-deploy/auto-build.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/continuous-deploy/auto-build.md new file mode 100644 index 0000000000..6be96a7468 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/continuous-deploy/auto-build.md @@ -0,0 +1,91 @@ +--- +title: Auto Deploy +description: This topic describes the Rainbond automatic deployment component +keywords: + - Auto Deploy + - Rainbond Auto-Deploy +--- + +Import Bvideo from '/src/components/Bvideo'; + + + +Automatically build and deploy modern code or mirror to automatically trigger the building and deployment, and Rainbond offers three ways of triggering the automatic deployment of components based on repository Webhooks, mirror repositories Webhooks, and custom API.Automatically build features that can help developers achieve agile development. + +## Prerequisite + +- The component is created by the source code and supports the repository Webhooks. The currently supported repository is `GitHub` `Gite`. +- Components are created by mirrors. They support webhooks. Currently they support the Docker official repository, Aliyun mirror repository. + +## Based on source code operating process + +### Enable Rainbond Git Webhook + +Enable Git Webhook to open Git-Webhook auto build in **Component -> Build Source** and copy generated hook addresses. + +:::info +Normally the developer does not want every code submission to be deployed, so Rainbond hook automatically triggers the setting presupposes that `@keywords` is included in the Commit message.This keyword can be set by the user. +::: + +### Configure Git Repository Webhooks + +#### GitHub Configuration + +Go to GitHub item,**Settings -> Webhooks -> Add webhooks** + +| | Note | +| ------------------- | ---------------------------------- | +| Payload URL | Copy Webhook address from Rainbond | +| Content Type | Application/json | +| Just the push event | Push Trigger Event | +| Active | Check for Active | + +#### GitLab Configuration + +| | Note | +| ------- | ---------------------------------- | +| URL | Copy Webhook address from Rainbond | +| Trigger | Check **Push events** | + +Other code repositories are configured in a similar way. What needs to be noted is that Rainbook hook now triggers a failure to support the security request checksum. + +## Mirror repository operation process + +Mirror Repository Autobuild enables automatic build after push mirrors, easy to connect to third party automation.Trigger auto build when mirror updates arrive. + +- The app was created by a mirror, the repository was `Docker Hub`, version 5.1.2 and later supported the Aliyun mirror repository. + +- Whether the default updated mirror name and tag match the current component build source image name (no mirror repository domain name is included when judged), version 5.1.3 and later supports configuration of Tag triggering regular policy, dynamic matching and changing the component image Tag. + +### Enable Rainbond Mirror Webhook + +Enable automatic build of the mirror repository Webhook, **Component -> Build Source -> Enable AutoBuild**. + +**Tag triggers auto modification** + +The mirror name and Tag of the Webhook update event by default must match the mirror name and Tag configuration of the component build source to trigger building and deployment.Once the Tag trigger policy has been configured, according to the configured regular expression, this update is valid if the image tag of the received push event can match the regular expression correctly, based on updated Tag information to upgrade the build source of the current component and build automatically. + +For example, setting up Tag policies for: `v5.*` when a tag is `v5.1` `v5.2` `v5.9` etc. will be allowed. + +### Configure DockerHub Mirror Repository + +Go to DockerHub repository -> Webhooks + +| New Webhook | Note | +| ------------ | ---------------------------------- | +| Webhook name | Custom | +| Webhook URL | Copy Webhook address from Rainbond | + +## API triggers auto-build + +Use the API to automatically build back URL,POST method to call the API, use the secret keys to trigger the API auto-build. Key can be customized. + +Go to **Component -> Building Source -> Enable Auto-Build -> Custom API**. + +**API usage below:** + +```bash +curl -d {"secret_key":""}' -H "Content-type: application/json" -X POST +``` + +Automatically build based on the API trigger is one of the most flexible ways to integrate with the third party CI system. From 4fc3fe97420f1513963c48f5510bef0154873ff1 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:25 +0800 Subject: [PATCH 090/398] New translations gitops.md (English) --- .../devops/continuous-deploy/gitops.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/continuous-deploy/gitops.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/continuous-deploy/gitops.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/continuous-deploy/gitops.md new file mode 100644 index 0000000000..32d85db05f --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/continuous-deploy/gitops.md @@ -0,0 +1,31 @@ +--- +title: Use GitOps for continuous application deployment +description: Continuous application deployment with Rainbond's GitOps capability +keywords: + - GitOps + - Continuous deployment +--- + +Import Bvideo from '/src/components/Bvideo'; + + + +This paper describes how Rainbond connects with GitLab to OAuth and enables rapid deployment and automatic construction of the GitLab project using Webhook. + +## Prerequisite + +See the [Git repository pair](/docs/devops/code-repository/) document, completing the GitLab repository pair. + +:::tip +使用私有化部署 Rainbond 时,需配置 GItLab 允许向本地网络发送 Webhook 请求。 + +Go to **Admin area -> settings -> NetWork -> Outbound requests**,Check **low requests to the local network from hooks and services** +:: + +## Build and configure auto-deployment via Rainbond source + +Go to \*\*Rainbow Team View -> Add -> Create Component -> Gitlab Project -> Corner Source Item -> Create Component -> Create Component \*\*On Build Page, Open **AutoBuild Button** + +![](https://tva1.sinaimg.cn/large/007S8ZIlly1gexqn1b7laj30wc09wdi4.jpg) + +When we submit the code, GitLab will send Webhook requests to Rainbond, and Rainbond will automatically build and deploy components if the Commit message contains `@deemploy`. From 4d43247f60206d6df7d0beb4d1d4c26be336ab0b Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:26 +0800 Subject: [PATCH 091/398] New translations index.md (English) --- .../current/devops/continuous-deploy/index.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/continuous-deploy/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/continuous-deploy/index.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/continuous-deploy/index.md new file mode 100644 index 0000000000..569e4e83ea --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/continuous-deploy/index.md @@ -0,0 +1,11 @@ +--- +title: Continuous deployment +description: This paper describes how the Rainbod component works with an external platform for automatic construction and deployment +--- + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 5a69c01f1280f44ea9365de09eecaf7944ecd2ca Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:27 +0800 Subject: [PATCH 092/398] New translations index.md (English) --- .../current/devops/env-version/index.md | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/env-version/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/env-version/index.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/env-version/index.md new file mode 100644 index 0000000000..b685cb11cb --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/env-version/index.md @@ -0,0 +1,59 @@ +--- +title: Environment and version management +describe: This paper introduces how to quickly build multiple development environments through application replication function to improve the efficiency of developers to build development environments +--- + +Import Bvideo from '/src/components/Bvideo'; + + + +## Develop, test environmental management + +The same business system developer may need to build up the development environment several times during the application development.Something like: + +- Multiple new features iterate in different branches, so different branches need to be deployed independently; +- Development by multiple developers in the team, each of which needs its own set of separate development settings; +- Development of environmental applications has been completed in the hope of rapid deployment to test or pre-release settings; +- Production environment grey releases, it is hoped that the specific component will be rapidly deployed using the specified source code version; + +In the above case, if the app has only one component, it may not be complex to create from scratch.If the app includes 5 or more components, the creation process will take a lot of time and is doing a repetition.Direct replication at this time based on already deployed applications would effectively address efficiency problems. + +### Prerequisite + +1. Prepare a deployed app that can include multiple components created using source code, mirror. +2. Ready for at least two teams to validate cross-team app copying. +3. Component source code can be used to prepare multiple branches or mirrors to prepare multiple Tags and easily modify build source versions when validating copying. + +### Operating processes + +1. Go to the **App View -> General Preview Topic** page, click on the **Quick Copy** button above the right; +2. Show copied target apps in the top of the popup, default is the current app, can select different teams or apps depending on need, or can create new apps directly within the given team. +3. The area below the popup shows all component information from the current app and the source of its build. By default, all components are selected to be copied. Parts can be selected as needed.And the build source version of the component can be changed as necessary, such as the branch of the code or the Tag. +4. Click OK to start copying, build yourself and start all copied components when copied, and jump to target app. + +### Learn about Principles + +**Application Model Key Demonstration** + +By default in Rainbond management of various types of software based on application models, replication is a reproduction of model properties that ensures consistency between copied components and source component attributes.This illustrates once again that the process of deploying components in Rainbond is in fact the process of assembling the application models and completing the definition of the business model once the deployment is complete. + +**Relative Handling when component copy** + +There are currently two properties that are relevant between components, including component dependencies and storage dependencies.There are two situations in which the component will be copied. Both components and dependent components will be copied together and only the relying parties will be copied.If both are replicated simultaneously, their dependency will be maintained and established between the new components, regardless of cross-team replication.If only the relying party is copied, two treatment patterns will emerge.Duplicated target apps are under the current team and the copied new component still depends on the source dependent component. If the copied target app is not on the current team, the dependency will be dissolved when copied. + +## Version Management Officer + +Each build of the component builds the component version number based on the time of the task and, in the case of a component created by the source code, each version records the corresponding source code to submit Commit information to facilitate developer checking the code. Displays currently running version information on the component overview page. Click on the release of the version information to enter the component version list query page.Rainbond is reserved by default for 30 days and history versions are automatically cleaned up. + +Component versions mainly include mirror versions, which are not currently supported by component properties. + +### Component Version Rock + +Enter the **Component General View -> Click to View More -> Enter Build History**. + +- Edit:tag version +- Log:to view build version logs +- Rollback:to which version to roll back +- Deleting:deleting this version cannot be undone. + +![](https://static.goodrain.com/docs/5.6/use-manual/component-management/overview/rollback.png) From 5214591bfcb52ae94005fd7c3df3bcf798aae953 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:29 +0800 Subject: [PATCH 093/398] New translations index.md (English) --- .../current/devops/index.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/index.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/index.md new file mode 100644 index 0000000000..e1cb187c2a --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/index.md @@ -0,0 +1,14 @@ +--- +title: DevOps Guide +description: Rainbond DevOps Guide +keywords: + - DevOps Guide + - Rainbond DevOps +--- + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 60c433960b8d5f5e1a96d1fea95ad03b53142198 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:30 +0800 Subject: [PATCH 094/398] New translations index.md (English) --- .../current/devops/overview/index.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/overview/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/overview/index.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/overview/index.md new file mode 100644 index 0000000000..93b4d87aa1 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/overview/index.md @@ -0,0 +1,33 @@ +--- +title: Overview +description: Rainbond DevOps Guide overview +keywords: + - Overview of DevOps guides + - Rainbond DevOps +--- + +Import Bvideo from '/src/components/Bvideo'; + + + +DevOs is a combination of cultural ideas, technical practices and tools that can enhance the quality and speed of software delivery by promoting integration, collaboration, communication and automation among development teams for technology transport and peacekeeping software. + +## Learn about Rainbond DevOps + +In Rainbond DevOps we emphasize that developers will be users of this platform who can operate and maintain applications without understanding the complex infrastructure.The operator will be the administrator of the platform, who will be responsible for managing the entire platform. + +### Function + +Rainbond DevOps provides the following features for: + +- Source build, start with source +- Mirror Build, build app from mirror +- App Store Building, Install App from App Store +- Binary Build, build app from binary files +- Kubernetes YAML build from Kubernetes YAML +- Helm build, start building app from Helm Chart +- Third-party services build, for third party services outside the platform. + +### Rainbond CI/CD + +Rainbond CI/CD is a CI/CD tool based on Heroku Buildpacks, which helps users to quickly build applications from source while supporting multiple languages and frameworks.There is no need to write a complex Pipeline, just need a simple configuration. From bc684ba41065f569281d61e3a2e373b108e044c9 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:32 +0800 Subject: [PATCH 095/398] New translations app-service.md (English) --- .../current/devops/pipeline/app-service.md | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/app-service.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/app-service.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/app-service.md new file mode 100644 index 0000000000..4ff803fc2b --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/app-service.md @@ -0,0 +1,41 @@ +--- +title: Application service +description: Introduction to Pipeline App Service +keywords: + - Introduction to Pipeline App Service + - Intro GitLab Pipeline Plugins in Apps Service +--- + +Application services are a collection of code that meets some user's needs. They can be a coupling microservice or a single app. All features are built around the application service. + +## Prerequisite + +- Install Pipeline App Plugin +- Available GitLab repository +- Available Pipeline + +## Action step + +### Create App Service + +Go to the Rainbond console and select **Application Services** in the left menu bar. Click **Create App Service**. + +- **Service code:** Unique code for the service for the English name of the component of Rainbond +- **Service Name:** Service name +- **Multi-Template:** Used to define Maven Multimodule Builds + - **Subservice Encoding:** The unique code for the sub service is used for the English name of the Rainbond component. +- **Fluid routes:** Select the pipeline associated with the application service. +- **Repository configuration:** Fill in code repository address and only supports GitLab repository.e.g.:`https://gitlab.rainbond.com/rainbond/rainbond.git` +- **Authentication Configuration:** Select the authentication configuration for the GitLab repository.Optional: User password authentication, SSH key authentication. + +### Auto build and deploy + +Edit the app service. Click on **Auto-build and AutoDeployment**. + +#### Auto-build + +Turn on if you want to automatically trigger CI every time you submit the code + +#### Auto Deploy + +When enabled, mean that each time a mirror is generated, automatically triggers a CD.For the first time, a manual deployment is required to enable automatic deployment. From 4aef18877ca247f1eed014b471cf6203f94ba689 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:33 +0800 Subject: [PATCH 096/398] New translations deploy-history.md (English) --- .../current/devops/pipeline/deploy-history.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/deploy-history.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/deploy-history.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/deploy-history.md new file mode 100644 index 0000000000..008ae3ca68 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/deploy-history.md @@ -0,0 +1,21 @@ +--- +title: Deployment history +description: Introduction to Pipeline App deployment history +keywords: + - Introduction to Pipeline App deployment history + - Intro GitLab Pipeline Plugins in History +--- + +Deployment history includes application service deployment records under each cluster, including status, mirror names, deployment time, executor, instruction, operation, etc. + +## Prerequisite + +- Application services have been successfully deployed. + +## Action step + +Go to the Rainbond Console and select the **streaming line** in the left menu bar. Enter the deployment history page. + +A cluster and application service can be selected to view the deployment history of an application service under this cluster. + +And click Deploying details to go to Rainbond component page for details of deployment. From a826610ed1e9945c76276137d5d90c681a16889e Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:35 +0800 Subject: [PATCH 097/398] New translations images.md (English) --- .../current/devops/pipeline/images.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/images.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/images.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/images.md new file mode 100644 index 0000000000..5449952359 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/images.md @@ -0,0 +1,26 @@ +--- +title: Mirror warehouse +description: Introduction to the Mirror Repository of Pipeline Application Plugin +keywords: + - Introduction to the Mirror Repository of Pipeline Application Plugin + - Intro GitLab Pipeline Plugin in image repository +--- + +The mirror repository shows the mirror products generated after the application service is built, which can be deployed directly to the Rainbow platform. + +The Pipeline application plugin does not manage mirrors, only for versions of the mirrors to be deployed. + +## Prerequisite + +- Application service has been created. +- The pipeline is running successfully and has already pushed the image + +## Action step + +Go to the Rainbond Console and select the **streaming line** to the left menu bar. Go to the **mirror repository** page. + +Select the app service to see mirror version information for the app.Select mirror version to be deployed directly to Rainbond application. + +:::tip +A version of the mirror that has already been deployed. Redeployment will not display the selected app.Only if there is a mirror version deployed on Rainbond, the first deployment will prompt the choice of which app to deploy. +::: From 031a480f7054d73865c66263aafe32f061cc5783 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:36 +0800 Subject: [PATCH 098/398] New translations index.md (English) --- .../current/devops/pipeline/index.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/index.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/index.md new file mode 100644 index 0000000000..f9e080031d --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/index.md @@ -0,0 +1,67 @@ +--- +title: Pipeline Plug-in overview +description: Pipeline Plug-in overview +keywords: + - Overview of GitLab Pipeline plugin + - GitLab Pipeline Plugin + - GitLab Pipeline Plugins +--- + +Pipeline app is based on [插件体系](#) extension, which enables extension of the Rainbond build system by plugin: + +- Build , define build step +- Code check, based on SonarQube code check +- Generate mirror products, push built mirrors to mirror repositories +- Deploy apps, integrate with Rainbond OpenAPI to deploy the app +- Autobuild/deployed, built on Git Repository Webhook + +## Concept + +Pipeline Application Plugin is based on GitLab CI/CD implementation, all features are extended around GitLab and GitLab Runner and below is a description of some concepts: + +### App services + +Application services are a collection of programming codes that meet certain users' needs and can be a coupling microservice or a single application. The application service is the smallest entity in the system and the integration, deployment and other features in the plugin are based on the application service. + +### Code management + +Support for GitLab Repository branch view and persistent collection success. + +- Code branch management, support manual branch building +- Continuous Integration, support to view the status of continuous integration and steps + +### Mirror Repository + +The mirror repository shows the mirror products generated after the application service is built, which can be deployed directly to the Rainbow platform. + +Each mirror version supports direct deployment to Rainbond applications and follows up on sustainable deployment. + +### Deployment History + +Deployment history shows the history of deployment of the application service, including information on mirror names, deployment time, operator, deployment details, etc. + +Deploying details can be accessed to the Rainbond component details page to see details of the deployed application services. + +### Waterline management + +Fluid is a tool to provide customized process organization that allows businesses to easily achieve continued delivery by linking development to delivery through constructing, deploying, testing, control and so on. + +Based on GitLab CI implementation, multiple plug templates are available to quickly create streaming lines. + +## Workflow Introduction + +![](https://static.goodrain.com/docs/5.11/devops/pipeine/pipeline.png) + +1. Create an app service, fill in code repository addresses and other information. + +1.1 There is also a need to create a watercourse and to link the application service. + +2. Once you have created the app service, you will create the `gitlab-ci.yml` file based on the flow line that the app is connected and push it to all branches of the repository + +3. Submit code to the repository and trigger the flow line of GitLab CI. + +4. The task in the pipeline is performed by Runner. + +5. When the task is completed, push the mirror product to the mirror warehouse. + +6. When the mirror product is pushed out, deploy the mirror to the Rainbond application.It can be deployed manually or automatically. From ac8e5480907652913b40c3cf15b77206edea13dd Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:37 +0800 Subject: [PATCH 099/398] New translations install.md (English) --- .../current/devops/pipeline/install.md | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/install.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/install.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/install.md new file mode 100644 index 0000000000..d6d0ff8f24 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/install.md @@ -0,0 +1,112 @@ +--- +title: Pipeline install +description: Pipeline App Plugin Installation +keywords: + - Pipeline App Plugin Installation + - Pipeline Plugin install +--- + +This paper describes the installation of the Pipeline application plugin, which includes the installation of the GitLab app and the GitLab Runner app. + +## Deployment of GitLab and Runner + +The Pipeline application plugin depends on GitLab and GitLab Runner, which need to be deployed first by GitLab and GitLab Runner. + +If you already deploy GitLab and GitLab Runner, you can skip this step. + +### Deployment of GitLab + +Deploy GitLabs through Rainbond Open Source Store to \*\*Platform Manager -> Marketplace -> Open Source Store \*\* search `GitLab` to deploy the corresponding version. + +### Deployment Runner + +Deploys GitLab Runner via Rainbond Open Source Store to \*\*Platform Manager -> Marketplace -> Open Source Store \*\* search `GitLab Runner` to deploy the corresponding version. + +- Once deployed, enter the **component -> Web Terminal** and execute the following command to register; + + - Modify the contents of \`s own GitLab addresses and tokens and Runner Tags. + +```bash +gitlab-runner register \ + --non-interactive \ + --executor "docker" \ + --docker-image alpine:latest \ + --url "" \ + --registration-token "" \ + --description "docker-runner" \ + --tag-list "" \ + --run-untagged="true" \ + --locked="false" \ + --docker-volumes /var/run/docker.sock:/var/run/docker.sock \ + --docker-volumes /root/.m2/repository \ + --docker-privileged="true" \ + --access-level="not_protected" \ + --docker-pull-policy="if-not-present" +``` + +
+ Example configuration +
+ +```bash +gitlab-runner register \ + --non-interactive \ + --executor "docker" \ + --docker-image alpine:latest \ + --url "http://80.gr6f750c.o67iknar.b5037d.grapps.cn" \ + --registration-token "yN7nsCp2U_Ry_S_NAUxs" \ + --description "docker-runner" \ + --tag-list "shanghai-runner" \ + --run-untagged="true" \ + --locked="false" \ + --docker-volumes /var/run/docker.sock:/var/run/docker.sock \ + --docker-volumes /root/.m2/repository \ + --docker-privileged="true" \ + --access-level="not_protected" \ + --docker-pull-policy="if-not-present" +``` + +
+
+ +## Deployment Pipeline App Plugin + +Deploy the Pipeline application plugin through Rainbond Open Source Store. Go to **Platform Manager -> Marketplace -> Open Source Store** to search for `Pipeline` and select the corresponding version to be deployed. + +### Configure Pipeline App Plugin + +Go to the **Pipeline app -> Pipeline-Backend component**, modify the following environment variables: + +- **RAINBOND_URL:** Rainbond Console Visit Address, e.g.:`http://192.168.33.33:7070`. +- **RAINBOND_TOKEN:** Token from Rainbond console, available in **Top Right Users -> Personal Center -> Access Token** + +Update or reboot the component takes effect after the modification has been completed. + +:::caution +`BACKEND_URL` is the external access address of the backend service, the Webhook callback for external GitLab and the default domain name provided by Rainbond, which needs to be modified if you are using a custom domain name. +::: + +Go to the **Pipeline app -> k8s resource -> Edit rainbond-pipeline**, modify the `access_urls` configuration in the `pipeline` resource to the external address of the `Pipeline-UI` component as follows: + +```yaml +apiVersion: rainbond.io/v1alpa1 +kind: RBDPlugin +metadata: + labels: + plugin. ainbon.io/name: pipeline + name: pipeline +spec: + access_urls: + - https://custom. om + alias: Pipeline + author: Talkweb + description: This app is based on GitLab CI/CD implementation, Development Rainbond existing architectural systems. + icon: https://static. odrain.com/icon/pipeline.png + version: 1.0.0 +``` + +Once the modification has been completed, the `waterline` button can be seen in each team view. + +:::caution +If the domain name of your Rainbond Console Access is HTTPS and the `rainbond-pipeline` Application plugin also need to go to HTTPS address and change the `access_urls` configuration in the `rainbond-pipeline` resource as described above. +::: From 413ae622d024a8c5ed846bea96f8e76d2d272974 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:39 +0800 Subject: [PATCH 100/398] New translations pipelines.md (English) --- .../current/devops/pipeline/pipelines.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/pipelines.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/pipelines.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/pipelines.md new file mode 100644 index 0000000000..821c978c6f --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/pipelines.md @@ -0,0 +1,100 @@ +--- +title: Pipeline +description: Introduction to Pipeline App Pipeline Pipeline Pipeline App Pipeline +keywords: + - Introduction to Pipeline App Pipeline Pipeline Pipeline App Pipeline + - Intro GitLab Pipeline Plugin +--- + +Fluid is a tool to provide customized process organization that allows businesses to easily achieve ongoing delivery by linking development to delivery through constructing, deploying, testing, control and so on. + +## Prerequisite + +- Application service has been created. +- Available GitLab Runner. + +## Action step + +Go to the Rainbond Console and select the **streaming route** to the left menu bar. + +### Create Pipeline + +A multilingual template is provided, which can be used directly to create a plume.Contains common language templates such as:Node.js, Maven Single, Maven Module, Java War, Gradle, Go, Python, etc. + +Language template by default provides two steps: + +1. Pack Items, Output Build. +2. Build a container image and push it to a mirror repository. + +#### Global Variables + +The global variable is a variable in the flow line that can be used at any step in the route.Global variables can be configured in the water line settings. + +The following global variable: is provided by default + +- **REPOSITORY_URL:** Image repository address +- **ORG:** Mirror Repository Organization +- **REPOSITORY_USERNAME:** Mirror repository username +- **REPOOSITORY_PASSWORRD:** Mirror repository password + +### Waterline step configuration + +Route step configuration is the core of the line and can be achieved through the allocation of flow line steps. + +The steps of the flow line correspond to GitLab CI, [GitLab C/CD](https://docs.gitlab.com/e/ci/yaml/) documents. + +:::caution +Each option created via the UI corresponds to a configuration item in the `gitlab-ci.yml` file. You cannot modify the `gitlab-ci.yml` file on your own. The `gitlab-ci.yml` file is overwritten when changing the flow line configuration via UI. +::: + +#### Phase Name + +The stage name is the name of the stream step and can be customized. + +#### Stage encoding + +Stage encoding is the only encoding of the stream line step that corresponds to the `stage` configuration in the `gitlab-ci.yml` file.More information is available on the [GitLab CI/CD Stages](https://docs.gitlab.com/e/ci/yaml/#stages) file. + +#### Mirror Environment + +The mirror environment is the operating environment of the flow line step and corresponds to the `image` configuration in the `gitlab-ci.yml` file.More information is available on the [GitLab CI/CD Image](https://docs.gitlab.com/e/ci/yaml/#image). + +#### Script command + +The script command is the executive command of the waterline step step and corresponds to the `script` configuration in the `gitlab-ci.yml` file.More information is available on [GitLab CI/CD Script](https://docs.gitlab.com/e/ci/yaml/#script) documents. + +#### Runner + +Runner is the environment in which the flow line step is executed and corresponds to the `tags` configuration in the `gitlab-ci.yml` file.More information is available on the [GitLab CI/CD Tags](https://docs.gitlab.com/e/ci/yaml/#tags). + +#### Execute conditions + +The execution condition is the execution condition of the Waterline step step corresponding to the `only/except` config entry in the `gitlab-ci.yml` file.More information is available on [GitLab CI/CD Only/Except](https://docs.gitlab.com/e/ci/yaml/#only--except) documents. + +Only **only/excluded** can be used to control when to add jobs to pipes. + +- Only when:is used to define job running. +- Exclude:uses exception to define when the job is not running. + +Currently configured execution condition is: + +- **Branch:** only executes this step if branch matches the branch. +- **Variable:** only executes this step if the variable matches/excludes variables. + +#### Product products + +The product is the product of the drift of the waterline step corresponding to the `artifacts` configuration in the `gitlab-ci.yml` file.More information is available on the [GitLab CI/CD Artifacts](https://docs.gitlab.com/e/ci/yaml/#artifacts). + +For example,:defines the product as `target/*.jar`, all `jar` files from the `target` directory will be used as a product when this step is done. + +#### Save time + +The saving time is the time of the product of the drainage step and corresponds to the `ArtifactsExpire_in` configuration in the `gitlab-ci.yml` file.More information is available on the [GitLab CI/CD ArtifactsExpire_in](https://docs.gitlab.com/e/ci/yaml/#artifactsexppire_in). + +In seconds, specify how long the product of the product is saved. + +#### Cache + +Cache is the cache configuration of the waterline step to the `cache` configuration in the `gitlab-ci.yml` file.More information is available on the [GitLab CI/CD Cache](https://docs.gitlab.com/e/ci/yaml/#cache). + +For example,:defines a cache as a `target`, all files in the `target` directory will be cached when the step is completed. From 07919fdae3828bc99a512ae06bdc1b5376136f5a Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:40 +0800 Subject: [PATCH 101/398] New translations repository.md (English) --- .../current/devops/pipeline/repository.md | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/repository.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/repository.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/repository.md new file mode 100644 index 0000000000..5b34d7db28 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/pipeline/repository.md @@ -0,0 +1,25 @@ +--- +title: Code management +description: Introduction to code management for Pipeline app +keywords: + - Introduction to code management for Pipeline app + - Intro GitLab Pipeline Plugin Code Management +--- + +Code management supports GitLab branch view and provides continuous collection success.The platform's continuous integrated flow line covering:compilation, code check, generation of mirror products, notification of Rainbod platform deployment can significantly reduce development staff workload and continuously improve code quality and development efficiency. + +- GitLab branch management for multiple apps and recent submissions. +- Support for manually triggering the construction of the flow line. +- Support continuous integration step view and step details. + +## Prerequisite + +- Application service has been created. + +## Action step + +Go to the Rainbond console and select the **streaming line** to the left menu bar. Go to the code management page. + +Optionally select the app service, see GitLab branch management of the app and recent submissions and manually trigger branch construction of the flow line. + +Switch to the Continuous Integration page, you can view the sustainable integration steps and the step details. From 31bf0dd5a4e1bcb8e13f0bdaa628fc5e3857012d Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:42 +0800 Subject: [PATCH 102/398] New translations backup.md (English) --- .../current/enterprise/backup.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/backup.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/backup.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/backup.md new file mode 100644 index 0000000000..9e2939cbf2 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/backup.md @@ -0,0 +1,56 @@ +--- +title: Corporate Backup +description: Introduction to enterprise backups on the platform +--- + +## Introduction + +For data security on the platform, Rainbond Enterprise version provides a full backup of applications mainly for two types of: + +- Apply the entire version backup, including code and operating environment, persistent data, components & app configurations, etc.With a backup, the app can be restored to the backup at any time. + +- Apply migration to migrate to other teams or other clusters. + +## Main features + +Rainbond currently provides two backups, local and cloud backups respectively.The backup function is currently designed as a full-volume cold backup mechanism, and in the traditional sense our spare parts for components are mainly for persistent data, such as data from the Mysql database.In the state of the microservice architecture, it is difficult to synchronize the history state when multiple components are included in the application if there is a malfunctioning if only data from a component is backed up.Our quest for app management must have a full backup of the app level. + +In the case of packaging, backups of code and operating environments are easy, and we can easily do a hot backup of the operating environment for all components.However, for persistent data, especially for existing state components, there is no guarantee that data can be safely backed up while working.Rainbond is therefore currently required to stop having a status component when backing up the app.In the subsequent version, we will support data hot backups with state components as operator, then go into the application overall backup process.Complete hot and regular backups for apps will be implemented. + +### Local Backup + +Rainbond Enterprise version supports local backups. Users can backup applications locally and migrate across teams.Local backup apps cannot migrate across data centres and renters. + +### Cloud Backup + +Rainbond Enterprise Edition supports the S3 Protocol object storage in conjunction with Alinea OSS or Ho Minio etc. Backup apps can migrate across clusters and can be restored wherever there is a Rainbond platform and quick migration of applications. + +## Manual + +### Local Backup + +1. Use the app action list to access the app backup management page, and select a local backup, where a set of apps is backed up locally. Local backup apps cannot migrate across data centres and renters. +2. Simply add a backup, select the backup mode and the backup is an asynchronous process depending on the number of components.Backup action will be denied if the active state component exists in the app. + +### Cloud Backup + +1. Set up cloud backup connection information in platform manager, Settings-Object storage.Note that upload size limit is 5GB when using Alicloud, so over 5 GB apps will report errors when uploading +2. Go to the app backup management page from the app action list and select cloud backups +3. A cloud backup app can be exported by one click and can be imported directly in other Rainbond clusters. + +### Backup recovery + +Restore a successful set of apps that have been backed up. Use the recovery to restore the group app.Recovery is usually an unsolved problem in the current app. Restore the following: + +1. Do not close the recovery page during the recovery operation, otherwise recovery may fail.To ensure your data security, we will generate a copy of your backup app. You can select to delete the original app in the final step of recovery. +2. Exporting backups from:will export a copy of the backup, which is currently only supported by the cloud backup. +3. After exporting backups:, you can import the exported backups on other Rainbond and then generate the corresponding backups to quickly restore the app to the local location. + +### Apply Migration + +Since the platform supports the application of a full global backup, we can do the overall migration of the app, the enterprise version supports cross-tenant migration and cluster migration; + +1. When backed up, the migration operation can be selected to migrate the application. +2. Click on the Migration button, select the team and data center to migrate to. Click on the Migration to trigger the backup migration +3. Enterprise versions can select different clusters when migrating across Rainbond clusters +4. Once the app has migrated, it will jump to the corresponding data center and tenant to facilitate your view of the migration app. From 6cdce1b416867c4b9994b1d4c5793e110e86d34e Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:43 +0800 Subject: [PATCH 103/398] New translations api-gateway.md (English) --- .../current/enterprise/gateway/api-gateway.md | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/gateway/api-gateway.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/gateway/api-gateway.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/gateway/api-gateway.md new file mode 100644 index 0000000000..8081ff3beb --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/gateway/api-gateway.md @@ -0,0 +1,111 @@ +--- +title: Enterprise Level Gateway +description: API gateway enhancement description and use +keywords: + - Clustering test + - Description and use of cluster inspection function +--- + +Rainbod enterprise API gateway is enhanced to provide abundant features such as visualization, matching strategies, retrial mechanisms, traffic control, service discovery, load balance, multiprotocol support, and certificate management.Support flexible monitoring displays including QPS, error rates and average response time.There are strong routing controls and retrial mechanisms that support multiple matching strategies.Implementation of flow control and restriction of flows, supporting multiple service discovery mechanisms, including K8s and Nacos.Provides a flexible load equilibrium strategy, supports HTTP, TCP, and WebSocket.The certificate management system facilitates the management and application of certificates and automatically applies them to all routes under the domain name. + +## Traffic Visualizations + +Monitoring and visualization are important features in the API gateway, particularly with regard to key performance indicators such as QPS (query rate per second), error rate and average response time.Rainbond provides a more intuitive monitoring and management tool as an open source cloud application platform that displays these functions through refined sub-routes, teams and sub-applications. + +1. **QPS Monitor:** Rainbond provides monitoring of QPS and allows you to learn about the frequency of API requests in real time.Using graphs, you can observe changes in QPS over time in order to adjust system resources or to optimize API design in a timely manner. + +2. **Error rate monitoring:** Rainbond also includes an error rate display that helps to quickly locate and solve potential problems.Charts show changes in error rates to help you find exceptions in the services provided by the API. + +3. **Average response time monitoring:** understands that average response time is one of the key indicators for assessing API performance.Rainbond can show changes in average response time to help you identify and solve potential performance bottlenecks. + +4. **Distinguished:** Rainbond allows you to monitor different routes separately.This means that you can better optimize and manage different API endpoints by understanding the performance of each API route. + +5. **Sub-teams and sub-apps showcase:** by displaying monitoring data for sub-teams and sub-applications, Rainbond provides a more meticulous monitoring view.This allows teams to focus on what they are responsible and not flooded with data from monitoring systems as a whole. + ![流量纵览](https://static.goodrain.com/docs/enterprise-app/api-gateway/1.png) + +## API Gateway Basic Capabilities + +The powerful features of the Rainbond API gateway include a variety of matching strategies and retrial mechanisms that provide more meticulous routing control and greater stability of the system. + +### Match Policy + +1. **Matching:** Rainbod allows matching according to the requested path, which allows you to map different paths to different backend services or different handling. + +2. **Methods match:** can be matched by the requested HTTP method (GET, POST, etc.) in order to apply different processing logic to different request methods. + +3. **Headers match:** supports matching specific HTTP header information in the request, which is useful for situations where requests need to be routed according to the header. + +4. **Cookie matching:** Rainbod allows matching of the requested Cookie information, which allows you to make more sophisticated routing controls based on Cookie's content. + ![流量纵览](https://static.goodrain.com/docs/enterprise-app/api-gateway/4.png) + +## Traffic Control and Limit + +In Rainbond, the system is provided with more flexible and customizable traffic management mechanisms by enabling the API gateway through plugins to implement traffic control and restricted flow functions. + +1. **Request limit:** Rainbond allows requests to be restricted by plugins to limit the number of requests contained in a request.This helps to prevent a user or application from sending large numbers of requests within a short period of time to protect the system from abuse. + +2. **Connections Limit:** Plugins can also configure the number of connections to ensure that the system is not overwhelmed by too many connections.This helps to maintain the stability and availability of the system. + +3. **Time period limit:** the Rainbond plugin provides the ability to set the number of requests within a certain time period.This allows you to adjust the flow control strategy to the system's peak and low turnaround time to better adapt to the system's load changes. + +## Service discovery + +Rainbond API gateway supports access to service information from different service discovery mechanisms, including Kubernetes (K8s), Nacos and others, as well as the introduction of third-party nodes.This has allowed for more flexibility in the management and use of services on the Rainbond platform. + +### Service Discovery Mechanisms + +1. **Kubernetes (K8s) support:** \*\* Rainbond integrated with Kubernetes and can access service information through K8s service discovery mechanisms.This allows applications running in the Kubernetes cluster to be found and proxy by Rainbond API gateway dynamics. + +2. **Nacos supports:** Nacos as an open source service discovery and configuration management system, Rainbond provides support to Nacos and allows access to service information from Nacos for integrated management in Rainbond environments. + +3. **Third Party nodes support:** Rainbond API gateway that allows the introduction of third party node, i.e. external service.This means you can introduce services that are not running on the Rainbond platform into Rainbond for uniform management and proxy. + +4. **Retry Mechanism** Rainbond API gateway supports an automatic request retry if a request fails.This helps to increase the system's tolerance for error, especially in cases of network instability. + +![服务发现](https://static.goodrain.com/docs/enterprise-app/api-gateway/7.png) + +## Load Balancer + +Load equilibrium is a key technology used in distributed systems to balance network traffic and request burdens.In Rainbond, the load balance is achieved to ensure high availability, stability and performance of services.Rainbond provided multiple load equilibrium strategies to suit different application scenarios and needs. + +1. **Round Robin:** is one of the simplest payload equilibrium policies that will make requests rotating to backend servers to ensure that each server receives equal access to requests. + +2. **Weighted Round Robin:** allows different weights to be assigned to each backend server in order to take into account the performance and resources of each server when loading equilibrium. + +3. **Minimum Connections (Least Connections):** will send requests to servers with minimal connections to ensure that lighter servers are selected when loading is balanced. + +4. **Weighted Least Connections:** is similar to weighted polls but assigned weights based on connections to take account of server performance. + +5. **IP Hash:** Calculates hashes based on client IP addresses and distributes requests to backend servers.This ensures that the same IP requests are always routed to the same server, helping to keep the session consistent. + +## Support multiple protocols + +Support for multiple protocols means that the API gateway has the capacity to handle different communication protocols to suit various applications scenarios and needs.In Rainbond or other similar cloud native platforms, this multi-protocol support is designed to meet communications needs between different types of services and applications. + +1. **HTTP protocol supports:** HTTP is the most common application protocol for communication between web applications.The API gateway can process and route HTTP requests, perform access control, authentication, authorization, etc. + +2. **TCP protocols support:** Rainbond's API gateway to handle TCP, which is important for applications that require lower-level communication in the transmission layer.For example, TCP may need to be used in scenarios such as database connections. + +3. **WebSocket protocol supports:** WebSocket protocol supports real-time two-way communications, usually for applications that require persistent connections, such as online chat, real-time notifications, etc.The API gateway in Rainbod can effectively handle and proxy WebSocket communications. + +4. **The Flexible Protocol extension:** supports flexible protocol extensions to adapt to emerging communications protocols in the future.This flexibility is important for the evolving architecture of applications. + +5. **Protocol conversion:** allows the API gateway to execute protocol conversions if required, converting one protocol request to another protocol.For example, convert HTTP requests to TCP requests, or vice versa. + +By supporting multiple protocols, the API gateway can serve as a common access point, connecting different types of services and making the system more flexible and scalable.In this way, different applications can choose the protocol best suited to their communications needs, without fear of mismatches with other services.This has been very useful in building complex micro-service structures and diverse application scenarios. + +## Certificate Management + +Certificate management is one of the important features in the API gateway, especially in scenarios where secure communication is needed.Rainbond provides a well-developed certificate management system that enables users to manage and apply certificates to all routes under their domain names. + +1. **Certificate Overview:** Rainbrond's Certificate Management System allows users to view all installed certificates' overview, including certificate name, issuer, expiration date, etc.This enables users to obtain a complete picture of the credentials used in the system. + +2. **Automated Applications:** Rainbond offers the ability to apply certificates to all routes under a given domain name.This means that once a user adds or updates a certificate, the system automatically applies the new certificate to all routes associated with the certificate, without manual intervention. + +3. **Certificate expiry time is presented in:** \*\* The certificate management system of Rainbond usually includes certificate expiry time displays that allow users to know which certificates are about to expire so that users can update or replace the certificate in a timely manner to ensure the security and proper functioning of the system. + +4. **Certificate upload and import:** users can upload or import certificates via UI or command line tools.This allows users to use self-signed certificates or those obtained from other licensing agencies and to centralize the management of these certificates. + +5. **Certificate binding:** Rainbond allows users to bind a given certificate to a specific domain, ensuring that only routing of associated domain names can use the certificate.This increases security and flexibility. + +![证书](https://static.goodrain.com/docs/enterprise-app/api-gateway/9.png) From b73418b0da820623a83ed24a5389c8d73cfe4f0a Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:44 +0800 Subject: [PATCH 104/398] New translations index.md (English) --- .../current/enterprise/gateway/index.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/gateway/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/gateway/index.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/gateway/index.md new file mode 100644 index 0000000000..8103422bd8 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/gateway/index.md @@ -0,0 +1,13 @@ +--- +title: Gateway Enhancement +description: Platform security extension support +--- + +The Rainbod Enterprise Gateway supports API Gateway and more comprehensive security capabilities.API Gateway supports multiple matching strategies.Implementing traffic control and limitation mechanisms, multiple service discovery mechanisms, including K8s and Nacos, with key features including traffic visualization, matching strategies, retrial mechanisms, flow control, service discovery, load balance, multi-protocol support, etc.The enterprise-level gateway also supports flexible monitoring displays including QPS, error rates and equal response time.On security, the WAF firewall supports mechanisms such as rules management, log and monitoring, black and white lists. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From f19f12e246c73f646bafb7e232614d1b32283765 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:46 +0800 Subject: [PATCH 105/398] New translations waf.md (English) --- .../current/enterprise/gateway/waf.md | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/gateway/waf.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/gateway/waf.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/gateway/waf.md new file mode 100644 index 0000000000..1a08aecaa1 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/gateway/waf.md @@ -0,0 +1,113 @@ +--- +title: WAF Firewall +description: Introduction to WAF firewall functionality and use. +--- + +The WAF firewall is an application layer firewall that focuses on protecting web applications from various network attacks and holes.Its role is to identify and block malicious requests to ensure the security of web applications and sensitive data.Web applications are one of the important assets for businesses and it is therefore essential to protect their security.The WAF firewall can prevent risk of data leaks, web site paralysis, customer privacy leaks.It also provides timely protection by responding quickly to new threats and gaps. + +The objective of this document is to provide users with detailed information on the WAF firewall and a guide to its use.It will cover key WAF firewall features:rule management, log and monitoring, whitelist and blacklist management. + +## Main features + +The current WAF firewall mainly supports rule management, log and monitoring, whitelist and blacklist management, which are detailed in the following length. + +### Rule management + +![waf](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/waf/waf.jpg) + +The gate's WAF firewall contains six sets of rules inside the XSS cross-site script, defenses against Http protocol loopholes, defensive SQL injections, general defense, defensive malicious response, defensive denial of service attacks.Details below: + +- Defend XSS cross-border scripts attack:to recognize and block malicious injections of scripts and prevent attackers from using client loopholes to access user information. + +- Defend Http Protocol bug:to detect and prevent malicious requests, malicious file uploads, and other attacks on HTTP protocol. + +- Defensive SQL injects:to recognize and intercept malicious SQL queries to prevent an attacker from obtaining sensitive data by injecting an attack. + +- General defense:detects and blocks common web attacks, such as path traversions, code executions, etc. + +- Defend malicious response:to detect and intercept malicious responses, such as malicious redirections, malicious file downloads, etc. to protect users from attack. + +- Defensive Rejection Service Attack:Detects and prevents DDoS attacks, violent breaks, etc. Denial service attacks and ensures the availability and stability of web applications. + +### Log and Monitor + +The WAF firewall provides a full log recording and reporting functionality, records all visits and security incidents for security audits and threat analysis.For illegal visits, detailed information can be obtained through the log and defended with the corresponding firewall rules. + +### Whitelist and blacklist management + +The WAF firewall allows users to define whitelists and blacklists to control access to specified IP addresses.Through white-list and blacklist management, users have the flexibility to manage access controls to ensure that legitimate traffic is allowed to pass normally, while discouraging known malicious requests and attacks. + +## Manual + +### Add, Modify and Delete Rules + +In the WAF firewall, add, modify and delete rules are configured at the Gateway Policy. + +1. Enter team view or app view + +2. Click on the `gateways` button on the left sidebar, select the gateway strategy you need to protect + +3. Click `Edit` to open the `WAF firewall` in the `safe`. + +4. Select corresponding rule types such as defensive XSS cross-station scripts, SQL injections, etc. + +5. Save rule settings and take effect + +Remove all rules to turn off the `WAF Firewall` switch directly, delete some rules and change them in the checkbox. + +### Monitor and analyze WAF firewall logs + +The WAF firewall provides log recording and reporting to enable you to monitor and analyse access and security events.Query logs by default is required on gateway. You can execute the command below to query detailed: + +```bash +kubtl logs-fl name=rbd-gateway -nrbd-system +``` + +When you have access blocked by the WAF firewall, you can see the following log information + +```bash +2023/05/10 16:30:52 [error] 3084#30844: *207007927 [customer 10.43.83.34] Modsecurity: Access denied with code 403 (phase 2). Matched "Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `5') [file "/usr/local/openresy/nginx/conf/modsecurity/rules/REQUEST-949-BLOCKING-EVALUATION. onf"] [line "80"] [id "949110"] [rev ""] [msg "Inbound Anomaly Scored (Total Score: 5)"] [data ""] [sever "2"] [ver "OWASP_CRS/3. 2.2"] [maturacy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-generic"] [hostname "10.10.10. 5"] [uri "/"] [unique_id "16837938236.800594"] [ref ""], client: 10.43.83.34, server: nginx-test.grapps.cn, request: "PUT/HTTP/1.1", host: "nginx-test.grapps.cn" +``` + +Based on the previous log, you can get details of blocked requests, including the client's ip, the domain name of the visit, the method of the request, the time of interception, and which rule has been blocked.This example above indicates a PUT request to visit nginx-test.grapps.cn this domain, triggering rules with id 949110 in REQUEST-949-BLOCKING-EVALUATION.conf this rule file.You can view corresponding rule information by accessing this profile. + +1. Enter gateway terminals + +```bash +POD_NAME=$(kubectl get po -l name=rbd-gateway -n rbd-system -o jsonpath='{.items[0].metadata.name}') +kubectl exec -it $POD_NAME -n rbd-system -- bash +``` + +2. View the specified rule file, the file path will be given in the exception log + +```bash +cat /usr/local/openresty/nginx/conf/modsecurity/rules/REQUEST-949-BLOCKING-EVALUATION.conf +``` + +3. Find corresponding rules and find solutions according to the rule id in the rules document + +### Best practices for whitelists and blacklists + +The whitelist and blacklist are important tools in the WAF firewall for controlling access access.Use to control access to allow or disable specific IP addresses.You can set a certain IP address or an IP, noting that:black and white lists are mutually exclusive, you can only enable blacklists individually or whitelisting.Black and white lists, like WAF firewalls, are configured at the gateway strategy. + +1. Enter team view or app view + +2. Click on the `gateways` button on the left sidebar, select the gateway strategy you need to protect + +3. Click `edit` to select `blacklist` or `whitelist` in the `safe`. + +4. Enter an IP address or an IP segment.e.g. 192.168.0.1 or 192.168.0.1/24 + +5. Save rule settings and take effect + +Below are best practices strategies that help you manage whitelist and blacklist: more effectively + +- Determines that trusted IP addresses and domains:identify trusted IP addresses and domains based on business needs and security strategy. They should be added to whitelisting, allowing unlimited access to your application. + This may include Intranet IP addresses, partner IP addresses, or specific third-party service IP addresses. + +- Add only the required IP address and domain name:to avoid adding all IP addresses or domain names to whitelist to reduce the risk of error or security loopholes. + Only add IP addresses and domain names that really need access to your application and limit the scope of access. + +- The whitelist and blacklist:are regularly reviewed and updated to ensure that IP addresses and domain names in the whitelist and blacklist are still currently credible and delete entries that are no longer required. + +- Log analysis and behavior analysis:monitor white and blacklist access logs and analyzes if there is an abnormal behavior or potential security threat.Based on the results of the log analysis, the white and black lists are updated in a timely manner to enhance protection against malicious visits. From 4c136ecb0ce85f92e6d0f31967b23ad9c81d8974 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:47 +0800 Subject: [PATCH 106/398] New translations gray-release.md (English) --- .../current/enterprise/gray-release.md | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/gray-release.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/gray-release.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/gray-release.md new file mode 100644 index 0000000000..87b38c4679 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/gray-release.md @@ -0,0 +1,106 @@ +--- +title: Full link grayscale release +description: Introduction to Gray Release on the Platform +--- + +Grey release is a software dissemination strategy to reduce risk and gain a more controlled dissemination process by gradually introducing new versions of applications in the production environment.It allows experimentation with new features or updates on a small number of users or servers and then gradually expands publication based on feedback and performance indicators.Grayscale releases can help organizations to better manage and control the software distribution process and reduce potential impact and failure risks. + +All-linked grey dissemination goes further than traditional grey distribution, taking into account not only grey dissemination at the application level, but also all components and services in the entire system chain.Full link grey release can span multiple environments and systems levels, including front, backend, databases, etc. to ensure that new versions of applications are progressively validated and deployed throughout the system links.This approach would allow for a more comprehensive assessment of the compatibility and stability of the new version with the existing system and the identification and resolution of potential problems at all levels. + +This document details the core features of batch publishing, Header based matching rules, full-link grayscale, and all link grayscale publishing such as monitoring and rollbacks.You will know how to prepare the environment, create a release version, develop a grayscale publishing strategy, and monitor the results of the publication.We will also provide some best practices and suggestions to help you optimize the configuration and operation of all linked gray releases to achieve a more efficient and reliable release process. + +## Main features + +### Batch Publish + +![gray-status](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/gray-release/gray-status1.png) + +Full link grayscale release supports the bulk introduction of new versions of applications into the production environment, gradually cutting traffic into new versions of applications by running them and allowing you to assess the stability and performance of new versions within your control and to address issues that may arise in a timely manner. + +- Define batch and traffic scale:for batch publishing, you can define the batch and the traffic ratio of each batch to be published, based on the availability of needs and resources.More batch size helps smooth upgrades and controls the risks involved in the release process, enabling you to better monitor new versions of performance and stability. + +- Monitor and evaluate:in each batch of releases, you should closely monitor key indicators, such as response time, error rate and old new version traffic ratio.This will help you identify potential problems and take the necessary measures in a timely manner.It would also be useful to learn about user feedback in order to learn about the experience and satisfaction of the new version.These monitoring and evaluation data will provide an important basis for the release and decision-making of the subsequent batches. + +- Problem processing and rollback:may cause some problems or anomalies when the batch is published.In this case, you should have a clear problem handling and rollback plan.If a significant problem was found in a batch, you need to stop the batch in time and roll back to previous versions quickly.This will help you minimize potential impacts and ensure the system's stability and availability. + +### Header based matching rules + +You can route a specific request to a new version or an old application based on the requested Header information, such as user identifier, device type, etc.This flexible matching rule enables you to control gray levels of fine particle levels for different users or conditions, ensuring that new versions are accessible only if specific users or requests that the conditions be met.Below is a detailed description of the Header matching rules: + +- Defines the matching rule:requires a set of Header keys and corresponding values to match when using Header matching rules.These matching rules can be customized based on business needs, such as specific user groups, equipment type, geographic location, etc.Accurate matches and regular matches are currently supported.You can specify one or more Header keys and corresponding values to match in order to route the request to a new version of the application that meets the criteria. + +- Flexibility and accuracy of:Header based on Header matching rules support multiple Header to meet both new versions of the route or one of them to a new version.You can actually need and define a specific HeaderMake the request accurately rout to different version applications to achieve gray release control of fine particles. + +### Full link grayscale + +The full link gray release covers all components and services in the entire system chain, ensuring that new versions of applications are progressively validated and deployed throughout the system.It can cut across front-end, backend, databases, etc. to ensure compatibility and stability of new versions with existing systems.Full link gray release ensures that new versions of applications operate seamlessly throughout the system links by gradually replacing and validating each component.Below is a map of the total gray scale: + +
+ +
+ +As shown in the graph above, there are `A->B->C->C->D->E` service components in an application where gray traffic enters from A, because only B and C have gray versions, the gray flow is routed in the grey versions of B and C, and for components D and E, because there are no gray versions, the gray flow is routed to the base version.This created two logically isolated traffic links.This would directly reduce the deployment of services and reduce the cost of deployment when there is a larger volume of microservices.And because of traffic isolation, new versions of risk and impact can be better controlled. + +### Monitor and roll back + +![gray-metrics](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/gray-release/gray-metrics.png) + +Full link grayscale release provides monitoring and rollback features to ensure the stability and performance of new versions of applications during grey releases.You can monitor every stage of release in real time, including key indicators such as traffic distribution, response time, error rate, etc.If there is a problem, you can roll back to old versions in time to minimize potential effects. + +- Real-time indicator monitoring:link grayscale release provides real-time monitoring to monitor performance indicators and performance status of new versions of applications during grayscale periods.These include key performance indicators such as response time, error rate, throughput. + +- Critical indicators for visualization dashboard:are displayed via visualization dashboard, so that you can visualize performance trends and indicator changes in new versions of applications.In this way, you can quickly identify any anomalies or declines in performance and take timely measures to solve them. + +- QuickRock:you can quickly cut traffic back to the old version of the app when you find a problem or unexpected situation.This would minimize the impact on users and business disruptions and ensure the stability of the system. + +## Manual + +### Environment preparation and configuration + +The key to full link grayscale is the need for gray traffic labels to be permeated between multiple components, so that the passing of the label is not sensitive to the app and that the grayscale traffic is routed by tag.Your application needs to meet the following conditions in: + +- The entrance component uses the Gateway API:Gateway API to solve the problem of progress portability and is gradually becoming the next generation traffic standard.The traffic rules that are currently published on the full link grayscale are also based on this. + +- Supporting distributed links tracking:in distributed link tracking technology, traceID identifiers a full call chain, and each request on the link carries the corresponding traceID.It is on this basis that labels pass through them. + +- Application enables Istio Governance Mode:Istio mainly provides the ability to manage gray traffic by route and between services. + +### Create and manage release versions + +Usually, in order to secure a reliable delivery, we will use the application template of Rainbrond to manage the entire version of the application. The application template in Rainbond will normally contain the following expert: + +- Application identifier and name:provide an easily identifiable and managed name for the app template.The accumulation of digital assets in enterprises can be achieved. + +- Version Metadata:contains information about each release of version, date of publication, author, change summary, etc.These metadata help track and identify key properties and historical information for each version. + +- Version:contains mirrors for all components in the release version. These images, which are immutable basics, guarantee consistency of versions and avoid confusion. + +Available from[应用模版持续交付](/docs/delivery/continuous/ram) to post new application templates.When the app has a new version, you can see an upgradable version in the `to-update` section of the app view.The next version will be published as a new version of grayscale + +### Develop and configure Grayscale Publishing Policy + +When new versions are available, we need to set up a grayscale release strategy for the app.This step is mainly to set the target and range of grey releases, to configure the rules and conditions of grey release to control distribution and upgrade of release versions in the grey environment, and to ensure that release versions are visible and accessible only to specified gray targets.Action steps below: + +1. In the app view, click on the `grey` button on the left sidebar, you can go to the Grayscale Policy Settings page. + +2. In the Grayscale Policy Settings page, first select an entry component, which is the source of grayscale traffic.Once you confirm the entry component and its corresponding traffic rules, you can choose to set one or more Header matching rules. The matching rules here will ensure that the gray traffic is routed only to the gray version. + +3. After matching rule setup, you continue to set the release batch below, with the default final traffic ratio of 100%. You can set multiple batches and different traffic ratios in the middle.Please note that:, if a Header rule is set, will be routed to a new version with 100% of Header traffic. Only traffic without Header rules can be routed to a new version proportionally. + +### Make Grayscale Publication + +1. After the Grayscale policy has been set, we need to find upgradable versions in the `Pending Update` column of the application view. Click `Update`, when changing components will be rebuilt and entered in the grayscale state. + +2. Once you confirm the `upgrade`, you will jump back to the app view at this point in the upper left corner, you can see the current traffic ratio and batch information, and check for more detailed monitoring reports. + +3. When released in grayscale, we can try to request services according to previous matching rules, when grayscale traffic should be passed only in the grey environment, and only when a service does not have a gray version will request a default version. + +### Monitor and analyze results + +Monitoring and analysing the results of the release is a key element in ensuring the success of the entire chain grey distribution, and only analysis and comparison of the data collected during the release can identify potential problems and determine whether or not to continue or roll back. + +1. After the app is already in grayscale, you can go to the Grayscale Policy Settings page again by clicking on the `Grey` button on the left sidebar.Default display of application gray status at this time, which contains graphs such as current batch, old and new version traffic ratio, request error, throughput, total number of requests, etc. + +2. With this chart information, you can observe the grayscale status on a continuous basis. If there is no problem, try to increase the traffic ratio. Click `next batch` in the top right. + +3. If an unexpected indicator is found, such as too high a request error rate and too slow response time, it can quickly return to the previous state at the top right by clicking `Roll back`. From 5170b7fccaa9111b715da9b2d53de2a96275ca21 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:48 +0800 Subject: [PATCH 107/398] New translations index.md (English) --- .../current/enterprise/index.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/index.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/index.md new file mode 100644 index 0000000000..7e64ae3acd --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/index.md @@ -0,0 +1,49 @@ +--- +title: Enterprise version usage manual +description: Enterprise version usage +keywords: + - Enterprise Version Use + - Enterprise version usage +--- + +This section focuses on the functionality and use guide for Rainbond enterprise edition, which covers various aspects of Rainbond enterprise versions, including, but not limited to, the following: + +### [可观测性中心](/docs/enterprise/observability/) + +Observability centres provide comprehensive monitoring and visualization tools to help users understand the status, performance and health of the system in real time.This allows for more effective management and optimization of applications deployed in clusters.It primarily contains the following features: e.g.:observational centre panel, monitor large screen, global log, alarm etc. + +### [国产化信创](/docs/enterprise/xinchang) + +The migration of IT operational systems to the national productive trust creation environment involves the movement of cross-CPU structures and operating systems, and Rainbond can be built on domestically produced hardware and operating systems.As an intermediate layer, block bottom differences for upper business systems.The \`adaptation' compilation capacity provided by Rainbond does not require any change in the operation to complete the compilation and operation in the national production environment.At the same time, Rainbod also provides a multilingual operating environment that supports developers in choosing the environment best suited to their business. + +### [全链路灰度发布](/docs/enterprise/gray-release) + +Rainbond supports application grayscale releases, including batch releases, A/B tests, and links to grayscale capabilities.Full link grey release can span multiple environments and systems levels, including front, backend, databases, etc. to ensure that new versions of applications are progressively validated and deployed throughout the system links.This approach would allow for a more comprehensive assessment of the compatibility and stability of the new version with the existing system and the identification and resolution of potential problems at all levels. + +### [集群巡检](/docs/enterprise/scanner) + +Clusters are a tool to monitor and assess the performance of the bottom system and help you quickly identify potential risks in the system and recommend fixes.This tool can be used to scan all aspects of the cluster, including system performance bottlenecks, operating state of the business component, configuration issues and mirror security gaps, to improve the performance, stability and availability of the system. + +### [安全能力](/docs/enterprise/security/) + +Security is critical in the process of user business migration to cloud origin.Users often need to consider the security aspects of platforms, operating security, gateway security, user security, data security, etc.Rainbond Enterprise Edition takes a variety of security measures to reduce safety issues, such as the WAF firewall, user operations audits, logs, component safety, disaster preparedness and disaster preparedness.The company version of Rainbond passed the three-tier security test. + +### [定制化和样式](/docs/enterprise/style) + +The platform provides a range of personalized configuration options, including web icons, landing page images, theme colors, network DEMO and custom modifications to logo etc.Administrators can select different configuration options for customization based on the needs of the enterprise in order to better respond to the special needs and brand image of the enterprise. + +### [GPU shared support](/docs/enterprise/other/GPU) + +The GPU resource is often used in deep-learning, large-scale data processing, scientific computation, and simulation, while Rainbond enterprise versions support the sharing and configuration of GPU resources to better allocate and use GPU resources. + +### [其他功能](/docs/enterprise/other/) + +The enterprise version also contains multiple optimization features, such as team resource quota limits, component storage visualization management, etc. + + + + From 5d9ba83309798c5b25d5947b29d78e4008cb3f1a Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:50 +0800 Subject: [PATCH 108/398] New translations index.md (English) --- .../current/enterprise/microservices/index.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/microservices/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/microservices/index.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/microservices/index.md new file mode 100644 index 0000000000..a87e449ee1 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/microservices/index.md @@ -0,0 +1,46 @@ +# Microservice governance + +## Why it is difficult to say how to do something good + +To do a microservice, we need a lot of knowledge that we need to understand and learn from a few dimensions in Administrative: + +- Basic functional level + 1. Parallel control & limit flow, avoid sudden traffic knocking out services + 2. Service registration and service discovery to ensure dynamic detection of nodes + 3. Load Balancer, need to distribute traffic according to the capacity of the node + 4. Timeout control, avoid wasting requests for timeout + 5. Melt off design, fast failure, secure troubleshooter ability + +- Advanced Function Level + 1. Ask for authentication, make sure that each user can only access their own data + 2. Link tracking, used to understand the whole system and quickly locate specific requests + 3. Logs, for data collection and problem positioning + 4. Observability, no tweaks without measurement + +For each of these points, it is very difficult for our back-end developers to capture and implement these points of knowledge into the business system.However, we can simplify this complex task by relying on frameworks already validated by mass flows, such as the **Rainbond Microservice Mode**. + +## Use Rainbond to switch micro-service governance mode + +### One click to switch governance mode + +![img.png](https://static.goodrain.com/docs/enterprise-app/microservices/QQ20231108-101133%402x.png) + +### Micro-service governance capacity + +Rainbond Microservice Mode provides you with an easy way to achieve the above-mentioned complex microservice governance features.By using Rainbond, you can easily implement the settlement: + +1. **Parallel Controls & Limits**:Rainbond provides built-in limit flow and concurrent control mechanisms that can be configured according to your needs to ensure that services are not hit by sudden traffic shocks. + +2. **Registration and discovery of services**:Rainbond integrated service registration and discovery features to enable your microservice to automatically register and discover without manual configuration. + +3. **Load Balancer**:Rainbond provides load equilibrium features that can be dynamically distributed to ensure high availability and performance based on the absorptive capacity of the node. + +4. **Melting Device**:Rainbond integrated a breaker mode that can quickly fail and safeguard the resilience of the failure node. + +5. **Request Authentication**:Rainbond supports authentication and authorization mechanisms, ensuring that each user can only access data with which they have permissions. + +6. **Link Tracks and Logs**:Rainbond provides full link tracking and log collection to understand the system and quickly locate specific request issues. + +7. **Observability**:Rainbond provides rich monitoring and measurement tools to help you monitor the performance of microservices in real time, identify problems and optimize them. + +Through Rainbond Microservice Mode, you can easily apply these microservice governance functions that significantly reduce the complexity of microservice development and management, while improving the reliability and performance of applications.This model simplifies governance tasks and makes them more friendly to developers. From 7f24f36d83715185a33252e428e7aaa1678180a2 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:51 +0800 Subject: [PATCH 109/398] New translations istio.md (English) --- .../current/enterprise/microservices/istio.md | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/microservices/istio.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/microservices/istio.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/microservices/istio.md new file mode 100644 index 0000000000..b4fc9e073f --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/microservices/istio.md @@ -0,0 +1,79 @@ +# Istio Microservice Governance Model + +## Traffic Graph + +When your application switches to Istio Microservice Governance mode, you will be able to easily access clear traffic maps to observe more clearly the distribution and direction of traffic.This allows you to learn more easily about internal traffic within the application in order to better optimize performance and troubleshooting. + +![流量图](https://static.goodrain.com/docs/enterprise-app/microservices/2.png) + +## Component Overview + +You can clearly view the component overview of the protocol, request speed, response time, and error rates to provide you with a detailed insight into the performance and health status of the application.This information helps you better understand the behavior of your app, especially in high-load or unusual circumstances. + +![组件概览](https://static.goodrain.com/docs/enterprise-app/microservices/3.png) + +Information on traffic size, throughput rates and response times is also available, leading to a more comprehensive understanding of the application's performance.This helps you identify bottlenecks and bottlenecks in order to optimize targeting. + +## Traffic Control + +The Istio Microservice governance model provides good parallel control to avoid sudden traffic disruptions.Below are some key traffic control features: + +### Limit Stream + +With a limited flow strategy, you can control the maximum number of requests per micro-service instance to prevent too many requests from causing performance declines or system crashes.This helps to maintain the stability of the system. + +We support HTTP stream below: + +1. **1MaxPendingRequests** (TTP/1 max waiting requests):controls the max number of requests pending connectivity in queue for HTTP/1.1 and HTTP2.Default value is 1024. + +2. **2MaxRequests** (TRTP/2 max requests):limits the maximum number of active requests sent to a destination, applicable to HTTP/1.1 and HTTP2.Default value is 1024. + +3. **maxRequestsPerConnection** (maximum number of requests per connection):determines the maximum number of requests that each connection can handle.Setting it to 1 will disable HTTP Keepalive, while default value is 0 for unlimited maximum 2^29. + +4. **maxRetries** (maximum number of retrips):specifies the maximum number of retries for all hosts in a cluster at a given time, default is 2^32-1. + +5. **idleTimeout** (idle timeout time):defines the upstream connection pool when idle timeout when no active request exists.If not set, this will be 1 hour by default.The connection will be closed after reaching this idle timeout, especially for HTTP/2 connections, and will be sent to ensure that the connection is safely closed. + +6. **h2UpgradePolicy** (TRTP/2 Upgrading Policy):specifies whether HTTP 1.1 is upgraded to HTTP 2 connections, operating according to the specified policy. + +7. **useClientProtocol** (using client protocol):, if set to true, will keep the protocol used by the client, rendering H2UpgradePolicy invalid, so client connection will not be upgraded to HTTP2. + +Our limit flow for the TCP is below + +1. **maxConnections** (max connections):controls the maximum HTTP1 or TCP connections to the target host.Default value is 2^32-1, allowing large numbers of connections. + +2. **connectTimeout** (long connection time):defines the timeout of TCP connection to make sure the connection is established.You can use different time units (e.g. 1 hour, 1 min, 1 seconds, 1 milliseconds) to set timeout length, default to 10 seconds. + +3. **tcpKeepalive** (TCP Keepalive):If this option is enabled, TCP Keepalive will be enabled on Socket to ensure that idle connections remain active for long periods of time. + +4. **maxConnectionDuration** (maximum connection duration):This rule is used to set the maximum duration of the connection, i.e. the time interval between the connection starting from creation.If not set, there will be no maximum duration.When the maximum duration is reached, the connection will be closed.The duration must be at least 1 m2. + +These configurations help you to fine-tune your network connection and request processing in order to meet your needs. + +![限流](https://static.goodrain.com/docs/enterprise-app/microservices/32.png) + +### Melt + +A melting breaker is a mechanism used to protect the system from continuous error requests + +1. **Separating error type**:deals with local failures and upstream service errors, respectively.This is useful for calculating unusual state based on local failures and upstream service errors. + +2. **Continuous error count**:you can set the continuous error count required to trigger exclusion action.For example, when a certain type of error occurs five times in a row, the exclusion triggers. + +3. **Exclude times**:defines the minimum time to exclude hosts, in order to prevent the system from frequently excluding hosts. + +4. **Maximum exclusion percentage**:provides for the maximum percentage of upstream service hosts to be excluded from the load equilibrium pool. + +5. **Minimum Health Perpercent**:only enables exception detection if the health host percentage in the load equilibrium pool is below the specified threshold. + +These settings help to protect the system from incorrect requests and enhance the system's availability and stability. + +A melting breaker allows you to quickly fail, and when a microservice has a malfunction or a decline in performance, it can automatically cut off requests for the service, thereby preventing the malfunction from spreading.This is a powerful miscarriage mechanism that increases the system's availability. + +## Security + +The Istio Microservice governance model provides powerful security features including authentication, authorization, and encryption to ensure secure communications between your microservices.This helps to prevent unauthorized access and data leakage, and enhances the security and credibility of the system. + +![安全性](https://static.goodrain.com/docs/enterprise-app/microservices/7.png) + +The Istio Microservice governance model provides you with greater control, observability, and security, which helps to better manage and optimize your microservice architecture.It simplifies the governance task and provides a wealth of functionality and insights that will make it easier for you to cope with the complex micro-service environment and improve the stability and performance of the application.Switch to Istio mode to make governance simpler so you can better monitor and control your microservice applications. From 4e7859d68f5bcdea943f3e56cf15df95de86cdc3 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:53 +0800 Subject: [PATCH 110/398] New translations springcloud.md (English) --- .../enterprise/microservices/springcloud.md | 175 ++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/microservices/springcloud.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/microservices/springcloud.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/microservices/springcloud.md new file mode 100644 index 0000000000..fdbd7ec592 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/microservices/springcloud.md @@ -0,0 +1,175 @@ +# Spring Cloud Microservice Governance Mode + +In constructing and managing distribution systems, Spring Cloud is a widely used microservice framework that provides a powerful set of tools and libraries for the development, deployment and management of cloud origin applications. + +The construction and maintenance of distribution systems has become more complex with the emergence of micro-service structures.In order to meet this challenge, **Rainbond launched a Spring Cloud governance model** that provides developers with a powerful set of tools that make it easier to build, deploy and manage microservices and make it easier for developers to construct stable, scalable and high-performance microservice applications. + +## Main features + +### Registration and discovery of services + +With Rainbond Spring Cloud governance mode, components can automatically register themselves with the registration center, without developer configuring the registration center address.This mode enables microservices to dynamically identify and communicate without requiring hard-coded service addresses.When a new microservice instance starts or when old instance is offline, the registered centre automatically updates the list of available instances of service to ensure that available services are always found. + +### Data control + +In order to prevent malfunctioning microservices from having an impact on the system, we allow the developer to define circuit breakers, which can quickly melt downgrade when a microservice fails, or delays, in order to maintain system availability.This is a powerful mechanism for tolerance and helps to prevent the proliferation of failures. + +- **Limit**:controls every microservice instance with **max QPS** or **Maximum threads**. : prevents too many requests from reducing performance or failing. + +- **Melting breaking**:melting breakers automatically support multiple smelting strategies based on **abnormal proportions,** \*\*\*/ or **response time**, early discovery, smelting service and avoiding the collapse of the entire business system by a service provider. + +![限流](https://static.goodrain.com/docs/enterprise-app/microservices/11.png) + +- **Observability** + +![可观测](https://static.goodrain.com/docs/enterprise-app/microservices/12.png) + +### Configuration management + +Allows you to configure centralize management in order to easily modify and deploy configurations.It supports distribution configuration and version control, ensuring that microservices are properly configured in different settings.This makes maintenance and update of the application configuration easier. + +### API Gateway + +Rainbond provides a powerful API gateway, allowing developers to define routing rules, request forwarding, and filters.This helps to centralize the management of microservice entry points and provides security, surveillance and traffic control.The API gateway can serve as the front end of the microservice, implementing the requested route, load balance and security validation. + +- **Visualization**:simplifies the administration with visualizable interface configuration routing rules. + +![可视化配置](https://static.goodrain.com/docs/enterprise-app/microservices/9.png) + +- **Profile Configuration**:meets more complex routing requirements through custom routing rules for configuration files. + +![配置文件配置](https://static.goodrain.com/docs/enterprise-app/microservices/10.png) + +### Monitoring and tracking + +Rainbond provides a link tracking capability that enables developers to monitor microservices performance in real time, identify problems and troubleshooting.This is essential for maintaining and optimizing microservice applications.By tracking the request path and performance data, you can better understand the interactions between microservices and thus improve the reliability of the system. + +![追踪](https://static.goodrain.com/docs/enterprise-app/microservices/13.png) + +### Warnings + +Rainbond provides a strong warning capability to trigger alerts based on performance indicators, log data and anomalies.This has made it possible to identify and address problems in a timely manner and has helped to ensure the stability and high availability of the system. + +- **Warning Configuration**:By configuring warning rules, you can define when a warning is triggered.Support multiple conditions such as total requests, average response time, successful requests, unusual requests, passages, rejections, etc.And you can configure trigger alert messengers, warn recipients, warn receiving groups and warn receiving channels. + +- **Warning List**:views and manages triggering warnings to take appropriate measures. + +![告警列表](https://static.goodrain.com/docs/enterprise-app/microservices/31.png) + +With Rainbond Spring Cloud governance mode, you can build, manage, and monitor microservice structures easily, improving the availability and performance of applications.This governance model provides strong support for modern, cloud-born application development, ensuring that applications maintain a high level of reliability in different contexts. + +## Manual + +### 1. Determine your spring cloud version consistency + +您必须确定您的项目的版本一致性,否则将可能部分功能失效,例如熔断限流等,如果您不清楚你的版本,您可以查看:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E +如果不确定,您可以使用如下版本。 + +```yaml +Hoxton.SR12 +2.2.7.RELEASE +2.3.12.RELEASE +``` + +### 2. Add your gateway project to dependencies as follows. + +- sentinel-gateway limit dependency + +```yaml + + com.alibaba.cloud + spring-cloud-alibaba-sentinel-gateway + +``` + +- nacos Remote Configuration Dependencies + +```yaml + + com.alibaba.cloud + spring-cloud-starter-alibaba-naco-config + +``` + +- sentinel limit rules perpetuate nacos-based dependence + +```yaml + + com.alibaba.csp + sentinel-database-nacos + +``` + +- Nacos Registration Center Dependencies + +```yaml + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacs-discovery + +``` + +### Increased reliance on generic projects as follows + +- Nacos Profile Dependencies + +```yaml + + com.alibaba.cloud + spring-cloud-starter-alibaba-naco-config + +``` + +- sentinel limit rules perpetuate nacos-based dependence + +```yaml + + com.alibaba.csp + sentinel-database-nacos + +``` + +- Sentinel Limit Client Dependencies + +```yaml + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + +``` + +- Nacos Registration Center Dependencies + +```yaml + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacs-discovery + +``` + +### 4. Switch governance mode + +Go to app view, find governance mode, tap to toggle.Then select the spring cloud governance model. + +![img.png](https://static.goodrain.com/docs/enterprise-app/microservices/QQ20231108-101133%402x.png) + +Tap OK to toggle and rebuild all java projects under this application. + +Verify that the +click on the service to govern, you can see that the traffic chart was generated.Proof that you have successfully switched to spring cloud mode of governance. + +![流量图](https://static.goodrain.com/docs/enterprise-app/microservices/20.png) + +### Configuration parameters + +We have provided a rich configuration of parameters to support a limited flow strategy under different scenarios.Below are some common flow configuration parameters. + +1. **Stream Rule Parameters**: + - **resource(resource)**:Resource name that can be any string, generally protected resource path or method. + - **grade(Limit Threshold)**:Flow Rule Type, including QPS Direct Limit, Constant Thread Direct Stream etc. + - **count(limit flow threshold)**:limit flow threshold type is QPS threshold; limit flow threshold type is a combined thread threshold. +2. **Downgraded rule parameter**: + - **resource(resource)**:Name of the downgraded resource, corresponding to the resource in the streaming rule. + - **grade (downgrade threshold type)**:The type of rule to downgrade, including slow call ratio, abnormal ratio, etc. The following primary:`average response time downgrade`, `abnormal scale downgrade`,\`abnormal number downgrade\`\` + - **count(downgrading threshold)**:The downgrade threshold type is RT and indicates the average response time threshold; grade is an abnormal proportion threshold; and the downgrade threshold type is an exception value. + - **timeWindow(降级的时间窗口,单位为秒,默认值为 60)**:降级的时间窗口,表示滑动窗口的长度。 From 92fceb8057d9cbe4f943e6c601b3afdd10865608 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:54 +0800 Subject: [PATCH 111/398] New translations alarm.md (English) --- .../current/enterprise/observability/alarm.md | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/alarm.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/alarm.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/alarm.md new file mode 100644 index 0000000000..bacc83c6df --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/alarm.md @@ -0,0 +1,63 @@ +--- +title: Monitor Alarm +description: Describe how to configure the alarm strategy. +keywords: + - Monitor Alarm + - alarm +--- + +The monitoring and alarm function of the Observability Centre, which focuses on real-time monitoring and early warning of services, enables timely detection of system and application components, services, etc. and avoids the expansion of failures and their impact on operations. + +## Main features + +Multiple data sources, such as Prometheus and Elasticsearch, can be connected to capture monitoring data. + +Dashboard is a visualizable interface that displays data from various indicators and can be displayed on the interface by setting up icons and panels based on demand. + +Alarm rules can be configured with Alerting features. Alarm rules can be created in a Dashboard panel and alarm conditions and trigger when alarm rules are created.You can set a number of ways to alert you by triggering emails, nails, slack notifications, Webhook etc. + +After creating an alarm rule, test and optimization will be required to test the trigger of the alarm rule by manually modifying data, simulating anomalies, and optimizing and adjusting the rules + +### Role + +Data visualization:can visualize the monitoring data from various data sources and provide users with a clear picture of the status and changing trends of the monitoring indicators. + +A variety of data sources support:support monitoring of multiple data sources, including time series data, log data, relational databases, etc. to meet the monitoring needs of different operations. + +Flexible Alarm Settings:are flexible and can be set according to various conditions and rules, such as thresholds, time slots, data aggregation, etc. and can be handled differently according to different alert levels. + +Integration with:allows you to integrate multiple alarm tools and services and to make it easier for users to choose how you want to make their own alerts. + +Automated handling:alarms can automatically trigger some processing actions such as automatic restart of services, messenger notifications, etc. to reduce the burden of manual intervention and increase the efficiency of troubleshoot. + +## Manual + +### Set alarm rule + +1. Set query and warning conditions, select data sources, add multiple query conditions and expressions, view results by preview or running. + +2. Alert assessment behaviour, applicable to each rule within a group, can override the time interval between existing alarm rules.Configure alert status without data and mishandling. + +3. Adds detailed information to warnings, writing summaries and tabs to help users manage alerts better. + +4. Handles alerts by adding some custom tags that link alerts to contact points with matching tags and quiet alarms instances. + +### Notification Sent + +1. Select the alarm manager, add the template and save it in the message template. For more information about the template, see [模版文档](https://grafana.com/docs/gravana/latest/alerting/fundamentals/alert-rules/message-templating/) + +2. Create a contact point to define where a notification will be sent and there are a variety of contact types, which mainly describe how to use email and nails to receive alarms messages. + + - Pick a nail, you need to configure a pegged custom robot to get the POST address as the requested URL. The configuration method is available at [钉钉自定义机器人使用](https://open.dingtalk.com/document/orgapp/custom-bot-creation-and-installation) + + - Please select an email address in the address options and enter multiple email addresses using the ";" separator. + + Test can be used to check if the alarm takes effect + +### Notification Policy + +1. Configure the base policy. All alerts will be transferred to the default contact unless additional matchers areas are set up in a particular route. + +2. Configure specific routes to send specific alerts to selected contact points based on matching conditions. + +3. Silence time is a specified time interval that can be referenced in the notification strategy tree in order to silence a specific notification strategy at a given time in a day. From 9e745178bf2347722f256318d6e316cfb2738448 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:55 +0800 Subject: [PATCH 112/398] New translations dashboard.md (English) --- .../enterprise/observability/dashboard.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/dashboard.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/dashboard.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/dashboard.md new file mode 100644 index 0000000000..394d9e0c32 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/dashboard.md @@ -0,0 +1,94 @@ +--- +title: Observation Centre +description: Describe the functionality and use of the observatory panel. +keywords: + - Observation Centre + - Observation center +--- + +The observatory is a set of tools and data visualization panels for surveillance, debugging and analysing infrastructure and application services operating on the Kubernetes cluster and rainbond platforms.It provides a number of key features, such as:resource monitoring, traffic analysis, cluster management, cluster patrols, surveillance alerts, etc., which allow for more effective management and optimization of applications deployed in clusters. + +## Main features + +Resource monitoring of clusters and nodes enables the collection and analysis of logs, the tracking and diagnosis of performance indicators for applications and infrastructure, the provision of a wide range of tools to identify clustering issues, better manage and optimize clusters, and improve system stability. +This is mainly divided into clusters of overview information and cluster details. + +### ClusterIntegration|Cluster overview + +Resource monitoring data in clusters and platforms, traffic maps and access to large screens and cluster management features are shown. + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/observability/observability-all.png) + +#### Resource Monitor + +- The total usage of CPU, memory and disk in the Kubernetes cluster makes it easier to monitor cluster performance, prevent problems from occurring, plan resources, save costs and improve cluster reliability and availability. +- The number of teams, applications and instances in the statistical rainbond platform is intended to understand the current resource usage of the platform and to provide a reasonable estimate and allocation of resources. + +#### Traffic profile + +- Identify hotspot:service traffic maps to help us identify service hotspots, the most commonly used.These hot spots may lead to performance problems that require special attention. +- Optimizing performance:by analysing service flow profiles, we can find out the bottlenecks of the service and understand the bottlenecks in the service so as to optimize its performance in a targeted manner. +- Planned capacity:service traffic map helps us understand the usage of the service and helps us plan capacity to ensure that the service can withstand future load pressures. + +#### Other features + +- The provision of large and system screens is mainly intended to view the real-time usage of clusters and platforms, to clarify the use and distribution of resources and to help sort out performance issues, while cluster management can operate directly on target clusters, including cluster information editing and some movement of nodes, labels, spoils, etc. + +### ClusterIntegration|Cluster details + +Demonstrate the details of the cluster, such as health indicators, component health, resource use, cluster networks, nodes, etc. + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/observability/observability-one.png) + +#### Health indicators + +- Health indicators reflect the integrated health status of the cluster by checking k8s cluster, rainbond services, operating components, configuration issues, and mirror gaps. + +#### Component Health + +- If cluster performance problems occur in relation to networks, memory, disks, etc. they may affect many of the components operating in the cluster and can be observed through the total component health. + +#### Resource Usage + +- Resource display of CPU and usage of memory can affect the performance and stability of the cluster, and applications deployed in the cluster may experience a decline in performance and may cause clusters to collapse. + +#### Network + +- The stability of cluster networks is also important and has a significant impact on service communications, nodal communications and cluster communications, reflecting usage through network routes. + +#### Node Status + +- The performance of each node is also critical in the cluster, by monitoring the use of resources for each node, including CPU, memory, storage and status.A better understanding of the load at the nodes would optimize resource movement and management and increase resource utilization and efficiency and allow each node to function properly. + +## Manual + +The analysis is carried out through indicators and data on the health status and use of resources by clusters and platforms, the rational allocation of resources and the use of multiple tools to ensure the stability of clusters and operations. + +### ClusterIntegration|Cluster overview + +1. Counted the number of clusters and the total resources used; e.g. CPU, memory, disk. + +2. Shows the current usage of the platform, such as the number of teams created, the number of apps deployed, the number of instances running. + +3. Some other feature entrances are provided, such as large application screens, large system screens, cluster management, etc. + +- The application of large screens and system large screens integrates visualization monitoring systems and mainly provides real-time statistics of resource data from clusters and platforms. +- The cluster management entrance can operate directly on the target cluster, such as the movement of nodes, nodes, or the addition or deletion of labels. + +4. The traffic structure map is mainly used to display the traffic and distribution of the traffic in access, with a link to \`domain name->app->team->cluster. + +### ClusterIntegration|Cluster details + +1. Show detailed resource usage for each cluster, such as nodes, components, component health, network, CPU and memory usage ratio. + +- High CPU and memory ratios affect cluster performance and stability, and applications deployed in clusters are less performing and may cause nodes to collapse; +- The number of component anomalies is generally related to the services and configuration deployed and, if the number of anomalies is high, it is not excluded that there is a problem with the cluster; +- Health indicator data are derived from cluster inspections and are broken down into normal, warning and anomalies based on the results of the inspection; the percentage of normal data is displayed here.If you want to get detailed inspection information, you can click on the right cluster check to view. +- The network compromise maps reflect the bandwidth of the cluster network and vary according to work load and cluster size. It is important to note that network bandwidth is not the only factor affecting cluster performance.Other factors, such as delays, loss of data packages, and congestion, also affect the performance of clusters.If you need to optimize the network performance of clusters, you should consider using high-performance network infrastructure, such as dedicated network interface cards (NIC) or network switches with high-speed backboard.In addition, you should configure your network to prioritize traffic between nodes and minimize congestion. + +2. Shows resource usage of all nodes in a cluster, e.g. CPU, memory, partitions, disks, connections, TCP_tw, bandwidth, etc. + +3. A number of other feature portals are provided, such as link tracking, global logs, cluster monitoring, node monitoring, component monitoring, service monitoring, surveillance alert, cluster inspections, etc. + +- Cluster data are visualized mainly through Grafana. +- Cluster tours are primarily conducted for K8s cluster inspections, Rainbond service inspections, operating inspections, configuration inspections, and safety patrols. From caf9ad3fabcfa85638a90e22cf0c024832748dc6 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:57 +0800 Subject: [PATCH 113/398] New translations global-logs.md (English) --- .../enterprise/observability/global-logs.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/global-logs.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/global-logs.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/global-logs.md new file mode 100644 index 0000000000..7cb0ba142a --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/global-logs.md @@ -0,0 +1,33 @@ +--- +title: Global Log +description: Describe the functionality and use of global logs. +keywords: + - Global Log + - Global logs +--- + +## Overview + +The main purpose of the global log is to help developers and operators better understand and analyse application log data in order to diagnose and solve problems more quickly. + +### Main features + +Global log main uses include monitoring applications, debugging and troubleshooting, security audits, optimizing application performance, etc. + +#### Monitor App + +- By displaying application logs, developers can help monitor application performance and behaviour, such as request delays, throughput, error rates, etc.These indicators can help developers identify potential problems in a timely manner and address them. + +#### Debug and troubleshooting + +- Global logs can help developers quickly identify and position errors and anomalies in their applications in order to perform troubleshooting fasterFor example, developers can use Grafana to display recent error logs in order to identify which components or services are problematic. + +#### Security audit + +- Global logs can help security teams monitor the security of applications, such as checking if there are unauthorized access attempts, unusual requests, etc.By displaying application logs, Grafana helps the security team better understand the behavior of the application and detect potential security problems. + +#### Optimize application performance + +- By displaying application logs, developers can be helped to identify performance bottlenecks and bottlenecks in applications in order to optimize application performance. + +### Manual From 0e9656d1f647a2b19c476a1befeff47d75542af2 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:23:58 +0800 Subject: [PATCH 114/398] New translations index.md (English) --- .../current/enterprise/observability/index.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/index.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/index.md new file mode 100644 index 0000000000..9ac53411ae --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/index.md @@ -0,0 +1,18 @@ +--- +title: Observability Centre +description: Rainbond Observability Centre +keywords: + - Rainbond Observable Centre + - Rainbond Observability +--- + +The observability centre is designed to provide comprehensive monitoring and observability support to ensure the stability, performance and safety of the system.Observability centres provide a centralized platform for enterprises to enable users to monitor in real time the operational status and key indicators of their systems.It includes such features as observational panels, large screens, global logs, alerts, etc. to help users quickly identify and resolve potential problems and improve the reliability and availability of the system. + +In this section, you will learn about the functions and advantages of the various components of the observational centre, how to configure and use these features, and best practices and suggestions. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 1bbda4345ceee5b93a52529327fbe390fdb66f0c Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:00 +0800 Subject: [PATCH 115/398] New translations large-screen.md (English) --- .../enterprise/observability/large-screen.md | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/large-screen.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/large-screen.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/large-screen.md new file mode 100644 index 0000000000..ffb13bfeef --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/observability/large-screen.md @@ -0,0 +1,97 @@ +--- +title: Monitor Large Screen +description: Describe the monitoring and use of the monitoring screen. +keywords: + - Monitor Large Screen + - Rainbond large screen monitor +--- + +Large-screen monitoring is a resource data analysis tool that is primarily used for real-time monitoring of cluster and platform resources and visualization of data.The main elements include cluster information, peer-to-peer information and platform information to help us identify problems more efficiently and to maintain the stability of clusters and platforms. + +## Main features + +Large-screen monitoring applications are divided into two main modules for resource monitoring and application monitoring. Tap the header title to toggle. + +It is important to monitor resources in the Kubernetes cluster because it can help people to understand the use of resources across clusters and nodes or containers.Focusing on the use of resources, such as CPU, memory and other resources, can better manage and optimize the performance, availability, efficiency and cost of clusters and improve the stability and sustainability of the system. + +For application monitoring, there is a better understanding of the use of resources in each app, the development of better management services for unusual services, quick positioning of which nodes are running in clusters, and the teams and applications in the platform. + +### Resource Monitor + +![description](https://static.goodrain.com/docs/enterprise-app/large-screen/resource-monitor.png) + +#### Use of cluster resources + +- Improved system performance and stability:if nodes or container resources in the Kubernetes cluster are overoccupied, this may cause system performance to decline or container crash.By monitoring the use of resources, these bottlenecks can be identified in a timely manner and measures taken to avoid system failures and failures caused by inadequate resources. +- Optimize resource movement and distribution of:Kubernetes to deploy and allocate resources through the Resource Manager, ensuring that sufficient resources are available for each container or node.By monitoring the use of resources, such as CPU, memory and others, a better understanding of resource requirements for each container or node, and thus more efficient resource movement and allocation. +- Avoidance of resource waste:can lead to waste of resources and affect the efficiency and scalability of the system.By monitoring the use of resources, it is timely to identify which nodes or containers are wasting resources and to take measures to optimize their use and avoid unnecessary waste of resources. +- Cost-saving:monitoring of resources can help you better understand the system's use of resources and thus plan and expand them according to actual needs.This helps you avoid unnecessary waste of resources while saving costs. + +#### Node Status + +- There are multiple types of nodes available in Kubernetes and each node type has specific uses and functions.For different clusters, the type and number of nodes will vary, and here we are primarily concerned about the normal state of the nodes. + +#### Network + +- Containers and services in the Kubernetes cluster often need to communicate through the network, and bandwidth is a key factor influencing the speed and delay of communication.Monitoring network bandwidth allows timely identification of network bottlenecks and network performance problems and measures to optimize network performance to ensure network stability and rapid response. + +#### Use Node Resource + +- Incident detection and exclusion of:each node plays a very important role in the Kubernetes cluster, which may affect the stability and availability of the entire cluster if a node fails.By monitoring the status of each node, troubleshooter can be identified in a timely manner and measures are taken to repair or replace nodes to avoid the proliferation of failures and to affect the stability of clusters. +- Resource planning and management:each node assumes some resource responsibility in the Kubernetes cluster, including CPU, memory, storage, and status.Monitoring the use of resources at each node allows for a better understanding of the load of nodes, thereby optimizing resource planning and management and improving resource utilization and efficiency. +- Incident prediction and optimization of:, by monitoring the state of each node and the use of resources, provides a better understanding of the health status and performance performance of the node, thereby predicting potential failures and performance bottlenecks, taking timely measures to avoid failures, or optimizing performance of nodes and improving the reliability and performance of the system. + +#### Run instance + +- Watch the example running on each node provides insight into the use of its own resources, the status of the node in which it stands, quickly locate the platform's team and applications, perform troubleshoot analysis and performance adjustment, and maintain the stability of operations on the platform. + +### App monitoring + +![description](https://static.goodrain.com/docs/enterprise-app/large-screen/app-monitor.jpg) + +#### Traffic profile + +- Identify hotspot:service traffic maps to help us identify service hotspots, the most commonly used.These hot spots may lead to performance problems that require special attention. +- Optimizing performance:by analysing service flow profiles, we can find out the bottlenecks of the service and understand the bottlenecks in the service so as to optimize its performance in a targeted manner. +- Planned capacity:service traffic map helps us understand the usage of the service and helps us plan capacity to ensure that the service can withstand future load pressures. + +#### Apply resource sorting + +- It is easy to find out which services consume excessive memory resources so that we can detect and address excessive memory usage in a timely manner. +- We can better understand the use of resources for each service in the cluster so that we can better use cluster resources by making better decisions on resource allocation. +- The memory of services can be found in time to exceed their limits so that we can take measures to avoid service failures due to insufficient memory. + +#### Sort team resources + +- Better understanding of team memory usage and whether team resource limits are met or exceeded. +- The strength of the team and the number of applications and components operated by the team are higher, and the use of resources should be rationalized. + +## Manual + +Access to large screens to show groups and platforms in real time can be used to analyse their performance, health and resource use according to indicators. + +### Resource Monitor + +1. At the top of the page, the total number of clusters and the total usage of all cluster resources are showcased with the total number of components deployed in the platform, while the total number of anomalies is the number of problems common to the cluster, such as insufficient memory disk, unserviceable network and excessive number of processes, with a focus on the total number of exceptions. + +2. The cluster information overview shows details of a particular cluster, mainly nodes, services, resource profiles, resource allocations, networks, nodes information, instance information, etc. + +- Nodes focus on the number of unusual nodes. +- The number of services is the number of components deployed in the platform, differentiated by operation, closure and anomaly, which is usually due to problems or problems with the deployment of services. If there is a sudden increase in the volume, it is likely to be the result of clustering issues, with a focus on the number of exceptions. +- The resource profile shows the total CPU, memory, and storage for this cluster. +- Allocation of resources to showcase the distribution rate of CPU, memory and storage, overweight CPU and memory shares affect the performance and stability of the cluster, and application performance is reduced for deployment in the cluster, which may also cause nodes to collapse; +- The network compromise maps reflect the bandwidth of the cluster network and vary according to work load and cluster size. It is important to note that network bandwidth is not the only factor affecting cluster performance.Other factors, such as delays, loss of data packages, and congestion, also affect the performance of clusters.If you need to optimize the network performance of clusters, you should consider using high-performance network infrastructure, such as dedicated network interface cards (NIC) or network switches with high-speed backboard.In addition, you should configure your network to prioritize traffic between nodes and minimize congestion. +- The following nodes show all the nodes in this cluster, including the use of resources per node, such as CPU nuclei, CPU usage, total memory, memory usage, root partition, docker partition, state; where excessive use of resources affects the performance and stability of the current node, attention needs to be paid to closing and releasing unnecessary resources. +- The instance section shows the number of instances running under a particular node, including the use of resources for each instance and the team and application to which the instance belongs on the platform. + +### App monitoring + +1. The total number of platform resources is summarized at the top of the page, such as number of examples, number of components, applications, number of teams and nodes. + +2. The traffic structure diagram is mainly used to display traffic flow and distribution of access traffic, with links to \`domain -> app -> team -> cluster. + +3. Top left corner selects the team to view app information, default show all team: + +- Apply the number of accesses and real time memory in the top:statistical platform; +- The number of people per team and the number of applications in the queue:statistical platform; +- Team activity:shows the action log in the platform. From a1d8eddf23ff5b219cc361412b5ba6ca334e1486 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:01 +0800 Subject: [PATCH 116/398] New translations offline.md (English) --- .../current/enterprise/offline.md | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/offline.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/offline.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/offline.md new file mode 100644 index 0000000000..44876b0f82 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/offline.md @@ -0,0 +1,63 @@ +--- +title: Offline Environment Support +description: Introduction to the offline environmental deployment and use on the platform +--- + +This document will highlight the functionality support of Rainbond in an offline environment.Particular attention was paid to the deployment of Rainbond in offline environments and the provision of an integrated development environment.These features enable Rainbond to maintain efficient and reliable cloud application management and delivery in an offline environment. + +## Main features + +In an offline environment, Rainbond Enterprise Edition supports the graphical installation of the Kubernetes cluster and Rainbond platforms, and provides an integrated development environment that helps firms to quickly build, deploy and deliver cloud-origin applications. + +### Offline environment deployment + +Rainbond Enterprise version provides off-line environmental deployment features that allow users to easily deploy Kubernetes clusters and Rainbond in offline environments.The Enterprise version will provide a full offline installation package that includes all dependencies and mirrors from Rainbond and Kubernetes. + +Users only need to download offline installation packages and transfer them to the target environment.After extracting the installation package in the target environment, users can deploy the Kubernetes clusters and platforms directly through the interface between the user interface of Rainbond, including configuration of cluster information and initialization of settings.During deployment, the process log is displayed in real time on the interface and can see the startup status of Rainbond components. + +### Integrated development environment + +Rainbond provides an integrated development environment in which developers can develop, construct and deploy applications and deliver on the Rainbond platform.The main features include offline source building, offline mirror deployment, offline Helm Chart deployment and offline package delivery. + +#### Offline source build + +Rainbond Enterprise version addresses users' needs to process language dependencies and build tools for downloading and compiling in offline environments.In Java, Python, Node.js or other programming languages, Rainbond can automatically manage and handle the dependencies and tools it needs. + +The user simply provides a Git repository address or a source compression, and Rainbond can automatically identify and execute the build process.This means that users do not need to fear how to acquire and configure building tools in an offline environment, and Rainbond will address these issues automatically. + +#### Image deployment offline + +In addition to the source build, Rainbond also supports the user directly uploading the Docker image package to deploy the application.This is useful for applications that have built mirrors in other environments and can be exported directly by users as compressors and then uploaded to the Rainbond platform and deployed directly in offline environments.Simultaneous uploaded mirrors are cached by Rainbond which means users can reuse them in offline environments without repeating them. + +#### Helm Chart deployment offline + +For users using Helm as an application deployment and management tool, Rainbod provided the functionality to upload the Helm Chart package directly.Users can upload prepackaged Helm Chart to the Rainbod platform, where they can deploy and manage one click in an offline environment.For images required in Helm Chart users can upload mirrors directly to the platform.When deployed, the platform automatically identifies all mirror addresses that require components.You can then select the appropriate alternative deployment directly from the uploaded mirror. + +## Manual + +### Offline environment deployment + +1. Preparing for offline installation package:to download the Rainbod offline installation package that contains all necessary dependencies and mirrors for the Rainbod platform and Kubernetes. +2. Processing offline installation package:transmits downloads to the offline environment where they are deployed and unpack the installation on the server in the offline environment to ensure that the extracted file is accessible on the server. +3. Rainbod Console Configuration: Start Rainbord ConsoleEnter the IP address of the cluster node and execute the installation script on the server. +4. Start deployment process:in console.Track log output during deployment until deployment is complete.Once completed, the Kubernetes cluster and Rainbond platforms will be automatically deployed on the server. + +### Integrated development environment + +#### Offline source build + +1. Build:from the source code in the workspace by selecting a new component from the source code to fill the source file or Git repository address into the platform. +2. Initiate build process:platform will automatically extract uploaded files or pull code from offline Git repository.Once the code is replaced, the platform automatically identifies the language of the code. Users can configure the building parameters and start the build process. +3. Build process:platforms are built according to the respective language and build parameters.A build log is also provided to enable users to detect problems in offline construction in a timely manner. + +#### Image deployment offline + +1. Uploading image:selects a new component from the mirror in the workspace to upload a packaged docker image file to the platform. +2. When deploying the app:is uploaded, all mirrors in the image package will be displayed below.A user can select one of these mirrors as a mirror of the application. Once finished, click the Deploy button to start deploying the app. +3. Configure the running parameter:platform automatically recognizes the environmental variables, port information, etc. that will run the application once you configure the running parameters and environment variables as needed. + +#### Offline Helm Chart deployment + +1. Upload Helm Chart Pack:from Yaml and Helm to upload the Helm Chart Pack to the Rainbod platform by selecting new components in the workspace. +2. Select and deploy:to upload the Helm Chart pack to start the deployment process.The platform automatically identifies all mirrors in the Helm Chart package, and users can choose to replace local uploaded mirrors as an application mirror. +3. Once the:configuration has been replaced, it can be configured based on the values.yaml file displayed on the platform, and then click the Deploy button, to start deploying the app. From 5a8cc504faabb67b43f8b8bf1df271bf5bf56ef4 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:02 +0800 Subject: [PATCH 117/398] New translations gpu.md (English) --- .../current/enterprise/other/GPU.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/GPU.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/GPU.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/GPU.md new file mode 100644 index 0000000000..f1397ca13b --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/GPU.md @@ -0,0 +1,32 @@ +--- +title: GPU shared support +description: GPU share +keywords: + - GPU Sharing + - GPU share +--- + +GPU shared support means that multiple users can share the same GPU resource, not that each user needs separate GPU resources.This sharing support is usually implemented by GPU virtualization technology that divides a physical GPU into multiple virtual GPU, each of which can be assigned to a different user. + +## Main features + +### Cost savings + +- Multiple users can share the same GPU, thereby saving hardware costs while reducing energy consumption and maintenance costs. + +### Improved utilization of resources + +- If a GPU is used by only one user, the GPU will be idle for most of the time.But if multiple users share the same GPU, its utilization will increase and better meet the needs of more than one user. + +### Improve Performance + +- Since GPU virtualization technology allows a physical GPU to be split into multiple virtual GPU, each virtual GPU can be assigned to a different user.This means that different tasks that operate on the same GPU can be carried out in parallel, thus enhancing overall performance. + +### Easy to manage + +- The GPU virtualization technology provides more flexible resource management, and administrators can assign different virtual GPUs to different users and can increase or reduce the number of virtual GPUs at any time depending on the user's needs.Better monitoring and management tools could also be provided to facilitate the management and maintenance of GPU resources by administrators. + +## Manual + +To use GPU in a cluster, some additional configuration actions are required, first to install GPU drives and GPU support components at each node when Docker or other containers are running, and then to add GPU resources to the resource pool in the Kubernetes cluster.Next, you need to specify GPU requests and restrictions in the Pod definition file of the container, so that Kubernetes can manage and control the use of the container's GPU resources. +Using the Rainbond platform allows resource management directly via the visualization community of the GPU, supports the components setting up the required GPU for their intelligent allocation. From 169a7c51ef45531149436289aa7086af3b25041a Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:04 +0800 Subject: [PATCH 118/398] New translations file-manage.md (English) --- .../current/enterprise/other/file-manage.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/file-manage.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/file-manage.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/file-manage.md new file mode 100644 index 0000000000..972e898a74 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/file-manage.md @@ -0,0 +1,65 @@ +--- +title: Storage file management +description: Shared storage of visualized management components. +keywords: + - Storage file management + - file size +--- + +The operations to be deployed in the cluster require data permanence and to manage the data will require the operation of the mounted storage directory, the cumbersome process, the storage of files will visualize the files directory, which can easily manage the files in the storage and enhance efficiency. + +### Main features + +Main features include file directory display, support for uploads, downloads, etc. + +#### Upload + +- Services deployed to the platform. Manage mount storage on the server is troublesome if you want to add profiles or other files related to the service in the container. Here you can directly select a directory where local files can be saved to the mount store by uploading them directly via the upload. + +#### Download + +- If some files in mount storage want to reuse, or want to view specific information, they can be saved directly to local location via download features. + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/file-manage/file-manage.png) + +#### Upload record display + +- If it is feared that uploading the file will cause a security risk to the mount storage, the upload information will be displayed in the component operation record after it is done. + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/file-manage/upload-event.png) + +## Manual + +### Use of special storage + +For some special storage, the directory structure will differ, so the system will not be able to directly find mount storage paths, so some configuration is needed to better use. + +#### Aliyun Efficient Cloud + +If the storage type is an Aliyun efficient cloud, the block storage path needs to be mounted in the rbd-node component as follows: + +1. Edit action rbd-node resource + +`kubtl edit rbdcomponent rbd-node --n rbd-system` + +2. Configure volume and volumeMounts + +```yaml +volumes: + - hostPath: + path: /var/lib/kubelet/stages + type: DirectoryOrCreate + name: blockstorage +volumeMounts: +- mountPath: /var/lib/kubelet/stages + name: blockstore +``` + +3. For hostPath in volumes field, path to mount according to different types of clusters (kubeletroot path) + +| Cluster type | Mount Path | +| ---------------- | -------------------------------- | +| Regular clusters | /var/lib/kubelet/methods | +| Aliyun ACK | /var/lib/container/kubelet/pods/ | + +Use the `kubelet --root-dir=/var/lib/kubelet/pods` command to specify the root path of kubelet From 7ffa0b048f0fc0e4348c5ccb33e249370368272a Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:05 +0800 Subject: [PATCH 119/398] New translations index.md (English) --- .../current/enterprise/other/index.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/index.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/index.md new file mode 100644 index 0000000000..d3311140b4 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/index.md @@ -0,0 +1,16 @@ +--- +title: Other features +description: other function +keywords: + - Other features + - other function +--- + +The enterprise version also contains multiple optimization features, such as team quota limits, component storage visualization management, GPU sharing support, etc. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 47f0f1149b4e4ff30a96aa15a0c695d681c328c9 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:06 +0800 Subject: [PATCH 120/398] New translations team-resource.md (English) --- .../current/enterprise/other/team-resource.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/team-resource.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/team-resource.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/team-resource.md new file mode 100644 index 0000000000..642b8eb536 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/other/team-resource.md @@ -0,0 +1,46 @@ +--- +title: Group Resource Quota +description: Provide information on how to allocate resource limits to teams. +keywords: + - Group Resource Quota + - Team Resource Quota +--- + +In the use of the rainbond platform, in order to better manage and allocate resources, resource quota features have been added at the team level, setting the CPU or memory size that the team can use. + +## Purpose + +The establishment of resource quotas for each team ensures that the team can only use the resources allocated to it, thereby preventing interaction among the various teams before doing so. + +In some cases, you may wish to limit the total amount of resources used in the entire cluster. By setting a resource quota for the team, you can ensure that each team does not exceed the amount of resources it is allowed to use, to control the use of the entire cluster. + +If an application or service in a team takes too much resources, it may result in other team apps or services not working properly.By setting team quotas, it is possible to ensure that all components do not take up resources beyond the limit, thus preventing any impact on other team +. + +## Main features + +Controlling resources using:namespace quotas can help admins control the amount of resources used in specific namespace to avoid excessive use leading to failures or crashes in an application or system. + +Allocation of:namespace resource quotas ensures that every app in a namespace has enough resources to run and limits its use when resources are not available. + +Limiting resources away from:in multi-tenant settings, naming space resource quotas can limit tenant access to system resources and reduce resource leakages due to application failures or malicious behaviour. + +Optimizing the use of:to allow managers and developers to better understand the use of the application resources and to optimize the use of the application resources by allocating appropriate resource quotas. + +The following description of how to configure and after the configuration + +## Manual + +1. `Platform Manager -> Project/Team`, select team that needs resource quota + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/team-resource/team-resource.png) + +2. Set the CPU or its memory. The default value is 0 for no limit. + ![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/team-resource/quota.png) + +3. When creating components, build, launch, install, install, install, install and more, if memory or CPU exceeds the amount of remaining team resources, prompt resources to run out. + +## Note + +When the team sets the resource quota, the sum of all component resources (CPU and memory) running under the team cannot exceed the quota limit.When a user creates a component, if CPU and memory are not set for a component, +then the platform will set the component default `CPU=128m memory=512Mi` to ensure that a component does not monopolize all resources available in the namespace. From a6c9480b6c94794a3d33a8becd7d13d9ffe0aa8f Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:08 +0800 Subject: [PATCH 121/398] New translations safe.md (English) --- .../current/enterprise/safe.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/safe.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/safe.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/safe.md new file mode 100644 index 0000000000..67a0bcae27 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/safe.md @@ -0,0 +1,7 @@ +--- +title: Security Extensions +description: Extended Security Features +keywords: + - Security Extensions + - Extended Security Features +--- From 0f2f4307d7b7f73c4ef4e97f22e9fb0fc528aa74 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:09 +0800 Subject: [PATCH 122/398] New translations scanner.md (English) --- .../current/enterprise/scanner.md | 160 ++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/scanner.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/scanner.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/scanner.md new file mode 100644 index 0000000000..ffddb5bab4 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/scanner.md @@ -0,0 +1,160 @@ +--- +title: Clustering test +description: Cluster Patrol Description and Use +keywords: + - Clustering test + - Description and use of cluster inspection function +--- + +Platform tours are a tool to monitor and assess the performance of the underlying system and help you quickly identify potential risks in the system and recommend appropriate fixes.This tool can be used to scan all aspects of the cluster, including system performance bottlenecks, operating state of the business component, configuration issues and mirror security gaps, to improve the performance, stability and availability of the system. + +## Main features + +Inspections mainly support the K8s cluster inspections, Rainbond service inspections, operating inspections, configuring inspections and safety inspections.These five types of inspections are described in detail below. + +### K8s Cluster Inspection + +When inspecting the K8s cluster, check the status of the node, the state of the core component, and some resource usage. + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/rainbond-scanner/cluster-scan1.png) + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/rainbond-scanner/cluster-scan2.png) + +#### Node Health Status + +- Check the health status of all nodes in the cluster, including the operation status of the node, the availability of the node, the status of the nodes filesystem, etc.In addition, there is a need to check if the kernel in the node has a dead lock, or if the docker is normal to ensure the stability and availability of the entire cluster. + +#### K8s Core Component Status + +- Core components in K8s include kube-apiserver, kube-controller - manager, kube-scheduler and etcd.Check the status of these core components to ensure that the core functions of the Kubernetes cluster function properly.In addition, there is a need to check the expiry date of the K8s cluster certificate in order to avoid the expiry of the certificate leading to cluster problems. + +#### Node Resource Status + +- K8s is a highly dynamic system that needs to ensure the availability of node resources to support the proper functioning of the application.Therefore, when inspecting clusters, there is a need to check the use of resources for nodes, including CPU, memory and disk.By checking the use of resources, the availability and scalability of nodes resources can be ensured and timely identification of problems that may affect the performance of applications. + +### Rainbond Service Patrol + +When inspecting Rainbond bottom services, check the state of each core component and reboot. + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/rainbond-scanner/rbd-server.png) + +#### Run Status + +- Check the state of operation of the core components at the bottom of Rainbond such as api services, gateway services, build services, app running services, etc. to ensure the proper functioning of Rainbond + +#### Restart Status + +- Inspecting the restarting of the underlying components of Rainbond, such as the number of restarts, reasons for restarting, etc., will ensure that the problems of Rainbond own components are identified and repaired in a timely manner. + +### Run Cruise Check + +The running inspection is primarily directed at operations running on the platform, and when the inspection is carried out, the main component pod is checked for performance and restart. + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/rainbond-scanner/running.png) + +#### Run Status + +- Checks how low Pod works in the cluster, e.g. if Pod is in Running state, Pod is in CrashLoopBackOff state, Pod is in Pending state, etc. to ensure that an exception is found in time. + +#### Restart Status + +- Check for reboot of the Pod in the cluster, such as number of reboots, reasons for restarts, to ensure that Pod problems are identified and repaired in a timely manner. + +### Configure Patrol + +Configure the inspection primarily for business resource configuration, health test configuration, etc. running on the platform.Primary check container mirror labels, parameters while the container is running, resource restriction settings, storage mount settings, container health detection settings. + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/rainbond-scanner/config.png) + +#### Container Image Label + +- Check that the labels of the container mirror are compliant and include whether the latest tag is used, whether a clear version number is used. + +#### Container Runtime Parameters + +- Check if the parameters are safe while the container is running, including whether the use of privileges is prohibited, whether security policies are enabled, etc. + +#### Resource Limit Settings + +- Check if the container resource limits are reasonable, including CPU and memory limits set reasonable. + +#### Storage volume mount settings + +- Check if the container storage volume mount settings are reasonable, including if mounted on the host filesystem is prohibited, and if ReadOnlyRootFilesystem is used. + +#### Container Health Detection Settings + +- Check if the container's health detection setting is reasonable, including whether libility is set and readiness probe and whether the probe interval is set correctly. +- By scanning and analysing these configurations, the generated configuration cruise report provides configuration advice and optimization options for each component to help users improve the security and reliability of the system. + +### Safety Patrol + +The safety cruise is primarily aimed at scanning business mirrors running on the platform and providing links to detailed information to allow users to repair the various security gaps in the mirrors.In particular, safety inspections consist mainly of scanned mirrors security gaps, bug reports, recommendations and solutions, and automated periodic tests. + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/rainbond-scanner/leak.png) + +#### Scan mirror security gaps + +- Gets the security gap information that exists by scanning deployed business mirrors within the cluster. + +#### Analyze bugs + +- The identified security gaps are analysed, the extent of their impact on operations is assessed and risk ratings are given accordingly. + +#### Provide advice and solutions + +- Based on the scanned security gaps and the results of the assessments, the corresponding recommendations and details are given to help users fix the gaps and improve the safety of their operations. + +#### Regular Detection and Automation + +- Security inspections need to be conducted on a regular basis in order to maintain the security of operations.At present, security inspections support automation and are automatically monitored for each newly deployed operational component and reports are generated. + +## Manual + +In the case of specific use, it is possible to select inspection items for scanning, based on the results of the scan, to fix the problem. + +### Clustering test + +After entering the platform's inspection page, click on the cruise button at the bottom, the platform will start the auto-inspection and give the inspection results.The inspection results in K8s cluster inspections, Rainbond service inspections, operating inspections, configuration inspections, and safety inspections, each displayed in errors, warnings, normal numbers depending on the level of risk.Click on the right to view the report will list detailed information. + +### Issue Fix + +The results of the inspections require screening and repair of existing problems, such as unhealthy nodes, abnormal cluster core components, unusual and restarting rainbod components, abnormal or restarted business components, configuration of business components, mirror loopholes, etc. + +#### Node unhealthy + +- If the node is unhealthy, find the kernel log or nodes Events information for repair. +- If there is insufficient disk space on the node, you can free disk space by removing unnecessary files or moving files to another storage location. + +#### K8s Core Component Exceptions + +- If kube-apiserver, kubelet, kube-controller or kube-scheduler is in an exception to the state of the component, you can view the log or try restarting the service to fix it. +- If the certificate is about to expire, please update the cluster certificate in time. + +#### Rainbond Component Running Exceptions + +- Look at the log, Events and other ways to view Rainbond components, troubleshooting component failed to start, unable to access issues, etc. + +#### Rainbond Component Restart Exception + +- Fix by sorting last component exit logs. + +#### Abnormality of operation of business component on platform + +- In Rainbond Component Views, view business logs, Events info, and more, troubleshoot components failed to start, cannot access and so on. + +#### Business Component Restart Exceptionally on Platform + +- Fix by sorting the last operation component out logs. + +#### Business Configuration Issues on Platform + +- Check that the labels of the container mirror are compliant and include whether the latest tag is used, whether a clear version number is used, etc. +- Check if the parameters are safe while the container is running, including whether the use of privileges is prohibited, whether security policies are enabled, etc.Unset to set in component view - security. +- Check if the container resource limits are reasonable, including CPU and memory limits set reasonable. +- Check if the container storage volume mount settings are reasonable, including if mounted on the host filesystem is prohibited, and if ReadOnlyRootFilesystem is used. +- Check if the container's health detection setting is reasonable, including whether libility is set and readiness probe and whether the probe interval is set correctly. + +#### Problem with mirror security on the platform + +- Resolve by upgrading the base base image version. From b3a82f8e234e8f5e0371f64d1e5a4657e42e88c8 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:11 +0800 Subject: [PATCH 123/398] New translations audit.md (English) --- .../current/enterprise/security/audit.md | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/security/audit.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/security/audit.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/security/audit.md new file mode 100644 index 0000000000..080a82b0d5 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/security/audit.md @@ -0,0 +1,84 @@ +--- +title: Operating audit +description: Describe how audits are conducted and posted on the platform. +--- + +Operating audits are a key security function designed to record and monitor user operations and login activities occurring in the system.By reading this document, users will understand the definition and purpose of operating audits, recognize the importance and advantages of operating audits, and understand how to use the audit function for the key operations and logins of the system for monitoring, retroactive and protective purposes. + +## Main features + +By recording user actions and login activities on the corporate platform, the audit can provide the following benefits: + +1. Trackability:operates an audit log to record user behavior and operations details, helping to trace and analyze the occurrence of specific operations and relevant participants. + +2. Exceptional detection of:operations audits can be used to monitor potential unauthorized access, unusual activity, or security threats and take timely security measures. + +3. Compliance requirement:is one of the measures necessary to meet compliance requirements for many industries to ensure data security and privacy. + +At present, Rainbond supports recording users' operations and login logs, both of which are described in detail below. + +### Operation Log + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/audit/operate_log.jpg) + +Operation log functionality is intended to record user actions on Rainbond including, but not limited to, the same: + +- User behavior:records the specific actions performed by the user, such as component creation, editing, deletion, gateway policy editing and changes to various platform configurations. + +- Action details:show details of configuration changes before and after user action.Recover history quickly after an error has occurred. + +- Operation time:records the date and time of the operation, exactly to seconds. + +- Operation type:identifier, e.g. enterprise management, team management, application management, component management, local component library management, etc. + +### Login Log + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/audit/login_log.jpg) + +Login log is intended to record user login functions for tracking and recording user login activity on enterprise platform, including the following information: + +- Log in at:to record the date and time of user login. + +- Log in to IP :to record the IP address used by the user. + +- Login device:records the device or client information used by the user when logging in, such as operating systems, browsers, etc. + +- Active duration:records how long the user actually uses in a given login. + +## Manual + +### Manage action logs + +Platform operations audits are currently only visible to business managers and team administrators, where they can see all of the platform's operations logs and logs.The team administrator can see the action log under the team. + +**Corporate Manager:** + +1. Tap `Platform Manager` and select the left sidebar `log/audit`. + +2. Click on the `Action Log` to see the user of the operation, the type of operation, the time, the content of the operation, and the details of the operation. + +3. At this time, filters can be made based on date range, user, type of operation, etc. or directly on the content of the operation.For the operation of component type, the user can jump directly to the corresponding component or application.For operations such as configuration changes, they can be seen in the history version and the current version configuration directly in the operation details. + +**Team Admin:** + +1. Go to team view and click `management`. + +2. In this `Dynamic` Tab page, you can see the action log and details of the app or component under this team. + +### Manage login logs + +1. Tap `Platform Manager` and select the left sidebar `log/audit`. + +2. Click on the `Login Log` to see information about the user, client IP, login time, login device and active time. + +3. At this point, filters can be made based on date range, user etc. + +### Best practices + +In using the audit feature of the operation, using the following suggestions to help you better use this feature to ensure the security and compliance of your operations. + +- Featured Permissions Control:is important when using the Audit Function of the Operation.Depending on the user's roles and responsibilities, assigning appropriate permissions can effectively limit users' access and permissions to operate.The security of the platform is ensured through the separation of competencies and the periodic review and updating of competences. + +- The periodic review of the action audit log:is a critical step in ensuring the safety and compliance of the operation.Regular review of logs allows for timely detection and detection of unusual operations or potential violations.When reviewing the audit log, attention needs to be paid to the type, time, executor and purpose and results of the operation.If any anomalies or irregularities are detected, appropriate measures must be taken immediately to investigate and respond. + +- The periodic evaluation of the audit function:regularly evaluates the validity and integrity of the audit function of the operations is essential to ensure its continuity and effectiveness.Regular assessments make it possible to determine whether the operational audit function meets organizational needs and compliance requirements.The assessment includes checking the integrity, accuracy and traceability of log records to ensure that they are not tampered with or deleted.At the same time, there is a need to assess whether the operational audit function covers key operations and events and provides sufficient information for security audits and compliance certification.Based on the results of the assessment, adjustments are made and improvements are made to the operational audit function as necessary to ensure that it remains in a good state of operation. From 8e3d8c38503ede24b493c343ed196004aa1a034a Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:12 +0800 Subject: [PATCH 124/398] New translations index.md (English) --- .../current/enterprise/security/index.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/security/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/security/index.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/security/index.md new file mode 100644 index 0000000000..9ca524ab33 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/security/index.md @@ -0,0 +1,13 @@ +--- +title: Security Enhancement +description: Platform security extension support +--- + +Security is critical in the process of user business migration to cloud origin.Users often need to consider the security aspects of platforms, operating security, gateway security, user security, data security, etc.Rainbond Enterprise Edition provides a variety of security measures to reduce safety issues, such as the WAF firewall, user operations audits, logs, component safety, disaster preparedness and disaster preparedness.The company version of Rainbond passed the three-tier security test. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 18e210710b53507656a56d55a76c11e3f87dcd6a Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:13 +0800 Subject: [PATCH 125/398] New translations style.md (English) --- .../current/enterprise/style.md | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/style.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/style.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/style.md new file mode 100644 index 0000000000..ee644549eb --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/style.md @@ -0,0 +1,138 @@ +--- +title: Customize and Style +description: Users can customize platform styles to better respond to the special needs and branding images of enterprises. +keywords: + - Business style customization + - Customization of platform styles +--- + +Rainbond Enterprise version provides a range of personalized configuration options, including web icons, landing page images, theme colors, network DEMO and custom modifications to logo etc.Administrators can select different configuration options for customization based on the needs of the enterprise in order to better respond to the special needs and brand image of the enterprise. + +## Main features + +Personalized configuration is divided mainly into two blocks of:base profile configuration, theme configuration, specific configuration entry to:\`Platform Management -> Settings -> Personalized configuration.The following lengths will be detailed for configurable items, noting that only platform administrators will be able to customize the platform page configuration, which will take effect for all users. + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/rainbond-config/home-config.png) + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/rainbond-config/login-config.png) + +### Basic Information Configuration + +The base information is a few options for configuring the firm's flag, including site title, business name, document address, official DEMO, Footer, LOGO, web icons, landing page images, etc. Below is a description of the options: + +#### Site Title + +- Display the name on the browser tab bar. This is the name of the site. + +#### Company Name + +- Show overview view in platform management, used to identify an enterprise's name, and usually the business name is consistent with the website title. + +#### Document Address + +- White book icon on the head is the link to the document of the enterprise and can be used by users to jump to the platform for document pages. + +#### Official DEMO + +- Show or hide the team view source to create a location where to show if the DEMO example is shown. + +#### Footer + +- Footer is the information displayed at the bottom of the product page, usually including business name, copyright information, etc. + +#### Logo + +- LOGO is the logo of the business that is displayed on the head left and used to present the business image on the web page and other channels. + +#### Web Icons + +- The web icon is a small icon shown on the browser tab bar that identifies the brand image. + +#### Login Page Image + +- The login page image is a background image displayed on the login page of the user to display the brand image of the enterprise. + + + +### Theme Configuration + +Administrators can choose different color styles including head background colors, head text colors, sidebar background colors, sidebar text colors, side sidebar text colors, etc.Administrators can either enter colors directly or click on the right side color block to select any color, which can be styled according to the company's product master.Changes take effect instantly. Preview is available and will only be applied to all users when they are saved + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/rainbond-config/custom-config.png) + +## Manual + +When you use personalized configuration features, it is recommended to know your firm's brand image and visual design style, based on which to determine the specific configuration of the parameters.When selecting images, attention needs to be paid to the format and dimensions of the images in order to ensure their quality and display the same effect on different devices.In selecting colors, attention needs to be paid to overall coordination and readability in order to ensure a good visual experience in using the platform. + +### Basic Information Configuration + +The following suggestions will be made for the configuration of the parameters. You can match the styles best suited to your business scenario. + +#### Site Title + +- It is recommended to use simple, clear text, not more than 15 characters long and automatically omit the number to hide. + +#### Company Name + +- It is recommended to use the name of the enterprise, preferably not longer than 30 characters. + +#### Document Address + +- It is recommended to fill in the URL of the company document and to check if the link is correct, the document address is default to the rainbond official document address. + +#### Official Demo + +- It is recommended that the online environment enable official DEMO. This allows you to create multilingual components, and offline environments can close the official DEMO, because they do not have a network. + +#### Enterprise Logo + +- The image format is recommended in PNG format to ensure the quality of the image and also apply to different screen resolutions.Image size is recommended to be 236 x 35 pixels or larger. This ensures that it is true when displayed on different devices.If the upload size of a user is less than the recommended value, the system will scale up it automatically, but may affect the quality of the picture. + +#### Web Icons + +- Recommended pixels are not too small to see after uploading. + +#### Footer + +- It is recommended that only the company name should be filled in, and the time part of the system will be generated automatically. + +#### Login Page Image + +- Picture format is recommended in PNG format, image size is recommended to be 460x460 pixels or larger + + + +### UI Theme Configuration + +It is recommended that the administrator back up the configuration before modifying the personalized configuration so that it can be restored to the original configuration if needed. When the debugging is finished, the last color will be restored by clicking the save button. If skipping to other pages is not saved. The last subtheme button is restored to the last saved color. If you want to restore the platform to the original color, then the input box value is empty to restore the initial color. + +#### Header Color + +- It is recommended to select a color consistent with the corporate branding image that increases the recognition and user adhesive of corporate brands.At the same time, it is recommended to use similar tones and not to use a combination that is too piercing or color. + +#### Header text color + +- It is recommended to select a color similar to that of the head to ensure consistency and beauty of the page as a whole. + +#### Sidebar Color + +- It is recommended to select a light series of similar colors or use the default white tone to ensure the consistency and beauty of the page as a whole. + +#### Sidebar Text Color + +- It is recommended to select colors similar to the sidebar color or use grey to ensure the consistency and beauty of the page as a whole. From ebf867805d7dc3f07a805e186a34eab1f3c119e0 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:15 +0800 Subject: [PATCH 126/398] New translations xinchuang.md (English) --- .../current/enterprise/xinchuang.md | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/enterprise/xinchuang.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/enterprise/xinchuang.md b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/xinchuang.md new file mode 100644 index 0000000000..782d481369 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/enterprise/xinchuang.md @@ -0,0 +1,68 @@ +--- +title: Country production letter +description: Industrial and chemical information and innovation support +keywords: + - Country production letter + - Industrial and chemical information and innovation +--- + +## Introduction + +Nationalized credit creation refers to the development and diffusion of Chinese indigenous information technology and innovation industries.The main objective of the country's confidence-building industry is to reduce its dependence on imported technologies and improve its ability to acquire autonomous innovation and core technologies. In the process of digital transition, Rainbond, by integrating cloud and native technologies with national production systems and national production CPU, has made the development, deployment, delivery and delivery of applications more simple and efficient. + +## Main features + +### Creative Environment Deployment + +Rainbond adapted the national production CPU and national production operating systems, while also supporting the deployment and management of the “cloud of multicore” cluster. + +#### Country CPU and National Production Operating System support + +The Rainbod Enterprise version provides comprehensive support to the national CPU and the national production operating system to ensure that applications operate in a stable environment of domestically produced hardware and software.This includes the optimization and adaptation of a wide range of CPU structures, such as the SAP Peng, Flightenn, Dragon, etc., as well as compatibility with national production operating systems, such as commutation, galaxin rain, monologue, Loronsor, Olara operating system, etc.This support covers not only the basic operating environment but also the optimization of specific hardware and software features to improve performance and security.In addition, the Rainbod platform provides a full developer tool and API interface to help users quickly build and deploy cloud native applications. + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/xinchanang/xinchanang2.png) + +#### One cloud of multi-core cluster support + +Rainbond supports "a cloud of multich" cluster management, "a cloud of multiple chires" mainly refers to a platform to manage hardware server clusters in different structures. Can support multiple types of chips and solve cloud management problems associated with different types of chip coexistence.Rainbond has provided support in two main areas. + +First, in terms of cluster deployment and management.Rainbond allows for the deployment of clusters of different structures through a single control platform, i.e. clusters that manage the x86 architectural structure directly through the page, or clusters that manage the ARM structure, while also supporting the deployment of nodes of different structures within the same cluster.This means that users can monitor and manage clusters across multiple CPU structures in a centralized interface, thus optimizing resource allocation and operating processes. + +Second, Rainbod supports the deployment of isomers to support different nodes structures within a single cluster.This feature allows applications of different structures to operate in the same cluster on nodes suitable for them and to communicate seamlessly between them.For example, in the same cluster, ARM-based applications can run on the ARM node, while the x86 architecture-based application is on the x86 node, all of which can be easily achieved through the Rainbond interface. + +### Run across schema app compilations + +Rainbod supported the automatic compilation of the source x86 application system into compatible nationally-produced CPU, and also provided a repository of national production capacity to help users to settle and reuse various types of national production applications. + +#### Cross-CPU Structure Source Compilation + +In the traditional application development and deployment environment, most applications are compiled for x86 equipment.However, as the process of national production progresses, an increasing number of applications need to operate on the non-x86 set of instructional CPUs.This means that business systems that were already operating in the x86 environment will need to be recompiled based on the national production server to function properly.This process is not only complex but time-consuming, but also requires considerable human and time input.In addition to finding appropriate language building tools, there is a need to collect the types of dependencies required in the compilation. + +Rainbod has a key role to play here.It supports the automatic compilation of the x86 application system with a source code into compatible nationally produced CPU.This function greatly simplifies the traditional compilation process and reduces the complexity of migrating applications to domestically produced hardware platforms.There is no need for users to study and deal in depth with a variety of compilation dependencies and environmental issues, and the building process in Rainbond, which will automatically process these efforts, significantly improving the compatibility of national production applications. + +Current supported source types include Java (Maven, Jar, War, Gradle), NodeJS, Golang, Python, PHP, Html, etc. + +![description](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/enterprise-app/xinchanang/xinchanang3.png) + +#### National Productivity Repository + +National production compatibility is a system project that requires support from surrounding ecological and national production intermediaries, in addition to the re-codification of the application itself.The application market for Rainbond could be integrated and managed in a differentiated manner through national production capacities, such as compatible applications, intermediates and tools, and gradually replace national production through the accumulation of national production capabilities. + +And Rainbond supports automatic matching of apps based on the CPU structure of the current cluster when deployed.Avoid problems where the app will not work properly because the app architecture does not match. + +## Manual + +### Creative Environment Deployment + +1. Environmentally prepared:ensures that the required national production operating systems are installed in the server environment, such as command, Galaxy and so on. +2. Deploy the Rainbond Enterprise Console:and install the Rainbond Console on the NPAS using the docker run command and access it. +3. ClusterIntegration|ClusterIntegration|Create a new cluster in:in the Rainbond console. By adding IP addresses of nodes, the platform will automatically create a Kubernetes cluster and identify architectural information for each node. +4. Monitoring and maintaining:allows you to view the status of each node, CPU architecture, etc. in the Platform Manager-Cluster, and to manage your node's schedule, sorting, and so on. + +### Run across schema app compilations + +1. Source preparation:uploads your x86 source code into a compressor or directly provides a Git repository address. +2. Automatically identify and compile:new apps in the Rainbond console. Select the source build method. The platform will automatically identify the source type. When built, it will be possible to select an amd64 or arm64 architecture. The platform will be automatically compiled into an application compatible with the selected CPU architecture. +3. Apps running and accessing:compiled apps will run automatically on the corresponding node architecture.Go to the component details at this time and open the external service to quickly access it. +4. The isomer applies to the:referees which will have a transition period during which the arm application and the amd app will need to coexist and communicate.On the platform, when each component chooses its structure at the time of construction, it can be programmed in a drag and drop and can be accessed between components when the programming is complete. +5. Publish to the National Productivity Repository:for apps that are compatible with national production, can be applied in the app view and posted to the National Productivity Repository by publishing functionality, and easy to use by other users. From f6fa275a2e8a8a26e46574decbcce816e25b9a9a Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:16 +0800 Subject: [PATCH 127/398] New translations index.md (English) --- .../current/installation/index.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/installation/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/installation/index.md b/i18n/en/docusaurus-plugin-content-docs/current/installation/index.md new file mode 100644 index 0000000000..cc5fea8321 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/installation/index.md @@ -0,0 +1,11 @@ +--- +title: Install Rainbond +description: Install Rainbond +--- + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From f08e1348280d92039f2b4b93dcd8d72b7c19972a Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:17 +0800 Subject: [PATCH 128/398] New translations index.md (English) --- .../installation/install-with-helm/index.md | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-helm/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-helm/index.md b/i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-helm/index.md new file mode 100644 index 0000000000..4c512d629b --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-helm/index.md @@ -0,0 +1,66 @@ +--- +title: 基于 Kubernetes 安装 +descrition: This section document describes the existing k8s cluster, installing Rainbond with helm +keywords: + - Install Rainbond cluster based on Kubernetes +--- + +## 概述 + +本文将指引您在已有的 Kubernetes 集群中快速安装一套可用的 Rainbond 环境,支持自建集群、托管集群等。 + +## 前提条件 + +- Kubernetes 1.24+ +- [Kubectl CLI](https://kubernetes.io/docs/tasks/tools/#kubectl) +- [Helm CLI](https://helm.sh/docs/intro/install/) +- `80 443 6060 7070 8443`端口可用 + +## 安装 Rainbond + +1. 您可以使用默认参数安装或[自定义安装参数](./vaules-config.md),请执行下述命令开始安装。 + +```bash +helm repo add rainbond https://openchart.goodrain.com/goodrain/rainbond +helm repo update +helm install rainbond rainbond/rainbond-cluster --create-namespace -n rbd-system +``` + +2. 执行完安装命令后,在集群中执行以下命令查看安装状态。 + +```bash +watch kubectl get po -n rbd-system +``` + +3. 当名称包含 `rbd-app-ui` 的 Pod 为 Running 状态时即安装成功。如下所示,Pod `rbd-app-ui-669bb7c74b-7bmlf` 为 Running 状态时,表示 Rainbond 安装成功。 + +
+安装成功结果示例 + +```bash +NAME READY STATUS RESTARTS AGE +rbd-hub-64777d89d8-l56d8 1/1 Running 0 14d +rbd-gateway-76djb 1/1 Running 0 14d +rbd-mq-6b847d874b-j5jg2 1/1 Running 0 14d +rbd-monitor-0 1/1 Running 0 14d +rbd-db-0 2/2 Running 0 14d +rbd-app-ui-669bb7c74b-7bmlf 1/1 Running 0 7d12h +rbd-worker-679fd44bc7-n6lvg 1/1 Running 0 9d +rainbond-operator-7978d4d695-ws8bz 1/1 Running 0 9d +rbd-chaos-nkxw7 1/1 Running 0 8d +rbd-api-5d8bb8d57d-djx2s 1/1 Running 0 47h +``` + +
+ +4. 访问平台 + +使用以下命令获取 Rainbond 访问地址。如有多个网关节点,则任意一个地址均可访问。 + +```bash +kubectl get rainbondcluster rainbondcluster -n rbd-system -o go-template --template='{{range.spec.gatewayIngressIPs}}{{.}}:7070{{printf "\n"}}{{end}}' +``` + +## 下一步 + +参考[快速入门](/docs/quick-start/getting-started/)部署你的第一个应用。 From d204aa47bd3d34c4c96de59d2dcc6c8c6028bb9c Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:19 +0800 Subject: [PATCH 129/398] New translations vaules-config.md (English) --- .../install-with-helm/vaules-config.md | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-helm/vaules-config.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-helm/vaules-config.md b/i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-helm/vaules-config.md new file mode 100644 index 0000000000..2cba233bec --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-helm/vaules-config.md @@ -0,0 +1,148 @@ +--- +title: Helm Chart 选项 +description: How to set values during helm installation and how to change the installed cluster configuration +keywords: + - rainbond help values configuration installation cluster + - rainbond help values config install cluster +--- + +本文提供了 Rainbond Helm Chart 的配置参考。 + +## 示例配置 + +```yaml title="vi values.yaml" +Cluster: + gatewayIngressIPs: 192.168.8.8 + + nodesForGateway: + - externalIP: 192.168.8.8 + internalIP: 192.168.8.8 + name: k8s1 +# - More nodes for gateway + + nodesForChaos: + - name: k8s1 +# - More nodes for chaos + + containerdRuntimePath: /run/containerd + + imageHub: + enable: true + domain: image.image.com + namespace: admin + password: admin + username: admin + + regionDatabase: + enable: true + host: 192.168.8.8 + name: region + password: root + port: 3306 + username: root + + uiDatabase: + enable: true + host: 192.168.8.8 + name: console + password: root + port: 3306 + username: root + + rainbondImageRepository: registry.cn-hangzhou.aliyuncs.com/goodrain + installVersion: v6.0.0-release + imagePullPolicy: IfNotPresent + replicas: 2 +``` + +## 常用选项 + +### 集群对外 IP + +Rainbond 平台统一对外访问`IP`,位于网关节点之上的负载均衡`IP`,如无则填写任意网关节点的内/外网`IP`。 + +| Configuration Item | Default value | Type | Note | +| --------------------------- | ------------- | ----- | ------------ | +| `Cluster.gatewayIngressIPs` | | Array | 配置网关负责均衡`IP` | + +### 网关节点 + +选择 Rainbond 网关服务运行在哪些`K8s`节点上。 + +| Configuration Item | Default value | Type | Note | +| ------------------------------------ | ------------- | ----- | ------------- | +| `Cluster.nodesForGateway.externalIP` | | Array | `K8s`节点外网`IP` | +| `Cluster.nodesForGateway.internalIP` | | Array | `K8s`节点内网`IP` | +| `Cluster.nodesForGateway.name` | | Array | `K8s`节点名称 | + +### 构建节点 + +| Configuration Item | Default value | Type | Note | +| ---------------------------- | ------------- | ----- | --------- | +| `Cluster.nodesForChaos.name` | | Array | `K8s`节点名称 | + +### Containerd 目录 + +| Configuration Item | Default value | Type | Note | +| ------------------------------- | ----------------- | ------ | ----------------------------------------------------------------- | +| `Cluster.containerdRuntimePath` | `/run/containerd` | String | 定义`containerd`运行时目录路径。如使用`k3s`或`RKE2`,则为`/var/run/k3s/containerd` | + +## 高级选项 + +### 外部镜像仓库 + +| 配置项 | 默认值 | 类型 | 说明 | +| ---------------------------- | ----- | ------ | --------------------------- | +| `Cluster.imageHub.enable` | false | Bool | 启用外部镜像仓库 | +| `Cluster.imageHub.domain` | | String | Image repository address | +| `Cluster.imageHub.namespace` | | String | Mirror repository namespace | +| `Cluster.imageHub.password` | | String | Image repository password | +| `Cluster.imageHub.username` | | String | Mirror repository username | + +### Rainbond 集群端数据库 + +| Configuration Item | Default value | Type | Note | +| --------------------------------- | ------------- | ------ | -------------------------------- | +| `Cluster.regionDatabase.enable` | false | Bool | Enable external cluster database | +| `Cluster.regionDatabase.host` | | String | Database address | +| `Cluster.regionDatabase.name` | | String | Database name | +| `Cluster.regionDatabase.password` | | String | Database password | +| `Cluster.regionDatabase.port` | | String | Database Port | +| `Cluster.regionDatabase.username` | | String | Database User | + +### Rainbond 控制台数据库 + +MySQL 8.0 以上版本需要配置 `default_authentication_plugin` 为 `mysql_native_password`。 + +| Configuration Item | Default value | Type | Note | +| ----------------------------- | ------------- | ------ | -------------------------------- | +| `Cluster.uiDatabase.enable` | false | Bool | Enable external console database | +| `Cluster.uiDatabase.host` | | String | Database address | +| `Cluster.uiDatabase.name` | | String | Database name | +| `Cluster.uiDatabase.password` | | String | Database password | +| `Cluster.uiDatabase.port` | | String | Database Port | +| `Cluster.uiDatabase.username` | | String | Database User | + +### 镜像源地址 + +| Configuration Item | Default value | Type | Note | +| --------------------------------- | -------------------------------------------- | ------ | ----------- | +| `Cluster.rainbondImageRepository` | `registry.cn-hangzhou.aliyuncs.com/goodrain` | String | 安装获取镜像的仓库地址 | + +### 安装版本 + +| Configuration Item | Default value | Type | Note | +| ------------------------ | ------------- | ------ | ------- | +| `Cluster.installVersion` | Late | String | 镜像`tag` | + +### 镜像拉取策略 + +| Configuration Item | Default value | Type | Note | +| ------------------------- | ------------- | ------ | ------ | +| `Cluster.imagePullPolicy` | IfNotPresent | String | 镜像拉取策略 | + +### 副本数 + +| Configuration Item | Default value | Type | Note | +| -------------------------------- | ------------- | -------- | ---- | +| Cluster.replicas | 2 | Annex II | 副本数 | From 7c6711b3858c3753eb9d7286cc074506f036ad25 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:20 +0800 Subject: [PATCH 130/398] New translations console-recover.md (English) --- .../install-with-ui/console-recover.md | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-ui/console-recover.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-ui/console-recover.md b/i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-ui/console-recover.md new file mode 100644 index 0000000000..535e0a5e6b --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-ui/console-recover.md @@ -0,0 +1,74 @@ +--- +title: 迁移控制台 +description: This document describes the high level of the console available for the experience of the migration console to the high available cluster environment. +keywords: + - Rainbond Console High Installation Available +--- + +:::tip +如果你的 Rainbond 集群是通过 Helm Chart 安装的,那么无需迁移控制台,无需进行本文档的操作。 +::: + +[快速安装](/docs/quick-start/quick-install)的 Rainbond 控制台是由 Docker 启动的,无法实现高可用部署,本文介绍如何将 Docker 启动的控制台迁移到 K8s 集群中以 POD 方式运行。 + +## Prerequisite + +- [快速安装 Rainbond](/docs/quick-start/quick-install) 并对接[主机安装](/docs/installation/install-with-ui/)的集群。 + +## 启动新控制台 + +:::warning +快速安装的 Rainbond 控制台默认提供了内置集群,如您在内置集群中创建了应用,请将应用都迁移到对接的集群中。 + +您可以通过 `应用视图 -> 快速复制` 功能将应用从内置集群迁移到对接的集群中。应用后产生的数据需自行迁移,如数据库等。 +::: + +在对接的 K8s 集群中启动新的 Rainbond 控制台,请在管理节点上使用 [kubectl](https://docs.rke2.io/reference/cli_tools) 命令行工具执行以下命令。 + +```yaml title="kubectl apply -f rbd-app-ui.yaml" +apiVersion: rainbond.io/v1alpha1 +kind: RbdComponent +metadata: + labels: + belongTo: rainbond-operator + creator: Rainbond + name: rbd-app-ui + name: rbd-app-ui + namespace: rbd-system +spec: + env: + - name: DB_TYPE + value: mysql + - name: AUTO_INIT + value: "false" + image: registry.cn-hangzhou.aliyuncs.com/goodrain/rainbond:v6.0.0-release + imagePullPolicy: IfNotPresent + priorityComponent: false + replicas: 1 +``` + +默认使用 `rbd-db` 数据库,如需使用外部数据库请修改 `rainbondcluster` 资源。 + +```yaml title="kubectl edit rainbondcluster -n rbd-system" +... +spec: + ... + uiDatabase: + host: 172.20.251.90 + name: console + password: Root123456 + port: 3306 + username: root +``` + +## Backup console data + +### Backup old console data + +在旧控制台的 `平台管理 -> 设置 -> 数据库备份`,增加备份后并下载。 + +### Import backups to new console + +在新控制台的 `平台管理 -> 设置 -> 数据库备份 -> 导入备份`,导入成功后点击 `恢复`。You will need to `exit login` after your recovery and login with your old console. + +此时新控制台中已经不存在**内置集群**,您需要在`平台管理 -> 集群` 中删除**内置集群**。 From 21823dcd95ec78f9262900a36ea8b73452c985f8 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:22 +0800 Subject: [PATCH 131/398] New translations index.md (English) --- .../installation/install-with-ui/index.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-ui/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-ui/index.md b/i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-ui/index.md new file mode 100644 index 0000000000..f3401d5de9 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/installation/install-with-ui/index.md @@ -0,0 +1,82 @@ +--- +title: Installing based on host +description: Installing Rainbond from Linux based on graphical interface +keywords: + - Install Rainbond based on host + - High-available Kubernetes cluster based on host installation + - Install High Available Rainbond Cluster based on Host +--- + +本文介绍了如何在 Linux 系统上通过图形化界面安装 `Kubernetes`([RKE2](https://docs.rke2.io)) 集群和 `Rainbond` 集群。 + +:::tip +This installation supports Linux x86 and Arm64 operating systems,[国产化信创](/docs/localization-guide). +::: + +## 前提 + +- 确保你的环境满足 [RKE2安装要求](https://docs.rke2.io/install/requirements)。 如果你的主机安装并启用了 NetworkManager,请[确保将其配置为忽略 CNI 管理的接口](https://docs.rke2.io/known_issues#networkmanager)。 +- 如果主机内核支持 [AppArmor](https://apparmor.net/),则在安装之前还必须具有 AppArmor 工具(通常可通过 `apparmor-parser` 包获得)。 +- 必须以`root`用户执行安装。 + +## Install the Kubernetes cluster from the host + +1. 根据[快速安装](/docs/quick-start/quick-install)部署 Rainbond。 +2. 进入`平台管理 -> 集群 -> 添加集群 -> 从主机开始安装`进入图形化安装页面。 +3. 点击`添加节点`并填写节点信息。 + +| | Note | +| ------- | --------------------------------------- | +| 节点角色 | 选择节点的角色,`ETCD 管理节点 计算节点` | +| 节点公网IP | 填写节点公网 IP 地址,如无公网 IP 则不填写 | +| 节点内网IP | 填写节点内网 IP 地址,如有多块网卡请手动填写内网 IP,为空则自动选择 | +| 控制台访问地址 | 默认为当前浏览器访问的地址,如您的注册主机与控制台无法通信,请填写可通信的地址 | + +4. 复制注册命令到 Linux 主机上执行。 + +## Install Rainbond Cluster + +Import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +:::info + +Once the Kubernetes cluster is installed, the next step will go to the Rainbond cluster installation page, which will lead you to complete the installation of the Rainbond cluster. + +::: + +1. Fill out base configuration and advanced configuration based on page lead. + + + + +A detailed description of the Rainbond cluster base configuration is provided below. + +| Configuration Item | Note | | +| ------------------ | --------------------------------------------------------------------------------- | -------- | +| [集群入口 IP](ha#负载均衡) | IP access to cluster entrance can be VIP, load equilibrium IP or any gateway node | Required | +| [网关节点](ha#网关节点) | Specify which nodes Rainbond gateway service will be deployed and run | Required | +| [构建节点](ha#构建节点) | Specify on which node Rainbond build services to deploy and run | Required | + + + + + +Details on the advanced configuration of the Rainbond cluster are described below. + +| Configuration Item | Note | | +| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | +| [镜像仓库](ha#镜像仓库) | Specify Rainbond mirror repository, all components on the platform will be picked up and pushed from this warehouse.Provide built-in mirror repository by default | optional | +| [数据库](ha#mysql) | Specify the MySQL8.0+ database of the Rainbond cluster.Built-in MySQL8.0+ database provided by default | optional | +| Component Mirror Source | Specify which mirror source does Rainbond own component to retrieve the mirror, by default, through the Arjun mirror, Curaça | optional | + + + + +2. The configuration is completed by entering the Rainbond cluster installation page, where progress information can be seen and where each component can click on status and event information. +3. 等待所有组件都启动后,下一步完成对接。 + +## Next step + +- 完成[快速入门](../../quick-start/getting-started/)教程。 +- 将[控制台迁移](./console-recover) Kubernetes 集群中。 From 7547c729ed23310b40e487c241bd9fbfa99789a6 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:23 +0800 Subject: [PATCH 132/398] New translations index.md (English) --- .../current/installation/offline/index.md | 205 ++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/installation/offline/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/installation/offline/index.md b/i18n/en/docusaurus-plugin-content-docs/current/installation/offline/index.md new file mode 100644 index 0000000000..38aa883427 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/installation/offline/index.md @@ -0,0 +1,205 @@ +--- +title: Offline install +description: Use Helm to install Rainbond offline +keywords: + - Install Rainbond offline +--- + +This document describes the installation of Rainbod via Helm offline. + +## Prerequisite + +- 安装 [Helm CLI](https://helm.sh/docs/intro/install/) +- Available Kubernetes clusters, version 1.16+ +- Install NFS client + +## Preparing offline mirrors and installation packages + +Prepare the mirrors needed for Rainbond ahead of time in a network environment.You can download the required mirrors via the following scripts. + +```bash title="vim download_rbd_images.sh" +#!/bin/bash + +IMAGE_DOMAIN=${IMAGE_DOMAIN:-registry.cn-hangzhou.aliyuncs.com} +IMAGE_NAMESPACE=${IMAGE_NAMESPACE:-goodrain} +VERSION=${VERSION:-'v5.17.3-release'} + +image_list="${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/kubernetes-dashboard:v2.6.1 +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/registry:2.6.2 +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/metrics-server:v0.4.1 +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/etcd:v3.3.18 +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/metrics-scraper:v1.0.4 +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/rainbond:${VERSION}-allinone +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/rbd-mesh-data-panel:${VERSION} +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/rbd-webcli:${VERSION} +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/rbd-eventlog:${VERSION} +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/rbd-init-probe:${VERSION} +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/rbd-chaos:${VERSION} +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/rbd-mq:${VERSION} +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/rainbond-operator:${VERSION} +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/rbd-worker:${VERSION} +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/rbd-node:${VERSION} +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/rbd-monitor:${VERSION} +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/rbd-gateway:${VERSION} +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/rbd-api:${VERSION} +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/rbd-db:8.0.19 +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/mysqld-exporter:latest +${IMAGE_DOMAIN}/${IMAGE_NAMESPACE}/nfs-provisioner:latest" + +for image in ${image_list}; do + docker pull "${image}" +done + +docker save -o rainbond-"${VERSION}".tar ${image_list} +``` + +Get Rainbond Helm Chart installation package + +```bash +help repo add rainbond https://openchart.goodrain.com/goodrain/rainbond +helm null rainbond/rainbond-cluster +``` + +## Start Installation + +Import a mirror and offline package above to all servers, execute the following commands to start installation. + +### Import Mirror Pack + +```bash +docker load-i rainbond-v5.17.3-release.tar +``` + +### Install Rainbond + +Unpack Helm Chart + +```bash +tar xvf rainbond-cluster-5.17.3.tgz +``` + +Install Rainbond +with Helm Chart ::info +when a self-built mirror warehouse, database, ETCD, shared storage, specified gateway node, specified building node, etc.You can refer to [values.yaml details](/docs/installation/install-with-helm/vaules-config) and modify the following command. +::: + +```bash +kubectl create name rbd-system + +helm install rainbond ./rainbond-cluster -n rbd-system \ +-set Cluster.enableEnvCheck=false\ +--Component.rbd_app_ui.env.DISABLE_DEFAULT_APP_MARKET=true +``` + +## Install progress query + +After executing the installation command, perform the following commands in the cluster to view the installation status. + +```bash +watch kubtl get po -n rbd-system +``` + +Installation successful when the name `rbd-app-ui` contains the Pod `rbd-app-ui` for Running state.As shown below, the Pod `rbd-app-ui-669bb7c74b-7bmlf` states that Rainbond was installed successfully. + +
+Installation Results + +```bash +NAME READY STATUS RESTARTS AGE +nfs-provisioner-0 1/1 Running 0 14d +rbd-etcd-0 1/1 Running 0 14d +rbd-hub-64777d89d8-l56d8 1/1 Running 0 14d +rbd-gateway-76djb 1/1 Running 0 14d +dashboard-metrics-scraper-7db45b8bb4-tcgxd 1/1 Running 0 14d +rbd-mq-6b847d874b-j5jg2 1/1 Running 0 14d +rbd-webcli-76b54fd7f6-jrcdj 1/1 Running 0 14d +kubernetes-dashboard-fbd4fb949-2qsn9 1/1 Running 0 14d +rbd-resource-proxy-547874f4d7-dh8bv 1/1 Running 0 14d +rbd-monitor-0 1/1 Running 0 14d +rbd-db-0 2/2 Running 0 14d +rbd-eventlog-0 1/1 Running 0 14d +rbd-app-ui-669bb7c74b-7bmlf 1/1 Running 0 7d12h +rbd-app-ui-migrations--1-hp2qg 0/1 Completed 0 14d +rbd-worker-679fd44bc7-n6lvg 1/1 Running 0 9d +rbd-node-jhfzc 1/1 Running 0 9d +rainbond-operator-7978d4d695-ws8bz 1/1 Running 0 9d +rbd-chaos-nkxw7 1/1 Running 0 8d +rbd-api-5d8bb8d57d-djx2s 1/1 Running 0 47h +``` + +
+ +## Access Platform + +Copy the commands below to be executed in the cluster, and get the platform access address.If there are multiple gateway nodes, any address can be accessed to the console. + +```bash +kubectl get rainbondcluster rainbondcluster -n rbd-system -o go-template --template='{{range.spec.gatewayIngressIPs}}{{.}}:7070{{printf "\n"}}{{end}}' +``` + +## Use source build in offline environment (optional) + +### Get Mirror + +Prepare the mirrors needed for Rainbond ahead of time in a network environment.You can download the required mirrors via the following scripts. + +```bash title="vim download_rbd_images_sourcebuild.sh" +#!/bin/bash +VERSION=${VERSION:-'v5.17.3-release'} + +image_list="registry.cn-hangzhou.aliyuncs.com/goodrain/buildkit:latest +registry.cn-hangzhou.aliyuncs.com/goodrain/builder:${VERSION} +registry.cn-hangzhou.aliyuncs.com/goodrain/runner:${VERSION}" + +for image in ${image_list}; do + docker pull "${image}" +done + +docker save -o rainbond-sourcebuild-"${VERSION}".tar ${image_list} +``` + +Download the `rbd-resource-proxy` image offline + +```bash +wget https://pkg.rainbond.com/offline/5.3-enterprise/rbd-resource-proxy-offline-amd64.tar +``` + +### Import Images + +Import a mirror package into a target server + +```bash +docker load-i rainbond-sourceild-v5.17.3-release.tar +docker load -i rbd-resource-proxy-offline-amd64.tar +``` + +### Push Image + +After the installation of Rainbond the `builder` `runner` `rbd-resource-proxy` mirrors to Rainbond private repository + +```bash +# 获取镜像仓库密码 +kubectl get rainbondcluster -n rbd-system -o yaml|grep -A 3 imageHub + +# 登陆仓库 +docker login -u admin goodrain.me -p + +# 重新打 tag 并推送镜像 + +docker tag registry.cn-hangzhou.aliyuncs.com/goodrain/builder:v5.17.3-release goodrain.me/builder:latest-amd64 +docker tag registry.cn-hangzhou.aliyuncs.com/goodrain/runner:v5.17.3-release goodrain.me/runner:latest-amd64 +docker push goodrain.me/builder:latest-amd64 +docker push goodrain.me/runner:latest-amd64 +docker push goodrain.me/rbd-resource-proxy:offline-amd64 +``` + +### Upgrade Rainbond + +Reassign `rbd-resource-proxy` image using Helm to upgrade Rainbond + +```bash +helm upgrade rainbond ./rainbond-cluster -n rbd-system \ +--set Cluster.enableEnvCheck=false \ +--set Component.rbd_app_ui.env.DISABLE_DEFAULT_APP_MARKET=true \ +--set Component.rbd_resource_proxy.image=goodrain.me/rbd-resource-proxy:offline-amd64 +``` From eb3fce34994069b548d1f90f016973d80f20764e Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:25 +0800 Subject: [PATCH 133/398] New translations uninstall.md (English) --- .../current/installation/uninstall.md | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/installation/uninstall.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/installation/uninstall.md b/i18n/en/docusaurus-plugin-content-docs/current/installation/uninstall.md new file mode 100644 index 0000000000..d75ae726f9 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/installation/uninstall.md @@ -0,0 +1,81 @@ +--- +title: 卸载 +description: This section describes how to uninstall the Rainbond standalone version, the Rainbond cluster, and the Kubernetes cluster installed through Rainbond +keywords: + - Uninstall Kubernetes Cluster + - Uninstall Rainbond Cluster +--- + +:::warning +卸载 Rainbond 会删除集群数据,操作前请做好数据备份。 +::: + +## 卸载快速安装的 Rainbond + +如果您使用快速安装的 Rainbond,可以通过以下方式卸载: + +1. 删除 `rainbond` 容器。 + +```bash +docker stop rainbond && docker rm rainbond +``` + +2. Remove Rainbond data directory. + +```bash +# Linux +rm -rf /opt/rainbond + +# MacOS & Windows +docker volume rm rainbond-opt +``` + +## 卸载基于主机安装的 Rainbond 集群 + +如果您是基于主机安装的集群,您可以在 **平台管理 -> 集群 -> 删除集群**。并在每个节点上执行以下命令: + +```bash +/usr/local/bin/rke2-uninstall.sh +``` + +## 卸载基于 Helm 安装的 Rainbond 集群 + +Uninstall Rainbond with Helm + +```bash +help uninstall rainbond -n rbd-system +``` + +删除 Rainbond 所创建的 `PVC、PV、CRD、NAMESPACE` + +```bash +# Delete PVC +kubectl get pvc -n rbd-system | grep -v NAME | awk '{print $1}' | xargs kubectl delete pvc -n rbd-system + +# Delete PV +kubectl get pv | grep rbd-system | grep -v NAME | awk '{print $1}' | xargs kubectl delete pv + +# Delete CRD +kubectl delete crd componentdefinitions.rainbond.io \ +helmapps.rainbond.io \ +rainbondclusters.rainbond.io \ +rainbondpackages.rainbond.io \ +rainbondvolumes.rainbond.io \ +rbdcomponents.rainbond.io \ +servicemonitors.monitoring.coreos.com \ +thirdcomponents.rainbond.io \ +rbdabilities.rainbond.io \ +rbdplugins.rainbond.io \ +servicemeshclasses.rainbond.io \ +servicemeshes.rainbond.io \ +-n rbd-system + +# Delete NAMESPACE +kubectl delete ns rbd-system +``` + +Remove Rainbond data directory + +```bash +rm -rf /opt/rainbond +``` From 8bf66327dd92683e75d0fb22089667a4ce9c3569 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:26 +0800 Subject: [PATCH 134/398] New translations deploy-job.md (English) --- .../kubernetes-native-guide/deploy-job.md | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/deploy-job.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/deploy-job.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/deploy-job.md new file mode 100644 index 0000000000..561eeeb943 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/deploy-job.md @@ -0,0 +1,47 @@ +--- +title: Deploy the Job CronJob component +description: This article covers the essentials of deploying Job and CronJob-type components and is intended for developers and operations personnel. +--- + +### General description + +The task primarily contains terrain: + +- Job is responsible for the batch task, that is, only once, and it guarantees the successful completion of one or more Pods. +- CronJob is managing the job, creating jobs periodically. + +For more information refer to k8s official documentation + +- Job https://kubernetes.io/en-cn/docs/concepts/workloads/controllers/job/ +- CronJob https://kubernetes.io/en-cn/docs/concepts/workloads/controllers/cron-jobs/ + +### Use process + +When creating a component, you can select job and cronjob types in advanced settings. + +If cronjob, the schedule policy needs to be filled + +The logo has been completed when creating a successful task pending job execution. + +Job performed completely. Click on the reboot button. You can also redo the job or close it. + +The deployment type and task policy can be modified in other settings of the component. + +#### Deployment Type + + + + +#### Task Policy + +- If the cronjob type is used, the scheduled configuration is required such as `**/1****` to perform once in one minute. +- Maximum number of retries:times can be restarted by configuration failure if the task fails. Default failure determines the number of reboot times to 6. +- Number of parallel tasks:can run simultaneously, 3 tasks are created and executed simultaneously. +- The maximum running time:will stop running all Pod automatically if the Job runs longer than the specified seconds. +- Completed:completion of the Job requires successful Pod. + + + +#### cronjob status display + + From 9841ab34d4bb4930b68d0f0345855d07ca1df8fa Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:27 +0800 Subject: [PATCH 135/398] New translations creation-process.md (English) --- .../helm/creation-process.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/creation-process.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/creation-process.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/creation-process.md new file mode 100644 index 0000000000..db0a992835 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/creation-process.md @@ -0,0 +1,69 @@ +--- +title: Deploy Helm applications based on application market +description: Deploy the Helm application in Rainbond according to the documentation +--- + +Follow this document to enable developers or carriers to deploy applications based on the Helm repository in Rainbond + +### Prerequisite + +Before you start, you need to meet the following condition: + +1. paired [Helm App Store](./docking_helm_store) +2. has a available team + +### Operating processes + +App installation has three entry: + +**No.1** Install directly in the Enterprise View App Marketplace + +Click the **Install** button below the **Helm store** app. Select the **team**team\*\* you want to install, define **the app's name**. Click **OK** to start the installation automatically. + + + +**No.2** Install from team view **Create components based on the Marketplace** + +In team view click **New** ---> **Create component based on the Marketplace**. Select apps from the next Helm store. Click **Install** to automatically start the installation. + + + +**No.3** Install from App View **Install from Marketplace** + +Click **Add components** -> **Install from Marketplace**, select apps from the Helm store to connect to. Click **Install** to automatically start the installation. + + + +#### Installation process + +The installation process is divided into the following three steps: + +- Detect + +Errors will be displayed here to check if the app can be deployed normally, when the K8s apiVersion problem or other errors cause them to fail to deploy + +- Configuration + +Provides app deployment configuration features, provides graphical modifications to `values.yaml` files, selects the `values.yaml` file to be deployed. The configuration changes are found in [Helm App Management](./manage-helm-app). Note that **state apps** must be specified for the `storageClass` when the store is mounted. The following methods must be specified: + +_No.1_ + +Specify or graphically specify in `values.yaml` file and refer to [Helm app management](./manage-helm-app) + + + +_No.2_ + +Set `rainbondvolumerwx` to the default `storageClass`, when deploying Helm will use this `storageClass` by default, setting the following command + +```bash +kubatl patch storageclass rainbondvoluerwx -p '{"metatata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}} +``` + +- Install + +After the above steps go into the installation process and the app is ready to use it when installed. + +#### App usage + +应用安装完毕后平台会将组件自动转换为 Rainbond 模型,会将 Helm 资源对应转换为平台资源。 From d6c6a8b0d782355d071c1b0c68e15f01d6c38a26 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:28 +0800 Subject: [PATCH 136/398] New translations docking_helm_store.md (English) --- .../helm/docking_helm_store.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/docking_helm_store.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/docking_helm_store.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/docking_helm_store.md new file mode 100644 index 0000000000..9f9b571699 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/docking_helm_store.md @@ -0,0 +1,28 @@ +--- +title: Docking Helm warehouse +description: Dock the Helm warehouse in Rainbond +--- + +Complete interface with the Helm repository with this document to enable developers or carriers to deploy applications based on the Helm repository + +### Prerequisite + +Before you start, you need to meet the following condition: + +1. has an account with an enterprise administrator; +2. has a back-to-back Helm repository. + +### Operating processes + +Use **Business Admin Account** in **Business Views** click **App Market**, click `+` to connect to the new App Marketplace and select the Helm Store, enter the following information, click Create, select the private store to enter **Shop Username** and **Store Password**. + +Store name:custom\ +store address:Helm repository address + + + +Auto-display apps from the current Helm repository when pairing is completed + + + +Completing the steps in this section can be based on the Helm App Store deploying the application in Rainbond, followed by reference to the documentation [deployment of Helm applications in Rainbond](./creation-process/). From b927c40bf1843a6b5bac3b9a34b7945258951a11 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:30 +0800 Subject: [PATCH 137/398] New translations example.md (English) --- .../kubernetes-native-guide/helm/example.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/example.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/example.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/example.md new file mode 100644 index 0000000000..bf496b08f1 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/example.md @@ -0,0 +1,70 @@ +--- +title: Deploy Wordpress and Mysql with Helm +description: An example of how to deploy Wordpress on Rainbond with Helm. +keywords: + - Wordpress Helm + - Rainbond Helm +--- + +This example describes how to install WordPress and MySQL on Rainbond with Helm installation commands. + +These two components: + +- Deploying resources for employment and statefulSet respectively, will be used to deploy workload. +- Save data using PersistentVolumes and PersistentVolumes +- Complete communication through the service. +- Encryption of environmental variables via Sercet. + +## Tutorial Targets + +- Drag Chart from the repository using Helm to deploy Workload class resources to Rainbond, including WordPress and MySQL. +- Manage non-Workload class resources in the `Apps > k8s resource`s in apps, including Service and Sercet. +- Manage Workload properties in `Other Settings > Kubernetes Properties` in the component, including labels, volume, volumeMounts and env from other sources. +- The `Environment Settings` section of the component manages the Workload properties that can be converted directly by Rainbond and includes the configuration of the custom environment variable. + +## Ready to start + +An available Helm installation command: + +```bash +$ help install my-wp wordpress --repo https://charts.bitnami.com/bitnami +``` + +## Deploy Operations + +1. Enter the team from the `workspace` to enter the command interface by clicking on the new \`> Kubernetes YAML Helm > Helm command. + +2. Select an app or create a new app. + +3. Enter the Helm installation command in the command box. + +4. Waiting for Rainbond pull Chart and waiting for \`Packet check successfully'. + +5. Click `Next` to configure and install. + +6. Rainbond will show configuration options that have been parsed from the Chart pack with variations ranging from `input keys` to `edit values.yaml files`.Click `Install`: + +7. wordpress and wordpress-mysql have been converted to components in Rainbond and started automatically after the build process has been completed. + +
+ Recommended Actions +
+ +- **Storage Transform**: For such resources as PVs, PVC as defined in Yaml, this will be reflected as `volumes` in `Other Settings > Kubernetes Attribute`, It is recommended that the general data persistence configuration `volumeMounts volumes` be defined as the storage of Rainbond components, delete the corresponding memory in `volumeMounts volumes` and add a path that needs to be perpetuated in `Storage > Storage Settings > Add Storage`. + +- **Open External Service**: Rainbond provides a 4/7 layer of gateway, easily provides an external service entry for the component. Users only need to open `External Service` in the `Port` for the specified port to generate an accessible `Ip:Port` or domain name type. + +
+
+ +## Verify + +Visit the external service address of the wordpress component to go to the wordpress configuration page to start your installation trip. + +## Manage components properties + +参考文档 [kubernetes属性](../../use-manual/k8s-attribute) 了解目前 Rainbond 所支持的多种规格定义的配置方式。 + +## Manage k8s resources in apps + +See document [k8s资源操作](/docs/kubernetes-native-guide/import-manage/non-workload) for managing non-Workload type resources. From cf59216d50b4e7571d237814e22f9b6b0f770b26 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:31 +0800 Subject: [PATCH 138/398] New translations export-chart.md (English) --- .../helm/export-chart.md | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/export-chart.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/export-chart.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/export-chart.md new file mode 100644 index 0000000000..78d55cf4c5 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/export-chart.md @@ -0,0 +1,133 @@ +--- +title: Export Helm Chart Pack +description: Support for Helm package to deliver cloud-native applications +--- + +Import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Scene + +The application template export mechanism provided by Rainbond is primarily used to address problems in the delivery of applications to end-users.Unable to meet the scene of the app delivered via Helm + +Applicable scenario includes: + +- Delivery environment provides Helm command +- Offline operations, or delivery scenarios, etc. + +## Prerequisite requirements + +- Rainbond platform version is no less than v5.10.1-release. +- 参考文档,完成应用发布流程,将应用发布到内部组件库。 +- Only apps that support governance mode as native service mode + +## Export Helm Chart Pack + +A published application template was found in the internal component library. In the `Export Application Template` page click to export the `Helm Chart package`.The exported Helm Chart pack can be downloaded once the export is complete. + +得到的 Chart 包,命名格式为 `{应用名称}-{应用模板版本号}-helm.tar.gz` 。The pack can be unpacked in any Linux operating system. The extracted directory structure is as follows (in pig for example): + +```bash +pig-0.1-helm +├── pig +│   ├── Chart.yaml +│   ├── templates +│   │ ├── Deployment.yaml +│   │ ├── Secret.yaml +│   │ ├── ... +│   │ ├── StatefulSet.yaml +│   │ └── Service.yaml +│   └── values.yaml +├── plugin-images.tar +└── component-images.tar +``` + +- The first layer of directory is stored in turn by Helm Chart pack, the image pack used by the plugin, the mirror pack used by the workloads type resource. +- All resources contained in the app will be stored in the Helm Chart template directory (except for address resources). + +## Helm Chart Usage + +### Introduction to Helm Chart Configuration + +As we know, the Helm Chart pack is configurable and will be described below which parameters are configured for the Helm Chart pack exported by Rainbond i.e. a description of values.yaml. + +```bash +mysql: + MYSQL_HOST:127.0.1 + MYSQL_PAS:123456 +redis: + REDIS_HOST:127.0.1 + REDIS_PASS:123456 +imageDomain: goodrain.me +storageClass: "" +``` + +**mysql** **redis** :配置组信息, `MYSQL_HOST:127.0.0.1` `REDIS_PASS:123456`便是你的配置组详细的配置项,这里 对应的就是应用下的配置组, 将配置组的内容作为 values.yaml 里的配置项。\ +**imageDomain**: repository address where the mirror is stored, source of the image.\ +**StorageClass**: The pvc created by Rainbond will use the `storageClass` by default, which can be configured to modify your own `storageClass` + +### Step 1:Upload compressed image + + + + Upload the exported tgz pack to the environment where delivery is required and unpack the `plugin-images.tar` and `component-images.tar` mirrors into the environment before installing it via Helm command, without specifying the mirror repository. + +```bash +docker load < plugin-images.tar +docker load < component-images.tar +``` + +Push the load out mirror back to your mirror repository + +```bash +docker tag goodrain.me/pig:202212165641 registry.cn-hangzhou.aliyuncs.com/goodrain/pig:20221228165641 +docker push regisy.cn-hangzhou.aliyuncs.com/goodrain/pig:20221228165641 +``` + +:::warning +Note that:requires changing the image name of the mirror to modify the image field of the component in the package template directory. +::: + +```bash +help install --set imageSource=registry.cn-hangzhou.aliyuncs.com/goodrain myap./ +``` + + + + Upload the exported tgz pack to the environment where delivery is required and unpack the `plugin-images.tar` and `component-images.tar` mirrors into the environment before installing it via Helm command, without specifying the mirror repository. + +```bash +docker load < plugin-images.tar +docker load < component-images.tar +``` + +:::warning +Note that:needs to execute this command at each node if there are more than one node. +::: + +### Step 2 of:executes the installation command + +Go to the Helm Chart directory to execute the installation command. + +```bash +cd test-0.1 +helm install myap./ +``` + +### Advanced Settings + +#### Configure your own mirror address + +Upload the load image to your own mirror repository and can be set by imageSource field. + +```bash +help install --set imageSource=registry.cn-hangzhou.aliyuncs.com/goodrain myap./ +``` + +#### Edit StorageClass + +The default StorageClass for storage in the exported Chart packet is rainbonvolumerwx provided by Rainbond, which can be configured on its own if you want to specify StorageClass below. + +```bash +help install --set storageClass=mysc myapp./ +``` From 8ec4463d2391281d45c431d598f87c42045113c4 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:33 +0800 Subject: [PATCH 139/398] New translations helm-cmd-install.md (English) --- .../helm/helm-cmd-install.md | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/helm-cmd-install.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/helm-cmd-install.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/helm-cmd-install.md new file mode 100644 index 0000000000..007780e493 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/helm-cmd-install.md @@ -0,0 +1,60 @@ +--- +title: Deploy Helm applications based on the Helm command +description: Install the application with the Helm command +--- + +Follow this document to enable developers or carriers to deploy applications based on Helm commands to Rainbond + +### Prerequisite + +Before you start, you need to meet the following condition: + +1. has a helm executable command (help install only ...) + +2. has a available team + +### Operating processes + +Helm command has two entrances with: + +**No.1** Team View + +Click **New** --> in team view and **Kubernetes YAML Helm** -> Select **Helm Command** to Install -> Select \*\*Apply \*\*Enter **Helm Command** to Install -> **Make sure to create** will jump to the Helm app configuration interface. + + + +**No.2** App View + +Click **Add components** -> **Install from Marketplace**, select apps from the Helm store to connect to. Click **Install** to automatically start the installation. + + + +### Installation process + +The setup process is divided according to the Helm network between two installations, tgz package setup and warehouse address, respectively. + +#### 1.tgz package installation + +**Preconditions** has a Helm tgz pack that can be downloaded and used. + +Example + +```bash +help install mynginx https://example.com/charts/nginx-1.2.3.tgz +``` + +Refer to [Helm](https://helm.sh/en/docs/helm/helm_install/) for how to produce the Helm tgz package. + +The tgz package will check if the command is correct and usable when it is created, then check that it will be converted to Rainbond model and jump to the app view. You will then see the app you installed. + +#### 2.Warehouse Package Installation + +**Prerequisites** has an Helm repository address that can be downloaded and used and contains apps you are about to install. + +Example + +```bash +help install --repo https://example.com/charts/mynginx nginx +``` + +The repository installation click on confirmation will check if the command is correct and is available, then the repository address will be resolved and automatically directed to the Helm App Store and then jump to the configuration interface where the Helm app is installed. From 32eb59fdd80f227685d99c6fcb07b193a67c8da4 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:34 +0800 Subject: [PATCH 140/398] New translations helm-offlince.md (English) --- .../helm/helm-offlince.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/helm-offlince.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/helm-offlince.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/helm-offlince.md new file mode 100644 index 0000000000..dd319f3917 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/helm-offlince.md @@ -0,0 +1,26 @@ +--- +title: Deploy Helm app offline +description: Deploy Helm app offline in Rainbod +--- + +Users can download and configure Helm Chart packages while connected and then upload them to offline systems.Benefits include streamlining offline deployment processes, ensuring consistency and stability in application deployments, easy-to-apply version control and rollover, reducing resource consumption in offline environments and improving security. + +### Preparatory work + +Preparing a tgz pack for Helm Chart + +### Entry + +\*\* Entry 1: \*\*Team View -> New -> Yaml Helm k8s -> Helm -> Upload + +\*\* Entry 2: \*\*Component View -> Add Component -> Helm -> Upload + +### Operating processes + +1. Upload a packaged Helm Chart tgz, click to create it. + +2. Test passed, jump to values.yaml configuration view based on values.yaml information configured in Values configuration in the format of first level field.second.tertiary field. + +3. When configured, jump to the resource display view. Here you can see all workload resources, while mirrors the right side of all components can configure the images used to change them. + +4. Deploy and run successfully. From dc39a32eb228f50c269b10cdaa81ce6e49fa3a22 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:35 +0800 Subject: [PATCH 141/398] New translations index.md (English) --- .../current/kubernetes-native-guide/helm/index.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/index.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/index.md new file mode 100644 index 0000000000..2a6ca0e645 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/index.md @@ -0,0 +1,13 @@ +--- +title: Deploy components using Helm +description: This section describes how to deploy components on Rainbond through the Helm Marketplace and the Helm command. +keywords: + - Deploy components with Helm on Rainbond +--- + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From fdbb1f8adcd888c0993dfb6eb756f335058e5dab Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:36 +0800 Subject: [PATCH 142/398] New translations manage-helm-app.md (English) --- .../helm/manage-helm-app.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/manage-helm-app.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/manage-helm-app.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/manage-helm-app.md new file mode 100644 index 0000000000..51d5661476 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/helm/manage-helm-app.md @@ -0,0 +1,26 @@ +--- +title: Helm Application Management +description: Manage Helm applications in Rainbond +--- + +Follow the documentation on the management of Helm on the Rainbond platform to enable developers or developers to manage and ship VWHelm apps. + +### Helm App Configuration + +The Helm Application Configuration page provides a graphical interface that can modify the contents of the `values.yaml` file. The bottom text box provides the `values.yaml` file preview feature. If you need to modify the configuration it needs to define the keys and values to be changed in the **Values configuration**. + +- Example + +Assuming that the image repository `bitnami/nginx` in the following graph should be changed to `library/nginx`, the key is defined as `image.repository`,value as `library/nginx` in the \*_Values configuration_,' where the key is differentiated by `.` where the key is multiple and the installation or update below will take effect. + + + +### Helm app upgrade to roll back or reinstall + +When the Helm app is deployed and ready to update or roll back versions on the **Upgrade** interface. The actions are equivalent to `helm upgrade` and `helm rollback` commands that need to be updated by default to the latest version, sometimes the latest version detects may not be passed. In this case, it is recommended to re-install versions that choose to install versions that are less than the latest version. + + + +Rollback is in the upgrade history of the upgrade screen + + From 35b433bef231ea19f3021a0adf45ab7ae7318b46 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:38 +0800 Subject: [PATCH 143/398] New translations import-resource.md (English) --- .../import-manage/import-resource.md | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/import-manage/import-resource.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/import-manage/import-resource.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/import-manage/import-resource.md new file mode 100644 index 0000000000..debce5a073 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/import-manage/import-resource.md @@ -0,0 +1,120 @@ +--- +title: Importing existing resources +description: Import existing resources in the Kubernetes namespace to Rainbond for management. +keywords: + - Import Kubernetes Existing Resources +--- + +This document describes how to import resources under namespaces from clusters. + +:::caution + +- Governance mode defaults to k8s native service mode +- Rainbond created or imported namespaces and 'kube-' starting namespace will not be identified. +- Only support transitions of partial classifications. Detailed support for conversion resource types is provided below. +- 导入过程中,如果组件类型资源的 pod 模版内有多个容器, Rainbond 默认只会识别第一个容器,其他容器会丢失,如果想启动多个容器,可以了解一下 Rainbond 的[插件制作](../../use-manual/app-sidecar)。 + ::: + +## Import Conversion Policy + +The following is a detailed list of support resources by type. + +### Component type resource + +This type of resource will be converted to components in Rainbond when it is imported. + +| k8s Resources | Rainbod model | +| ------------- | ------------------- | +| Employment | Stateless Component | +| StatefulSet | State Component | +| CronJob | Time Task Component | +| Job | Task Component | + +### Component Properties Resource + +Component type resource itself carries some attribute values such as Port, ConfigMap, volume, etc. + +| Component Properties | Rainbod model | +| ------------------------ | ------------------------------------------------- | +| nodeSelector | Component Special Properties | +| labels | Component Special Properties | +| tolerations | Component Special Properties | +| Volumes | Component Special Properties | +| ServiceAccountName | Component Special Properties | +| affinity | Component Special Properties | +| volumeMount | Component Special Properties/Profile | +| prived | Component Special Properties | +| Ports | Component Port | +| HorizontalPodAutoscalers | Component Scaling Policy | +| env | Environment Variable/Component Special Attributes | +| HealthyCheckManagement | Component Health Detection | + +If volume of ConfigMap type is mounted in volumeMount, the component will be converted to the component configuration.\ +If env is a reference type, it will not be recognized as an environmental variable for Rainbond + +### k8s Resource Type + +Supplied component calls resources (only the following resources are temporarily supported) + +| k8s Resource Type | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Service | +| PersistentVolumeClaim | +| Progress | +| NetworkPolicy | +| ConfigMap | +| Secret | +| ServiceAccount | +| RoleBinding | +| HorizontalPodAutoscaler | +| Role | +| This type of resource will be stored for component special attributes after completion of import into the corresponding k8s resource, in which volume can bind to ConfigMap, Secret | + +## Import started + +Resource import has two entry with: + +1. Platform Manager -> Cluster -> Import +2. In team view -> Add -> Kubernetes YAML Helm -> Import Kubernet already available resources. + +### Prerequisite + +1. Learn about the concepts of all modules of Rainbond team, applications, components, etc. +2. There is a namespace that is not managed by Rainbond and that has k8s resources under the namespace. +3. Add a uniform label to the k8s resources that want to be placed under the same app, in the form of `app.kubernetes.io/name:xxx` or `app:xxx`. +4. Learn about the import of resources (click on the import button in the action bar under cluster view). + +Below will use Linkerd namespace as an example of how to import Linkerd namespace and its internal resources on Rainbond + +### Select namespace + +1. Select the namespace you want to import from the dropdown. + +2. Once the page has been identified, you will see that the page is categorized according to app.kubernetes.io/name:xxx`or`app:xxx` is divided by the app.kubernetes.io/name:xxx` to check if there is a missing or unsorted resource, and if resources that do not divide the application label are placed in the default ungrouped app. + +3. If there is a resource that needs to be repositioned or does not want to be imported, you can go to the cluster to adjust by clicking on the previous step and then go back to the identification page once finished. The identification page can be viewed repeatedly. + +4. After viewing the resource type and name and selecting the namespace, make sure you click next to enter advanced identification. + + + +### Advanced Resource Identification + +1. On this page you can see how the resources you deploy to the cluster match after Rainbond modules.The Deployment, Job, Cronjob, StatefulSets will be identified as components, and other services and HPA resources will be parsed into k8s resources under the app view. + +2. After confirmation, click to confirm import. + + + + +### Resource Import + +1. After the first two rounds of inspections, click on confirm that the import will begin and take over the resource, which will require a series of operations to pull mirrors, data entry, etc. so it will take some time to wait depending on the amount of resources under the namespace. + +2. Once the import is completed, you will jump to the team view to see the resources of Rainbond after taking over. + +3. The unclassified app is the default ungrouped app referred to above. + +Rainbond does not reboot the user's resources in the cluster immediately after taking over them. When the user clicks on reboot or update, it will produce a resource that is completely taken over by Rainbon. + + From b9dffdabd0ceb93aa172766a1a8dabe9252ca1b2 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:40 +0800 Subject: [PATCH 144/398] New translations index.md (English) --- .../kubernetes-native-guide/import-manage/index.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/import-manage/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/import-manage/index.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/import-manage/index.md new file mode 100644 index 0000000000..87014f6629 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/import-manage/index.md @@ -0,0 +1,14 @@ +--- +title: Kubernetes resource import and management +description: This chapter describes how to import existing Kubernetes resources and manage non-workload type resources on Rainbond. +keywords: + - Kubernetes resource import and management + - Manage non-Workload type resources +--- + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 7cd31a07d7a795343b169f985adcac3a1b15487d Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:41 +0800 Subject: [PATCH 145/398] New translations non-workload.md (English) --- .../import-manage/non-workload.md | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/import-manage/non-workload.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/import-manage/non-workload.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/import-manage/non-workload.md new file mode 100644 index 0000000000..13bbb977e4 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/import-manage/non-workload.md @@ -0,0 +1,58 @@ +--- +title: Non-workload resource management +description: Create k8s resources directly by writing yaml +--- + +This document describes how to create k8s resources through the yaml file, k8s resources to meet the user's ability to create k8s cluster resources through the writing yaml form. Here all resources in k8s can be created like Secret , PV and others without a corresponding model in the platform.This feature module only supports creation, editing modification, deletion, and cannot convert corresponding resources to Rainbond model layers. If you want to deploy business with yaml files, select add component -> yaml file deployment component + +## Prerequisite + +1. Well familiar with the yaml file for k8s resources, prepare a yaml file for k8s resources. + +2. Check if the current team and app are intended to create a location. + +3. Check if resources of the same type and name already exist in the k8s resources of the same app at the same level, reducing the problems encountered in creating the resource. + +Below is the example of Linkerd namespace, which describes the treatment of k8s resources on Rainbond + +## Add + +1. Click to add a button + +2. Write yaml file content + +3. Click OK after confirmation. + +4. See if there is a failed resource. Click for details to see the reasons for the specific failure. + + + +:::caution + +- Failed creation resource is unavailable for resource type and resource name and does not support modifications. Recreation needs to be deleted. +- Create the written yaml file to support the writing of multiple k8s resources that are separated by `--` before they are created and will be displayed. + ::: + +## Modify + +1. Click the edit button. + +2. Modify the content of the yaml file. + +3. Click OK after confirmation. + +4. See if there is a failed resource. Click for more details to see the reasons for the failures. + + + +:::caution + +- Note that the yaml file will have an additional line of:`resourceVersion:xxxxxxx` after creating it. This cannot be deleted during the modification. +- Modifying the content of the yaml file only supports changes to the current resource, adding new resources again in the yaml file. Please go the creation logic if you want to create the resource. + ::: + +## Delete + +1. Click the delete button when the resource is confirmed. + + From 8aa1c31ca21e1d2032b107a9d9a669f0dd0beb5d Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:42 +0800 Subject: [PATCH 146/398] New translations index.md (English) --- .../current/kubernetes-native-guide/index.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/index.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/index.md new file mode 100644 index 0000000000..5d794f0fd9 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/index.md @@ -0,0 +1,15 @@ +--- +title: Native Kubernetes Guide +description: Migrating from Kubernetes to Rainbond. +keywords: + - Yaml Guide + - Helm Guide + - Kubernetes +--- + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 579861cc174d7754647affc7e641842567a941f7 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:44 +0800 Subject: [PATCH 147/398] New translations index.md (English) --- .../kubernetes-native-guide/overview/index.md | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/overview/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/overview/index.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/overview/index.md new file mode 100644 index 0000000000..f7dec2ef26 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/overview/index.md @@ -0,0 +1,53 @@ +--- +title: Overviews +description: Overview of the native Kubernetes Guide +keywords: + - Overview of the Yaml Helm guide + - Rainbond Yaml Helm +--- + +Rainbond has been available since version V5.8 for users already using Kubernetes to use Yaml or Helm to deploy applications.The current guide guides users how to deploy Yaml or Helm Chart to Rainbond that can already be deployed in the native Kubernetes process. This process will automatically complete the transformation of the application model and subsequent management can be done through Rainbon. + +## Convert Principles + +Rainbond extends the original RAM (Rainbond Application Model) model boundary to set more attributes in the form of `Other Settings > Kubernetes Attributes` in addition to the most commonly used shipping properties.Flexibility is maintained with flexibility.Preconditions are provided for automating converting native Kubernetes definitions to RAM models. + +Rainbond can get a specified type of Workload definition from Yaml or Helm Chart and convert it into a manageable component in Rainbond interface. Currently supported Workload types include Deemployment, StatefulSet, Job and CronJob.Some non-Workload types of resources, such as Service, Sercet, etc. are treated additionally. + +An example is the Wordpress Station System defined by Yaml, which shows how different resources are handled. + + + +Rainbond did not fully inherit the design ideas of the original Kubernetes and because of the differences in the designs listed below, Rainbond needed a series of conversions when accepting the Yaml or Helm application for deployment, knowing that the differences were helpful in deploying the Yaml or Helm category. + +### Non-Workload resources converted to app + +Unlike the way in which the original Kubernetes is used, Rainbond has highlighted the use of this core concept.Applying this concept is not a certain resource in Kubernetes. It is a combination of a related set of Workloads, like a web site class business system, often with a Web site service deployed by Deployment, and a database service deployed by StatefulSet.For Kubernetes these are two workloads that can be managed separately, while in Rainbond world there is a greater focus on managing them as a complete application uniform, in addition to a fine-tunable independent management of each workload. + +There are no concepts in the native Kubernetes that correspond to the application concepts in Rainbond but the user can point out that all resource definitions in Yaml are deployed to applications in Rainbon.When a user defines a non-Workload class resource in Yaml (e.g. Service, Sercet, etc.), Rainbond will convert it to the `Application > k8s resource` list and will provide access to edit it for user follow-up management.See [Non-Workload Resource Management](/docs/kubernetes-native-guide/import-manage/non-workload) + +### Workload resources are converted separately + +The native-born Kubernetes system, which focuses on the fine-tuning of all resources, provides enough freedom to use them and significantly raises the threshold of entry.For the management of a single Workshop, Rainbond focused on improving the ease of use of the product in the design of the product, transforming the most commonly used definition of resource specifications (Spec) into a user-friendly graphical function.For most applications, Rainbond provides sufficient functionality.For additional resources, Rainbond will provide a configuration entry in the component `Other Settings > Kubernetes Attribute`. + +Rainbond draws workload definitions from all resources provided by the user as defined in Yaml and converts applications to generate examples of components from which Rainbond can be managed.During the conversion, Rainbond automatically identifies all specifications that can be managed, assigns different properties to the extended RAM model, most of the properties continue to be consistently easy to use, while the other part is managed by the `Other Settings > Kubernetes Properties` page.管理方式参见 [组件 kubernetes 属性管理](../../use-manual/k8s-attribute) + +## Usage Method + +Deploy via Yaml is the simplest way when the user has a Yaml file that can be used in Kubernetes.Refer to [yaml文件识别创建](/docs/kubernetes-native-guide/yaml/cree). + +Deployment of applications via Helm is also a good option when users have made business systems into the Helm Chart package.Please refer to the Helm app [deployed based on Helm command](/docs/kubernetes-native-guide/helm/help-cm-install) or after [对接Helm仓库](/docs/kubernetes-native-guide/helm/docking_helm_store) [deployed Helm app based on the Marketplace](/docs/kubernetes-national-guide/helm/creation-process). + +## Export Helm Pack + +Rainbond can accept the input of a variety of native Kubernetes and can export deployed apps to the Helm Chart pack acceptable to the Kubernetes system.This usage experience is very similar to Rainbond exporting its own RAM packages. + +See [Export Helm Chart Pack](/docs/kubernetes-native-guide/helm/export-chart) + +## Demo Example + +The following document links provide an example of how a Wordpress building system is deployed in Rainbond via Yaml or Helm Chart + +[Deployment of Wordpress and Mysql](/docs/kubernetes-native/yaml/example) + +[Use Helm to deploy Wordpress and Mysql](/docs/kubernetes-native-guide/helm/example) From 8c470c27422b8576fb474e645e9ade38fa223d0f Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:45 +0800 Subject: [PATCH 148/398] New translations create.md (English) --- .../kubernetes-native-guide/yaml/create.md | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/yaml/create.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/yaml/create.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/yaml/create.md new file mode 100644 index 0000000000..3a2be47e10 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/yaml/create.md @@ -0,0 +1,78 @@ +--- +title: YAML transformation and creation +description: This document describes YAML identification strategies and how to create components by uploading YAML files. +keywords: + - Rainbond YAML + - Rainbond YAML Create Component +--- + +This document describes Rainbond recognition of YAML strategies and how to create components by uploading YAML files. + +## YAML Conversion Policy + +Rainbond converts the type of resources in the YAML file to the component type in Rainbond and to the Rainbond abstract layer of the particular resource, below is a detailed list of support resources by type: + +### Component type resource + +This type of resource will be converted to components in Rainbond when it is imported. + +| k8s Resources | Rainbod model | +| ------------- | ------------------- | +| Employment | Stateless Component | +| StatefulSet | State Component | +| CronJob | Time Task Component | +| Job | Task Component | + +### Component Properties Resource + +Component type resource itself carries some attribute values such as Port, ConfigMap, volume, etc. + +| Component Properties | Rainbod model | +| ------------------------ | ------------------------------------------------- | +| nodeSelector | Component Special Properties | +| labels | Component Special Properties | +| tolerations | Component Special Properties | +| Volumes | Component Special Properties | +| ServiceAccountName | Component Special Properties | +| affinity | Component Special Properties | +| volumeMount | Component Special Properties/Profile | +| prived | Component Special Properties | +| Ports | Component Port | +| HorizontalPodAutoscalers | Component Scaling Policy | +| env | Environment Variable/Component Special Attributes | +| HealthyCheckManagement | Component Health Detection | + +- If volume of ConfigMap type is mounted in volumeMount, the component will be converted to the component configuration. +- If env is a reference type, it will not be recognized as an environmental variable for Rainbond +- All other resources are placed in k8s resources under app view. + +## Create component using YAML + +### Prerequisite + +1. Well familiar with YAML files for Kubernetes resources, prepare YAML files for one or more Kubernetes resources. +2. Check if the current team and app are intended to create a location. + +### Upload YAML file + +1. \*\*Upload in team view -> Add -> Kubernetes YAML Helm -> YAML File \*\* or **Application View -> Add Component -> Create Based on YAML** +2. Upload YAML file +3. Click to create after confirmation is correct. + + + +### Kubernetes Resource Name + +1. This section identifies the full range of k8s resources, and if part is converted to Rainbond resources, all other resources are stored in the k8s resources under application. +2. Click next to check for error + + + +### Advanced Resource Identification + +1. On this page you can see how the resources you deploy to the cluster match after Rainbond modules.The Deployment, Job, Cronjob, StatefulSets will be identified as components, and other services and HPA resources will be parsed into k8s resources under the app view. +2. Tap to deploy after confirmation. +3. Deploying requires data storage, pull mirrors, etc. so long and wait to jump to app view + + + From a62f7b686188f4343cc86070e59b9b8c4f0559ff Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:47 +0800 Subject: [PATCH 149/398] New translations example.md (English) --- .../kubernetes-native-guide/yaml/example.md | 262 ++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/yaml/example.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/yaml/example.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/yaml/example.md new file mode 100644 index 0000000000..96b297d3ce --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/yaml/example.md @@ -0,0 +1,262 @@ +--- +title: Deploy Wordpress and Mysql with Yaml +description: How to deploy a Wordpress example on Rainbond with Yaml files available in native K8s. +keywords: + - Wordpress Yaml + - Rainbond Yaml +--- + +This example describes how to install WordPress and MySQL on Rainbond through a set of Yaml declaratory profiles. + +These two components: + +- Deploying resources for employment and statefulSet respectively, will be used to deploy workload. +- Save data using PersistentVolumes and PersistentVolumes +- Complete communication through the service. +- Encryption of environmental variables via Sercet. + +:::caution +Warning: +this deployment is not suitable for production scenes because it uses single instance WordPress and MySQL Pod. In production scenarios, consider using WordPress Helm Chart to deploy WordPress. +::: + +## Tutorial Targets + +- Use Yaml files to deploy Workload class resources to Rainbond, including WordPress and MySQL. +- Manage non-Workload class resources in the `Apps > k8s resource`s in apps, including Service and Sercet. +- Manage Workload properties in `Other Settings > Kubernetes Properties` in the component, including labels, volume, volumeMounts and env from other sources. +- The `Environment Settings` section of the component manages the Workload properties that can be converted directly by Rainbond and includes the configuration of the custom environment variable. + +## Ready to start + +wordpress-depoyment.yaml, defined: + +- Deployment: wordpress +- Service: wordpress +- PersistentVolumeClaim: wp-pv-claim + +
+ wordpress-depyment.yaml +
+ +```yaml +apiVersion: v1 +kind: Service +metadata: + name: wordpress + labels: + app: wordpress +spec: + ports: + - port: 80 + selector: + app: wordpress + tier: frontend + type: LoadBalancer +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: wp-pv-claim + labels: + app: wordpress +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 20Gi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: wordpress + labels: + app: wordpress +spec: + selector: + matchLabels: + app: wordpress + tier: frontend + strategy: + type: Recreate + template: + metadata: + labels: + app: wordpress + tier: frontend + spec: + containers: + - image: wordpress:4.8-apache + name: wordpress + env: + - name: WORDPRESS_DB_HOST + value: wordpress-mysql + - name: WORDPRESS_DB_PASSWORD + valueFrom: + secretKeyRef: + name: mysql-pass + key: password + ports: + - containerPort: 80 + name: wordpress + volumeMounts: + - name: wordpress-persistent-storage + mountPath: /var/www/html + volumes: + - name: wordpress-persistent-storage + persistentVolumeClaim: + claimName: wp-pv-claim + +``` + +
+
+ +mysql-statefulset.yaml, defined: + +- StatefulSet: wordpress-mysql +- Service: wordpress-mysql +- Secret: mysql-pass + +
+ mysql-statefulset.yaml +
+ +```yaml +apiVersion: v1 +kind: Service +metadata: + name: wordpress-mysql + labels: + app: wordpress +spec: + ports: + - port: 3306 + selector: + app: wordpress + tier: mysql + clusterIP: None +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: wordpress-mysql + labels: + app: wordpress +spec: + serviceName: wordpress-mysql + selector: + matchLabels: + app: wordpress + tier: mysql + template: + metadata: + labels: + app: wordpress + tier: mysql + spec: + containers: + - image: mysql:5.6 + name: mysql + env: + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: mysql-pass + key: password + ports: + - containerPort: 3306 + name: mysql + volumeMounts: + - name: mysql-data + mountPath: /var/lib/mysql + volumeClaimTemplates: + - metadata: + name: mysql-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 20Gi +--- +apiVersion: v1 +kind: Secret +metadata: + name: mysql-pass +type: Opaque +data: + password: cGFzc3dvcmQ= +``` + +
+
+ +## Deploy Operations + +1. Enter the team from the `workspace` to upload the file by clicking the new `>Kubernetes YAML Helm`. + +2. Select an app or create a new app. + +3. Upload a ready Yaml file from a local computer. Bulk upload is supported. + +4. Wait for uploaded Yaml files to appear in the list of files. + +5. Click `Confirm Create`. + +6. Rainbond will display a list of resources that are parsed from Yaml. For the aforementioned Wordpress building system Yaml, users should be able to see that the list contains the following. Once confirmed, click `Next`: + +
+ Resource List +
+ +- **Deemployment**: wordpress +- **StatefulSet**: wordpress-mysql +- **Service**: wordpress-mysql wordpress +- **PVC**: wp-pv-claim +- \*_Secretaries_: mysql-pass +- **ServiceAccount**: wordpress-mysql wordpress + +
+
+ +7. On this page, Rainbond is more nuanced in how each resource is handled, this page cannot be edited, and then click `Deploy`: + +
+ Advanced Resources +
+ +- \*_wordpress-mysql_: Convert to a component as Workload of StatefulSet type and identify specifications to be converted to a configurable graphical option or special attribute of Rainbond type. +- **wordpress**: Convert to component as Workload of employment type, identified specification definitions to configurable graphical options or special attributes of Rainbond +- **k8s Resources**: Access to Management Service, Sercet, PersistentVolumeClaim resources. + +
+
+ +8. Wordpress and wordpress-mysql have been converted to components in Rainbond and have completed the build process. The component is not yet started, and users can manage it at this time. + +
+ Recommended Actions +
+ +- **Storage Transform**: For such resources as PVs, PVC as defined in Yaml, this will be reflected as `volumes` in `Other Settings > Kubernetes Attribute`, It is recommended that the general data persistence configuration `volumeMounts volumes` be defined as the storage of Rainbond components, delete the corresponding memory in `volumeMounts volumes` and add a path that needs to be perpetuated in `Storage > Storage Settings > Add Storage`. + +- **Open External Service**: Rainbond provides a 4/7 layer of gateway, easily provides an external service entry for the component. Users only need to open `External Service` in the `Port` for the specified port to generate an accessible `Ip:Port` or domain name type. + +
+
+ +9. Start all components. + +## Verify + +Visit the external service address of the wordpress component to go to the wordpress configuration page to start your installation trip. + +## Manage components properties + +参考文档 [kubernetes属性](../../use-manual/k8s-attribute) 了解目前 Rainbond 所支持的多种规格定义的配置方式。 + +## Manage k8s resources in apps + +See document [k8s资源操作](/docs/kubernetes-native-guide/import-manage/non-workload) for managing non-Workload type resources. From acf0732e2cf09047686fbfc8f7f71cb11bb36536 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:48 +0800 Subject: [PATCH 150/398] New translations index.md (English) --- .../current/kubernetes-native-guide/yaml/index.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/yaml/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/yaml/index.md b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/yaml/index.md new file mode 100644 index 0000000000..c5bb619e86 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/kubernetes-native-guide/yaml/index.md @@ -0,0 +1,13 @@ +--- +title: Deploy components using YAML +description: Describes using YAML deployment components on Rainbond. +keywords: + - Use YAML deployment component on Rainbond +--- + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 763895527719cbb17daa0ba1e6f57965ce540f48 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:49 +0800 Subject: [PATCH 151/398] New translations index.md (English) --- .../current/localization-guide/index.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/localization-guide/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/index.md b/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/index.md new file mode 100644 index 0000000000..ba6769c6b9 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/index.md @@ -0,0 +1,12 @@ +--- +title: Guide to National Productivity +--- + +This section focuses on key elements of the functional presentation and use of Rainbond in the field of national production of credits. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 06524ac83fa62cb309385e8a1ee6d1bec1127a0c Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:50 +0800 Subject: [PATCH 152/398] New translations multi-arch-app-deploy.md (English) --- .../multi-arch-app-deploy.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-app-deploy.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-app-deploy.md b/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-app-deploy.md new file mode 100644 index 0000000000..ca426752f4 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-app-deploy.md @@ -0,0 +1,29 @@ +--- +title: Select architecture deployment components +--- + +# Specify schema + +When a compute node in the Rainbond cluster that does not fit into the CPU architecture, when a new component is created, a service component can be deployed by selecting the method.Optional architecture information from Rainbond query in real time. + +![](https://grstatic.oss-cn-shanghai.aliyuncs.com/localization-guide/%E5%BC%82%E6%9E%84%E5%BE%AE%E6%9C%8D%E5%8A%A1%E8%BF%81%E7%A7%BB.png) + +## Isomal source build + +Rainbond 自带的 [源码构建](/docs/devops/app-deploy/) 能力,现在已经拓展到 `arm64` 可用的场景中。When building service components, users simply provide source repository addresses, then select `arm64` architecture. Rainbond will automatically configure the appropriate build, run environment and run it to the corresponding compute node. + +## Isomable Package Builds + +For Java type of business, its Jar/War Package itself does not relate to the CPU architecture, it is sufficient to provide an appropriate operating environment.鉴于此,Rainbond 上传软件包功能也支持选择架构部署的配置。 + +## Isomal mirrors build + +When the container mirror is used to provide version `arm64/v8`, the user chooses the `arm64` architecture.Rainbond can pull the mirror of the corresponding version and deploy it to the corresponding computing node. + +## Marketplace + +The open source store provided by Rainbond by default is now on the available application templates under the `arm64` architecture for user's one-click installation.Of course, users can also publish their own application templates when the `arm64` service is deployed. + +# Modify schema + +Service component architecture information is recorded on the **build source** page of the component. When users want to change the service component to another structure, they can use \*\*change it at **build source**.Reselect the architecture **OK\*\*\*\*Build** will be done again. From a5b99cee336dc253f81e065a74f533e127230e8a Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:52 +0800 Subject: [PATCH 153/398] New translations multi-arch-app-orchestration.md (English) --- .../multi-arch-app-orchestration.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-app-orchestration.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-app-orchestration.md b/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-app-orchestration.md new file mode 100644 index 0000000000..ae349fdc2e --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-app-orchestration.md @@ -0,0 +1,11 @@ +--- +title: Heterogeneous microservice orchestration +--- + +# Meaning of isomer microservice organization + +Rainbond version of "Trust" with "One cloud of multichit" management capability allows for the integrated movement control of computing nodes of different CPU structures in the same cluster.The service component in the app can also be deployed to the specified structure as required.However, only if the microservices components of the different structures can be structured and communicated, they can become an organic whole and form a complete business system.It also meets the special requirements for the period of transition from traditional `X86_64` to `arm64` countries. + +Building on the capacity of the Service Mesh or Kubernetes Service, Rainbond naturally supports the organization and communication between cross-structure microservices.Using methods is not the same as that used by Rainbond to drag and drop wooden microservices. + +![](https://grstatic.oss-cn-shanghai.aliyuncs.com/localization-guide/%E5%BC%82%E6%9E%84%E5%BE%AE%E6%9C%8D%E5%8A%A1%E7%BC%96%E6%8E%92.png) From b4bcc01ee731df7299068f2f9e1ede392b3ec6a8 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:53 +0800 Subject: [PATCH 154/398] New translations multi-arch-installation.md (English) --- .../multi-arch-installation.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-installation.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-installation.md b/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-installation.md new file mode 100644 index 0000000000..11d8dd5f4d --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-installation.md @@ -0,0 +1,19 @@ +--- +title: Heterogeneous cluster installation +--- + +# Introduction to the “One cloud of multichith” isomer cluster + +By definition, a “cloud of multichith” isomer cluster means that its CPU chip architecture is not unique in the computing nodes in the same cluster. + +In general, the CPU chip architecture is based on the `X86_64` set of instructions from Intel Corporation and the `amd64` set of instructions that are fully compatible with `X86_64` can be considered equivalent.And in the case of the National Creative Trust Scenario, many production CPU structures are developed on the basis of the `arm64` directive, and commonly known as the `pupil 920, flown chip etc.In order to be able to integrate into national production messages with IT ecology, Rainbond has been fully compatible with the `arm64\` architecture since the start of the version of the Creation. + +National production of confidence is by no means overnight, and many applications developed under the traditional `X86_64` framework will take a long time to adjust or even restructure to operate exclusively on the national production chips and the ability of “one cloud of multichias” to operate multiple architecture applications simultaneously will play a significant role in the transition phase of nationalization substitution. + +Rainbond version allows for the unified management and movement of CPU structures to compute nodes in the same cluster, while allowing multiple individual architecture clusters to be built with multi-cluster management capabilities.Unequal flexibility allows decision makers to decide on the deployment strategy for calculating resources for their own isomers. + +![](https://grstatic.oss-cn-shanghai.aliyuncs.com/localization-guide/%E5%BC%82%E6%9E%84%E9%9B%86%E7%BE%A4%E7%AE%A1%E7%90%86.png) + +# Installation of isomer clusters + +Rainbond version optimizes [从主机安装](/docs/installation/installation-with-ui/) logic. Users only need to provide IP addresses for all nodes, node types to complete cluster installation.Installing controllers will automatically identify CPU structure information for all nodes, complete the configuration and incorporate it into clusters.The entire process does not require any special configuration for CPU structures. From f7d8272a70e0e6c89ea48e68aa27ce1b3e510f71 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:54 +0800 Subject: [PATCH 155/398] New translations multi-arch-model.md (English) --- .../current/localization-guide/multi-arch-model.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-model.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-model.md b/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-model.md new file mode 100644 index 0000000000..023916ac2f --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/multi-arch-model.md @@ -0,0 +1,11 @@ +--- +title: Heterogeneous application template +--- + +# Publish the application template of the specified architecture + +Rainbond 在进行常规的发布应用模板操作时,将自行查找当前应用下所有服务组件的架构信息并记录到模板中。Thus, when the application template is installed, the corresponding component will be deployed to compute nodes with CPU structures based on architecture information. + +# Open Source App Store + +The Open Source App Store is now continuously listing the application templates of the `arm64` architecture, such as MySQL, Redis and so on.Users can use one click for installation. From 17a0536323ae9b76d2563fba32ccc5faeb108521 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:56 +0800 Subject: [PATCH 156/398] New translations index.md (English) --- .../localization-guide/overview/index.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/localization-guide/overview/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/overview/index.md b/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/overview/index.md new file mode 100644 index 0000000000..e4ea3d3fae --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/localization-guide/overview/index.md @@ -0,0 +1,31 @@ +--- +title: Overview +description: Overview of Rainbond Creative Guidelines +keywords: + - Message + - Nationalization + - Arm +--- + +# Learn about Rainbond Creativity + +The Rainbond version of the Creativity Scenario, which was produced specifically for the national production of trusts, comprehensively reduces the cost of technology for migration of applications to the Creative Environment and contributes to the zero cost migration of the Creative Creation.Rainbond countries produce IT ecology and have completed compatibility certification with multiple national CPU structures, allowing rapid deployment under different structures.Creativity applications, legacy business systems can provide source code, software packages, container mirrors, etc. Zero cost to move to the home fun environment.At the same time, Rainbond, with its strong cloud management capability, enables users to manage multiple isomer clusters, “One cloud-multich” clusters through a single control platform, making full use of the resources of different cloud platforms and performing high-difficulty operations such as cross-cloud movement and mixing of isomer applications. + +The "Confidence Creation" version further expands the functionality of the Cloud Native App Store.Creativity apps can be easily released as an application template for different structures, installing one click in a nationally-produced confidence creation environment.Open source stores also offer hundreds of open source software that can be used under different structures, significantly reducing the cost of software delivery for a domestically produced confidence-building environment. + +# Creativity + +Rainbond supports the following features in Creativity fields in: + +- "A cloud of multiple chires", manage the isomer cluster: + +A one-click installation and hosting of the Kubernetes cluster, which in addition to the traditional X86/64 architecture, fully supports the arm64 architecture, unifying the management of nationally produced chips based on the Arm set of instructions, such as the SAP 920 and the Flight. + +- Fast migration of traditional apps to FREE: + +Source build capacity fully supports the arm64 architecture, and migration of traditional applications to the national production environment without modifying one line of code.Lew Rainbond has an established cloud native management experience and simplify course-management +costs for messenger generation apps. + +- Application market mechanism fully supports arm64 architecture: + +Users can install an open source app in an open source store that works under the arm64 architecture.Self-released application templates also automatically recognize their architectural properties, which means that users can make their own application templates suitable for installation under the arm64 architecture, reducing the cost of delivery for the fun environment. From 500bbfe655d8567823d2fcb71234baaba3a102f4 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:57 +0800 Subject: [PATCH 157/398] New translations arthas.md (English) --- .../current/micro-service/analysis/arthas.md | 185 ++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/micro-service/analysis/arthas.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/micro-service/analysis/arthas.md b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/analysis/arthas.md new file mode 100644 index 0000000000..f069a48594 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/analysis/arthas.md @@ -0,0 +1,185 @@ +--- +title: Arthas usage +description: The JAVA diagnostic tool Arthas is implemented on Rainbond +keywords: + - Arthas + - Performance Analysis +--- + +Don't worry about what to do with Java business online, `Arthas` helps you solve the following FAQ: + +- The class is loaded from which jar package?Why report various related Exceptions? +- Why did I change the code not be executed to?Is it not my commit?Something went wrong? +- Problems cannot be debugged online. Can you only republish by adding logs? +- There was a problem with the data processing of a user on the line, but it is also impossible to debug! It cannot be repeated underline! +- Is there a global perspective to see how the system works? +- What can be done to monitor the current status of JVM? +- How quickly to locate the app's hotspot and generate the flames? +- How do I find a class directly from JVM? + +[Arthas](https://arthas.aliyun.com/) (Alsas) is an online diagnostic product that provides real-time access through a global view to the status of the application, load, memory, gc and thread, and can diagnose business issues without modifying the application code, including access to and access to the method, anomalies, monitoring methods time-consuming, class loading information, etc. to significantly increase the efficiency of online problem profiling. + +Arthas uses command-line interactive mode while providing a rich range of `Tab` auto-completion, further facilitating the location and diagnosis of the problem. + +And Arthas also supports entering command line interaction via Web Console which works for the Arthas Web Console Diagnostic Business when developers do not have server permissions. + +## Arthas Integration on Rainbond + +**1. Plugin integration** + +Install the Arthas plugin from Rainbond Open Source Store and open in the component. When started, `arthas-agent.jar` is automatically launched using `javaagent` in combination with environmental variables. + +**2. Arthas Tunnel Integration** + +Diagnostic via Arthas is trouble when our microservices have 10+. Developers have no server permissions and access via Web Console can cause particular confusion due to too many visiting addresses.This will require remote managing/connecting multiple Agent via Arthas Tunnel Server/Client. + +Arthas Agent will register in Arthas Tunnel via WS to manage uniformly. + +Arthas Tunnel can be installed via Rainbond Open Source Store one key. + +**3. Arthas Web Console** + +For Spring Boot apps there is no need to access Web Console via Arthas Tunnel and add 8563 ports within the component to access Web Console.(Note that websocket support is required for:domain access + +![](https://static.goodrain.com/wechat/arthas/10.png) + +## Use Arthas to diagnose the Spring Boot app on Rainbond. + +### 1. Deploy Spring Boot app + +Team -> Add -> Create Component -> Deploy in App Store if you want to use SpringBoot\`. + +### 2. Install Arthas Java Agent plugin and configure + +**Install Plugins** + +Team -> Plugins -> Install Plugins from App Shop -> Search `Arthas-Agent` for one-click deployments. + +**Open Plugins** + +Get the Arthas Agent plugin for `ruoyi-admin`, in the component -> Plugins -> Undo -> Open -> Open Plugin. + +**Environment Variable Configuration** + +Configure environment variables for `ruoyi-admin` components, --> Environment Variables -> Add Variable. + +| Variable Name | Variable value | +| --------------------------------------------------------- | ------------------------------------------------------------ | +| JAVA_OPTS | -javaagent:/arthas-agent.jar | +| ARTHAS_APP_NAME | ruoyi-admin | +| ARTHAS_AGENT_ID | ruoyi-admin | + +**2.4 Add port and update** + +Add 8563 ports and open external services for the `ruoyi-admin` component. Web Console can be accessed via default domain name when the component is completed. + +![](https://static.goodrain.com/wechat/arthas/13.png) + +## Use Arthas to diagnose SpringCloud app on Rainbond. + +Use Arthas Diagnostics for Microservices [Spring Cloud Pig](/docs/microservice/example/pig) deployed on Rainbond and via Arthas Tunnel Unified Management Arthas agent. + +### 1. Deployment of Spring Cloud Pig + +Team -> Add -> Build Component -> Search for `SpringCloud-Pig` in the App Store. + +### Deployment of Arthas Tunnel + +Team -> Add -> Generate Component -> Search for `Arthas-Tunnel` in the App Store. + +### 3. Install Arthas Agent plugin and configure + +**Install Plugins** + +Team -> Plugins -> Install Plugins from App Shop -> Search `Arthas-Agent` for one-click deployments. + +**Open Plugins** + +Open plugins for each microservice component, enter the microservice component -> Plugin -> Open plugin `Arthas-Agent`. + +**Configure Environment Variables** + +Configure environment variables for each microservice component, add variables in components -> Environment Variables -> Adds. + +| Variable Name | Variable value | Note | +| --------------------------------------------------------- | ------------------------------------------------------------ | ---------------------------------------------------------- | +| JAVA_OPTS | -javaagent:/arthas-agent.jar | JAVA Launch Parameters | +| ARTHAS_APP_NAME | Register | arthas app name, modified as actual | +| ARTHAS_AGENT_ID | Register | arthas agent ID cannot be the same as other IDs, is unique | + +**Configure Relations** + +Depends all microservice components on `arthas tunnel`. Apply views to layout mode to drag and drop them. + +![](https://static.goodrain.com/wechat/arthas/arthasgif.gif) + +**Bulk Update** + +Update/Restart all microservice related components.You can bulk actions in the `list`. + +### 4. Diagnostics via Arthas Tunnel connection to other Agents + +1. Access Web Console via default generated domain name from Arthas Tunnel 8080 port. + +2.IP:PORT Fill Arthas Tunnel 7777 in Web Console for External Service Port, 7777 for Agent connected to TunnelSo modify AgentId when connecting to other services via Web remotely + +![](https://static.goodrain.com/wechat/arthas/7.png) + +## Start with Arthas + +### Arthas Command Use + +Arthas uses command-line interactive mode while providing a rich range of `Tab` auto-completion, further facilitating problem location and diagnosis, below is part of the command, see document [Arthas命令列表](https://arthas.aliun.com/doc/commands.html). + +- dashboard - real-time data panel for current system +- getstatic - View class static properties +- heapdump - dump java heap, heap dump features like jmap command +- jvm - View current JVM information +- Logger - View and modify the logger +- mbean - View Mbean information +- Memory - View JVM memory information +- ognl - execute ognl expression +- perfcounter - View Perf Counter information for current JVM +- sysenv - View JVM environment variables +- sysprop - View and modify JVM system properties +- thread - View current JVM thread stack information +- vmoption - View and modify the related option in JVM +- vmtool - lookup objects from jvm, executeGc + +以下是部分命令的使用截图: + +![](https://static.goodrain.com/wechat/arthas/15.png) + +![](https://static.goodrain.com/wechat/arthas/16.png) + +![](https://static.goodrain.com/wechat/arthas/17.png) + +### 2. Generate Flame Chart + +The `profiler` command supports the flame map that generates the flame of the application.Essentially, the results of the collected samples were generated by ongoing sampling.\ +The following commands are executed in Arthas Tunnel Web Console. + +**1. Start profiler** + +```shell +$ profile start +Started [cpu] profile +``` + +**2.Stop profile and generate flame map** + +By default, the result file is in `html` format and can also specify: with `--format@@` + +```shell +$ profile stop --format html +OK +profile output file: /app/arthas-output/20220907-214802.html +``` + +**3. View Flame Charts via Browser** + +Previous html file generated in the specified microservice component, so you need to view the flame in this microservice component. + +Enter this microservice component, eg::pig-auth, add `3658` port in the component port and open external service and visit `http://domain/arthas-output` + +![](https://static.goodrain.com/wechat/arthas/9.png) From 698558a495caf2d1dd52c8b734810907e905a231 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:24:59 +0800 Subject: [PATCH 158/398] New translations index.md (English) --- .../current/micro-service/analysis/index.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/micro-service/analysis/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/micro-service/analysis/index.md b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/analysis/index.md new file mode 100644 index 0000000000..39bd07d1d7 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/analysis/index.md @@ -0,0 +1,20 @@ +--- +title: Microservice performance analysis +description: This paper introduces the concept, principle, implementation and application scenario of microservice performance analysis. +keywords: + - Performance Analysis + - profile + - Pyroscope + - Arthas +--- + +As micro-service systems fall into productive environments, problems arise such as excessive flows that cause performance bottlenecks for a micro-service application, high CPU utilization, or leakage from memory.To find out the root causes of the problem, we usually judge the root causes by logs, processes, and codes.This is bound to be time-consuming and difficult to identify key problem points in a timely manner for operations with large microservices. + +This series will introduce the **Continuous Performance Analysis Platform** which will help us quickly find code for memory leaks and high CPU usage. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 43d0a9d79788df342e132ea6f69404ce1fcd7633 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:00 +0800 Subject: [PATCH 159/398] New translations pyroscope.md (English) --- .../micro-service/analysis/pyroscope.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/micro-service/analysis/pyroscope.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/micro-service/analysis/pyroscope.md b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/analysis/pyroscope.md new file mode 100644 index 0000000000..6e471093bd --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/analysis/pyroscope.md @@ -0,0 +1,95 @@ +--- +title: Pyroscope use +description: Pyroscope analyzes performance issues for microservice applications on Rainbond. +keywords: + - Performance Analysis + - Pyroscope + - Analyze microservice performance using Pyroscope +--- + +[Pyroscope](https://pyroscope.io/) is an open source continuous performance analysis platform.It can help you with: + +- Find performance issues in code +- Resolve high CPU usage +- Locate and fix memory leak +- Learn about the app call tree +- Track changes over time + +Pyroscope stores long-term analytic data from multiple applications; can view multiple years of data at a time or view specific events individually; lower CPU usage; high data compression efficiency; low disk space requirement; quick UI interface; + +## Pyroscope architecture + +Pyroscope is supported by two main components running:**Pyroscope Server** and **Pyroscope Agent**. + +**Pyroscope Agent**:records and compiles the actions your application has been performing and then sends the data to Pyroscope Server.Support multiple languages, GO, Python, Ruby, eBPF, JAVA, Rust, PHP, NodeJS, .NET + +**Pyroscope Server**: handling, aggregating and storing data from proxies for quick queries at any time.It will be possible to view the analytics data and make queries within any time frame. + +![](https://static.goodrain.com/wechat/pyroscope/1.png) + +## Integrated with Rainbond + +![](https://static.goodrain.com/wechat/pyroscope/2.png) + +**1.Integration Pyroscope Agent:** + +Install the Pyroscope Agent plugin in the microservice component using the mechanism of the Rainbond plugin, which will launch `java-javaagent:pyroscope.jar -jar app.jar` through javaagent + +**2.Depends on Pyroscope Server:** + +The Pyroscope Agent plugin microservice component will be installed on Pyroscope Server. + +## Practical steps + +This paper will be based on micro-service framework Pig for practice, step: + +1. Deployment Microservice [Spring Cloud Pig](/docs/microservice/example/pig) +2. Deploy Pyroscope Server +3. Install and configure the Pyroscope Java Agent plugin +4. Create dependency between micro-service and Pyroscope +5. Pyroscope Basic Usage + +### 1) Deployment of microservices Spring Cloud Pig + +Install `Spring Cloud Pig` from the Open Source App Store, add -> Create Component -> Search `SpringCloud-Pig` in the Open Source Store and install it to the specified app. + +### Deployment of Pyroscope Server + +Install `Pyroscope Server`, add -> Create Component -> Search in Open Source Store and install `Pyroscope` to the specified app. + +### 3. Install and configure the Pyroscope Java Agent plugin + +1. Plugins -> Install Plugins from App Store to search for `Pyroscope-Java-Agent` for installation. +2. Open plugins for each microservice component, enter the microservice component -> Plugin -> Open plugin `Pyroscope-Java-Agent` and update the component. +3. Set the following environment variables for each micro-service component to add variables in the component -> Environment Variables -> .You can also configure the `JAVA_OPTS` environment variable for all components by applying the config group. The `PYROSCOPE_APPLICATION_NAME` environment variable is unique and cannot be configured uniformly. + +| Variable Name | Variable value | Note | +| ----------------------------------------------------------------- | --------------------------------------------------------------- | ----------------------------- | +| JAVA_OPTS | -javaagent:/agent/pyroscope.jar | Java agent startup parameters | +| PYROSCOPE_PLAYLIST_NAME | pig.auth | Microservice Module Name | + +### Establishing dependency between microservices and Pyroscope + +Connect all microservice components to Pyroscope, switch to layout mode for dependency building, and update or restart all microservice components to take effect. + +![](https://static.goodrain.com/wechat/pyroscope/8.png) + +### Basic uses of Pyroscope + +Access Pyroscope UI to the 4040 external service port of Pyroscope + +In the Single View view, the service can be selected by application.It can show flame maps for a certain period of time or can be displayed in tables or at the same time, and the flame map can see performance indicators called by the microservice. + +![](https://static.goodrain.com/wechat/pyroscope/9.png) + +Compare different time slots in the Comparison View view. Drag through the timeline + +![](https://static.goodrain.com/wechat/pyroscope/10.png) + +In Diff View you can make a difference between two periods of time, which is usually effective when sorting out the microservice's CPU and memory leaks. + +![](https://static.goodrain.com/wechat/pyroscope/11.png) + +## Last + +Pyroscope can also be used together with Jaeger and integrated in Jaeger UI and see [Jaeger UI integration](https://github.com/pyroscope-io/jaeger-ui) From fafd4b5b2864d668653220ec01d569cb7eb61556 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:02 +0800 Subject: [PATCH 160/398] New translations blade.md (English) --- .../current/micro-service/example/blade.md | 278 ++++++++++++++++++ 1 file changed, 278 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/micro-service/example/blade.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/micro-service/example/blade.md b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/example/blade.md new file mode 100644 index 0000000000..bb2cc95a55 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/example/blade.md @@ -0,0 +1,278 @@ +--- +title: Deploy the Spring Cloud Blade +description: This chapter describes how to deploy Spring Cloud Blade on Rainbond +keywords: + - Spring Cloud Blade Deployment + - Microservice deployment examples +--- + +## About Spring Cloud Blade + +- In back-to-end separation, front-end open source two frameworks:[Sword](https://gitee.com/smallc/Sword) (based on React, Ant Design),[Saber](https://gitee.com/smallc/Saber) (based on Vue, Element-UI) +- The backend uses the entire bucket of SpringCloud with a high level of encapsulation of its base components, with a separate open-source framework:[BladeTool](https://gitee.com/smallc/blade-tool) +- [BladeTool](https://gitee.com/link?target=https%3A%2F%2Fgithub.com%2Fchillzhuang%2Fblade-tool)已推送至Maven中央库,直接引入即可,减少了工程的臃肿,也可更注重于业务开发 +- Integrated Sentinel is stable from multiple dimensions of protection services such as flow control, melting down downgrading, system loads, etc. +- Select Nacos for registration centers, configuration centers, and increase links between modules while running for wasting work. +- There is an extremely short encapsulation of multiple tenants at the bottom and a smaller number of codes is used to expand the more extensive SaaS multi-tenants system. +- Using OAuth2, a multi-terminal authentication system has been implemented that controls the token permissions of the subsystem in isolation. +- Security has been used to encapsulate a security module, using JWT as a token certification, and to expand granular control programmes such as Integrated Redis. +- Project subcontracting is clear, regulating the micro-service development model and clarifying the division of labour between packages and packages. + +### Module Description + +```bash +SpringBlade +├── blade-auth -- 授权服务提供 +├── blade-common -- 常用工具封装包 +├── blade-gateway -- Spring Cloud 网关 +├── blade-ops -- 运维中心 +├ ├── blade-admin -- spring-cloud后台管理 +├ ├── blade-develop -- 代码生成 +├ ├── blade-resource -- 资源管理 +├ ├── blade-seata-order -- seata分布式事务demo +├ ├── blade-seata-storage -- seata分布式事务demo +├── blade-service -- 业务模块 +├ ├── blade-desk -- 工作台模块 +├ ├── blade-log -- 日志模块 +├ ├── blade-system -- 系统模块 +├ └── blade-user -- 用户模块 +├── blade-service-api -- 业务模块api封装 +├ ├── blade-desk-api -- 工作台api +├ ├── blade-dict-api -- 字典api +├ ├── blade-system-api -- 系统api +└── └── blade-user-api -- 用户api +``` + +## Deploy Spring Cloud Blade with source code + +This document tutorial is based on [Spring Cloud Blade v3.5.0](https://gite.com/smallc/SpringBlade/tree/v3.5.0/) + +### Deploying Nacos + +Use the open source store to deploy `Nacos`, search for `Nacos' in the open source store and choose to install version `2.1.2\` + +### Deploying Redis + +Use the Open Source Store to deploy `Red`, search for `Redis` in the Open Source Store and choose to install `5.0.7` version. + +### Deploying Sentinel Dashboard + +Search `Sentinel Dashboard` in the open source store by deploying `Sentinel Dashboard` and install `1.8.6` instead. + +### Initialization of database + +The `Nacos` installed from the open source store takes the `Mysql` component, entering the component -> Port -> Open External Service through the client tool. + +1. Create `blade` database. +2. Initialization table structure and data:[Blade SQL](https://gitee.com/smallc/SpringBlade/blob/v3.5.0/doc/sql/blade/blade-shaber-mysql.sql) + +### V. Deployment of Blade backend services + +1. **Create components based on source code, fill out the following information:** + +| | Content | +| --------------------------------- | -------------------------------------- | +| Component name | Custom | +| Component English Name | Custom | +| Repository Address | `https://gitee.com/smallc/SpringBlade` | +| Code Version: Tag | v3.5.0 | + +2. **Detected multiple modules build, enter multi-module build page** + +:::tip + +1. Before creating, build a multi-block page -> modify button -> right to change the launch command for each module, as follows. +2. After creating, delete the default port for each component, add new ports and port aliases for each component and open the end-to-end service for the port, as follows. +3. Build component after modification. + ::: + +| Component | Port | Start command | +| -------------- | ----- | ------------------------------------------------------------------------------ | +| blade-auth | 8100 | `web: java $JAVA_OPTS -jar blade-auth/target/blade-auth.jar` | +| blade-gateway | 80 | `web: java $JAVA_OPTS -jar blade-gateway/target/blade-gateway.jar` | +| blade-admin | 7002 | `web: java $JAVA_OPTS -jar blade-ops/blade-admin/target/blade-admin.jar` | +| blade-develop | 7007 | `web: java $JAVA_OPTS -jar blade-ops/blade-develop/target/blade-develop.jar` | +| blade-report | 8108 | `web: java $JAVA_OPTS -jar blade-ops/blade-report/target/blade-report.jar` | +| blade-resource | 8010 | `web: java $JAVA_OPTS -jar blade-ops/blade-resource/target/blade-resource.jar` | +| blade-swagger | 18000 | `web: java $JAVA_OPTS -jar blade-ops/blade-swagger/target/blade-swagger.jar` | +| blade-desk | 8105 | `web: java $JAVA_OPTS -jar blade-service/blade-desk/target/blade-desk.jar` | +| blade-log | 8103 | `web: java $JAVA_OPTS -jar blade-service/blade-log/target/blade-log.jar` | +| blade-system | 8106 | `web: java $JAVA_OPTS -jar blade-service/blade-system/target/blade-system.jar` | +| blade-user | 8102 | `web: java $JAVA_OPTS -jar blade-service/blade-user/target/blade-user.jar` | + +3. **Edit dependence, toggle `Array mode` to create dependency.** + +![](https://static.goodrain.com/docs/5.10/microservice/example/blade/blade-depend.png) + +4. Enter the `Nacos` component -> Port -> Open External Service at the `8848` port, access Nacos and login, default user password `nacos/nacos`, create the following configuration file. + +
+ + Create blade.yaml Profile + +
+ +```yaml title="blade.yaml" +#服务器配置 +server: + undertow: + # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理 + buffer-size: 1024 + # 是否分配的直接内存 + direct-buffers: true + # 线程配置 + threads: + # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 + io: 16 + # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载 + worker: 400 + +#spring配置 +spring: + cloud: + sentinel: + eager: true + devtools: + restart: + log-condition-evaluation-delta: false + livereload: + port: 23333 + +#feign配置 +feign: + sentinel: + enabled: true + okhttp: + enabled: true + httpclient: + enabled: false + +#对外暴露端口 +management: + endpoints: + web: + exposure: + include: "*" + endpoint: + health: + show-details: always + +#knife4j配置 +knife4j: + #启用 + enable: true + #基础认证 + basic: + enable: false + username: blade + password: blade + #增强配置 + setting: + enableSwaggerModels: true + enableDocumentManage: true + enableHost: false + enableHostText: http://localhost + enableRequestCache: true + enableFilterMultipartApis: false + enableFilterMultipartApiMethodType: POST + language: zh-CN + enableFooter: false + enableFooterCustom: true + footerCustomContent: Copyright © 2022 SpringBlade All Rights Reserved + +#swagger配置信息 +swagger: + title: SpringBlade 接口文档系统 + description: SpringBlade 接口文档系统 + version: 3.5.0 + license: Powered By SpringBlade + licenseUrl: https://bladex.vip + terms-of-service-url: https://bladex.vip + contact: + name: smallchill + email: smallchill@163.com + url: https://gitee.com/smallc + +#blade配置 +blade: + token: + sign-key: 请配置32位签名提高安全性 + xss: + enabled: true + skip-url: + - /weixin + secure: + skip-url: + - /test/** + client: + - client-id: sword + path-patterns: + - /sword/** + - client-id: saber + path-patterns: + - /saber/** + tenant: + column: tenant_id + tables: + - blade_notice +``` + +
+
+ +
+ + Create blade-dev.yaml Profile + +
+ +```yaml title="blade-dev.yaml" +#spring配置 +spring: + redis: + ##redis 单机环境配置 + host: 127.0.0.1 + port: 6379 + password: + database: 0 + ssl: false + +#项目模块集中配置 +blade: + #通用开发生产环境数据库地址(特殊情况可在对应的子工程里配置覆盖) + datasource: + dev: + url: jdbc:mysql://127.0.0.1:3306/blade?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8 + username: root + password: root +``` + +
+
+ +:::info +Update or restart all components other than `Nacos` `Mysql` `Reddis` `Sentinel Dashboard`. +::: + +### Deployment of Blade Frontend Saber + +1. Create components based on source code, fill out the following information: + +| | Content | +| ---------------------- | ---------------------------------------- | +| Component name | Custom | +| Component English Name | Custom | +| Repository Address | `https://gitee.com/zhangbigqi/Saber.git` | +| Code Version | v3.5.0 | + +:::caution +Here you used my repository address and modified the Nginx configuration. +::: + +2. Enter `Saber` component -> Port -> Delete default port, add `8080` port and open external service. +3. Edit dependence, toggle `Array mode` to create a dependency by dragging `Saber` to `blade-gateway` and updating the component. +4. Use the default domain to access `Saber UI` and log in. + +### Final deployment topography + +![](https://static.goodrain.com/docs/5.10/microservice/example/blade/blade-topology.png) From 74d094326993a0f54d235d3c66dc8f3190cf66f6 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:04 +0800 Subject: [PATCH 161/398] New translations index.md (English) --- .../current/micro-service/example/index.md | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/micro-service/example/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/micro-service/example/index.md b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/example/index.md new file mode 100644 index 0000000000..ad79f10faa --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/example/index.md @@ -0,0 +1,120 @@ +--- +title: Spring Cloud microservice deployment example +keywords: + - Advantages of Spring Cloud Microservice deployed in Rainbond + - Spring Cloud Microservice Integration with Rainbond + - Deployment of Spring Cloud Microservice Pig +--- + +This series of documents describes how best to deploy Spring Cloud microservices on Rainbond and how to integrate, including the deployment of examples of tutorials. + +## Advantages of Spring Cloud Microservice deployed in Rainbond + +### General description + +Many companies now have business systems based on the Spring Cloud Microservice Framework.As an established microservice architecture, Spring Cloud Microservice provides many benefits for business development. +We do not need to explore what these benefits are, and Spring Cloud has already demonstrated its value by its huge market base of applications.But is it perfect, and there is nothing to make?There are no perfect products in the world, as do Spring Cloud. The following shortcomings need to be improved with: + +- There is no good management for individual components +- Difficulty in finding performance monitoring solutions +- Difficulty in flexible scalability to adapt to business congestion +- Deploying into troubleshooting, including microservice components themselves, as well as related databases, intermediates + +For more than 4 points, the Rainbond platform can make natural replenishments. + +### Supports the full life cycle management of a single component + +Rainbond sees each microservice component of Spring Cloud separately and can be deeply managed for each component, such as: + +- Turn on, off, reboot, build, delete, scroll up, version back +- Performance monitoring +- Log Manager +- Vertical/Horizontal stretch +- Dependency based service discovery and registration +- Persistent storage and shared storage between service components +- Port settings and domain configuration +- Plugin Extension +- Build source settings, including MAVEN settings for various detailed parameters, configuration auto-trigger build mechanisms +- Custom environment variable configuration, health detection mechanism, permissions management + +### Performance monitoring + +Rainbond supports the performance monitoring program for plugins extension, and supports the monitoring of the `average response time, throughput, online population` application based on the Http, Mysql protocol.and detect url slots that take more time in the last 5 minutes to guide the performance of the debug system. + +### Vertical/Horizontal stretch + +Rainbond supports one-click scaling. This scaling consists of two dimensions: + +- Vertically stretch:to scale up memory size used by a single service component +- Horizontal stretch:starts multiple backend instances for service components and automatically configure load balance + +Spring Cloud Microservice Design has separated the program from the data, so the service component is seen as a direct horizontal scaling-up of the statelessness service. + +### Market-based Rapid Deployment + +Once the first deployment has been completed, we can publish as an application template packages to the shared pool for both the Sprint Spring Cloud microservices (including all microservice components and intermediaries, such as databases).Once published, the installation will only require a one-click installation from the shared library, greatly simplifying the deployment process. + +During the first deployment of Spring Cloud the intermediate used such as Mysql Redis Rabbit, Rainbond was provided by the cloud city to pull out a built-in market application.The traditional deployment was relieved of the trouble of creating a variety of intermediaries. + +## Spring Cloud Microservice Integration with Service Mesh + +### General description + +Rainbond original supports the Service Mesh Microservice Architecture.This means that whatever is originally used, as long as it is deployed on Rainbond it is naturally made up of Service Mesh microservices.This is also a feature of the Service Mesh Microservice Architecture:without intrusion into the original app. + +When Spring Cloud is deployed on Rainbond, the entire set of business is a full Spring Cloud Microservice and a single Service Mesh Microservice.How can the business system then preserve the features of the first Spring Cloud Microservice Architecture and be able to benefit from the services Mres?This involves the integration of Spring Cloud microservices with Service Mosh. + +The core idea of integration is the function maintained by Spring Cloud frames, which remains the same; the function that Spring Cloud Framework cannot be maintained and is submitted to Service Mesh and Rainbond. + +### What Spring Cloud does not maintain + +I am not going to discuss in depth what the Spring Cloud Microservice Framework maintains and has a lot of posts on the web site. + +Here I would like to explain what should be done by Rainbond when the reader chooses to deploy its original Spring Cloud microservice in Rainbrond. + +#### Sign up with Nacos + +Nacos Registration Center, a standard registration center solution in Spring Cloud Microservice Framework.`Service provider (service provider)` in the microservice framework registers its service address in Nacos for remote calls by `Service consumer`.This service registration and discovery mechanism is designed in the micro-service architecture to decouple and decouple a number of separate services and to interact with each other.Based on this mechanism, all Spring Cloud micro-service components can be dynamically informed of the `Service Provider` service address; they can also shake up and register themselves as `Service Provider` to serve other components. + +In Rainbond you can link the microservice component to eureka by relying on dependence, helping Spring Cloud to complete this action: + +- Nacos itself opens port to internal service, registration with Rainbond platform to complete its service Mesh layer +- Other microservice components connect to Nacos via dependencies and can complete the service registration with Nacos without making any changes + +#### Interface to various types of intermediate + +A full Spring Cloud microservice system is bound to use multiple data intermediaries.Example PIG, use MySQL as data storage, REDIS as cache.In Spring Cloud, this type of intermediate interface is configured by configuration file.There are no other registration mechanisms in the microservice framework.The same can be used by Rainbond to link microservices to service intermediaries. + +We recommend using **environmental variables** to define **pig-db** connection information.In the configuration file definition, the following: + +```yaml +#Mysql相关 +jdbc: + name: ${MYSQL_USER} + passwd: ${MYSQL_PASSWORD} + host: ${MYSQL_HOST} + port: ${MYSQL_PORT} + database: ${MYSQL_DATABASE} + +# Spring 相关 +spring: + redis: + password: ${REDIS_PASS} + host: ${REDIS_HOST} + port: ${REDIS_PORT} +``` + +#### Service Component Start Order + +The starting order of the Spring Cloud Microservice component is more important, and it may cause errors when a component starts on its own before the service on which it depends.Spring Cloud Microservice Framework itself does not maintain the start order of the service component. The problem can be resolved by Rainbond + +Rainbond supports kick-order controls based on dependency.The startup logic is that the service that is relied upon starts first, and only when the service on which the current service is relied is fully started. + +## Spring Cloud Deployment Example + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 95da9c1410c46cc9c03be0848f16442e51735c4b Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:05 +0800 Subject: [PATCH 162/398] New translations pig.md (English) --- .../current/micro-service/example/pig.md | 217 ++++++++++++++++++ 1 file changed, 217 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/micro-service/example/pig.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/micro-service/example/pig.md b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/example/pig.md new file mode 100644 index 0000000000..c6bbc447ab --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/example/pig.md @@ -0,0 +1,217 @@ +--- +title: Deploy Spring Cloud Pig +description: This chapter describes how to deploy Spring Cloud Pig on Rainbond +keywords: + - Spring Cloud Pig deployment + - Microservice deployment examples +--- + +## About Spring Cloud Pig + +- RBAC permission management system based on Spring Cloud 2021, Spring Boot 2.7, OAuth2 +- Seal element-plus based on a Data-Drive view that even if no Vue experience is available quickly +- Provides lambda , stream api, webflux production practice + +### Module Description + +```bash +pig-ui -- https://gitee.com/log4j/pig-ui + +pig -- https://gitee.com/log4j/pig +├── pig-auth -- 授权服务提供[3000] +└── pig-common -- 系统公共模块 + ├── pig-common-bom -- 全局依赖管理控制 + ├── pig-common-core -- 公共工具类核心包 + ├── pig-common-datasource -- 动态数据源包 + ├── pig-common-job -- xxl-job 封装 + ├── pig-common-log -- 日志服务 + ├── pig-common-mybatis -- mybatis 扩展封装 + ├── pig-common-seata -- 分布式事务 + ├── pig-common-security -- 安全工具类 + ├── pig-common-swagger -- 接口文档 + ├── pig-common-feign -- feign 扩展封装 + └── pig-common-xss -- xss 安全封装 +├── pig-register -- Nacos Server[8848] +├── pig-gateway -- Spring Cloud Gateway网关[9999] +└── pig-upms -- 通用用户权限管理模块 + └── pig-upms-api -- 通用用户权限管理系统公共api模块 + └── pig-upms-biz -- 通用用户权限管理系统业务处理模块[4000] +└── pig-visual + └── pig-monitor -- 服务监控 [5001] + ├── pig-codegen -- 图形化代码生成 [5002] + ├── pig-sentinel-dashboard -- 流量高可用 [5003] + └── pig-xxl-job-admin -- 分布式定时任务管理台 [5004] +``` + +## Deploy Spring Cloud Pig with source code + +This document tutorial is based on Spring Cloud Pig [v3.6.2](https://gitee.com/log4j/pig/tree/v3.6.2/) + +### I. Mysql deployment + +1. Create components based on source code, fill out the following information: + +| | Content | +| ---------------------- | ------------------------------------------------------------ | +| Component name | Custom | +| Component English Name | Custom | +| Repository Address | `https://gitee.com/zhangbigqi/pig.git` | +| Subdirectory Path | db | +| Code Version | v.3.6.2-1117 | + +:::caution +My repository address is used here because some default configurations have been modified, such as database passwords, storage. If you do not want to change, you can use the original repository address +::: + +2. Enter Mysql Component -> Other Settings, modify component deployment type to `stateful service (Statefulset type)` +3. Enter the Mysql component -> port, click the port alias to `MYSQL` and open the end's internal service. + +:::info +The above variable names and variable values can be modified according to their own needs.If other components rely on Mysql, the variable in the dependency is injected into the Mysql component, see[通信变量注入](/docs/microservice/service-mesh/connection_env) +::: + +:::tip +Build the `MySQL` component after modifying the above configuration +::: + +### Deploying Redis + +Seek `Redis` from the Open Source Store and install it in the Open Source Store. + +### Deployment of the Pig backend service + +1. Create components based on source code, fill out the following information: + +| | Content | +| --------------------------------- | -------------------------------------- | +| Component name | Custom | +| Component English Name | Custom | +| Repository Address | `https://gitee.com/log4j/pig.git` | +| Code Version: Tag | v3.6.2 | + +2. Multimodule build detected, enter multi-module build page, check the following modules and create them. + - After creating, delete the default port for each component, add new ports and port aliases for each component and open the end-to-end service, as follows:: + +| Component | Port | Port Alias | +| ---------------------- | -------------- | ----------------------------------- | +| pig-register | 8848 9848 9849 | Port alias: `NACOS` | +| pig-gateway | 9999 | Port: `GATEWAY` | +| pig-auth | 3000 | | +| pig-upms-biz | 4000 | | +| pig-codegen | 5002 | | +| pig-monitor | 5001 | | +| pig-sentinel-dashboard | 5003 | SENTINEL | +| pig-xl-job-admin | 5004 | | + +3. Edit dependence, toggle the `sorting mode` to drag the component to create the dependency. + +![](https://static.goodrain.com/docs/5.10/microservice/example/pig/pig-depend.png) + +4. Enter the `pig-register` component -> Port -> Open the external service of the `8848` port, access Nacos and login, the default user password `nacos/nacos`, modify the following configuration file content: + +```yaml +# 编辑 application-dev.yml +spring: + cache: + type: redis + redis: + host: ${REDIS_HOST} #修改 redis host + cloud: + sentinel: + eager: true + transport: + dashboard: ${SENTINEL_HOST}:${SENTINEL_PORT} # 修改 sentinel host + +# 编辑 pig-codegen-dev.yml +spring: + datasource: + type: com.zaxxer.hikari.HikariDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + username: root + password: root + url: jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/pig_codegen?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + # 修改 mysql host 和 port + +# pig-upms-biz-dev.yml +spring: + datasource: + type: com.zaxxer.hikari.HikariDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + username: root + password: root + url: jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/pig?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + # 修改 mysql host 和 port +``` + +:::tip +Update all components except Mysql and Redis +::: + +### Deployment Pig-UI frontend + +4.1 Create component based on source code, fill out the following information: + +| | Content | +| ---------------------- | ------------------------------------------------------------ | +| Component name | Custom | +| Component English Name | Custom | +| Repository Address | `https://gitee.com/zhangbigqi/pig-ui.git` | +| Code Version | v.3.6.2-1117 | + +:::caution +这里使用了我的仓库地址,因为修改了一些默认配置,比如增加了 `nodestatic.json` `web.conf`,参阅 [部署Vue、React前端](../../devops/app-deploy/nodejs) +::: + +4.2 After creating a component, enter the `pig-ui` component -> Build Source -> Source Build Parameter, modify Node version to `16.15.0`, make sure to modify and build components + +4.3 Edit dependence, toggle the `layout mode` to drag the component to create the dependency and place `pig-ui` on `pig-gateway`. + +4.4 In `pig-ui` **Component -> Environment Configuration -> Add Configuration Files**, add the following Profile: + +- Profile name:custom +- Configuration file path:`/app/nginx/conf.d/web.conf` +- The configuration file is as follows: + +```conf +server { + listen 80; + + gzip on; + gzip_static on; # 需要http_gzip_static_module 模块 + gzip_min_length 1k; + gzip_comp_level 4; + gzip_proxied any; + gzip_types text/plain text/xml text/css; + gzip_vary on; + gzip_http_version 1.0; #兼容多层nginx 反代 + gzip_disable "MSIE [1-6]\.(?!.*SV1)"; + + # 打包好的dist目录文件,放置到这个目录下 + root /app/www; + + # 注意维护新增微服务,gateway 路由前缀 + location ~* ^/(code|auth|admin|gen) { + proxy_pass http://${GATEWAY_HOST}:${GATEWAY_PORT}; + #proxy_set_header Host $http_host; + proxy_connect_timeout 15s; + proxy_send_timeout 15s; + proxy_read_timeout 15s; + proxy_set_header X-Forwarded-Proto http; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + # 避免端点安全问题 + if ($request_uri ~ "/actuator"){ + return 403; + } +} +``` + +4.5 delete default port, add `80` port and open external service. + +4.6 Updates the component and visits `pig-ui` to verify it. + +### Final Popup + +![](https://static.goodrain.com/docs/5.10/microservice/example/pig/pig-topology.png) From 7ec10d92d10f92187ba0423386deaa136372906d Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:07 +0800 Subject: [PATCH 163/398] New translations index.md (English) --- .../current/micro-service/index.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/micro-service/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/micro-service/index.md b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/index.md new file mode 100644 index 0000000000..92304f7524 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/index.md @@ -0,0 +1,10 @@ +--- +title: Microservices Architecture Guide +--- + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 9f1605f709cc7ae5a02f1737ee0ad1e50df0d236 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:08 +0800 Subject: [PATCH 164/398] New translations index.md (English) --- .../current/micro-service/overview/index.md | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/micro-service/overview/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/micro-service/overview/index.md b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/overview/index.md new file mode 100644 index 0000000000..91c0a6219b --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/overview/index.md @@ -0,0 +1,39 @@ +--- +title: Overview +description: This chapter describes the complex application of microservice architecture based on Rainbond +keywords: + - Microservice deployment + - Spring Cloud Deployment + - Build Microservice Architecture +--- + +Microservice structures (commonly referred to as microservices) are a form of architecture used to develop applications.Through microservices, large applications can be split into multiple separate components, each of which has its own area of responsibility.When processing a user's request, microservices-based applications may call many internal microservices to jointly generate their responses. + +## Organization of services + +A key topic for chatting the service is “Split of Services”.The separation of services generally refers to a complete business system for which we need to form independent service components based on a number of factors and mechanisms for their separate development, independent management and external delivery of standard services.In Rainbond we often say that “the components deployed to Rainbond are a microservice”.If the operation is a legacy system, an integrated architecture.You do not think about how to split it, first deploy it to Rainbond and manage it first by using a microservice system.None of this is the type of service that provides multiple operations and the share attributes are less favourable.If your business has already been developed in a microservice model, for example based on the SpringCloud Microservice Framework framework.So you may have no trouble with splitting for now.However, all service components need to be managed efficiently and continuously developed. + +This article is therefore the main chat to assemble the business system in Rainbrond.It is possible that your business currently uses a variety of technical structures, a legacy integration structure, a SpringCloud structure, a Dubbo architecture, etc.We have deployed them uniformly to the Rainbond platform for assembly. + +### Based on the ServiceMesh assembly + +The key to service assembly is to clarify the direct communication dependency of the service.Component dependencies are built based on communication relationships. Operational components can be increased or reduced at any time in the app as needed. Dependencies between components can be increased and removed dynamically.Controls communications between components via ServiceMesh [流量路由管理](#Webvisualization). + +The relationship between components can only be seen in the Applets pop through the ServiceMesh microservice architecture. + +### Based on SpringCloud Architecture + +If your app is based on SpringCloud development, the same is a service component deployed to Rainbond for assembly.Unlike ServiceMesh based communications, service registration and direct communication is provided by SpringCloud services registry centre as a bridge.Rainbond does not have a direct communication dependency to access the services and therefore is not shown in the top.But the key is the integration of Rainbond ServiceMosesh with SpringCloud.As shown in the graph below, communications between all services and registration centres and databases are made through ServiceMosh, and communications from UI to Gateway are completed by ServiceMesh + +![SpringCloud部署示意图](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.2/SpringCloud.png) + +## Web Visualization + +Web Visualizations are made in Rainbond app topography.Show the dimensions below: in the app pop + +1. Business outreach relationships between services. +2. Communication dependency between services. +3. The service provides access to the external network. +4. Service is running in real time. + +![ServiceMesh架构拓扑图](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.2/servicemesh.png) From f18e0cbaba6a4bfb6cf57b07456c5b7c98c46972 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:10 +0800 Subject: [PATCH 165/398] New translations connection_env.md (English) --- .../service-mesh/connection_env.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/micro-service/service-mesh/connection_env.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/micro-service/service-mesh/connection_env.md b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/service-mesh/connection_env.md new file mode 100644 index 0000000000..bbac0f2afa --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/service-mesh/connection_env.md @@ -0,0 +1,43 @@ +--- +title: Injection of inter-service traffic variable +description: This article explains variable passing when a service is directly dependent +keywords: + - Injection of inter-service traffic variable + - Service Mesh Variable Injection +--- + +Communications variables refer to the necessary configuration variables when using other components to provide services, such as the username and communication address of the database, the authentication method of API services and the communication address.In a standardized design scenario, the type of service on which the formed business code relies cannot be changed, but the service actually relied can be changed, and the design relies on infusion of configuration information in an environmental variable. + +During component development, we recommend that developers use the environment variable to define the configuration of communication with other components, e.g. spring boot using the following method to configure jdbc address: + +``` +spring.datasource.url=jdbc:mysql://${MYSQL_HOST:127.0.0.1}:${MYSQL_PORT:3306}/${MYSQL_DATABASE:test} +spring.datasource.username=${MYSQL_USER} +spring.datasource.password=${MYSQL_PASSWORD} +``` + +After the above definition, we have defined a specification that requires a Mysql component and defines the configuration with the variables above.Which components we use to provide this service is really coupled. We can define a Mysql component or a Tidb component to provide it, most crucially these components can provide the variable information described above.The infusion of communication variables is therefore a very useful mechanism in the communication landscape where the component depends. + +### Prerequisite + +1. Create two components A, B, where A Dependency B and need relevant configuration information + +### Operating processes + +1. Defines the connection address variable: In the port management page of component B (assuming it is a Mysql service), we can define aliases for each port, click on the port settings _using alias_ section, and can set an alias for the port in the popup window, such as MYSQL, where two variables MYSQL_HOST and MYSQL_PORTs will be created automatically. + +2. defines other connection variables: in the management panel of component B, which are defined and managed in a way that is consistent with environmental variables.We enter the panel after step 1 and find two variables, MYSQL_HOST and MYSQL_PORT.We can continue to define other variables, such as MYSQL_USER, MYSQL_PASSWORD, etc. + +3. The variable defines a part of the environment variable as a part of the current component which takes effect on:some of the connecting variables are also useful for the component itself, such as Mysql defining MYSQL_USER, MYSQL_PASSWORD and others as defined variables for initializing data at Mysql initialization.The connection information defined by the Rainbond component will therefore also take effect as an environmental variable in the current component and the component connection information and environment variables can be transferred from one another. + +4. The variables defined by:are injected into the context of the component dependent on the current component when we drag and drop a dependency B in the top, then update component A and then we can view the environmental variables that have found MYSQL relevant in the context of component A. + +### FAQ + +- Distinction between connection information and environment variables + +Component connection information and environment variables are consistent for the component itself and are effective as environmental variables in its own operating environment and plugin environment.The difference is that connection information is injected into other components that rely on the current component.Equals it is public. + +- Connection information must be defined? + +We recommend connecting information based on what is actually a reasonable definition. From c63f40caf35daa9c58384c3335ab71e755b5ea53 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:11 +0800 Subject: [PATCH 166/398] New translations index.md (English) --- .../micro-service/service-mesh/index.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/micro-service/service-mesh/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/micro-service/service-mesh/index.md b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/service-mesh/index.md new file mode 100644 index 0000000000..9bcc5403c1 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/service-mesh/index.md @@ -0,0 +1,28 @@ +--- +title: Service Mesh Usage Guide +description: This chapter describes the Service Mesh function of Rainbond, including the concept, functions, and usage of Service Mesh. +keywords: + - Service Mesh + - Service Grid + - Istio + - Envoy +--- + +Service Mesh is a service grid that serves as an infrastructure layer for inter-service communication.Lightweight high-performance network agents provide secure, fast and reliable inter-service communications, deployed with actual applications but transparent for applications.The application as the initiator of the service only requires that the request be sent to the local service grid agent in the simplest way and that the grid agent will follow up with the service discovery and load equilibrium and eventually forward the request to the target service. + +## Service Mesh Support + +Rainbond Supported Service Mesh Program: + +1. Built-in Service Mesh:Rainbond has a service Mesh, based on Istio and Envoy and using it directly without additional installation. +2. Native Service:Rainbond supports the use of Kubernetes Native Service as Service Mesh, without additional installation and direct use. +3. Istio:Rainbond supports the use of Istio as a service Mesh, version of Istio 1.11.4 and above. + +## Service Mesh Service Interservice Communication and Governance Model + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 47fe368159eb30ca655876441ccb96e8b86f3ac2 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:12 +0800 Subject: [PATCH 167/398] New translations index.md (English) --- .../current/micro-service/tracking/index.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/index.md b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/index.md new file mode 100644 index 0000000000..e257726048 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/index.md @@ -0,0 +1,23 @@ +--- +title: Microservice link tracing +description: This paper introduces the concept, principle, implementation and application scenarios of microservice link tracing. +keywords: + - Link Tracking + - Tracing + - Pinpoint + - SkyWalking + - Jaeger +--- + +## What is Link Tracker + +Link tracking is a distributed tracking technique that records a call process for requests in distributed systems so that developers can have a clear understanding of the path of a request in the system and the performance of each service node.Linked tracking technologies can help developers with problems in rapid positioning systems and improve system availability and stability. + +## How to track using links + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 5b7f3d2d8c7ca3f11536c2e540ebbd9000e918bc Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:14 +0800 Subject: [PATCH 168/398] New translations jaeger.md (English) --- .../current/micro-service/tracking/jaeger.md | 126 ++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/jaeger.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/jaeger.md b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/jaeger.md new file mode 100644 index 0000000000..ffb6d8804b --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/jaeger.md @@ -0,0 +1,126 @@ +--- +title: Jaeger uses +description: Distributed link tracking Jaeger + microservice Pig practice sharing on Rainbond +keywords: + - Jaeger distributed link tracking + - APM + - Link Tracking +--- + +Jaeger is an open source distribution tracking system issued by the Uber Technical Team for monitoring and troubleshooting microservices-based distribution system: + +- Distributed Context Transmission and Transaction Monitor +- Analysis of root causes, service dependency +- Performance / Delay Optimization +- Data-inspired model [OpenTracing](http://opentring.io/) +- Multiple storage backend:Cassandra, Elasticsearch, memori. +- System topography +- Service Performance Monitor (SPM) +- Adaptive sample + +## Jaeger architecture + +![](https://static.goodrain.com/wechat/jaeger/1.png) + +| Component | Description | +| --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| Jaeger Client | Jaeger Client SDK | +| Jaeger Agent | Collect Client Data | +| Jaeger Collector | Collecting data from Jaeger Agent, in both ways | +| DB Store | Collector needs to store the backend, and the data obtained by collector will exist in Elasticsearch or Cassandra. | +| Spark jobs | Used to generate topographic UI data | +| Jaeger Query Service & UI | Responsible for searching data from Storage and providing API and UI | + +## How do I integrate on Rainbon? + +![](https://static.goodrain.com/wechat/jaeger/2.png) + +**1.Integrate OpenTelemetry Client:** + +v1.36 The previous version of Jaeger Client is a client library based on the `OpenTracing API`. Jaeger Client combined with Jaeger Agent and sent to Jaeger Collector. + +v1.36 is deactivated later.Use [OpenTelemetry](https://opentelemetry.io/) instead of Jaeger Client and Jaeger Agent, see [Jaeger and OpenTelemetry](https://medium.com/jaegertracing/jaeger-and-opentelemetry-1846f701d9f2). + +`OpenTelemetry` is invalid, just add `javaagent` when Java process starts, for example:`java -javaagent:path/to/opentelemetry-javaagent.jar -jar myapp.jar`. + +On Rainbond then you can download `OpenTelemetry javaagent` to the component and modify the launch command. + +**2.Connect to Jaeger-Collector:** + +All microservice components that install the `OpenTelemetry javaagent` plugin are connected to `Jaeger Collector`. + +## Practical steps + +### Spring Cloud Pig Source Deployment + +Deploy via source [Spring Cloud Pig Microservice Frame](/docs/microservice/example/pig) + +### OpenTelemetry Plugin Installation + +Install the `opentelemetry-java-agent` initialization plugin from the App Store. The function of this plugin is to download `opentelemetry-javaagent.jar` to the microservice component, which can be specified in the Java startup item. + +- Team View -> Plugin -> Install Plugins from App Store -> Search for `opentelemetry-java-agent` and install. + +### Deployment of Jaeger + +Search for `Jaeger` in the open source store and install it to the specified app. + +### OpenTelemetry Agent Plugin Configuration + +**1. Go to OpenTelemetry Agent plugin** + +For example `pig-gateway`, open `opentelemetry-java-agent` in the component -> plugin and update the component to take effect. Other components within the microservice need to open the plugin and update or restart the component to take effect. + +![](https://static.goodrain.com/wechat/jaeger/5.png) + +**2. Configure environment variables** + +Configure environment variables for all microservice components. + +| Variable Name | Variable value | Note | +| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------- | +| OTH_NOTIF_POPUP_TITLE | jaeger | Select Jaeger exporter | +| OTEL_EXPORTER_JAEGER_ENDPOINT | http://127.0.0.0.1:14250 | Jaeger Collector gRPC endpoint | +| OTH_EXPORTER_JAEGER_TIMEOUT | 10000 | Timeout (milliseconds) | +| VIP_POPUP_TITLE | none | Metrics Exporter | +| JAVA_OPTS | -javaagent:/agent/opentelemetry-javaagent.jar | Java Start Parameters | + +Allows you to configure the app -> Configuration, use the `App Config Group` to apply to all components. + +**3. Configure component service name** + +Configure the environment variable `OTEL_SERVICE_NAME` for all microservice components, configuration the component Jaeger service name, e.g.:`OTEL_SERVICE_NAME=pig-gateway` \`\`OTEL_SERVICE_NAME=pig-auth\` + +### Create Dependencies + +Connect all microservice components to `Jaeger Collector`. + +The `Jaeger` component can be seen in the current app's sketch and the remaining components can be connected by the topographic mode of the top.Update or restart all microservice components for dependencies to take effect. + +![](https://static.goodrain.com/wechat/jaeger/7.png) + +### Jaeger Quick Use + +1. Visit the `16686` port of `Jaegeer-Query` to `Jaeger UI` by opening the external service. +2. Search trackers for pig-gateway on the Jadeger Search page + +- Service:Select a Microservice Component +- Operation:Select Operation Type, Example:GET POST, Interface, class... +- Tags:filtered by response header, Example:http.status_code=200 error=true +- Lookback:Select Time +- Max Duration:max;Min Duration:minimum duration. +- Limit Results:limits the number of returned results. + +![](https://static.goodrain.com/wechat/jaeger/10.png) + +4. Find Pig-gateway HTTP POST Traces and include pig-auth Span and enter, see a clear display of a layer of calls between services and response time for interface, so we can find out which service calls are slow or wrong calls. + +![](https://static.goodrain.com/wechat/jaeger/11.png) + +**Jaeger topography generation** + +The plot will not be generated by default. Use the `spark-dependencies` component to generate the topographic data, a Spark job that collects span from storage, analyzes links between services and stores them for later display in the UI.See [Jaeger Spark dependencies] (https://github.com/jaegertracing/spark-dependencies). + +The `spark-dependencies` component takes up a larger resource, can be turned off when it is not used, and starts when the topographic data is generated. + +![](https://static.goodrain.com/wechat/jaeger/9.png) From 4ffcfe51fe0e3bea0f507b1490e5bf6b9f40b2ad Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:15 +0800 Subject: [PATCH 169/398] New translations pinpoint.md (English) --- .../micro-service/tracking/pinpoint.md | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/pinpoint.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/pinpoint.md b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/pinpoint.md new file mode 100644 index 0000000000..b66dbca873 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/pinpoint.md @@ -0,0 +1,71 @@ +--- +title: PinPoint use +description: PinPoint based on the realization of microservice non-intrusive monitoring and link tracking, suitable for developers and application operation and maintenance personnel. +keywords: + - PinPoint implements non-intrusive monitoring and link tracking + - Link Tracking + - APM + - Tracing +--- + +Application Performance Management (APM) means monitoring, optimizing business critical business applications, improving the reliability and quality of enterprise applications, ensuring that users are well served, reducing the overall cost of IT operations and bringing more commercial benefits to the enterprise. + +Pinpoint is an APM (Application Performance Management) tool for large distribution systems written with Java/PHP.Use attempts to be simple and efficient, by installing agent on startup, you do not need to modify even one row code to minimize performance losses (3 per cent). + +**Advantages:** + +- Distributed transaction tracking, tracking messages across distribution applications; +- Automatically detect app pools to help you understand the architecture of the app; +- Horizontal extension to support large server clusters; +- Provide visibility at code level to easily locate failed points and bottlenecks; +- Use byte to boost technology, add new features without changing code. + + + +| Component | Component Features | +| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| Pinpoint-Collector | Collect various performance data | +| Pinpoint-Agent | Probe is associated with the application server (e.g. tomcat) and is deployed to the same server | +| HBase Store | Collect data in HBase | +| Pinpoint-Web | Show collected layers now on the web | + +## Prerequisite + +- Must be a source based Java project. Default will integrate pinpoint-agent. + +## Deploy PinPoint Server + +Deploy `PinPoint`, platform management > App Store > Search for `PinPoint` through the Open Source Marketplace. + +**Configure websocket** + +PinPoint supports real time showing link tracking. This requires PinPoint access to support Websocket protocol. + +Find the domain name **pinpoint-web 8080 ports** in **gate** and click **Parameters** to open websocket support. + +## Use Pinpoint + +**Deployment Example Java Application** + +1. Team -> Add -> Create Component -> Official DEMO, Select Java Maven DEMO, Create Component Based on Source Code. +2. Enter the Java component > Dependencies > Add Dependencies to **Pinpoint-collector** +3. Enter Java Component Monitor > Link Tracking > On +4. Update component to see data in link tracking. + +### Effect Display + +Visits to the site **Pinpoint-web**, you will see the name of the last step + +![](https://grstatic.oss-cn-shanghai.aliyuncs.com/images/docs/5.2/get-start/best-practices/work_with_apm/java-pinpoint.png) + +### Microservice Sample Graph + +![](https://grstatic.oss-cn-shanghai.aliyuncs.com/images/docs/5.2/get-start/best-practices/work_with_apm/springcloud_pig-pinpoint.png) + +### Pinpoint Description + +| Pinpoint version | 2.1.0 | +| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ApplicationName | Default value component application name (note that Chinese name cannot be used) | +| | If you do not want to change the name of the component, you can modify the component environment variable ES_TRACE_APP_NAME to change applicationName | +| agentId | Value POD variable HOSTNAME | From 9dcb65254b7197ef43df5cb605ab52d3ae38d45b Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:17 +0800 Subject: [PATCH 170/398] New translations skywalking.md (English) --- .../micro-service/tracking/skywalking.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/skywalking.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/skywalking.md b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/skywalking.md new file mode 100644 index 0000000000..87d73769d2 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/micro-service/tracking/skywalking.md @@ -0,0 +1,95 @@ +--- +title: SkyWalking use +description: Rainbond integrates SkyWalking with plug-ins to implement APM plug and play +keywords: + - SkyWalking + - APM + - SkyWalking Link Tracking +--- + +SkyWalking is an open-source observable platform for the collection, analysis, aggregation and visualization of data from services and cloud-origin infrastructure.Supporting distributive tracking, performance indicator analysis, application and service dependence, etc. It is a modern APM designed for cloud based and container-based distribution systems. + +Rainbond, an open source endogenous application management platform that uses simple and no knowledge of containers and Kubernetes, supports the management of multiple Kubernetes clusters and provides life-cycle management for enterprise-level applications, including applications to develop the environment, application markets, micro-service architecture, application continuum delivery, application vization, application multicloud management, etc. + +The purpose of this integration is to achieve, run on Rainbond, automatically switch over SkyWalking Server by opening the SkyWalking plugin for Rainbond, flexible opening of the APM, closing plugins when you do not need to do it. + +## Integrate architecture + +SkyWalking's service needs to be enabled in the monitored service while SkyWalking agent needs to be configured to the app launch command, although there is no intrusion on the application code, the configuration process needs to invade the application.Rainbod implements no-intrusion into the app by making SkyWalking's agent into Rainbond [初始化类型插件](https://www.rainbond.com/docs/get-start/concept/plugin/) and copying agent’s jar package to the app container before the application container starts so that it can load agent and connect to SkyWalking Server, the process is free and extensive.Other APMs can be used in a similar way, using users to implement different APM tools by replacing plugins. + +The graph below shows the structure of using SkyWalking's app monitoring in Rainbond + +![](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.4/practices/skywalking/SkyWalking-Rainbond.png) + +## How Agent plugin works + +The Rainbod plugin system is part of the application model relative to Rainbond, which is primarily used to support the extension of the application container.Since there is greater commonality in the delivery of the tools, the plugin itself can be reused.Plugins must be bound to the application container in order to be operational in order to achieve a performance capability such as performance analysis plugin, network governance plugin, initialization type plugin. + +Running environments with running plugins match the bound components with: in the following + +- **Cyberspace** is a critical feature that allows plugins to listen and intercept component network traffic, set component local domain name parsing etc. +- **Storage Persistent Space** this feature allows file exchange between plugins and components via persistent directory. +- **Environment variables** this feature allows the plugin to read the environment variable of the component. + +SkyWalking's integration with Rainbond, we use **Initialization Type** plugins which, by definition, are a plugin capable of initializing before the application starts and whose rationale is based on [init容器](https://kubernetes.io/en/docs/concepts/workloads/init-containers/) that Pod can contain multiple containers where the application can run and Pod can also have one or more init containers that can be activated only when init runs successfully, and components of that type will run the application until the task is defined in the plugin before the application starts.So simply define the use of initialization type containers to copy agent-specific data to the corresponding directory before the application can start, so that the data can be used directly by the follow-up service. + +## Install SkyWalking via Rainbond one click + +We have made SkyWalking app and posted to the Marketplace. Users can install it on the open source store by one button. + +1. Install [Rainbond](https://www.rainbond.com/docs/quick-start/quick-install/); +2. Searching for SkyWalking, in the open source shop, by clicking on the installation; + 3. Installation is complete and can be followed by Rainbod management and shipping SkyWalking. + +SkyWalking server is divided into four parts of:exploration service, backend service, storage service and UI: + +- **Platform backend (oap-server)** supports data aggregation, analysis and flow processing, including tracking, indicators and logs. +- **Storage (elasticsearch-7.13.4)** Store SkyWalking data through open/plug interfaces.Support ElasticSearch, H2, MySQL, TiDB, InfluxDB. +- **UI(Skywalking-ui)** is a highly customizable Web-based interface, allowing SkyWalking end-user visualization and management of SkyWalking data. +- **Agent** collect data and reformat data based on SkyWalking (different propositions support different sources). + +## Monitor services using SkyWalking + +### Preparing environment + +Have a monitored service with reference to [deploy Spring Cloud Pig](/docs/microservice/example/pig) + +### Configure SkyWalking Agent plugin + +**Install Plugins** + +- Installing `skywalking-agent` on Rainbond team interfaces -> Plugins -> Install from Marketplace + +**Open Plugins** + +- In each component -> Plugins -> Open Plugin. + +**Add Environment Variable** + +Adds environment variables for each component + +```bash +JAVA_OPTS=-Dskywalking.agent.service_name=backend -javaagent:/tmp/agent/skywalking-agent.jar -Dskywalking.collector.backend_service=${OAP_HOST}:11800 +``` + +| Variable value | Introduction | +| :-------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------- | +| -Dskywalking.agent.service_name=\*\* | Name of service displayed in SkyWalking UI | +| -Dskywalking.collector.backend_service=Host:Port | SkyWalking oap-server's access address to receive skywalkback data | +| -javaagent:/tmp/agent/skywalking-agent.jar | Specify the jar package address to inject | + +- Create Dependencies + +A dependency of the `SkyWalking oap-server` service will be established for each component to be monitored so that it can connect to `oap-server` via the address `127.0.0.1` or enable `oap-server` to fill that address at the controlled end without creating dependency. + +### Visit SkyWalking + +Visit the external port `skywalking-ui` to enter the visualization interface. + +- Dashboard + +![](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.4/practices/skywalking/skywalking-page.png) + +- Service call topography + +![](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.4/practices/skywalking/Service-Topology.jpg) From 7b269ef078207a08d847c7983864054643f029cf Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:18 +0800 Subject: [PATCH 171/398] New translations architecture.md (English) --- .../quick-start/architecture/architecture.md | 163 ++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/quick-start/architecture/architecture.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/quick-start/architecture/architecture.md b/i18n/en/docusaurus-plugin-content-docs/current/quick-start/architecture/architecture.md new file mode 100644 index 0000000000..03b3777d2f --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/quick-start/architecture/architecture.md @@ -0,0 +1,163 @@ +--- +title: Architecture +description: Rainbond Technical Architecture +--- + +### Rainbond Technical Architecture + + + +Rainbond implements the application-centric concept, absorbs excellent community solutions, and forms a data center logic technology architecture that combines application control, application runtime, and cluster control. The physical architecture divided by the storage node to the class node type forms a highly available and highly scalable data center architecture system. + +Based on the data center architecture, it is divided into application management control terminals and resource management control terminals according to the target population to serve application development, operation and maintenance and resource users respectively.A multi-data center model that supports users to manage and control multiple data centers at the same time.Multidata centre mode that supports users to manage and control multiple data centres simultaneously. + +## Data Center Service Component Description + +### Data Center API Service + +As an abstract core control service at the data center level, API service provides Restful-style API services to the outside world, and is the only entry for data center control requests. Security control is based on TLS two-way security authentication.Self-signed certificates are distributed to clients.Send the certificate to the client after issuing it on an autonomous basis. + + + +Once an API service request is made available by the Root module. Regular requests to enter the Handle Request Processing module. These requests are mainly requests to operate database models. API services are based on ORM support for the Mysql database and CockroachDB databases.Enter Proxy requests into API and Websocket requests.Discover proxy targets and forward requests by Discover module via the etcd service.The API provided by other components can therefore be forwarded by the API Service Agent via Service Registration. + +### Application Gateway Service + +The application gateway is the only entry point for external traffic to enter the internal components of the Rainbond tenant, providing HTTP, HTTPs routing, TCP/UDP services, load balancers, advanced routing (A/B testing, grayscale publishing), virtual IP support and other functions. + +The design of the application gateway is inspired by the NGINX Ingress Controller. Based on the configuration of converting the monitored Kubernetes resource (Ingress, Service, Secret, Endpoint) model from the kube-apiserver to the Proxy controller, it provides an automatic work, real-time effective, dynamic Hot-configured Layer 7, Layer 4 gateway services. + +The application gateway can increase concurrency and basic performance through horizontal expansion, and the general configuration takes effect synchronously in all gateway nodes.For 74IP+For 74IP+ + + + +The architectural goal of the single-node application gateway service is to support multiple data sources, support multiple IPs, support high concurrency capabilities, support multiple server capabilities, and support dynamic configuration change capabilities.Based on this, the application gateway architecture is designed as follows:The following: design is required for this Gateway Architecture + + + +The application gateway service integrates the Openresty service as a front-end traffic proxy service. Based on lua, Openresty can be extended. Lua-Config-Controller implements dynamic configuration, Upstream management, and load balancing strategy implementation. Lua-Monitor-Controller implements request data. The record and summary report, Lua-Security-Controller implements the security control of the request.The three Lua modules are driven by Openresty-Controller. The Metric-Controller module aggregates various monitoring data of the gateway and exposes the Metric-Server of the Prometheus specification.Openresty-Controller is driven by data, the data comes from Gateway-Model-Controller, the two layers have no coupling relationship, and it implements standard interface specifications.We can implement drivers based on other proxy services, such as F5, as needed.Three Lua modules are operated by Openresty-Controller, and the Metric-Controller module brings together all types of monitoring data from the gateway and exposes Prometheus to the outside.The Openresty-Controller is data driven, from Gateway-Model-Controller and has no coupling of the two layers and implements standard interface specifications.If needed, we can implement drives based on other proxy services, such as F5. + +After the API service request is entered, the router module performs the request distribution, and the ordinary request enters the Handle request processing module. This type of request is mainly the request to operate the database model. The API service supports Mysql database and CockroachDB database based on ORM.The requests entering the Proxy are divided into API requests and Websocket requests.It is up to the Discover module to discover its proxy targets and forward requests through the etcd service.Therefore, APIs provided by other components can forward requests by the API service proxy through service registration.The data model source of the application gateway supports the ingress model of kubernetes or the reduced model discovered from etcd, and the data discovery service drives the dynamic work of the entire gateway.IP is an important resource of the gateway. After the IP-Port-Pool module is started, it will obtain all available IP addresses and ports of the current cluster, and establish the perception of IP address changes. The IP-Manage module will judge whether the gateway policy is based on the IP and port data. Take effect on the current node. + +### application building service + + + +The Rainbond application building service handles the CI process, parses, compiles, and packages the input source including `source code` or `Docker image` or `application market application` , and finally generates the version medium of the application (component). + +Package Repository (Artifactory)Traditionally, a complete CI process would include:design, coding, packaging, testing, and release. Since its launch, Docker images have gradually become a new form of packaging for many application codes.Existing CI products have been very mature in source code testing and Pipline, such as Jenkins, Gitlab, etc. Therefore, Rainbond can directly connect with third-party services in the pre-processing of source code or Docker images, which is processed by third-party services. The source code or mirror image is then docked to the Rainbond-Chaos module for application abstraction. + +The input sources of Chaos are code repositories that support Git and Svn protocols, and Docker image repositories.If it is source code, Chaos intelligently judges the type of source code, such as Java, PHP, Python, Dockerfile, etc., selects the corresponding BuildingPack (source code builder) for source code compilation according to different source code types, and identifies the operating environment requirements defined in the source code parameters. , application ports, environment variables and other parameters to form the configuration prototype of application abstraction.Source code types other than Dockerfile will be compiled into application code environment package (SLUG) and stored in distributed storage, other generated Docker local images will be stored in data center image warehouse, and application component attributes will be formed in combination with various attribute information of the application.In the case of source code, Chaos intelligent judgement type of source code, e.g. Java, PHP, Python, Dockerfile etc. Select the buildingPack, source constructor based on different source types, while recognizing the operating environment parameters defined in the source code, the application port, environment variables, etc. to form an abstract configuration prototype of application.Source types other than Dockerfile will be compiled into the Application Code Environment Package (SLUG) stored in distributed storage, other generation of Docker local mirrors stored in the Data Center mirror repository, forming component properties in combination with the application's various properties information. + +The application building service is a stateless architecture, designed with task executors driven by the message system (rbd-mq). Implemented Git client and mirror warehouse client, integrated SVN client to obtain component build source resources. The task execution process records a complete log, and the event client inputs the log to the rbd-event-log service through the message stream.Each source code build process is controlled by Chaos by calling the native Docker API to create a build container and maintain the container life cycle. Implementation of Git client and mirror repository clients, integrating SVN clients to get component build source resource. The full task execution record log is entered by the client via the message stream into the rbd-event-log service.Each source build process is controlled by Chaos calls the native Docker API to create a container and maintain the container's life cycle. + +The source code building process is a very resource-consuming process. Therefore, the application build service supports multi-node deployment to increase the number of concurrently supported build tasks. The maximum number of concurrent builds supported by each node is determined by the number of node CPU cores or manually set by operation and maintenance personnel. + +> - 关于源码编译的 BuildingPack 参考 [各语言支持文档](../../devops/app-deploy/)。 +> - The application construction service supports multi-point high-availability deployment, and multi-point deployment obtains application construction tasks from message middleware. + +### Application Runtime Control Service + +The application runtime control service instantiates the Rainbond-Application Model and converts it into a Kubernetes resource model, assigns various resources required for application operation, and completes the running state part of the application life cycle. It can be understood as the CD control service. The design points of this service It is the life cycle supervision that supports a large number of applications. + + + +App can experience stops, upgrades and rolls during your life cycle.The application life cycle may experience start, stop, upgrade and rollback.Different application types require different control strategies. For example, stateless applications can perform unordered rolling upgrades, while the upgrade control strategies for stateful applications will be more complex.The Worker service implements lifecycle controllers for various component types, including start, stop, update, and scaling waits.A lifecycle controller, containing start, stop, update, scaled-up waiting for all components types in the workker service. + +Application operation requires various external environment support. For example, network resources such as tenant IP and ports need to be allocated. Persistent storage resources need to be assigned according to application settings. For example, shared file storage allocates storage directories, and block storage relies on various plug-ins to allocate storage resources. Establish service discovery and load balancing strategies based on application dependency properties for mesh plugins.Generate scheduling policies based on application properties to call the Kubernetes cluster to schedule application running. Build your service discovery and load equilibrium strategy to build your plugins based on your app's dependence.Generate the scheduler to launch the Kubernetes cluster scheduler application according to the application attribute. + +Currently Rainbond uses the following resource types:Deemployment, Statefulset, Service, Ingress, Secretary, ConfigMap, Pod.For users, there is no need to understand these resources and they are not reflected in the products and they are only carriers of applications. + +The function of the worker component is divided into a stateful part and a stateless part. In order to realize the cluster deployment of the worker component, the worker elects the master node, and the service elected as the master node will provide the application storage provider and storage statistics service. + +The Worker component is a module for the kubernetes-controller controller extension and scheduler extension. Currently, there are local storage providers, shared storage providers for stateful components, etc. It also obtains existing resources in the Kubernetes cluster for Rainbond application components to choose and use . + +Worker components can support multi-node deployment to ensure high availability. + +### Monitoring service + +The design goal of the Rainbond cluster monitoring service is to comprehensively monitor the four dimensions of application business performance level, application container resource level, cluster node level, and management service level. It provides data storage, query, visualization and alarming functions, and supports performance in terms of performance. large-scale clusters. + +Prometheus does not support cluster deployment by default, and cannot directly increase monitoring capabilities by expanding nodes.In order to improve the processing capacity of the monitoring system, it currently supports remote storage of stored data to improve data storage capacity; supports configuration synchronization of multiple nodes to provide service availability; supports adjustment of monitoring data storage window and reduces the occupation of memory resources.It is planned to support clustered partitioning of monitoring targets, thereby supporting expansion of nodes to expand monitoring capabilities, and providing a unified query API to shield the underlying data partitions.Rainbond encapsulates the Monitor component based on Prometheus. By automatically discovering various monitoring objects of applications, clusters, and cluster node services from etcd and Kubernetes clusters, and completing the configuration of Prometheus monitoring targets, the monitoring targets are included in the scope of Prometheus monitoring.Each component of Rainbond also implements the monitoring indicators exposed on the exporter side of Prometheus.Automated monitoring of multiple dimensions without user intervention.Automatically monitor multiple dimensions without user intervention. + +The Monitor component can automatically configure some default alarm rules. It plans to support obtaining custom alarm rule resources from Kubernetes to generate Prometheus alarm rules to make them take effect dynamically, thereby supporting custom alarm rules. The alarm information is processed by the third-party Alter-Manage system. + +Prometheus does not support cluster deployment by default and cannot improve monitoring capacity directly through the expansion of nodes.In order to improve the processing capabilities of the MCS system, support is being provided to improve data storage capacity through remote storage; to support multiple nodes configuration synchronization to provide service availability; and to adjust control data storage windows and reduce the use of memory resources.It is planned to support the clustering of surveillance targets, thereby supporting the expansion of nodes to expand surveillance capabilities and the external provision of a unified query API block data partition at the bottom. + +### message middleware service + +The MQ component is a lightweight distributed, message persistence and globally consistent message middleware based on Etcd.This component maintains asynchronous task messages and provides multi-topic message publishing and subscription capabilities.This component maintains asynchronous task messages, provides multi-topic message posting and subscription capabilities. + +There are many message middleware products on the market, such as ActiveMQ, RabbitMQ,:, etc. According to our requirements, the key attributes such as distribution, persistence, global consistency, light weight, order, etc., the existing message middleware products or More or less dissatisfied. + +Etcd is a simple, secure, fast and credible key storage service that plays an important role in our entire system architecture.A basic message system based on the already convenient features of the etcd.Use a key for each subscription theme with etcd control over time series and exclusive mechanisms that allow incoming messages to be consumed sequentially, and the watch mechanism provided by clients via etcd can be very simple subscription messages.Based on this, we have packaged medical API: restul and grpc.Client can easily operate messages in PUB/SUB/SUB. + +### Event and Log Processing Service + +The logs and message information that the Rainbond platform needs to process includes three categories::user asynchronous operation logs, application construction logs, and application running logs. + +Currently Rainbond uses the following resource types in:Deployment, Statefulset, Service, Ingress, Secret, ConfigMap, Pod.For users, there is no need to understand these resources, and they are not reflected in the product, they are just the carrier of application operation.User asynchronous operation log:For the user operation log, we need to track the final status of each operation in a distributed manner. Currently, the eventlog component judges the final status of the operation according to the log aggregation of each operation.In the process of processing an asynchronous task, other components will send process log records to the eventlog cluster through the gRPC message stream. + +Application build log:mainly displays the output information of source code build or Docker image build, which comes from the application build service. + +Application running log, currently we divide it into two forms: + +(1) Standard output/error output log + +For standard output logs, the computing node log collector obtains the log stream through Docker Daemon and separates services. By default, the container logs of all computing nodes are sent to the Eventlog component in real time based on TCP data stream communication, and they are aggregated at the application level for storage. and push it to the UI in real time. In subsequent versions, the log collector will realize the connection with the third-party log system and directly deliver the logs to the third-party log processing platform. + +(2) Business logs (access logs) output to persistent files + +For business logs output to the persistent directory, it is generally necessary to automatically analyze them, such as connecting to the ELK system. Therefore, install a log processing plugin in the plugin system to collect log files from the persistent directory and send them to a third-party log analysis service. + +The log processing design requirement for the cluster is to support log aggregation, storage, real-time push and query.And can support a larger log volume.and can support a larger amount of logs. + +According to the above log type analysis, operation logs are limited log streams whose main requirements are to implement storage and implement push clients.The processing link for such logs is mainly that the grpc message stream accepts logs from various component clients, aggregates and stores logs in units of events, and simultaneously propagates them in the cluster, thereby providing distributed logs to clients. Subscription capability.Realize the effect of single-node storage and multi-node readability.Etcd is a simple, secure, fast, and trusted key-value storage service that plays an important role in our entire system architecture.It is very convenient to implement a basic message system based on the existing features of etcd.A key is used for each subscription topic. The timing and exclusive mechanism are controlled by etcd, so that incoming messages can be consumed in sequence. The client can subscribe messages very simply through the watch mechanism provided by etcd.Based on this we wrap two types of APIs: restful and grpc.The client can conveniently operate the PUB/SUB of the message.Achieve single-node storage, multiple nodes readable effects. + +Based on the open source Artifactory project, it serves all third-party class libraries and file packages required for application construction based on source code, storage or proxy application construction.It is a necessary component for source code construction, and it can be connected to other package repositories within the enterprise.The application running log is an infinite log stream with many log sources, which is determined by the amount of applications existing in the current cluster and the amount of logs generated by each application.Therefore, in order to support the huge amount of application logs, the eventlog service implements the partitioned log processing capability, and flexibly adjusts the log processing nodes in units of components (service_id). The running logs of the same component are passed through the log collection service of each computing node. The TCP message flow sends the log to the specified eventlog service node. After the eventlog service receives the log, the log is aggregated, buffered and placed on the disk.It also provides real-time push capabilities to subscribing clients.When the client subscribes, the rbd-api service loads the specified eventlog service node according to the subscribed service_id information.It also provides real-time push capability to subscribers to clients.Client subscription is loaded to the specified eventlog service node by the rbd-api service based on subscription_id information. + +The Node component is the basic service formed by the Rainbond cluster, and all nodes in the cluster need to run this component.Provides key capabilities such as node information collection, cluster service maintenance, application log collection, and application runtime support.The cluster nodes of the Eventlog service need to communicate with each other, including operation log stream sharing and processing capacity reporting to determine the processing nodes of the application running log.Therefore, the nodes of the Eventlog service realize the inter-node communication through the ZeroMQ subscription mode. ZeroMQ is a high-performance message library, based on which to ensure the communication performance between the Eventlog services.The worker nodes of Eventlog make full use of the memory buffering mechanism when processing logs to improve the throughput of log messages and reduce the pressure on the disk.Eventlog working nodes process logs fully use memory buffers to improve log message throughput while reducing pressure on disk. + +The Eventlog service is a stateful cluster service that supports horizontal scaling to improve application log processing capabilities. + +### Cluster, node management services + +The Node component is the basic service of the Rainbond cluster and needs to run all nodes in the cluster.Provides key capabilities for nodal information gathering, cluster service maintenance, application log gathering, app running support, etc. + +Kubernetes Master includes three components, Kube-apiserver, Kube-ControllerManager, and Kube-Scheduler in version 1.10.11.The Node component has two roles, the master role and the worker role.Generally, the Node running on the management node has the master role. The master role maintains the status and information aggregation of all nodes, and provides API query services. The worker role node regularly reports the status to the master node. + + + +The node controller first acts as a daemon for the current node running service, similar to Kubelet.The service or health detection item that each node needs to run is defined through the yaml format in /opt/rainbond/conf directory.When the controller starts it will read the configuration under this directory, call the systemd daemon to start the service for which it needs to be launched, and the health monitoring project will generate the health detection controller based on the configuration.This is mainly designed to achieve the project to extend the monitoring of the kubernetes nodes for cluster automation.The node controller will maintain the status of all configuration items and report them to master node.For abnormal service controllers will try to reboot the recovery service according to the rules. If this is not possible, master node will be advised to set the current node unhealthy and depart from the available range until the node recovers. + +In terms of monitoring, Node exposes various monitoring indicators at the operating system and hardware level of the node (integrating promethes node-exporter), and as a collector of application performance analysis data, it converts and exposes application performance analysis indicators.All exposed monitoring metrics are collected by the rbd-monitor service.All exposed monitoring indicators are collected by the rbd-monitor service. + +The DNS service provides DNS resolution services for the cluster, based on the secondary development of Kube-DNS.The Node service group running on all computing nodes builds the running environment support for running applications in the tenant network, especially ServiceMesh support and plug-in dynamic configuration query support.The Node service provides a general configuration discovery API and service discovery API to support the application architecture running on the current node. On this basis, it provides the XDS Server service and provides dynamic configuration for the built-in ServiceMesh architecture. + + + +The node controller first acts as a daemon task for the current node running service, similar to Kubelet in this respect.The services or health check items that each node needs to run are defined in the /opt/rainbond/conf directory in the format of yaml.After the controller is started, it will read the configuration in this directory, call the systemd daemon to start the service for the service that needs to be started, and generate the health check controller according to the configuration for the health check project.The design here is mainly to realize the automatic operation and maintenance of the cluster and expand the monitoring project of kubernetes nodes.The node controller will maintain the state of all configuration items and report to the master node.For an abnormal service controller, it will try to restart and restore the service according to the rules. If it cannot be restored, it is recommended that the master node set the current node to an unhealthy state and leave the scheduling availability range until the node is restored.The node controller log collection module implements log collection for all application containers of the current node.By obtaining the container list and log driver configuration in real time from Dockerd, a log copyer driver for each container is generated. There are multiple implementations of the log copyer driver. The default implementation is to transfer logs to the eventlog service.It also supports drivers of other log collection services, such as ES.Also supports the drivers of other time log collection services, such as ES. + +### Application Web Terminal Control Service + +This component implements web connecting to the Container Contain.This component implements the function of connecting to the container console through the web.This component communicates with the UI through WebSocket. Users can send various shell commands by simulating the web terminal. The webcli executes commands in the container through the exec method provided by kube-apiserver and returns the results to the web terminal. + +The rbd-webcli service can intercept and sanitize all user commands.Prevent malicious command injection, and realize terminal-to-browser through the communication mode.Prevent malicious commands from injecting, use communication mode to get terminals to browsers. + +### metadata storage service + +Rainbond data center metadata currently supports storage in Mysql database or CockroachDB database.The database mainly stores the basic metadata of the application model, and does not record the running state data of the application.Running state data is mainly maintained by the Kubernetes cluster or recorded in the ETCD service.The database primarily stores basic metadata for the application model, and does not record the application's operating state data.Running data is mainly maintained by Kubernetes clusters or recorded in ETCD services. + +5.1.8 and earlier versions support Mysql 5.6 + +5.1.9 and later versions support Mysql 5.7 8.0 + +### Mirror Repository Service + +Based on the open source [Distribution](https://github.com/docker/distribution) project, it is used for container image storage in the current data center. + +## Description of business logic layer components + +### application console + +As the key module of Rainbond's application-centric abstraction, the application console UI component is oriented to application developers and application users.Based on the front-end and back-end separation architecture design of Django+Ant design, it provides users with application abstraction, application group abstraction, data center abstraction, and application market abstraction to provide interactive experience.Realize the complete application creation, management process, application delivery and sharing process, etc.Based on the Django+Ant design structure design that provides an interactive view of the user's abstraction, the group abstraction, the data centre abstraction, and the market abstraction.Achieve full app creation, management process, app delivery sharing process, etc. From 8c227840773276db309ffd029fcdae39dce3c460 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:20 +0800 Subject: [PATCH 172/398] New translations design-concept.md (English) --- .../architecture/design-concept.md | 125 ++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/quick-start/architecture/design-concept.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/quick-start/architecture/design-concept.md b/i18n/en/docusaurus-plugin-content-docs/current/quick-start/architecture/design-concept.md new file mode 100644 index 0000000000..b39092977f --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/quick-start/architecture/design-concept.md @@ -0,0 +1,125 @@ +--- +title: Design Concept +description: The origin and philosophy of Rainbond design +--- + +## The Essence and Ultimate Effect of Cloud-Native + +**Cloud computing fundamentally addresses the problem of automated resource management. However, the key to digitization and informatization lies in applications. Cloud computing does not solve the management problem of applications, and application management and operation are challenging and highly dependent on humans. The emergence of cloud-native is to address the management problem of applications.**\*\* + +Application management is much more complex than resource management and involves application development, application architecture, application delivery, and application operation, among other application-level management aspects. It also needs to work in conjunction with solving the problem of automated resource management. The essence of cloud-native is to address the problem of automated application management. + +![cloud-native](/img/architecture/cloud_to_native.svg) + +In terms of its effect, the ultimate goal of cloud-native is to allow developers to focus on their business. They shouldn't have to worry about things outside of their business, such as infrastructure, application architecture, and application operations. They should just need to understand the business and be able to create the applications they want and deliver them on-demand to customers. + +## The Application Abstraction Model is Key to Implementing Cloud-Native (Implementation Approach) + +The challenge of implementing cloud-native lies in its use. If complex underlying technologies of cloud-native can be encapsulated into familiar application-level attributes and actions for developers, they won't need to learn new concepts and technologies. If business capabilities can be decoupled from operations, and from microservices frameworks, developers can extend operational capabilities and switch microservices frameworks as needed, enabling business empowerment on-demand. If customized delivery processes and automated delivery can be achieved based on different customer types, it can significantly reduce delivery costs and improve customer satisfaction. + +When these three points are addressed, developers can focus on their business, and they don't need to worry about things outside of their business. They can focus more on delivering customer value. + +**Based on these considerations, an application abstraction model is a solution. It wraps and abstracts the entire application, including all the runtime definitions needed for running the application. It isolates the application from the underlying technologies and concepts.** Upward-facing users don't need to learn and understand system-level concepts and technologies anymore. Internally, the application decouples business and extension capabilities, using application-level concepts for development and management. When there's a need to extend service governance, operations, security, and other capabilities, plugins can be activated as needed. Downward, it wraps Kubernetes concepts and abstractions, shielding the differences in underlying infrastructure, allowing the application abstraction model to run on various types of infrastructure.\*\* Upward users are no longer required to learn and understand system-level concepts and technologies, to apply internal coupling of business and extension capabilities, to develop and manage applications concept and to enable plugins when expanding service governance, operational maintenance, security, etc.Bottom down packaging Kubernetes concepts and abstracts, block differences in underlying infrastructure and make it possible to apply abstract models to all types of infrastructure. + +![export\_template](/img/architecture/export_template.svg) + +The core design of the application abstraction template includes three aspects: + +1. Application-level Abstraction + +2. Architecture fully disintegrates sex + +3. Delivery using Application Templates + +### Application-level Abstraction Simplifies Understanding and Usage + +Application-level abstraction is an "application-centric" abstraction model that exposes application-level concepts, attributes, and actions to users. System-level concepts and technologies, whether completely automated or packaged as application-level attributes and actions, are implemented. The essence is to provide a user-friendly operational experience for ordinary developers who do not need to learn and use system-level concepts. + +In order to achieve flexible programming and automation, Kubernetes defined a number of concepts, offered a rich extension mechanism and interacted with it in YAML, these programmable experiences of Kubernetes were very good features for those who manage and expand Kubernetes, but for ordinary developers, the threshold was too high and many concepts and technologies were not directly related to the business they developed, so that a more friendly experience was needed for ordinary developers without learning to use. + +Decoupling of Architecture + +Coarse-grained correspondence between application-level abstraction and Kubernetes concepts: + +| Application-level Property | Kubernetes Concept | +| --------------------------------------- | ------------------ | +| Application Runtime Environment | Containers | +| Application Runtime Properties | Workload | +| Application Network Properties | SDN | +| Application Storage Properties | SDS | +| Application External Service Properties | Progress | +| Application Internal Service Properties | Service | +| Application Plugins | Pod | +| Application Configuration | ConfigMap | + +Application-level abstraction is not about hiding all Kubernetes concepts but presenting different interaction interfaces for different users with different responsibilities. Ordinary developers are responsible for business development and only need to care about application-level concepts, providing an operational interface at that level.The responsibility for the development of the common developer is a business that requires only attention to the application grade concept and the provision of an operational interface. + +However, for cloud-native platform administrators, in addition to application-level concepts, they also need to be concerned with the management and maintenance of Kubernetes and, if capable, can extend the platform's capabilities. Therefore, for platform administrators, providing advanced interfaces that expose Kubernetes concepts or directly operating Kubernetes can manage applications on the platform. This approach also avoids the lack of observability and control over the platform due to the "black box" created by packaging concepts. + +### Structures fully decouple and use scene combinations + +Based on application-level abstraction, the application model decouples from underlying infrastructure using standard Kubernetes APIs. All infrastructure that conforms to the standard Kubernetes API can be integrated and deployed. This includes Kubernetes implementations from various cloud providers, K3s, KubeEdge, etc. By decoupling in this way, developers only need to focus on business and the extension of capabilities, without worrying about the differences in underlying infrastructure. Applications that integrate with the application model can be transparently deployed on public clouds, private clouds, and edge devices, achieving multi-cloud management at the application level. + +**In an application, there may also be some functionality that is unrelated to the business but is essential for the application to run smoothly.** For example: service governance, microservices frameworks, operational tools, security tools, etc. These capabilities are tightly coupled with the application and require code extensions. By decoupling these capabilities, the application only needs to focus on business, and the extensibility has strong reusability for other applications.Self-sufficiency: They can be independently installed, upgraded, and managed, ensuring flexibility in combination. + +The decoupling of extension capabilities in the application uses Kubernetes Pods. Pods contain one or more containers, and all containers share the same network and storage. The application runs in one container, and the extension capabilities run by extending containers. By sharing the same network and storage, the decoupling of the application and extension capabilities is achieved. This decoupling method is non-invasive to the business, and extension capabilities are packaged in the form of plugins. This allows applications to be installed and plugins to be started as needed, and several types of plugins can be defined based on network flow and container startup order: + +| Plugin Type | Description | +| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Ingress Network Plugin | Network traffic goes to the entrance network plugin and then to the business container.Network traffic first goes to the Ingress Network Plugin, then to the business container. Examples: gateway, WAF, security tools, rate limiting | +| Egress Network Plugin | Network traffic first goes to the business container, then to the plugin container. Examples: load balancing, circuit breaker, encrypted accesse.g.:load balance, circuit breaker, encrypted access | +| Ingress-Egress Network Plugin | Network traffic first goes to the plugin container, then to the business container, and then back to the plugin container. Examples: Service Mesh proxye.g.:Service Mesh proxy | +| Bypass Plugin | Run by bypass road on the network.Runs on the network bypass. Examples: performance analysis, monitoring, call chain analysis, log management | +| Initialization Plugin | Pod's Init container, starts before the Pod. Examples: database initializatione.g.:database initialization | + +![app\_model\_en](/img/architecture/app_model_en.png) + +Implementing plugins based on the Pod mechanism can only extend the capabilities of individual business containers. To extend the service governance capabilities of the entire application, plugins for each business container need to be extended. This is consistent with the implementation mechanism of Service Mesh. + +Service Mesh's Data Plane needs to inject a Proxy for each business container, which extends the capabilities of the complete application. When the application is decoupled from the microservices framework, each business container is no longer restricted by the microservices framework and programming language, and each business container only needs to focus on its business, achieving decoupling between business containers.**When coupling the app with the microservice architecture, each business container is no longer restricted by the microservice framework and the development language. Each business container needs to focus exclusively on the business itself and synchronize the business containers to understand it.** + +By fully decoupling architecture, the decoupled capabilities of business, plugins, and multi-cloud capabilities can be freely combined. Developers can choose their preferred programming language to develop business components, define dependencies based on business contracts, enable Service Mesh plugins, and other operational plugins as needed. The infrastructure environment is also automatically integrated based on actual needs. + +### Application Templates as a Carrier for Reusable Capabilities and Application Delivery + +The application model is embodied and stored in the form of application templates. Applications are assembled from source code, container images, and plugins, and then exported as application templates. Application templates are designed mainly around users, enabling users to use them and deliver applications that drive iteration and development. + +\*\*From using experience, app templates can install and upgrade by one click and by dragging down the business.\*\*Application templates are flexible enough to support different particle sizes, templates and templates can amortize new templates, new templates can be continuously patched, particle size is determined by the user and meaningful by the user.**From a user experience perspective, application templates can be installed and upgraded with a single click, achieved through "drag and drop" business assembly.** Application templates are highly flexible, supporting different granularities. Templates can be combined with other templates, and new templates can be continuously assembled. The granularity is determined by the user and given meaning by the user. Application templates can be delivered to branch versions that are compatible with the Kubernetes API, achieving one-click installation and upgrade or storing the application template in an application marketplace for instant use. + +![app\_abstract\_model\_en](/img/architecture/app_abstract_model_en.svg) + +Application templates need to have four characteristics: + +1. Modular to form reusable capability units that use scenes as required. + +2. Self-government, self-sufficiency, can be installed, upgraded and managed independently, ensuring flexibility in combinations. + +3. Orchestratability: Templates and templates can be combined to create new templates, with infinite assembly capabilities. + +4. Discoverability: Through internal and external services, they can be accessed by both business and technical personnel, developers, and other applications. + +\*\*Reusable modules and capabilities are implemented through application templates.**Through application templates, modular capabilities and functions are packaged.** After full decoupling of the application, business components and extension plugins can theoretically be copied to other applications. However, directly copying code or images is inefficient, and many configuration details related to the runtime environment need to be considered. By packaging business components and extension plugins as application templates and publishing them in an application marketplace for others to use, maximum modularity and capability reuse are achieved, reducing redundant work. + +Full Decoupling of Architecture and On-Demand Composition for Different Scenarios**Through application templates, automated delivery in SaaS, on-premises, and offline environments is achieved, along with personalized scenario module assembly.** Application templates contain all the resources needed for the application's runtime state. When the customer's environment is connected to the internet, it can be installed and run with one click, shielding the differences in customer environments. For offline environments, application templates can be exported as files and then imported and installed in the customer environment. + +For scenarios that require personalized functionality, application templates can be used to package modular capabilities, then customized development can be performed. If the newly developed functionality is reusable, it can also be released as an application template for future reuse. + +## Achieving the Cloud-Native Experience on Rainbond + +Based on the design thinking above, the developers are allowed to focus on the business itself and return to the point of origin of user effectiveness and value, without concern for the complex techniques and unrelated concepts at the bottom and fully automate the application.Based on the above design principles, Rainbond allows developers to focus on their business, eliminating the need to understand complex underlying technologies and irrelevant concepts. Rainbond provides an out-of-the-box experience that is easy to use and does not require knowledge of containers and Kubernetes. It supports the management of various Kubernetes clusters and provides full lifecycle management for enterprise applications. Its main functions include application development environment, application marketplace, microservices architecture, application delivery, application operation and maintenance, and application-level multi-cloud management.The main functions include the application development environment, the application market, the micro-service architecture, the application delivery, the application workload, and the application of cloud management. + +Experience for Application Development: + +1. **Code can become a cloud-native application without modification.** For new or existing businesses, the code can be containerized without modification. You don't need to understand Docker, Kubernetes, and other technologies to deploy applications. It provides all the features of a cloud-native application without needing to understand the underlying complexity.\*\*For new or existing business, the code does not need to be changed to make it container.Modularity: They can form reusable capability units, assembled as needed for use cases. + +2. \*\*Business Brick Spelling.**Business block-style assembly orchestration.** Reusable business modules are accumulated in the application marketplace. When new business needs to be developed, it can be assembled based on the already existing business modules in the application marketplace, using a "drag-and-drop" approach. Then, develop any missing business capabilities. As more business modules accumulate, the speed of developing new business accelerates. + +3. ![service\_mesh\_decoupling\_en](/img/architecture/service_mesh_decoupling_en.svg)**Out-of-the-box Service Mesh microservices architecture with the ability to switch Service Mesh frameworks with one click.** Without needing to learn the SDK of microservices frameworks, Service Mesh microservices architecture can be implemented in a non-invasive manner. Leading Service Mesh frameworks exist as plugins, which can be activated when needed. If one framework is deemed inadequate, it can be replaced at any time. + +User Experience for Using Applications: + +1. \*\*Install cloud native apps like mobile apps.**Install cloud-native applications like installing mobile apps.** Cloud-native applications are stored in the form of application templates in the application marketplace. When integrating with various infrastructures or cloud resources, cloud-native applications can be installed instantly with one click or one-click installation/upgrade. + +2. \*\*Generic developers will be able to perform app delivery without learning to learn.**Ordinary developers can perform application operations without learning.** Through application-level abstraction, ordinary developers can understand application-level properties to perform application operations. They can also extend monitoring, performance analysis, logging, security, and other operational capabilities through plugins. Application operations no longer require specialized SREs. + +3. \*\*Complex apps delivering customer environment.**One-click delivery of complex applications to customer environments.** Complex applications can be published as application templates. When the customer's environment is connected to the internet, it can be integrated with the customer's environment and installed and run with one click. If the customer's environment cannot connect to the internet, export the offline application template, import it into the customer's environment, and install and run it with one click. From 61d2625a50b126da582f05f763fea7d177c14a93 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:21 +0800 Subject: [PATCH 173/398] New translations flow.md (English) --- .../current/quick-start/architecture/flow.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/quick-start/architecture/flow.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/quick-start/architecture/flow.md b/i18n/en/docusaurus-plugin-content-docs/current/quick-start/architecture/flow.md new file mode 100644 index 0000000000..be3cfa58f6 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/quick-start/architecture/flow.md @@ -0,0 +1,28 @@ +--- +title: Business Process +description: The use process of Rainbond in specific scenarios +--- + +#### abstract process + + + +Rainbond's process is based on`application-centric`abstraction, with delivery as the purpose + +#### scene flow + +##### Internet company delivery process + + + +##### Enterprise Software Company Delivery Process + + + +##### Industry Cloud Delivery Process + + + +##### Large enterprise IT process + + From 6f809ff53ba1737769332dbdd4445c70bb0100e0 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:23 +0800 Subject: [PATCH 174/398] New translations differences.md (English) --- .../current/quick-start/differences.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/quick-start/differences.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/quick-start/differences.md b/i18n/en/docusaurus-plugin-content-docs/current/quick-start/differences.md new file mode 100644 index 0000000000..93a6ba8d22 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/quick-start/differences.md @@ -0,0 +1,42 @@ +--- +title: Differences from other technologies +description: This chapter describes key differences and commonalities between Rainbond and other products/technologies. +--- + +## Rainbond vs. Helm + +### scene difference + +Helm sets the package management tool on Kubernetes and is primarily a template for Kubernetes Yaml files.There is no reasonable control over the entire state of the application.Kubernetes is a technical component at the bottom of Rainbond. You do not need to learn containers and k8s to use Rainbond. Rainbond is compatible with the standards of containers and K8s. Rainbond runs on k8s, and k8s is responsible for the operation and scheduling of all applications.Allows the app to manage its life cycle (build, start, stop, delete, and state of application). + +### Use differences + +1. There is no clear status return mechanism after Helm installation of the app.User is not able to get a direct view of the entire application's deployment status and how the app is running.Rainbond visualizes the dependencies and state of operation of all components in the app in the form of a sketch.Also visualizable management applies to the lifecycle of individual components. + +2. Helm app version management is a direct complete overlay without a reasonable grayscale strategy.Rainbond can be released by applying models and plugin capacity selectivelyQuickly rollback if necessary.In preparing Helm Application Templates, users need to learn more about Helm Chart writing.Rainbond implements the accumulation of application capabilities by publishing a single button on the interface. + +## Rainbond vs. KubeSphere + +### Positioning differences + +KubeSphere is primarily located in the ability of the container to blend clouds for the cloud native app, the main typing and plugin-like ecological extension.cloud native Rainbond's idea of cloud native practice is similar to[Heroku](https://www.heroku.com/), but it has expanded its extension in the field of To B delivery. Other container platforms usually manage containers and infrastructure in a unified management interface, mainly for operation and maintenance. Difference with k8s Reference [Technical Architecture](/docs/quick-start/architecture/)Full life-cycle management and application delivery issues for 2B industries. + +### Use differences + +1. When KubeSphere deploys its business component based on a graphical interface, the fields that need to be filled are usually 'translation' of the yaml declaration configuration file. There are still some thresholds for users who are not familiar with Kubernetes for easy use.Rainbond does not use yaml files directly, all types of resources applied are defined in the developer's perspective, while Kubernetes is not required to deploy a business, and users are required to fill in the source address and focus on the business.Very friendly to users who are not familiar with Kubernetes. + +2. Both introduce the concept of application templates, which are largely isolated from bottom techniques and concepts by packaging and abstract applications as a whole, including all operational definitions required for their operation.Finally implement the experience of deploying the app by one user key.Application templates in KubeSphere are based primarily on standard Helm application templates, better support for Helm templates, and developers can upload their own Helm Chart as an application template.Rainbond is based on the application template implemented by RAM (Rainbond Application Model).The developer can post the running app key directly to the app shop, see it, install the installed app in line with the original app.There is no need to learn about RAM actual implementation, nor do you need to learn Helm Chart writing.Make your own app template and make offline, cloud, private delivery, etc. + +3. In the microservice architecture, KubeSphere has been packaged with Istio and has significantly reduced Istio's experience of use, but this does not mean that users can drop out of Istio at all and apply an internal topography based on prior configuration.Rainbond of self-researched micro-service frameworks are more user-friendly and a dragged microservice spelling mode is implemented.But there is a lack of standardization in the case of Istio and Linkerd these Service Mesh microservice frameworks.Rainbond also now offers an integrated approach that accepts Istio governance mode but has not yet been validated by a large number of users. + +## Rainbond vs. Rancher + +### Differences from container platforms + +Rancher is a fully stack container management platform that can help to deploy and run clusters and manage the containers above.Rainbond has different management interfaces for different groups of people. It has an application management console for development, testing, and application operation and maintenance, a command-line tool and a resource management background for system operation and maintenance, and an application market for application delivery personnel and end users.The application delivery process (software development delivery process, enterprise IT management process, enterprise market ecology for applications) is also landscaped.The command line tool grctl is available for system performance. + +### Use differences + +1. Rancher has the greatest advantage of being fully compatible with the K8s system, focusing more on the integration of the k8s infrastructure, providing a more original application deployment method, while the set of cloud native fields that can be integrated at various levels is already very rich, while learning costs are high, offering one-stop solutions and being more friendly to the transport dimension.Rainbond offered greater ease of use to developers.Allows developers to quickly achieve cloud experience without learning about Kubernetes and related technologies and concepts.In addition, the integrated development environment, modular organization, application markets and other functions offered by Rainbond can significantly increase the efficiency of customization development and application delivery.Delivery can reduce delivery costs and difficulty by applying templates. + +2. Rancher focused on helping the DevOps team face the challenges of operating peacekeeping in multi-cluster situations, where cluster deployments, cluster monitoring, container security, and so on.Rainbond does not provide the functionality to operate clusters and nodes directly.It is also based primarily on “app” multicloud management, which supports rapid deployment of applications in multiple clusters.So Rancher and Rainbond did not clash, connecting infrastructure downward, managing the safety and compliance of clusters was Ranch’s best nice, and increasing the experience of using cloud native platforms for final developers. From 3b6d9126bdf33ab0a91600a57137bb7fb287ddbe Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:24 +0800 Subject: [PATCH 175/398] New translations getting-started.mdx (English) --- .../current/quick-start/getting-started.mdx | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/quick-start/getting-started.mdx diff --git a/i18n/en/docusaurus-plugin-content-docs/current/quick-start/getting-started.mdx b/i18n/en/docusaurus-plugin-content-docs/current/quick-start/getting-started.mdx new file mode 100644 index 0000000000..ea170dcd6a --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/quick-start/getting-started.mdx @@ -0,0 +1,68 @@ +--- +title: Quick Start +description: This document will guide you through the deployment and installation of your first application +--- + +This article will guide you through deploying an application to quickly familiarize yourself with the basic functionality of Rainbond, starting with building the Java-Maven Demo sample from source code, and then connecting the Java-Maven Demo to the MySQL service in the form of application orchestration to achieve a basic application deployment. + +## Preparatory work + +1. Install Rainbond in advance, see [Quick Installation](/docs/quick-start/quick-install) + +## Step 1: Create component + +With the quick setup and deployment of the Rainbond platform, the first entry will be on a team guide page, where we can deploy our components in a variety of ways, such as the app market, images, source code, or Yaml Helm. + +1. Next we select 'Build from Source --> Example --> Select Java-Maven Demo --> Confirm creation'. + +2. Enter the code detection page, and click Next after the detection is complete. + +3. Build parameter setting page, here set your build parameters, such as version, build commands, etc., according to the language of the source code selection will also have some extension parameter Settings. For example, java-maven has parameters such as JDK version and Maven version. Let's just use the default parameters and click Next.e.g. java-maven has JDK version, Maven version, etc.We will use the default parameter and click next step. + +4. Here are some advanced configurations where you can manage ports, configuration files, environment variables, storage. Here we still use the default parameters and click Confirm Build.Here we still build with default parameters, and then confirm it. + +After the creation is completed, it will jump to the component view of the platform, and at this point, our creation process is complete. + +## Step 2: Access component + +The component view contains multiple columns for components: + +- Monitoring: Some monitoring information about the component, memory, CPU, etc +- Log: You can view component run logs +- Scaling: Operations on the number of instances of a component, memory, CPU, etc +- Environment configuration: Component runtime environment variables and mounting bindings for configuration files. +- Dependency: The connection between components depends on information. +- Storage: Component storage management. You can configure mount storage for components. +- Port: Manages component ports and their access policies. +- Plug-ins: Component plug-ins, containers of plug-ins that help your main business container work. +- Build source: Freely switch build sources for builds, from source to image, or from image to source. +- Other Settings: You can switch the deployment type of the component. Stateless, stateless; Component health detection; Kubernetes properties are advanced property configurations for components.No state, state;component health detection;Kubernetes properties are some advanced properties of the component. + +When we see that the running status of the component is green, it means that the component is running normally. At this time, we can click the access button in the upper right corner to access the component, as shown in the following figure: + +![maven-page](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.7/docs/quick-start/maven-page.jpg) + +Or click on the port in the component view to see the access address of the component, and click on the access address to jump to the component page. At this point, we have deployed the first component on Rainbond. + +## Step 3: Orchestrate the application (optional) + +In the previous steps, we only deployed a module under the application 'Source build sample', that is, the UI part, we will briefly explain how to deploy a Mysql database and make Maven project read MYSQL information. + +We still repeat the previous step of creating a new component, under the application 'Source code build example', select 'Add component --> Start from the App Market --> Open Source App Store --> Search MYSQL --> Install mysql-Percona stand-alone edition'. If you do not have installation permissions, please click 'de-authorize' under the search box first to obtain permissions.If you do not have permission to install, please click on the `authorization` first in the search box to get permissions. + +Once the installation has been completed, we can see an additional Mysql component under the app.We select the sorting mode to link Maven to Mysql.After the installation is complete, we can see that there is an additional Mysql component under the application. We chose orchestration mode to connect Maven to Mysql. This establishes the Maven project's dependency on Mysql. Follow the prompts to update the component after the dependency is added.Follow the reminder to update the component when the addition is complete. + +![establish-dependencies](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.7/docs/quick-start/establishment dependencies.jpg) + +After the component update is complete, we can access the Maven component again, click on the Mysql example, and you can see the Mysql connection information and the tables that exist in the database. As shown in the following picture.As shown in the graph below. + +![maven-mysql-demo](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.7/docs/quick-start/maven-mysql-demo.jpg) + +This means that our project has been successfully connected to the Mysql component we have just deployed and read the corresponding table information.Our app `Maven Project` is fully deployed at this time.It contains a Maven project and a database.You can see their dependencies clearly in the sketch. + +## Next step + +Now that you have deployed your first application, you can try: + +- [部署你的应用](../devops/app-deploy/) +- [安装多节点集群](../installation/) From 1705fab08e5fc44c66e2d312991c3614c3b3f277 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:26 +0800 Subject: [PATCH 176/398] New translations introduction.md (English) --- .../current/quick-start/introduction.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/quick-start/introduction.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/quick-start/introduction.md b/i18n/en/docusaurus-plugin-content-docs/current/quick-start/introduction.md new file mode 100644 index 0000000000..858eb2a40d --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/quick-start/introduction.md @@ -0,0 +1,65 @@ +--- +title: What is Rainbond? +description: Rainbond follows a **"Application-Centric"** design philosophy, unifying container, Kubernetes, and underlying infrastructure-related technologies. This allows users to focus on their business without the need to invest significant time and effort in learning and managing technologies outside of their business domain. Rainbond deeply integrates application development, microservices architecture, application delivery, application operation, and resource management, achieving unified management of all applications, infrastructure, and IT processes. +slug: / +--- + + + +Rainbond is a cloud-native application management platform that is easy to use and does not require knowledge of containers, Kubernetes and the underlying complex technologies. It supports managing multiple Kubernetes clusters and managing the entire lifecycle of enterprise applications.The main functions include the application development environment, the application market, the micro-service architecture, the application delivery, the application workload, and the application of cloud management. + +## Why Choose Rainbond? + +### 1. Simplicity in Usage + +`Rainbond` is a cloud-native application management platform that is easy to use and does not require knowledge of containers, Kubernetes and underlying complex technologies. It supports managing multiple Kubernetes clusters and managing the full life cycle of enterprise applications.The main functions include application development environment, application market, microservice architecture, application delivery, application operation and maintenance, application-level multi-cloud management, etc.At the same time, Rainbond deep integration of application development, microservice architecture, application delivery, applied lifespan and resource management, management of a high degree of automation, and integrated management of all applications, all infrastructure and all IT processes. + +### 2. Transform Traditional Applications into Cloud-Native with Ease + +Rainbond emphasizes being "Application-Centric" by exposing technology concepts related to applications while unifying concepts not directly related to applications. Underlying infrastructure is abstracted using software-defined technologies (SDN, SDS, SD-WAN, Docker, LB). This automation streamlines repetitive tasks at the infrastructure level while supporting application development, architecture, delivery, and operation on top of the application abstraction. This level of abstraction simplifies application management while ensuring business flexibility. +Rainbond employs "Non-Invasive" technology to enable traditional applications to become cloud-native with minimal or no code changes. The transformation of traditional applications into cloud-native applications can be achieved in the following ways: + +- For applications with source code and software packages, Rainbond automatically recognizes the programming language and package type, allowing code to be compiled and built into cloud-native applications without altering developers' habits. +- Rainbond provides a Service Mesh microservices architecture for traditional applications seeking to adopt a microservices architecture. This transformation does not require any code changes. +- Traditional applications want to expand the performance of peacekeeping governance, Rainbod provides a “no-invasion” plugin, loading plugins on demand and opening up the governance capacity of peacekeeping services. + +### 3. Accumulation and Reuse of Digital Capabilities + +Rainbond allows various internal digital capabilities within an enterprise to be published as components with a single click. It offers comprehensive management processes, including component installation and usage, component orchestration, component version management, component upgrades, and continuous iteration. This enables enterprises to accumulate reusable capabilities in a component library, avoiding redundant development and transforming these components into digital assets that drive innovation within the enterprise. + +### 4. Automated Delivery of Solutions for B2B Industries + +Rainbond provides capabilities for business integration, multi-cloud delivery, private delivery, SaaS delivery, offline delivery, personalized delivery, and application marketplace. It maximizes the automation of the delivery process, improving the efficiency of enterprise application delivery and reducing delivery costs. + +## Rainbond's Features and Architecture + +![](https://grstatic.oss-cn-shanghai.aliyuncs.com/case/2022/03/17/16474283190784.jpg) + +### Application-Level Multi-Cloud Management + +The application level emphasizes the application of “application”, the application of relevant technology concepts to be exposed externally and packaged in a uniform manner with technologies not directly related to the application, and the underlying infrastructure to automate the underlying repetitive work of the bottom through software definition series (SDN, SDS, SD-WAN, docker, LB) and to support the development, architecture, delivery and operation of the application over the abstract, which will simplify the management of the application and meet operational flexibility. + +The core of multi-cloud management is the decoupling of applications and compute resources, enabling arbitrary combinations based on scenarios. This can achieve hybrid cloud, edge cloud, and application-level multi-cloud capabilities. Application lifecycle management is decoupled from compute resources. In other words, application development can take place on any type of compute resource, and applications can be deployed and run on any type of compute resource without modification. Migration between different cloud providers can also be done seamlessly without changes to the application. + +### Application Full Lifecycle Management + +Application full lifecycle management includes application development, microservices architecture, application delivery, and application operation: + +- During the development stage, Rainbond provides an out-of-the-box development and testing environment. It integrates with various source code repositories, automatically identifies programming languages, compiles, builds, and packages applications. Various development tools can be installed through the application marketplace. +- In the architecture phase, Rainbond supports various common microservices architectures. Business services can be modularly orchestrated, and the service topology visualization helps understand the structure and dependencies of the business. Various service governance capabilities can be extended through plugins. +- During the delivery phase, Rainbond supports continuous delivery processes. Developed applications are stored in the form of application templates in the application marketplace. For connected users, remote access to the application marketplace allows one-click installation and upgrades. For offline users, applications can be exported from the application marketplace, imported into the user environment, and installed and run with a single click.For offline users, export offline application packages from the Marketplace, import offline application packages to the user environment, install and run. +- In the operation phase, all application operations are presented through a web interface. Besides basic application management operations (start, stop, restart, delete), most of the operational processes are automated. It provides observability to deeply understand the automated execution process. In scenarios with big data and a large number of users, it supports rapid scaling of business and timely responses to business changes.In the face of large data and large user application scenes, support rapid scaling-up of operations and respond in a timely manner to business changes. + +### Capability Reuse and Sharing + +Components are independent, reusable, extensible, and integrable units. They support different granularity sizes and version management. Components can be reused in different application scenarios, and they can be iteratively upgraded. Accumulated components are stored in a unified component library. When an application needs to use components, they can be quickly assembled using a "drag and drop" approach. As more components accumulate, the speed of delivering applications accelerates. + +## How Does Rainbond Work? + +![](https://grstatic.oss-cn-shanghai.aliyuncs.com/case/2022/03/17/164742867950.jpg) + +Rainbond consists mainly of two parts: the Rainbond Control Console, which provides a web interface, and the Rainbond Cluster Management End, which is installed within Kubernetes (K8s) clusters. + +The Rainbond Control Console offers monitoring and management of the control plane. It mainly serves developers and administrators. The console manages K8s clusters and applications running on those clusters through the API provided by the Rainbond Cluster Management End. Metadata is stored locally, and the console's operation does not affect the operation of K8s clusters and business services. One console can monitor and manage multiple K8s clusters.A console can monitor and manage multiple K8s clusters. + +The Rainbond Cluster Management End is installed within one or more K8s clusters either through the console or via Helm. It interfaces with the standard K8s API. The console's monitoring and management commands are implemented by invoking the K8s API. Applications deployed through the console can also be viewed and managed using K8s commands. From 9dbf8b32ac65b88566e14a71be0981a7be5ab381 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:27 +0800 Subject: [PATCH 177/398] New translations quick-install.mdx (English) --- .../current/quick-start/quick-install.mdx | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/quick-start/quick-install.mdx diff --git a/i18n/en/docusaurus-plugin-content-docs/current/quick-start/quick-install.mdx b/i18n/en/docusaurus-plugin-content-docs/current/quick-start/quick-install.mdx new file mode 100644 index 0000000000..5b62376689 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/quick-start/quick-install.mdx @@ -0,0 +1,55 @@ +--- +title: Quick installation +description: This article introduces running Rainbond using only one Docker container. +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +本文档介绍使用脚本一键安装 Rainbond,脚本检测环境完成后会在使用 Docker 启动 Rainbond 容器。Support for `Windows(x86_64)`, `Mac(Intel/M1)`, `Linux(x86_64, Arm64)`. + +## Prerequisite + +- 确保有 [Docker](https://docs.docker.com/get-started/get-docker/) 或 [Docker Desktop](https://docs.docker.com/get-started/get-docker/) 环境 +- 确保 `80 443 6060 7070` 端口可用 + +## Installation steps + + + + +Rainbond provides an installation script to quickly launch Rainbond within a Docker container. During the script execution, you will be prompted to manually set the EIP (External IP). Once the deployment is complete, you will use this IP address to access the Rainbond console.You need to set the EIP manually while the script is running.Once the deployment has been completed, the IP address will be used to visit the Rainbond Console console. + +```bash +curl -o install.sh https://get.rainbond.com && IMGHUB_MIRROR=rainbond bash ./install.sh +``` + + + + + +Rainbond provides an windows installation script to quickly launch Rainbond within a Docker container. During the script execution, you will be prompted to manually set the EIP (External IP). Once the deployment is complete, you will use this IP address to access the Rainbond console.You need to set the EIP manually while the script is running.Once the deployment has been completed, the IP address will be used to visit the Rainbond Console console. + +Please execute the following command in Windows PowerShell: + +```bash +Invoke-WebRequest "https://get.rainbond.com/install-rainbond.ps1" -o install-rainbond.ps1 ; .\install-rainbond.ps1 +``` + + + + +Rainbond provided a one-click installation script and supported the need for a national crystallization by quickly launching Rainbond in the Docker with a container.When the script is executed, the required structure will be automatically selected, and an EIP will be created manually.Once the deployment has been completed, the IP address will be used to visit the Rainbond Console console. + +```bash +curl -o install.sh https://get.rainbond.com && cash ./install.sh +``` + + + + +执行完上述脚本后,耐心等待 3-5 分钟,使用浏览器访问 `http://$EIP:7070` 即可进入 Rainbond。 + +## Next step + +如果你已经成功安装 Rainbond 并且正常运行,请继续完成[快速入门](./getting-started)教程。 From b95d7d04ad140355d1c15df9f3fa75fb2f4b3e3d Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:28 +0800 Subject: [PATCH 178/398] New translations aindex.md (English) --- .../current/store/onLine/aindex.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/store/onLine/aindex.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/store/onLine/aindex.md b/i18n/en/docusaurus-plugin-content-docs/current/store/onLine/aindex.md new file mode 100644 index 0000000000..7e646fe519 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/store/onLine/aindex.md @@ -0,0 +1,36 @@ +--- +title: General description +description: 本章描述 云原生应用市场 发布应用会有哪些价值。 +--- + +本章主要介绍如何将你自己的应用分享到云原生应用市场。云原生应用市场是一个汇聚了各类开源软件的应用市场,大家可以免费使用,也可以将自己的应用分享上来。目前云原生应用市场已经汇聚了500余款开源应用和中间件,均可以一键安装使用。 + +云原生应用市场为开源开发者提供了一个广阔的舞台,可以在应用市场上创建自己的应用,展示应用的功能、特点和优势。 + +建立一个好的开源生态环境离不开大家共同参与,如果你想你的应用让更多人使用,可以发布到云原生应用市场。将应用分享给其他人,让更多人受益。这种分享不仅限于应用本身,还包括相关的文档、教程和经验分享。通过这种协作,开发者们可以在不同的项目中汲取灵感,互利共赢。 + +## Publish App Process + +发布应用的流程非常简单,一个应用模版下可以支持(Docker、Helm Chart、RAM以及软件包)四种类型,主要有以下七步:`注册账号->完善个人信息->创建应用模版->完善应用基本信息->上传应用->编辑版本信息->上架应用`。 + +1. \*\*注册账号:\*\*在应用市场注册一个账号,这个账号可以管理你发布的所有应用。 + +2. \*\*完善个人信息:\*\*注册完成并登录后,点击右上角控制台可以进入应用市场的管理后台,此时会弹出提示,指引你去完善个人信息。Your personal information here consists mainly of nickname, phone number, email address and personal profile.Nicknames, emails and profiles here are displayed in the Marketplace. + +3. \*\*创建应用模版:\*\*一个应用模版下可以支持(Docker、Helm Chart、RAM以及软件包)四种类型。 + +4. \*\*完善应用信息:\*\*回到应用市场,点击右上角控制台,选择管理应用。This should be a time to see the app template that has just been published.Tap the app name to enter the details page, and edit the app's name, logo, details at this time.Adding more information will make it easier for others to use your software. + +5. \*\*上传应用:\*\*在应用版本中上传应用新版本,选择要上传的类型,根据不同的类型上传不同的信息。 + +6. \*\*编辑版本信息:\*\*在上传完版本之后编辑版本信息只要是针对当前上传的版本做了哪些更改,以及如何使用的信息,让别人更清楚的了解这个版本的功能。 + +7. \*\*上架应用:\*\*此时我们已经补充完了应用的基本信息,并做好了上架前的准备。It is ready to be listed.Only listed apps can be viewed and used by other users.Go back to the admin app page and select the list to go. + +### Helm Chart、Docker、软件包 + +举个例子以 `mysql` 为例,注册云原生应用市场的账号之后点击头像进入控制台,选择左侧上架应用,新建一个名为 `mysql` 的应用模版,填写基本信息,填写完成之后保存,应用模版的基本信息就完成了,下一步就是上传应用,应用以版本来区分,不同类型的应用版本号可以相同,上传完成之后去编辑版本的信息,最后去上架应用只有上架之后市场才会展示出来。 + +### Rainbond App Model(RAM) + +RAM 类型的应用需要通过 Rainbond 平台去发布到云原生应用市场,[Rainbond](https://www.rainbond.com)是一个不用懂 Kubernetes 的云原生应用管理平台,RAM 类型的应用发布详细步骤请[参考文档](https://rainbond.com/docs/use-manual/app-store-manage/share-app)。 From 40f2b559a160d3d49084d0eb0758202b108f34e0 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:30 +0800 Subject: [PATCH 179/398] New translations create.md (English) --- .../current/store/onLine/create.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/store/onLine/create.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/store/onLine/create.md b/i18n/en/docusaurus-plugin-content-docs/current/store/onLine/create.md new file mode 100644 index 0000000000..5b0f630260 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/store/onLine/create.md @@ -0,0 +1,16 @@ +--- +title: Sign Up +description: 本章描述 云原生应用商店 注册账号和完善用户信息。 +--- + +本章主要介绍用户从云原生应用市场注册账号到能展示个人发布的应用、能管理发布的应用。 + +## 注册账号 + +The purpose of this account is primarily to manage your own release apps, while at the author personal center page, you can see all apps published by the current author. + +- 用户可以在云原生应用市场注册页,直接注册,需要填写账号、密码、手机号、验证码。 + +云原生应用市场注册页面 + +Once the registration is completed, you will automatically log in to your account and you will complete your information by clicking on the upper right corner. When you want to publish the app, this message will appear inside the `App Details by the author description`, or by clicking on the author's name and entering the Author personal center page, which will show all apps that the author has published, as well as the author's profile. From 90e0863f53e46a573175ce374d2897df18c3ea8d Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:31 +0800 Subject: [PATCH 180/398] New translations publish.md (English) --- .../current/store/onLine/publish.md | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/store/onLine/publish.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/store/onLine/publish.md b/i18n/en/docusaurus-plugin-content-docs/current/store/onLine/publish.md new file mode 100644 index 0000000000..9334b4b162 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/store/onLine/publish.md @@ -0,0 +1,103 @@ +--- +title: 管理应用 +description: This chapter describes the value that the Open Source App Store will have. +--- + +本节主要介绍在云原生应用市场如何管理应用,主要包含应用上下架、应用描述、套餐和版本以及生成离线包等内容。`管理员`角色还会有更多的管理功能。 + +## 管理维护应用信息 + +在云原生应用市场中,登录以后,点击右上角`控制台`进入`后台管理`,选择左侧`上架应用`,点击`管理`会进入到应用信息管理界面去完善应用信息,Tab页主要包含`基础信息`、`应用版本`。 + +### 完善基本信息 + +应用基础信息是介绍你应用的好地方,你可以通过简介让更多人对应用有更清晰的理解。 + +- 应用基本信息字段说明: + +| 字段 | 说明 | +| ---- | ------------------- | +| 名称 | 应用的名称,自定义 | +| logo | 应用上架之后所展示的logo | +| 分类 | 对应用进行归类,当前应用属于什么类别 | +| 标签 | 根据应用的类型定义标签,可通过标签分组 | +| 简介 | 应用的简要描述 | +| 详情 | 应用的详细介绍,也可以是使用说明 | + +将信息填写完整,点击下方保存按钮就可以将编写的信息进行保存。 + +### 应用版本 + +选择上面Tab页`应用版本`,一个应用可以有多个版本。你可以编辑某个版本的信息,或删除对应版本,还可以对 RAM 版本生成离线安装包。 + +- 版本信息:可以编辑版本作为插件使用,以及版本别名和描述。 + +- 离线包:点击离线包会弹出一个窗口,有一个`生成`按钮,点击按钮会生成应用的离线包,只有生成离线包上架之后才会展示下载应用包的按钮,不生成离线包是不支持下载的。 + +信息编辑完成之后会在应用版本列表显示。 + +### 上架 + +在完善应用信息以后,也为该应用创建了对应的套餐,这时候我们就可以去完成应用的上架。在应用列表处点击`上架`按钮,即可完成上架。 + +上架成功后的应用从商店首页就可以搜索到上架的应用,点进应用详情页之后,可看到发布应用的作者,如果生成过离线包,则在应用详情页会展示出来一个`下载`按钮,点击下载会得到一个当前应用的安装包,此安装包可以被其他人导入到Rainbond平台进行管理,导入流程参考[使用指南](https://www.rainbond.com/docs/store/install/appPackage)。 + +## 上架规范 + +### 基础信息规范 + +\*\*应用名称:\*\*应用名称要明确,需使用与应用功能相关的词汇,不能是日常通用性的描述词汇,不得出现测试、test等宽泛字样。正规,无淫秽、侵权、暴力等非法字符。 + +\*\*应用Logo:\*\*应用 Logo 的设计应该简洁明了,易于理解和识别。建议上传 100\*100 比例的Logo图片。 + +\*\*应用简介:\*\*应用简介的内容应该言简意赅,避免出现冗长繁琐的描述,同时也要确保涵盖应用的主要特点和功能。建议在60字以内。 + +\*\*分类:\*\*应用添加已有分类时要考虑应用功能与分类标签保持一致性和规范性。避免因分类错误而导致应用无法被准确地检索。 + +\*\*所属组织:\*\*应用添加所属组织,以便于根据组织筛选查看上架应用。应如实填写所属组织,避免上架应用的所属组织混乱而导致应用无法被准确地检索。 + +\*\*标签:\*\*应用标签用于帮助用户快速准确地搜索和筛选应用。在添加标签时,需要根据应用的实际情况和功能,选择恰当的标签,以确保标签与应用的功能和特点保持一致性和规范性。同时,还需要注意标签的数量和分类,不宜过多或过少,以免影响用户的使用体验和搜索效果。 + +\*\*应用介绍:\*\*应用介绍是介绍应用功能和特点的详细介绍,能够让用户更加全面地了解应用的用途和功能。此外为了保证上架应用详情内容格式的一致性,Rainbond制定了以下书写规范,请认真阅读并遵守: + +- 推荐使用一级和二级标题,避免过多嵌套的标题,以确保阅读体验的清晰和易读。 +- 标题级别对应的富文本编辑器样式如下: + +| 标题级别 | 富文本编辑器 | 样式 | +| :--- | :----- | :-------- | +| 一级标题 | H1 | 左对齐加粗 | +| 二级标题 | H2 | 左对齐加粗 | +| 三级标题 | H3 | 左对齐不加粗 | +| 正文 | 正文 | 左对齐 默认字号 | + +**安装文档**:安装文档旨在提供清晰的指导,以帮助用户正确安装应用。为了保证文档的一致性和易读性,请按照以下规范书写安装文档: + +- 推荐使用一级和二级标题,避免过多嵌套的标题,以确保阅读体验的清晰和易读。 +- 标题级别对应的富文本编辑器样式同应用介绍。 + +请遵循上述规范书写安装文档,包括前提条件、下载应用和安装应用的详细步骤。确保提供清晰的指导,以帮助用户成功安装应用。 + +**使用文档**:使用文档旨在提供清晰的指导,以帮助用户正确使用应用。为了保证文档的一致性和易读性,请按照以下规范书写使用文档: + +- 推荐使用一级和二级标题,避免过多嵌套的标题,以确保阅读体验的清晰和易读。 +- 标题级别对应的富文本编辑器样式同应用介绍 + +请遵循上述规范书写使用文档,包括登录账户、主界面功能介绍、核心功能的操作指南等。确保提供清晰的指导,以帮助用户顺利使用应用。 + +### 应用版本规范 + +版本号命名规范通常采用“主版本号.次版本号.修订号”的形式。 + +1. 主版本号:表示软件的重大更新或重构,通常由开发者或公司决定。当软件进行了重大更新或重构时,主版本号应该从1开始重新计数。 + +2. 次版本号:表示软件的功能增强或修改,通常由开发者或公司决定。当软件进行了重大更新或重构时,次版本号应该重置为0。 + +3. 修订号:表示软件的bug修复或小的改进,通常由开发者或测试人员决定。每次bug修复或小的改进,修订号都应该加1。 + +例如,一个软件的版本号为1.2.3,其中1表示主版本号,2表示次版本号,3表示修订号。 + +除此之外,版本号命名规范还需要遵循以下几点: + +1. 版本号的各个部分之间用点号(.)分隔,不使用其他符号。 +2. 版本号应该是一个字符串,不能包含任何空格或其他特殊字符。 +3. 版本号应该是唯一的,不允许出现相同的版本号。 From 6bfab2b264bc7c75f118b958e60b0ef24627bf74 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:33 +0800 Subject: [PATCH 181/398] New translations latest-version.md (English) --- .../current/upgrade/latest-version.md | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/upgrade/latest-version.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/upgrade/latest-version.md b/i18n/en/docusaurus-plugin-content-docs/current/upgrade/latest-version.md new file mode 100644 index 0000000000..51284d9079 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/upgrade/latest-version.md @@ -0,0 +1,27 @@ +--- +title: 升级 +Description: Describes the Rainbond upgrade via host installation and Helm installation +keywords: + - Rainbond version upgrade +--- + +## 概述 + +Rainbond 支持界面化的在线升级,通过界面化的在线升级可以快速升级 Rainbond 版本。所有安装方式都支持在线升级。 + +## 升级流程 + +:::tip +如存在多个集群,将会全部都升级。 +::: + +在 **平台管理 -> 企业设置 -> 版本升级** 中,可以查看到当前 Rainbond 版本和最新版本,点击 **去更新** 按钮即可开始升级。 + +升级过程中 Rainbond 会做如下操作: + +1. 滚动升级 Rainbond 组件镜像 +2. 如有 SQL 变更,会自动执行 SQL 变更 + +## Version Change Log + +You can view the specific changes in each version in [历史版本变更日志](/changelog). From f892b1e1880628bc42fd6c4c735b30091d108b3c Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:34 +0800 Subject: [PATCH 182/398] New translations upgrade-app.md (English) --- .../current/delivery/upgrade-app.md | 153 ++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/delivery/upgrade-app.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/delivery/upgrade-app.md b/i18n/en/docusaurus-plugin-content-docs/current/delivery/upgrade-app.md new file mode 100644 index 0000000000..38132f5244 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/delivery/upgrade-app.md @@ -0,0 +1,153 @@ +--- +title: Apply Upgrade Attribute Change Rules +description: Rules for property changes while the app market is in progress +--- + +The application of the application market can be upgraded, and each attribute will be changed according to certain rules during the upgrade. This article will introduce the change rules of each attribute when the application is upgraded. + +## Overview of property change rules + +| Attributes | level | rule | +| -------------------------------- | ----------- | ------------------- | +| components | application | new, updated | +| plugin | application | new | +| configuration group | application | new | +| K8s resources | application | new | +| mirror | components | renew | +| start command | components | renew | +| environment variable | components | new | +| Component connection information | components | new | +| port | components | new, updated | +| storage | components | new | +| configuration file | components | new, updated | +| Health Detection Probe | components | add, update, delete | +| monitoring chart | components | new, updated | +| Monitoring points | components | new, updated | +| HTTP access policy | components | new | +| Label | components | new | +| plugin | components | new | +| component dependencies | components | add, delete | +| store dependencies | components | add, delete | +| Kubernetes properties | components | new, updated | + +The above table is an overview of the changes in the upgrade properties of the entire application. For a detailed description of each property, please see the following: + +## Application-level properties + +### components + +`The change rule of component`is: `increase, update`. + +A new component is added to the source application, and a new component is also created during the upgrade. The source application modifies the component properties, and the corresponding properties are updated when the source application is upgraded. However, the source application`deletes`component, and the corresponding component is not deleted during the upgrade. + +### plugin + +`The change rules for plugin`are: `Add`When a plugin is added to the source application, and the current application team does not have a corresponding type of plugin, the upgrade process will add the plugin to the team. It will not be updated or deleted. plugin. + +### configuration group + +`Configuration group`consists of`configuration groups`, `configuration items`and`effective components`Their rules are`new`. + +The source application adds a new configuration group, and`will be added to`corresponding configuration group during the upgrade. However, if the source application`updates`or`and`the configuration group, then the configuration group will not change during the upgrade, that is, it will not be updated or Delete an existing configuration group. + +### K8s resources + +`K8s resource`is the cluster resource created by the user through the Yaml file. Their rules are`new`. + +The source application adds K8s resources, and`new`corresponding K8s resources will be added during the upgrade. However, if the source application`updates`or`and deletes`K8s resources, then the K8s resources will not change during the upgrade, that is, it will not be updated or Delete existing K8s resources. + +## Component-level properties + +### mirror + +`The change rule of mirror`is: `update`. During each upgrade, if the source component mirror changes,`update`the mirror of the current component during the upgrade. + +### start command + +`The change rule for startup command`is: `Update`During each upgrade, if the startup command of the source component changes, the startup command of the current component will be updated during the upgrade. + +### environment variable + +`The change rules for environment variable`are: `Add`The source component adds an environment variable, and the corresponding environment variable will be added during the upgrade. However, the source component`is updated`or`delete`The environment variable of the component, upgrade The corresponding environment variables will not be updated or deleted. + +### Component connection information + +`The change rule of component connection information`is: `Add`The source component adds component connection information, and the corresponding component connection information will be added during the upgrade. However, the source component`updates`or`deletes`The component connection information , the corresponding component connection information will not be updated or deleted during the upgrade. + +In particular, if the component connection information is generated according to the component port, i.e. `XXX_HOST` and `XXX_PORT`, then the connection information will be regenerated according to the application's governance mode, port alias and internal domain name. + +If the port alias is `mysql`, the connection information will be generated as `MYSQL_HOST` and `MYSQL_PORT` + +If the governance mode is`built-in ServiceMesh mode`, then the value of `XXX_HOST` is `127.0.0.1`. If the governance mode is`Kubernetes native Service mode`, then the value of `XXX_HOST` is `Internal domain name`. + +### port + +`The change rule for port`is: `new, update`The source component adds a new port, and the corresponding port is also added for the component during the upgrade. The source component has updated the port, and the corresponding port of the component will also be updated during the upgrade; but , will only update port `protocol`, `port alias`, `open port`. That is to say, will not update port`internal domain name`, `port number`, and will not close open ports. In addition, If the source component deletes the port, the port corresponding to the component will not be deleted during the upgrade. + +### storage + +The change rules for `port`are: `add`The source component adds storage, and the corresponding storage is also added for the component during the upgrade. The storage will not be updated or deleted. + +If the storage driver required for storage does not exist in the current cluster, the default shared storage will be used to replace the source storage driver. + +### configuration file + +`The change rules of configuration file`are: `new, update`The source component adds a new configuration file, and the corresponding configuration file is also added for the component during the upgrade. When the source component updates the content of a configuration file, the upgrade will be Update the content of the configuration file corresponding to the component; however, the`name`and`path`of the configuration file will not be updated, only the content will be updated. The configuration file will not be deleted. + +### Health Detection Probe + +`The change rules of health detection probe`are: `Add, update, delete`When the source component adds a health detection probe, the corresponding probe will be added for the component when it is upgraded. When the source component updates the health detection probe, when the upgrade The corresponding probe will be updated for the component. The source component will delete the health detection probe, and the corresponding probe will be deleted for the component during upgrade. + +### monitoring chart + +`The change rules of monitoring chart`are: `New, update`When the source component adds a monitoring chart, the corresponding monitoring chart will be added for the component during the upgrade. The source component will update the monitoring chart, and the component will update the corresponding monitoring chart during the upgrade. Query statement. Will not delete monitoring charts. + +### Monitoring points + +`The change rules of monitoring point`are: `new, update`When the source component adds a new monitoring point, the corresponding monitoring point will be added for the component during the upgrade. The source component will update the monitoring point, and the corresponding monitoring point will be updated for the component during the upgrade. Monitoring points will not be deleted. + +### HTTP access policy + +`The change rules of HTTP access policy`are:\`source component adds an HTTP access policy, and the corresponding HTTP access policy will be added for the component during upgrade. The HTTP access policy will not be updated or deleted. + +### Label + +The change rules for label are: `Add`. The source component adds a new label, and the corresponding label will be added to the component during upgrade. The label will not be updated or deleted. + +### plugin + +`The change rules for plug-in`are: `Add`Add a plug-in to the source component, and the corresponding plug-in will be added to the component during the upgrade. The plug-in will not be updated or deleted. + +### component dependencies + +`The change rules for component dependency`are: `Add, delete`Component dependencies are only added and deleted, not updated, so there is no need to consider the update problem during upgrade. When adding dependencies to source components, the upgrade will be The corresponding dependencies are added to the components. The source components delete the dependencies, and the corresponding dependencies are deleted for the components during the upgrade. + +When adding a component dependency, the component dependency needs to exist at the same time as the`-dependent component`and the`-dependent component`Consider the following situations: + +- The A component depends on the B component, and the B component is a new component; when upgrading the application, if the B component is not selected, it is equivalent to the dependent component B does not exist, then the dependency relationship between A and B will not be established. +- The A component depends on the B component, and the B component is an existing component; when upgrading the application, whether or not you choose to upgrade the B component, a dependency relationship between A and B will be established, because the dependent component B exists. +- In the source application, the dependencies of A to B are added, but only the A component is released, and the B component is not released; then their dependencies will not be released, and the A to B will not be established during the upgrade. dependencies. + +When deleting component dependencies, only the component dependencies between components originating from the same application market application will be deleted, and the component dependencies of components on non-homologous components will not be deleted. Dependencies on unselected components will not be deleted. Consider a few scenarios: + +- Components A and B come from the same application market application, A depends on B. C is a component created by mirroring, and is not homologous with A and B, A depends on C. The source application deletes the component dependencies from A to B, When upgrading, A to B dependencies are removed, A to C dependencies are not removed. +- The source application has added component dependencies from A to B. When upgrading, only choose to upgrade A, and do not choose B component, then the dependencies from A to B will not be deleted. + +### store dependencies + +`The change rules for storage dependency`are: `add, delete`. + +When adding a storage dependency, the storage dependency needs to exist at the same time as`-dependent storage`and`-dependent storage`Consider the following situations: + +- A 存储依赖 B 存储, B 存储所在组件是 B, B 是新增存储组件; 升级应用时, 如果没有选择 B 组件, 相当于被依赖存储 B 不存在, 那么不会建立 A 到 B 的依赖关系. +- A 存储依赖 B 存储, B 存储所在组件是 B, B 是已存在的组件; 升级应用时, 无论是否选择升级 B 组件, 都会建立 A 到 B 的依赖, 因为被依赖存储 B 是存在的. +- 源应用中, 新增了存储 A 到 B 的依赖, 但是发布时只发布了 A 组件, 没有发布 B 组件; 那么它们的 A 到 B 的依赖关系不会被发布出去, 在进行升级时, 不会建立 A 到 B 的依赖关系. + +When deleting storage dependencies, only the storage dependencies between components originating from the same app market application will be deleted, and the storage dependencies of components on non-homologous components will not be deleted. Nor will the storage dependencies on unselected components be deleted. Relationships. Consider a few scenarios: + +- A, B 存储来源于同一个应用市场应用, A 依赖于 B. C 是通过镜像创建的组件 C 的存储, 与 A, B 非同源, A 依赖于 C. 源应用删除了 A 到 B 的存储依赖关系, 升级时, 会删除 A 到 B 的依赖关系, 不会删除 A 到 C 的存储依赖关系. +- 源应用新增了 A 到 B 的存储依赖关系, 升级时, 只选择升级 A 组件, 没有选择 B 组件, 那么不会删除 A 到 B 的存储依赖关系. + +### Kubernetes properties + +`The rules for changing Kubernetes attribute`are: `New, update`The source component adds the Kubernetes attribute, and the corresponding Kubernetes attribute is added for the component during the upgrade. The source component updates the Kubernetes attribute, and the component updates the corresponding Kubernetes attribute during the upgrade. Kubernetes properties are not removed. From 8dc22d5d674c05a141fb074ece145989054a3dcb Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:36 +0800 Subject: [PATCH 183/398] New translations export-non-container-package.md (English) --- .../export-non-container-package.md | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/export-non-container-package.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/export-non-container-package.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/export-non-container-package.md new file mode 100644 index 0000000000..120c85a294 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/export-non-container-package.md @@ -0,0 +1,140 @@ +--- +title: Export non-container package +description: Export the application built from the source code as a usable installation package in a non-container environment +--- + +## Scenario + +Application stopApplication startRainbond provides an application template export mechanism to solve application delivery problems.However, the previous application templates cannot be exempted from the requirements of the container running environment.Application templates extend the ability to export non-container packages and are specifically designed to address application delivery in scenarios where the final delivery environment does not have a container running environment. + +Applicable scenarios include: + +- The delivery environment is completely offline, resulting in the failure to properly install Docker and other container runtime environments. +- The delivery environment has high security requirements and does not allow container technology. + +## Requirements + +- The version of Rainbond is at least v5.10.0-Release. +- 导出的组件基于 [源码构建](/docs/devops/app-deploy/) 部署。 +- 参考文档,完成应用发布流程,将应用发布到内部组件库。 + +## Export non-container package + +Locate the published application template in the internal component library. On the `Export` page, click Export `Export Non-container Packages`.After the export is complete, you can download the exported non-container package.When the export is completed, it will be possible to download the exported non-container. + +得到的非容器包,命名格式为 `{应用名称}-{应用模板版本号}-slug.tar.gz` 。The resulting non-container package is named in the format of `{application name}-{aplication template version}-slug.tar.gz`.The package can be decompressed in any Linux operating system, and the directory structure is as follows: + +```bash +non-docker-demo-0.1-slug +├── golang +│   ├── golang.env +│   ├── golang.sh +│   └── golang-slug.tgz +├── java-demo +│   ├── java-demo.env +│   ├── java-demo.sh +│   └── java-demo-slug.tgz +└── non-docker-demo.sh +``` + +- The service components contained in an application are divided into directories. The directory name format is the component name. +- A global control script named `application name.sh` exists in the application directory. +- In the service component directory, scripts that control components separately exist. +- In the service component directory, there is an environment variable configuration file ending with `{component name}.env`,This includes custom environment variables, configuration group environment variables, connection information environment variables, and the variable `PORT` that defines the listening port. + +## Manage non-container packages + +The global control script allows you to start, stop, and query the status of all components in an application. + +- Global Launch + +```bash +[root@localhost non-docker-demo-0.1-slug]# ./non-docker-demo.sh start +Running app golang with process: 3984 go-demo ... Done +The environment variable $MEMORY_SIZE was not identified,The Java process will not be optimized.... +Running app java-demo with process: 11472 java ... Done +``` + +- Component status + +```bash +[root@localhost non-docker-demo-0.1-slug]# ./non-docker-demo.sh status +AppName Status PID +golang Activity (Running) 3984 +java-demo Activity (Running) 11472 +``` + +- Global Off + +```bash +[root@localhost non-docker-demo-0.1-slug]# ./non-docker-demo.sh stop +Stopping app golang which runs with pid 3984. Done +Stopping app java-demo which run with pid 11472 ... +``` + +The control scripts in each service component folder allow you to manage the startup, shutdown, and status query operations of a single service component. + +- Component start + +```bash +[root@localhost golang]# ./golang.sh start +Handling runtime environment ... Done +Handling custom environment ... Done +Running app golang, you can check the logs in file golang. og +We will start your app with ===go-demo +Running app golang with process: 24033go-demo ... Done +``` + +- Application status + +```bash +[root@localhost golang]# ./golang.sh status +AppName Status PID +golang Active(Running) 24033 +``` + +- Component stop + +```bash +[root@localhost golang]# ./golang.sh stop +Stopping app golang which runs with pid 2403... +``` + +## Configuration + +The configuration of service components is still managed through environment variables. + +Each component directory contains an environment variable configuration file of type `{component name}.env`, which the service component loads when it starts to configure itself. + +`{component name}.env` contains environment variables from the following four sources: + +- When a service component is released, the component customizes the environment variable +- The environment variables for the application-level global configuration defined in the configuration group when the service component is released +- Connectivity information environment variables between service components +- An environment variable used specifically to declare port information $PORT + +在非容器包启动之前,用户可以自定义 `{服务组件名}.env` 配置文件来修改服务组件的配置。Before the non-container package is started, users can customize the `{component name}.env` configuration file to modify the service component configuration.A common scenario is:Service components rely on other middleware when Rainbond is running. The referenced connection information environment variable contains configuration information such as `MYSQL_HOST=127.0.0.1`. The non-container package does not contain Mysql service components. You need to manually change the value of the `MYSQL_HOST` environment variable to the real IP address of Mysql in the current delivery environment and then start the service component. + +## Log + +Once a component is started, its logs are output to the `{component name}.log` file in the component directory. + +## Use information + +There are some restrictions on the use of non-container packages relative to applications running on Rainbond, which are explained in this section. + +### Component build Source + +非容器包,只会导出应用中所有由 [源码构建](/docs/devops/app-deploy/) 功能部署而来的服务组件,来自其他构建源,如 Docker 镜像构建、Helm 创建等方式的服务组件,将无法被导出到非容器包中去。 + +Non-container packages currently support the following source types:Java-Maven、Java-Gradle、Java-Jar、Java-War、Golang、NodeJS、NodeJS Static(VUE React)、Html static. + +Python and PHP, due to their language characteristics, require users to process the operating system level library files on which the runtime depends. + +### Port conflicts + +Pay attentionComponents in non-container packages directly occupy server ports during startup. Therefore, the listening ports of service components must not conflict.It is recommended that the PORT that the component listens on at runtime be defined as the environment variable `PORT`, so that the configuration can be modified in the `{component name}.env` file. + +### Split + +Each component directory in the non-container package directory can be unpacked and run separately on other servers. If users decide to do so, be careful to configure access addresses between different services to avoid missing connections. From a603715825b01c19c14ba1bbb699b75eee97572f Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:37 +0800 Subject: [PATCH 184/398] New translations index.md (English) --- .../current/use-manual/app-store-manage/index.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/index.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/index.md new file mode 100644 index 0000000000..9e3e23c2ae --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/index.md @@ -0,0 +1,11 @@ +--- +title: App Store User Manual +description: App Store User Manual +--- + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From 5601c6962599e97bedb42c9f2676d0a7c280843c Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:38 +0800 Subject: [PATCH 185/398] New translations install-app.md (English) --- .../app-store-manage/install-app.md | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/install-app.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/install-app.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/install-app.md new file mode 100644 index 0000000000..72111936ad --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/install-app.md @@ -0,0 +1,54 @@ +--- +title: Install the app +description: Install your app from open source app stores +--- + +## Install from the market + +Rainbond proposes an application model, the Rainbond Application Model (RAM), which is the standard Rainbond application specification.Based on this model and Rainbond's application market mechanism, one-click installation/upgrade is finally realized.The highly automated delivery experience improves enterprise application delivery efficiency and reduces delivery costs.Based on this model and Rainbond application market mechanisms, a one-click installation/upgrade was eventually implemented.The highly automated delivery experience has improved the efficiency of enterprise applications and reduced delivery costs. + +The application marketplaces provided by Rainbond are divided into two categories: + +**1. Local component library** + +:::info + +The local component library is the application market that comes with Rainbond, and all the application templates you publish under this enterprise can be saved here.Other users within the enterprise can quickly replicate the application by installing the application template from the local component repository.Publishing to the local component library can refer to: [a reusable application template](/use-manual/get-start/release-to-market.md).Other users inside the company can quickly copy this app by installing an application template from the local component library. + +::: + +**2. Open source app store** + +:::info + +The open source application store is an application market officially supported by Haoyu Technology. All Rainbonds can connect to this market and install the above applications with one click. + +::: + +The main difference between the local component library and the cloud application market is that the applications you publish in the local component library can only be circulated in the deployed Rainbond environment.Applications published to the cloud application market can be installed in multiple Rainbond environments with one click.Applications posted to the cloud app market can be installed on one click in the jacket Rainbond environment. + +### Install online from open source app stores + +When you have deployed Rainbond, click the App Market button on the left, select Open Source App Store, and you will see the following page. + + + +After obtaining authorization, you will be able to click Install on the right side of the app, as shown below: + + + +Select the team and application you want to install, it will jump to the application, you can see the application topology, it will start automatically.Then you can access the appThen you can access the app + + + +### Install offline from open source app stores + +When you browse apps in[App Store](https://hub.grapps.cn/marketplace), some apps have offline packages that can be downloaded. At this time, you can log in and download the offline packages. + + + +After the download is complete, we can select the application market in Rainbond, and click the offline import next to it.As shown below.As shown in the graph below. + + + +After the import is complete, you can see the imported application in the local component library. At this time, click Install on the right side of the application template.Waiting for the build to complete, the offline installation based on the Rainbond application market is completed.Waiting for construction to be completed, offline setup based on the Rainbond Marketplace will be completed. From d78dc85f49174f87af1596c656acd3169313a1a2 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:40 +0800 Subject: [PATCH 186/398] New translations share-app.md (English) --- .../use-manual/app-store-manage/share-app.md | 156 ++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/share-app.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/share-app.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/share-app.md new file mode 100644 index 0000000000..401aea4452 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-store-manage/share-app.md @@ -0,0 +1,156 @@ +--- +title: share app +description: Share your app on the open source app store +--- + +## background: + +When we are currently using Rainbond, in order to quickly deploy some applications, we can connect to the open source application store and install it with one click.In this way, for users, it can be installed directly using some open source applications or infrastructure.This is sufficient for users to install directly using some open source applications or infrastructure. + +However, due to the different needs of each user, the app store cannot meet the needs of all users.For example, some users have encountered the following problems when using:Some users, for example, have encountered the following problems: when using Rainbond + +- The application installed from the application market is very convenient to use, but the version is relatively low, and there is no version you want + +- My business uses some common middleware. After running it in the Rainbond development environment, it needs to be deployed again in the production environment. + +- After running some open source projects on Rainbond, if you rebuild the Rainbond environment, you need to deal with various dependencies again before deploying + +In the case of previous problems, users can only deal with them manually.But now we offer a way for you to share your own application.It can be easily usable, but also made available to others.When these problems were encountered before, users had to deal with them manually.But now we've provided a way for you to share your own apps.It is convenient for your own use and for others to use.To do this, we need to first understand what Rainstore is. + +## What is Rainstore? + +Rainstore is a platform that can manage the enterprise application delivery process and realize the whole process management of the store. + +For most users who have used Rainbond, they should have noticed the application market, which will connect to our own store:open source application store by default.This store is the store we created based on Rainstore.In this store, there will be applications made by us. Users only need to complete the authorization to install the application with one click.This store is our store based on Rainstore created.The package type is free, and the name can be the corresponding version.After saving, go back to the background management page, and click on the shelf in the application list. + +Of course, the premise that users can install with one click is that someone has made the application.If no one has made an app, when you encounter the above problem, you can only post to the community for help, but now, you can do it.Since you log in with your mobile phone number and the data is not complete, you can choose to enter the background, move the mouse to the avatar in the upper right corner, and modify the information. + +You can share your own apps to the open source app store for everyone to use. + +## How to share apps? + +When you want to make your own application for yourself or others to use, you will go through the following steps: + +- Connect with open source app stores to obtain app publishing permissions + +- To make your application, you can refer to the Rainbond application market application production specification, and verify the pass + +- Publish your app for everyone to use + +### The first step:docking store + +If you have not connected to the open source app store before, then you only need to enter your mobile phone number on the following page, log in with the verification code, and we will create a user for you and give you the corresponding permissions. + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/store-authorization.png) + +If you have connected to the app store before, you need to perform the following operations to re-acquire publishing authorization. + +1. Find the app market in Rainbond, switch to the Tab page of the open source app store, and click Edit + +2. Clear acceskey and click Save.Clear the accesskey and click Save.After the save is complete, you will see that you only have read-only permissions. + +3. At this point, select an application at random, click Install, and the authentication dialog box will pop up again. + +4. Finally, enter the mobile phone number, and the verification code can be connected. + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/edit-store-info.png) + +After you complete the above steps, you will see that the open source app store has the following permissions:read-only, install, push apps.At this point the preparatory work is completed.Ready to complete in advance of this time. + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/store-perms-show.png) + +### The second step:make the application + +Then we make your app. Here we use harbor as an example.A lower version of harbor is currently available in the store.When we want a higher version, the app store is not available.We can share as a harbor app of ourselves. + +For the applications we made before, we will share the application making tutorials with the community. Take this harbor as an example, we can refer to the deployment of[enterprise-level Docker image warehouse Harbor on Rainbond](https://t.goodrain.com/d/8204-dockerharborrainbond).Here we refer to this article to make a harbor application of version 2.3.As shown belowHere we refer to this article for a 2.3 version of the harbor app.Figure below + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/harbor-topical.png) + +### Step 3:Share the app + +At this point, select Publish on the left, publish to the cloud application store, and select the open source application store. + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/publish-page.png) + +Next we need to create a new application template.Fill in the corresponding version number.Choose to publish.After the image push is completed and confirmed, the app is successfully shared.Fill in the corresponding version number.Select to publishApp sharing is successful after image push is completed and confirmed. + +:::caution + +\*\*Note:\*\*You must create a new application template, you cannot push the version to other people's applications. + +::: + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/edit-app-app-model-1.png) + +At this point we create a new application template:Harbor application.As shown belowFigure below + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/edit-app-app-model-2.png) + +Next, after selecting the corresponding version and submitting it, the component image will be synchronized. After the image synchronization is completed, click Confirm to publish, that is, the sharing is complete. + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/edit-app-app-model-3.png) + +### Step 4:Supplementary Information + +You have finished sharing, but now the application has only one name, and the others are default values. Others cannot understand what the application is. In order for others to better understand the application and be willing to use it, we need to go to the application store. Supplementary relevant information. + +The website of the app store is https://hub.grapps.cn/enterprise/login. On this page, select the mobile phone verification code to log in, enter the mobile phone number you used when applying for authorization in Rainbond, and after logging in, select store management, and you can I saw the app you posted. + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/store-app-app-manage-1.png) + +Click on the app you just released, and we can edit the introduction of the app, upload the corresponding Logo, etc. + +Once this is done, we go into package management, create a package and apply it online.The purpose of the listing app is to make it visible to more people.After completing these, we enter the package management, create a package, and put the application on the shelf.The purpose of listing the application is to allow more people to see this application.That is, you can see your published applications in the[open source application store](https://hub.grapps.cn/marketplace). + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/store-app-app-manage-2.png) + +The package type is free and the name can be the corresponding version.When saved, go back to the admin page and click on the list in the app. + +At this point, your first app sharing is complete. + +## What are you sharing? + +Rainbond proposed an application model Rainbond Application Model(RAM), which is the standard Rainbond application norm.Rainbond proposes an application model, the Rainbond Application Model (RAM), which is the standard Rainbond application specification.During the software delivery process, Rainbond abstracts the business system into an application model. As long as the business system can run normally in Rainbond, it can be released to the application market through the application template. + +The abstract of the RAM model encompasses all the service components included in the enterprise application and the relationship between the components.This advanced abstract has nothing to do with the number of service components inside an enterprise's application or with the complexity of the relationship between components.The abstraction of the RAM model includes all the service components and the associations between the components contained in the enterprise application.This high-level abstraction has nothing to do with how many service components are included in the enterprise application, and whether the relationship between the components is complex.The application template (the specific implementation of the RAM model in the application market field) can be released to the Rainbond-specific application market, and the released application template can be regarded as the installation package of the enterprise application, no matter how complicated the original architecture is and the number of internal components, it can be Complete one-click installation and upgrade. + +The deployment effect is shown in the following figure.Wait for the build to complete, you can accessThe RAM model is working hard to evolve towards the Open Application Model (OAM) in order to accommodate the wider delivery domain.OAM is a newly proposed application model in the industry, which is designed to deliver more robust enterprise applications in complex environments in a simple manner. + +## How do I manage my shared apps? + +### how to use + +Now that the sharing has been completed, how should it be used at this time? You can search for your application in the open source application store, select Install on the right, and install it under an application to deploy with one click. + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/search-app.png) ![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/install-app-1.png) + +The effectiveness of deployment is shown in the graph below.Waiting for build to access + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/install-app-2.png) + +### Manage applications + +If you make any adjustments to the application in the future and need to manage the application-related information, you still need to log in to the app store, log in with your mobile phone number, and complete the application-related operations in the store management. + +### final effect + +Once we have completed the above steps, we can look for results.After completing the above steps, we can see the effect.Visit the[open source app store](https://hub.grapps.cn/marketplace) , search for your app, here you can see the number of visits and installs of the app.You can see that we have just completed an installation.We can see that we have just completed one installation. + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/app-list-show.png) + +After clicking into it, you can see your application profile and related information, as shown below. + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/app-detail-show.png) + +Your information is displayed on the right side of this page.On the right side of this page, your relevant information is displayed.You can click on your name to enter the aggregation page of your personal information. On this page, your own related information and all applications published will be displayed here. + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/publish-user-show.png) + +Here you can choose to enter the background, mouse over the top right avatar and modify this information because you are logged in via phone number. + +![image](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/use-manual/app-store-manage/share-app/edit-user-info.png) + +## Summarize + +The next step is to make your application, here we take harbor as an example.The current version of harbor in the app store is lower.When we want a higher version, but the app store doesn't provide it.We can make a harbor application and share it by ourselves.Welcome to your own good apps.Through the above steps, we have completed the sharing of an application, which solved the problem that the previous application store application did not meet our needs, and also allowed others to use the application you made.Everyone is welcome to contribute your own applications.If you have made a good application, please contact us, we can make your application available to more people through some channels of publicity. From 06f9ce58427e3bdd69a7b29f0c567ba28bf73dfd Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:41 +0800 Subject: [PATCH 187/398] New translations php.md (English) --- .../current/devops/app-deploy/php.md | 214 ++++++++++++++++++ 1 file changed, 214 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/php.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/php.md b/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/php.md new file mode 100644 index 0000000000..e7f016c9c0 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devops/app-deploy/php.md @@ -0,0 +1,214 @@ +--- +title: PHP 项目部署 +description: 在 Rainbond 上通过源代码部署 PHP 项目 +--- + +## 概述 + +By default, the platform will identify a PHP project based on whether there are`index.php` files or `composer.json`files in the source root directory. + +### shell hook support + +Make shell hook pair calls by configuring `composer.json` + +```json +{ + "scripts": { + "pre-install-cmd": ["bash ./pre-install-cmd.sh"], + "post-install-cmd": ["bash ./post-install-cmd .sh"] + }, + "require": { + "php": "7.1.21", + "ext-memcached": "*" + } +} +``` + +Among them, the definition content of `pre-install-cmd` will be executed before install,`the definition content of post-install-cmd` will be executed after install, and the definition script must be created in advance and given execution permission + +### Composer file + +默认源码根目录需要存在 `composer.json` 和 `composer.lock` 文件。`composer.lock` can be generated by the following command + +```php +complete update --ignore-platform-reqs +``` + +### Extended support + +#### PHP 5.6 + +The following built-in extensions are automatically enabled on Rainbond (this list does not include extensions that PHP enables by default, such as [DOM](http://php.net/manual/book.dom),[JSON](http://php.net/manual/book.json),[PCRE](http://php.net/manual/book.pcre) or [PDO](http://php.net/manual/book.pdo)): + +- [Bzip2](http://php.net/manual/book.bzip2) +- [cURL](http://php.net/manual/book.curl) +- [FPM](http://php.net/manual/book.fpm) +- [mcrypt](http://php.net/manual/book.mcrypt) +- [MySQL (PDO)] (http://php.net/manual/ref.pdfo-mysql) (uses [mysqlnd](http://php.net/manual/book.mysqlnd)) +- [MySQLi](http://php.net/manual/book.mysqli) (uses [mysqlnd](http://php.net/manual/book.mysqlnd)) +- [OPcache](http://php.net/manual/book.opcache) +- [OpenSSL](http://php.net/manual/book.opensl) +- [PostgreSQL](http://php.net/manual/book.pgsql) +- [PostgreSQL (PDO)](http://php.net/manual/en/ref.pdfo-pgsql.php) +- [Readline](http://php.net/manual/book.readline) +- [Sockets](http://php.net/manual/book.sockets) +- [Zip](http://php.net/manual/book.zip) +- [Zlib](http://php.net/manual/book.zlib) + +The following built-in extensions have been built as "shared" and can be enabled via composer.json (internal identifier name given in parentheses): + +- [BCMath](http://php.net/manual/book.bc) (`BCMath`) +- [Calendar](http://php.net/manual/book.calendar) (`Calendar`) +- [Exif](http://php.net/manual/book.exif) (`Exif`) +- [FTP](http://php.net/manual/book.ftp) (`ftp`) +- [GD](http://php.net/manual/book.imag) (`gd`; with PNG, JPEG and FreeType support) +- [GMP](http://php.net/manual/book.gmp) (`gmp`) +- [gettext](http://php.net/manual/book.gettext) (`gettext`) +- [IMAP](http://php.net/manual/book.imap) (`imap`; with SASL and Kerberos support) +- [intl](http://php.net/manual/book.intl) (`intl`) +- [LDAP](http://php.net/manual/book.ldap) (`ldap`; with SASL support) +- [mbstring](http://php.net/manual/book.mbstring) (`mbstring`) +- [MySQL](http://php.net/manual/en/book.mysql) (`mysql`; note that this extension is predated since PHP 5.5, please migrate to MySQLi or PDO) +- [pcntl](http://php.net/manual/book.pcntl) (`pcntl`) +- [Shmop](http://php.net/manual/book.shmop) (`Shmop`) +- [soap](http://php.net/manual/book.soap) (`soap`) +- [SQLite3](http://php.net/manual/book.sqlite3) (`sqlite3`) +- [SQLite (PDO)] (http://php.net/manual/en/ref.pdfo-sqlite) (`pdo_sqlite`) +- [XMLRPC](http://php.net/manual/book.xmlrpc) (`xmlrpc`) +- [XSL](http://php.net/manual/book.xsl) (`xsl`) + +The following 3rd party extensions (internal identifier names given in parentheses) can be enabled via composer.json: + +- [APCu](http://pecl.php.net/package/apcu) (`apcu`; provides an apc extension for compatibility with legacy software) +- [Blackfire](http://blackfire.io/) (`Blackfire`) +- [Cassandra](http://datastax.github.io/php-driver/) (`Cassandra`) +- [ev](http://php.net/manual/book.ev) (`ev`) +- [event](http://php.net/manual/book.event) (`event`) +- [ImageMagick](http://php.net/manual/book.imagick) (`ImageMagick`) +- [memcached](http://php.net/manual/book.memcached) (`memcached`; build against a version of libmemcached with SASL support) +- [Mongo](http://php.net/manual/book.mongo) (`Mongo`) +- [MongoDB](http://php.net/manual/book.mongodb) (`monodb`) +- [New Relic](http://newrelic.com/php) (`newlic`; will automatically be enabled when the New Relic On is detained during a building) +- [OAuth](http://php.net/manual/book.oauth) (`OAuth`) +- [Phalcon](https://phalconphp.com/) (`Phalcon`) +- [pq](https://mdref.m6w6.name/pq) (`pq`) +- [rdkafka](https://pecl.php.net/package/rdkafka) (`rdkafka`) +- [PHPRedis](http://pecl.php.net/package/redis) (`redis`) + +#### PHP 7.0 + +The following built-in extensions are automatically enabled on Rainbond (this list does not include extensions that PHP enables by default, such as [DOM](http://php.net/manual/book.dom),[JSON](http://php.net/manual/book.json),[PCRE](http://php.net/manual/book.pcre) or [PDO](http://php.net/manual/book.pdo)): + +- [Bzip2](http://php.net/manual/book.bzip2) +- [cURL](http://php.net/manual/book.curl) +- [FPM](http://php.net/manual/book.fpm) +- [MySQL (PDO)] (http://php.net/manual/ref.pdfo-mysql) (uses [mysqlnd](http://php.net/manual/book.mysqlnd)) +- [MySQLi](http://php.net/manual/book.mysqli) (uses [mysqlnd](http://php.net/manual/book.mysqlnd)) +- [OPcache](http://php.net/manual/book.opcache) +- [OpenSSL](http://php.net/manual/book.opensl) +- [PostgreSQL](http://php.net/manual/book.pgsql) +- [PostgreSQL (PDO)](http://php.net/manual/en/ref.pdfo-pgsql.php) +- [Readline](http://php.net/manual/book.readline) +- [Sockets](http://php.net/manual/book.sockets) +- [Zip](http://php.net/manual/book.zip) +- [Zlib](http://php.net/manual/book.zlib) + +The following built-in extensions have been built as "shared" and can be enabled via composer.json (internal identifier name given in parentheses): + +- [BCmath](http://php.net/manual/book.bc) (`bcmath`) +- [Calendar](http://php.net/manual/book.calendar) (`Calendar`) +- [Exif](http://php.net/manual/book.exif) (`Exif`) +- [FTP](http://php.net/manual/book.ftp) (`ftp`) +- [GD](http://php.net/manual/book.imag) (`gd`; with PNG, JPEG and FreeType support) +- [GMP](http://php.net/manual/book.gmp) (`gmp`) +- [gettext](http://php.net/manual/book.gettext) (`gettext`) +- [IMAP](http://php.net/manual/book.imap) (`imap`; with SASL and Kerberos support) +- [intl](http://php.net/manual/book.intl) (`intl`) +- [LDAP](http://php.net/manual/book.ldap) (`ldap`; with SASL support) +- [mbstring](http://php.net/manual/book.mbstring) (`mbstring`) +- [mcrypt](http://php.net/manual/book.mcrypt) (`mcrypt`) +- [pcntl](http://php.net/manual/book.pcntl) (`pcntl`) +- [Shmop](http://php.net/manual/book.shmop) (`Shmop`) +- [soap](http://php.net/manual/book.soap) (`soap`) +- [SQLite3](http://php.net/manual/book.sqlite3) (`sqlite3`) +- [SQLite (PDO)] (http://php.net/manual/en/ref.pdfo-sqlite) (`pdo_sqlite`) +- [XMLRPC](http://php.net/manual/book.xmlrpc) (`xmlrpc`) +- [XSL](http://php.net/manual/book.xsl) (`xsl`) + +The following 3rd party extensions (internal identifier names given in parentheses) can be enabled via composer.json: + +- [APCu](http://pecl.php.net/package/apcu) (`apcu`; provides an apc extension for compatibility with legacy software) +- [Blackfire](http://blackfire.io/) (`Blackfire`) +- [Cassandra](http://datastax.github.io/php-driver/) (`Cassandra`) +- [ev](http://php.net/manual/book.ev) (`ev`) +- [event](http://php.net/manual/book.event) (`event`) +- [ImageMagick](http://php.net/manual/book.imagick) (`ImageMagick`) +- [memcached](http://php.net/manual/book.memcached) (`memcached`; build against a version of libmemcached with SASL support) +- [MongoDB](http://php.net/manual/book.mongodb) (`monodb`) +- [New Relic](http://newrelic.com/php) (`newlic`; will automatically be enabled when the New Relic On is detained during a building) +- [OAuth](http://php.net/manual/book.oauth) (`OAuth`) +- [Phalcon](https://phalconphp.com/) (`Phalcon`) +- [pq](https://mdref.m6w6.name/pq) (`pq`) +- [rdkafka](https://pecl.php.net/package/rdkafka) (`rdkafka`) +- [PHPRedis](http://pecl.php.net/package/redis) (`redis`) + +#### PHP 7.1 + +The following built-in extensions are automatically enabled on Rainbond (this list does not include extensions that PHP enables by default, such as [DOM](http://php.net/manual/book.dom),[JSON](http://php.net/manual/book.json),[PCRE](http://php.net/manual/book.pcre) or [PDO](http://php.net/manual/book.pdo)): + +- [Bzip2](http://php.net/manual/book.bzip2) +- [cURL](http://php.net/manual/book.curl) +- [FPM](http://php.net/manual/book.fpm) +- [MySQL (PDO)] (http://php.net/manual/ref.pdfo-mysql) (uses [mysqlnd](http://php.net/manual/book.mysqlnd)) +- [MySQLi](http://php.net/manual/book.mysqli) (uses [mysqlnd](http://php.net/manual/book.mysqlnd)) +- [OPcache](http://php.net/manual/book.opcache) +- [OpenSSL](http://php.net/manual/book.opensl) +- [PostgreSQL](http://php.net/manual/book.pgsql) +- [PostgreSQL (PDO)](http://php.net/manual/en/ref.pdfo-pgsql.php) +- [Readline](http://php.net/manual/book.readline) +- [Sockets](http://php.net/manual/book.sockets) +- [Zip](http://php.net/manual/book.zip) +- [Zlib](http://php.net/manual/book.zlib) + +The following built-in extensions have been built as "shared" and can be enabled via composer.json (internal identifier name given in parentheses): + +- [BCMath](http://php.net/manual/book.bc) (`BCMath`) +- [Calendar](http://php.net/manual/book.calendar) (`Calendar`) +- [Exif](http://php.net/manual/book.exif) (`Exif`) +- [FTP](http://php.net/manual/book.ftp) (`ftp`) +- [GD](http://php.net/manual/book.imag) (`gd`; with PNG, JPEG and FreeType support) +- [GMP](http://php.net/manual/book.gmp) (`gmp`) +- [gettext](http://php.net/manual/book.gettext) (`gettext`) +- [IMAP](http://php.net/manual/book.imap) (`imap`; with SASL and Kerberos support) +- [intl](http://php.net/manual/book.intl) (`intl`) +- [LDAP](http://php.net/manual/book.ldap) (`ldap`; with SASL support) +- [mbstring](http://php.net/manual/book.mbstring) (`mbstring`) +- [mcrypt](http://php.net/manual/book.mcrypt) (`mcrypt`) +- [pcntl](http://php.net/manual/book.pcntl) (`pcntl`) +- [Shmop](http://php.net/manual/book.shmop) (`Shmop`) +- [soap](http://php.net/manual/book.soap) (`soap`) +- [SQLite3](http://php.net/manual/book.sqlite3) (`sqlite3`) +- [SQLite (PDO)] (http://php.net/manual/en/ref.pdfo-sqlite) (`pdo_sqlite`) +- [XMLRPC](http://php.net/manual/book.xmlrpc) (`xmlrpc`) +- [XSL](http://php.net/manual/book.xsl) (`xsl`) + +The following 3rd party extensions (internal identifier names given in parentheses) can be enabled via composer.json: + +- [APCu](http://pecl.php.net/package/apcu) (`apcu`; provides an apc extension for compatibility with legacy software) +- [Blackfire](http://blackfire.io/) (`Blackfire`) +- [Cassandra](http://datastax.github.io/php-driver/) (`Cassandra`) +- [ev](http://php.net/manual/book.ev) (`ev`) +- [event](http://php.net/manual/book.event) (`event`) +- [ImageMagick](http://php.net/manual/book.imagick) (`ImageMagick`) +- [memcached](http://php.net/manual/book.memcached) (`memcached`; build against a version of libmemcached with SASL support) +- [MongoDB](http://php.net/manual/book.mongodb) (`monodb`) +- [New Relic](http://newrelic.com/php) (`newlic`; will automatically be enabled when the New Relic On is detained during a building) +- [OAuth](http://php.net/manual/book.oauth) (`OAuth`) +- [Phalcon](https://phalconphp.com/) (`Phalcon`) +- [pq](https://mdref.m6w6.name/pq) (`pq`) +- [rdkafka](https://pecl.php.net/package/rdkafka) (`rdkafka`) +- [PHPRedis](http://pecl.php.net/package/redis) (`redis`) + +## 部署示例 + +进入到团队下,新建应用选择基于源码示例进行构建,选中 PHP Demo 并默认全部下一步即可。 From 406aa46e2ecd1a32c2cb27ac7fb3a4d35042585d Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:43 +0800 Subject: [PATCH 188/398] New translations service-auto-scaling.md (English) --- .../use-manual/service-auto-scaling.md | 157 ++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/service-auto-scaling.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/service-auto-scaling.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/service-auto-scaling.md new file mode 100644 index 0000000000..7596b40e81 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/service-auto-scaling.md @@ -0,0 +1,157 @@ +--- +title: Component auto scaling +description: Autoscaling automatically scales components based on observed metrics. +--- + +The load of the component will keep changing, from high and low, it is difficult to configure appropriate resources for it; Rainbond introduces automatic scaling, which can solve this problem well. Component automatic scaling will always observe the indicators set by the user, once the indicator Above or below the desired threshold, components are automatically scaled. + +This article will introduce the automatic scaling function of components according to the following three aspects: + +- The principle of automatic scaling of components. +- How to use component auto scaling. +- A demo example of auto scaling of components. + +### The principle of automatic scaling of components + +There are two types of automatic scaling of components, namely `horizontal automatic scaling` and `vertical automatic scaling`Horizontal scaling increases or decreases the number of copies of a component; while automatic horizontal scaling is based on the component's CPU usage, memory or other Custom metrics, which automatically perform horizontal scaling of components. Vertical scaling, which allocates more or less CPU and memory to components; and automatic vertical scaling, which is based on components' CPU usage, memory or other custom metrics, Automatically perform vertical scaling of components. Currently (5.1.9), Rainbond only supports horizontal automatic scaling of components, so this article will not cover too much `Vertical automatic scaling`. + +#### Automatic scaling of components horizontally + +![Schematic diagram of horizontal scaling of components](https://grstatic.oss-cn-shanghai.aliyuncs.com/images/docs/5.1/user-manual/autoscaler/%E8%87%AA%E5%8A%A8%E4%BC%B8%E7%BC%A9%E5%8E%9F%E7%90%86%E5%9B%BE.png) + +`Horizontal Pod Autoscaler` consists of two parts, `HPA Resource` and `HPA Controller` `HPA Resource` defines the behavior of the component, including metrics, expected values, and maximum and minimum replica counts, etc. `HPA Controller`, Period Check the metrics set by the inspection component; its period is controlled by the parameter `--horizontal-pod-autoscaler-sync-period` of `controller manager` , the default is 15 seconds. + +`Rbd Worker` is responsible for converting the metrics, expected values, and the maximum and minimum number of replicas you set for the component in the cloud console into `HPA resources`in the kubernetes cluster. It is used by the `HPA controller`. + +In each cycle, the HPA controller queries the metrics set by the user for each component through `mertrics API` ; when the metrics exceed or fall below the desired threshold, the HPA controller adjusts the number of replicas`in the Deployment/Statefulset`, and finally `Deployment/Statefulset` completes the increase or decrease of the number of component instances. + +The HPA controller generally observes metrics from three aggregation APIs `metrics.k8s.io`, `custom.metrics.k8s.io` and `external.metrics.k8s.io`. + +`metrics.k8s.io` This API is provided by [metrics-server](https://github.com/kubernetes-sigs/metrics-server) , corresponding to`resource metrics (resource metrics)`, namely `CPU usage`, `CPU usage` and `Memory usage`, `Memory Usage`Also the type of indicator currently supported by Rainbond. + +`custom.metrics.k8s.io` corresponds to `custom metrics`, `external.metrics.k8s.io` corresponds to `external metrics`For example: `requests-per-secon`, `Packets-per-second received (packets-per-second)` by [Kube Metrics Adapter](https://github.com/zalando-incubator/kube-metrics-adapter), [Prometheus Adapter](https://github.com/directxman12/k8s-prometheus-adapter) + +Or it is provided by a third-party service implemented by itself that follows the definition of [metrics API](https://github.com/kubernetes/metrics) Custom metrics and external metrics are generally the same. + +Custom metrics do not support usage, it can only be`value`, or `usage`, which is the average value of each instance of the component. + +Currently in 5.1.9, Rainbond only supports `resource indicators`, which are indicators related to CPU and memory. The custom indicators and external indicators in the dotted box will be implemented in future versions. + +#### Algorithm for Horizontal Auto Scaling + +At the most basic level, the Horizontal Pod Autoscaler calculates the desired number of instances based on the ratio of the metric's target value to the metric's actual value: + +```bash +desiredReplicas = ceil [currentReplicas * (currentMetricValue / desiredMetricValue)] +``` + +For example, if the actual value of the indicator is 200m, and the expected value is 100m, then the number of instances will be doubled, because `200.0 / 100.0 == 2.0`; if the actual value is reduced to 50m, then the number of instances will remain unchanged, because `50.0 / 100.0 == 0.5`(ratio close to 1.0, the HPA controller will skip scaling). + +### Use of component auto scaling + +The automatic scaling of components is located in the`scaling`option on the component page, under`manual scaling`. + +As mentioned in [component horizontal auto-scaling](#组件水平自动伸缩) , you can set auto-scaling`maximum number of replicas`, `minimum number of replicas` and `metrics`on the auto-scaling page. + +#### Maximum number of instances + +When the actual value of the indicator exceeds its expected value, the number of instances of the component will continue to increase, and try to make the actual value of the indicator lower than the expected value. When the number of instances is equal to`and the maximum number of instances is`, the actual value of the indicator is still higher than the expected value. , then the number of instances is fixed at`, the maximum number of instances is`, and will not continue to grow. + +#### Minimum number of instances + +When the actual value of the indicator is lower than its expected value, the number of instances of the component will continue to decrease, so as to make the actual value of the indicator as close to the expected value as possible. When the number of instances is equal to`and the minimum number of instances is`, the actual value of the indicator is still not close to the expected value. , then the number of instances is fixed at`and the minimum number of instances is`, and will not continue to decrease. + +#### index + +Currently, Rainbond only supports resource metrics, namely `CPU usage`, `CPU usage`, `Memory usage` and `Memory usage`. The unit of CPU usage is m, 1m is equal to thousand points One core. The unit of memory usage is Mi. + +Indicators support adding and deleting, following the rules below: + +- There can only be one indicator about CPU, namely `CPU usage`, `CPU usage`two indicators cannot coexist. The same is true for memory. +- There is at least one indicator, i.e. all indicators cannot be deleted. +- The indicator value must be an integer greater than 0. + +The modification of the above three types of parameters does not need to update or restart the components, and the modification will take effect immediately after successful modification. + +### a demo example + +#### Create component hpa-example + +To demonstrate the horizontal autoscaling of components, we will use a custom docker image based on the php-apache image. The content of the Dockerfile is as follows: + +```bash +FROM php:5-apache +ADD index.php /var/www/html/index.php +RUN chmod a+rx index.php +``` + +It defines an index.php page that performs some very CPU intensive calculations: + +```php + +``` + +You can build an image according to the above Dockerfile, or you can use the image we prepared `abewang/hpa-example:latest`. We use this image to create a component with a memory limit of 128M and a port of 80. + +#### Configure auto scaling + +We set the maximum number of instances to 10, the minimum number of instances to 1, and the CPU usage to be 50%. Roughly speaking, HPA will (through deployment) increase or decrease the number of replicas to maintain the average CPU usage across all pods at 50% . As shown below: + +![](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/images/%E8%87%AA%E5%8A%A8%E4%BC%B8%E7%BC%A9%E8%AE%BE%E7%BD%AE.png) + +We use the command line to check the current status of hpa: + +```base +root@r6dxenial64:~# kubectl get hpa --all-namespaces +NAMESPACE NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE +6b981574b23d4073a226cf95faf497e3 a737ffa9edca436fadb609d5b3dab1bd Deployment/5a8e8667d96e194be248f2856dcaedda-deployment 1%/40% 1 10 1 1h +``` + +#### increase the load + +Now, we open a Linux terminal and send messages to the php-apache service in an infinite loop. + +``` +# Please replace http://80.grcaedda.eqfzk1ms.75b8a5.grapps.cn with your actual domain name +while true; do wget -q -O- http://80.grcaedda.eqfzk1ms.75b8a5.grapps.cn ; done +``` + +After a minute, we check the status of hpa with the following command: + +```baseh +root@r6dxenial64:~# kubectl get hpa --all-namespaces +NAMESPACE NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE +6b981574b23d4073a226cf95faf497e3 a737ffa9edca436fadb609d5b3dab1bd Deployment/5a8e8667d96e194be248f2856dcaedda-deployment 270%/40% 1 10 1 1h +``` + +It can be seen that the CPU usage has risen to 270%. This has caused the number of instances to be increased to 4. As shown in the following figure: + +![](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/images/%E5%AE%9E%E4%BE%8B%E6%95%B0%E5%8F%98%E6%88%90%E4%BA%864.png) + +#### reduce load + +Now, we stop the above infinite loop running in the Linux terminal to reduce the load on the components. Then, let's check the status of hpa, as follows: + +``` +root@r6dxenial64:~# kubectl get hpa --all-namespaces +NAMESPACE NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE +6b981574b23d4073a226cf95faf497e3 a737ffa9edca436fadb609d5b3dab1bd Deployment/5a8e8667d96e194be248f2856dcaedda-deployment 3%/50% 1 10 1 1h +``` + +CPU usage dropped to 0, so the number of instances scaled to 1. + +#### Horizontal scaling record + +Let's observe the horizontal scaling record of the component to see what happens in this process. As shown in the following figure: + +![](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/images/%E6%B0%B4%E5%B9%B3%E4%BC%B8%E7%BC%A9%E8%AE%B0%E5%BD%95.png) + +After we configure the relevant parameters, the horizontal auto-scaling starts to take effect, but the indicator is not ready at this time, so we see two records of failure to obtain the indicator. After we send messages to the component in an infinite loop, the horizontal auto-scaling It is checked that the CPU usage exceeds the target value, and the number of instances is scaled to 4, and then to When we stop sending messages, the load goes down, and the horizontal auto-scaling checks that the CPU usage is lower than the target value, and directly scales the instance The number is stretched to 1. + +Rainbond records the instance change process of components, so that operation and maintenance personnel can view the instance changes of components at any time. From d1375f5eacad4012d15e19a7eccc16ffaa82e04e Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:44 +0800 Subject: [PATCH 189/398] New translations index.md (English) --- .../current/use-manual/index.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/index.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/index.md new file mode 100644 index 0000000000..c19b3f6df8 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/index.md @@ -0,0 +1,10 @@ +--- +title: User Manual +--- + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From c575126c119b298a4b9f7dae629d66f6c1545a18 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:46 +0800 Subject: [PATCH 190/398] New translations versions.md (English) --- .../current/versions.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/versions.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/versions.md b/i18n/en/docusaurus-plugin-content-docs/current/versions.md new file mode 100644 index 0000000000..1890b133d7 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/versions.md @@ -0,0 +1,56 @@ +--- +title: Rainbond Document Version +description: List of all historical versions of Rainbond documents +keywords: + - List of all historical versions of Rainbond documents +--- + +## Current Version (Stable Version) + +Here you can find the currently published version of the document. + +| Version number | Document Link | Version Changes | +| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -------------------------- | +| v5.17.3-release | [https://www.rainbond.com/docs/](https://www.rainbond.com/docs/) | [版本变更日志](/changeog/5.17.3) | + +## Previous version (no longer) + +Here you can find previous versions of Rainbond documents. + +| Version number | Document Link | Version Changes | +| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| v5.17.2-release | [https://www.rainbond.com/docs/](https://www.rainbond.com/docs/) | [版本变更日志](/changeog/5.17.1) | +| v5.17.1-release | [https://www.rainbond.com/docs/](https://www.rainbond.com/docs/) | [版本变更日志](/changeog/5.17.1) | +| v5.17.0-release | [https://www.rainbond.com/docs/](https://www.rainbond.com/docs/) | [版本变更日志](/changeog/5.17.0) | +| v5.16.0-release | [https://v5.16-docs.rainbond.com/docs/] (https://v5.16-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.16.0) | +| v5.15.3-release | [https://v5.15-docs.rainbond.com/docs/] (https://v5.15-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.15.3) | +| v5.15.2-release | [https://v5.15-docs.rainbond.com/docs/] (https://v5.15-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.15.2) | +| v5.15.1-release | [https://v5.15-docs.rainbond.com/docs/] (https://v5.15-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.15.1) | +| v5.15.0-release | [https://v5.15-docs.rainbond.com/docs/] (https://v5.15-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.15.0) | +| v5.14.0-release | [https://v5.14-docs.rainbond.com/docs/] (https://v5.14-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.14.0) | +| v5.13.0-release | [https://v5.13-docs.rainbond.com/docs/] (https://v5.13-docs.rainbond.com/docs/) | [版本变更日志](/changelog/5.13.0) | +| v5.12.0-release | [https://v5.12-docs.rainbond.com/docs/] (https://v5.12-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.12.0) | +| v5.11.1-release | [https://v5.11-docs.rainbond.com/docs/] (https://v5.11-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.11.1) | +| v5.11.0-release | [https://v5.11-docs.rainbond.com/docs/] (https://v5.11-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.11.0) | +| v5.10.1-release | [https://v5.10-docs.rainbond.com/docs/] (https://v5.10-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.10.1) | +| v5.10.0-release | [https://v5.10-docs.rainbond.com/docs/] (https://v5.10-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.10.0) | +| v5.9.0-release | [https://v5.9-docs.rainbond.com/docs/] (https://v5.9-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.9.0) | +| v5.8.1-release | [https://v5.8-docs.rainbond.com/docs/] (https://v5.8-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.8.1) | +| v5.8.0-release | [https://v5.8-docs.rainbond.com/docs/] (https://v5.8-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.8.0) | +| v5.7.0-release | [https://v5.7-docs.rainbond.com/docs/] (https://v5.7-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.7.0) | +| v5.6.0-release | [https://v5.6-docs.rainbond.com/docs/] (https://v5.6-docs.rainbond.com/docs/) | [版本变更日志](/changeog/5.6.0) | +| v5.5.0-release | [https://v5.6-docs.rainbond.com/docs/v5.5/](https://v5.6-docs.rainbond.com/docs/v5.5/) | [版本变更日志](/changeog/5.5.0) | +| v5.4.0-release | [https://v5.6-docs.rainbond.com/docs/v5.4/](https://v5.6-docs.rainbond.com/docs/v5.4/) | [版本变更日志](/changeog/5.4.0) | +| v5.3.3-release | [https://v5.6-docs.rainbond.com/docs/v5.3/quick_start/rainbond_overview] (https://v5.6-docs.rainbond.com/docs/v5.3/quick_start/rainbond_overview) | [版本变更日志](/changeog/5.3.3) | +| v5.3.2-release | [https://v5.6-docs.rainbond.com/docs/v5.3/quick_start/rainbond_overview] (https://v5.6-docs.rainbond.com/docs/v5.3/quick_start/rainbond_overview) | [版本变更日志](/changeog/5.3.2) | +| v5.3.1-release | [https://v5.6-docs.rainbond.com/docs/v5.3/quick_start/rainbond_overview] (https://v5.6-docs.rainbond.com/docs/v5.3/quick_start/rainbond_overview) | [版本变更日志](/changeog/5.3.1) | +| v5.3.0-release | [https://v5.6-docs.rainbond.com/docs/v5.3/quick_start/rainbond_overview] (https://v5.6-docs.rainbond.com/docs/v5.3/quick_start/rainbond_overview) | [版本变更日志](https://github.com/goodrain/rainbon/releases/tag/v5.3.0-release) | +| v5.2.2-release | [https://v5.6-docs.rainbond.com/docs/v5.2/quick-start/rainbond_overview] (https://v5.6-docs.rainbond.com/docs/v5.2/quick-start/rainbond_overview) | [版本变更日志](https://github.com/goodrain/rainbon/releases/tag/v5.2.2-release) | +| v5.2.1-release | [https://v5.6-docs.rainbond.com/docs/v5.2/quick-start/rainbond_overview] (https://v5.6-docs.rainbond.com/docs/v5.2/quick-start/rainbond_overview) | [版本变更日志](https://github.com/goodrain/rainbon/releases/tag/v5.2.1-release) | +| v5.2.0-release | [https://v5.6-docs.rainbond.com/docs/v5.2/quick-start/rainbond_overview] (https://v5.6-docs.rainbond.com/docs/v5.2/quick-start/rainbond_overview) | [版本变更日志](https://github.com/goodrain/rainbon/releases/tag/v5.2.0-release) | + +## History Versions (v5.0.x & v5.1.x) + +| Version number | Document Link | +| --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| v5.0.x & v5.1.x | [https://v5.6-docs.rainbond.com/docs/v5.1/quick-start/rainbond_overview] (https://v5.6-docs.rainbond.com/docs/v5.1/quick-start/rainbond_overview) | From e5265807906298c2afb0c3359ae485bf61e523c9 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:47 +0800 Subject: [PATCH 191/398] New translations index.md (English) --- .../current/vm-guide/index.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/vm-guide/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/vm-guide/index.md b/i18n/en/docusaurus-plugin-content-docs/current/vm-guide/index.md new file mode 100644 index 0000000000..7ddc7c4c68 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/vm-guide/index.md @@ -0,0 +1,17 @@ +--- +title: Virtual Machine Usage Guide +description: Rainbond Virtual Machine Use Guide +keywords: + - Rainbond + - Virtual Machine Usage Guide + - kuveirt Usage Guide +--- + +This section focuses on the deployment and use of the virtual machine in Rainbrond. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` From e9557812b983d39f67a6b9043bf7e403dafa29e6 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:48 +0800 Subject: [PATCH 192/398] New translations overview.md (English) --- .../current/vm-guide/overview.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/vm-guide/overview.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/vm-guide/overview.md b/i18n/en/docusaurus-plugin-content-docs/current/vm-guide/overview.md new file mode 100644 index 0000000000..8a5f7c1485 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/vm-guide/overview.md @@ -0,0 +1,20 @@ +--- +title: General description +description: Overview Rainbond Virtual Machine +keywords: + - Rainbond + - Virtual Machines + - kuveirt +--- + +With the rapid development of cloud native technology, packaging has become the mainstream mode of deployment and management of modern applications.However, in the real business landscape, there are still a large number of traditional virtual machine applications that are difficult to migrate directly to the container environment because of their own characteristics or the need for legacy systems. + +Rainbond as the Yun Application Management Platform addresses the need for uncontainable clouds in the app. As a result, Rainbond supported the deployment of virtual group components, operated virtual machines in containers, offered users a more flexible and open deployment option, and offered an integrated, unified cloud management solution. + +## KubeVirt Integration + +Rainbond implements the deployment and management of a virtual group by integrating KubeVirt, a KubeVirt extension that allows running virtual machines on Kubernetes.KubeVirt has achieved cloud management of the virtual machine by using the abstract as a custom resource for Kubernetes and combining its life-cycle management with that of Kubernetes. + +## Virtual Machine Component + +A virtual group is a special component in Rainbond that is a virtual machine created through KubeVirt that creates and manages a virtual group similar to a normal component, but the virtual group operates as a virtual machine. From c9c528172c01ac82b955aa813e02b9675828b6af Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:53 +0800 Subject: [PATCH 193/398] New translations vm_deploy.md (English) --- .../current/vm-guide/vm_deploy.md | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/vm-guide/vm_deploy.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/vm-guide/vm_deploy.md b/i18n/en/docusaurus-plugin-content-docs/current/vm-guide/vm_deploy.md new file mode 100644 index 0000000000..5a9ea26562 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/vm-guide/vm_deploy.md @@ -0,0 +1,73 @@ +--- +title: Virtual Machine Deployment +description: Rainbond Virtual Machine Deployment +keywords: + - Rainbond + - Virtual Machines + - kuveirt deployment +--- + +:::caution +**Note:** Rapid installation of Rainbond is not allowed to use the virtual machine. +::: + +## General description + +This section focuses on the basic setting of the virtual machine and the deployment of the virtual machine plugin, paving the way for the use of virtual machine functionality in Rainbond + +## Environmental requirements + +- Server kernel must be > 5.x,[Centos内核升级参阅](https://t.goodrain.com/d/9-centos) +- Docker version must be > 24.x +- Server must support virtualization, using the following command to check if virtualization is supported + ```bash + egrep -c '(vmx|svm)' /proc/cpuinfo + # output not 0 to support virtualization + ``` + +## Deploy Virtual Machine + +Rapid installation cannot be deployed without the installation of Rainbond requiring reference to [安装文档](/docs/installation/). + +Platform Manager View -> Marketplace View -> Open Source App Shop -> Setup by clicking on `Rainbond-VM` on the Open Source App Store -> Open Source App Store search. + + + +## Configure virtual machine web terminal address + +1. Once deployed, we need to configure the web terminal addresses of all VMs to jump. We need to find the Rainbond-VM app deployed from the Marketplace, where the virtvnc component is found, and enter the component view to find the port column to get the access policy address. + + + +2. The address will be fetched, follow the graph guidance, find the configuration file for the virtual machine plugin, configure and replace the `access_urls` property field when you click Save it. + + + +3. Add virtual machine profile. + +Still in the k8s resource view under the VM app, click the Add button, paste below and confirm creation. + +```bash +apiVersion: kubeVirt.io/v1 +kind: KubeVirt +metatata: + annotations: + kubevirt.io/ latest-observed-api-version: v1 + kubeviirt. o/storage-observed-api-version: v1 + finalizers: + - foreroundDeleteKubeVirt + name: kuveirt +spec: + certificateRotate: {} + configuration: + developerConfiguration: {} + customizeCompents: {} + imagePullPolicy: IfNotPresent + imagePulls: + - name: rbd-hub-credits + workloadUpdateStrategy: {} +``` + +## Finished deploying + +To this point, the Virtual Machine function is deployed on the Rainbond platform. From c28f11b771c09f9bb21818d4db3d660e4f654edf Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:55 +0800 Subject: [PATCH 194/398] New translations vm_use.md (English) --- .../current/vm-guide/vm_use.md | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/vm-guide/vm_use.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/vm-guide/vm_use.md b/i18n/en/docusaurus-plugin-content-docs/current/vm-guide/vm_use.md new file mode 100644 index 0000000000..d8d0c1ccdf --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/vm-guide/vm_use.md @@ -0,0 +1,68 @@ +--- +title: VM Usage +description: Rainbond Virtual Machine Use +--- + +## General description + +This section focuses on how to create virtual assemblies in the Rainbond platform and use virtual machine functionality. + +## Use process + +### Feature Entry + +Separate two portals, one for App Installation Guide View, the other for Application Component Installation View. + +- App Install Guide View: Team View -> New -> Virtual Machine + + + +- App View: App View -> Add Component -> Virtual Machine Image + + + +### Create New + +Creates a virtual machine in four forms:public, linked, upload, local + +:::danger +Note that the format of the upload package and the download address is required for .img .qcow2.iso and the .tar,.gz,.xz package compressed in the format above. +::: + +#### Public + +Four sets of common public virtual machine mirror addresses (CenOS 7.9, Anolis OS 7.9, Deepin 20.9, Ubuntu 23.10) were provided for rapid acquisition, deployment and operation. + +Addresses that can be downloaded to the virtual machine mirror. The virtual machine is deployed by configuring the virtual machine image packet download address. + +#### Link + +When a public image does not meet the need, it can be created by downloading the image and configuring it according to its name and download address.这里提供一个阿里云的[虚拟机镜像仓库](https://developer.aliyun.com/mirror/?spm=a2c6h.13651102.0.0.3e221b11ud8kbT\&serviceType=mirror\&tag=%E7%B3%BB%E7%BB%9F),在里面查找你想要下载的镜像 + +#### Upload + +If private virtual machine mirrors exist you can create a virtual group by uploading the image.Simply upload mirrors by step and configure the corresponding mirror name to create a virtual machine. + +#### Local + +When the three modalities are deployed, virtual machine mirror information will be retained on the platform.For redeployment, choose to use local mirrors to avoid duplicating upload or download processes. + +### Allocation of resources + +Resources can be configured in basic information settings during creation to allocate memory and CPU resources according to our needs. We provide several sets of specifications and support custom configurations.CPU and memory are at least not less than 2 nuclear 2G if they are custom reading.Disk also needs at least 10G to satisfy the basic operation of the virtual machine. + +Once created, it is still possible to reconfigure memory and CPU in the scalebar. + +### Access Virtual Machine + +Virtual Machine Component View -> Web Terminal + +### Virtual Machine Organization + +This is consistent with the programming operations of other packagings of the platform, but only supports the packaging component in relying on virtual assemblies, which achieve quick access by relying on binding virtual machine ports. + +### Add Disk + +Virtual group storage differs from traditional container component storage. Virtual machines support the creation of three types of storage. + + From c16cb4f5f03ee3f36952025eed89520694034701 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:56 +0800 Subject: [PATCH 195/398] New translations index.md (English) --- .../current/contribution/app-share/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/app-share/index.md b/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/app-share/index.md index 8c8342029f..298d9a2119 100644 --- a/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/app-share/index.md +++ b/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/app-share/index.md @@ -1,5 +1,5 @@ --- -title: 'Application Contribution' +title: Application Contribution description: Contribute open source apps to the Rainbond open source app store --- @@ -11,5 +11,5 @@ If you don't know how to share open source apps to the Rainbond open source app ## Application Requirements -* The application can be used after one-click installation. -* The application should have a description, introducing the application introduction, how to use it, etc., and you can also cite the article. \ No newline at end of file +- App can be used to meet one click installation. +- The application should have a description, introducing the application introduction, how to use it, etc., and you can also cite the article. From bfd646b8318ee32fbe3ef0530114996797a42ba0 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:57 +0800 Subject: [PATCH 196/398] New translations console.md (English) --- .../current/contribution/compile/console.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/compile/console.md b/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/compile/console.md index db60e81df9..6e626eef21 100644 --- a/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/compile/console.md +++ b/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/compile/console.md @@ -35,7 +35,7 @@ git clone https://github.com/goodrain/rainbond-console.git (2) Compile the project -`VERSION` specifies the tag of the built image. Since the image of the front-end code is the base image, this place should be consistent with the tag of the front-end project.Please use the following commands to compile the front-end and back-end code together to form the final allinone image that can be run directly. +`VERSION` specifies the tag of the built image. Since the image of the front-end code is the base image, this place should be consistent with the tag of the front-end project.Please use the following commands to compile the front-end and back-end code together to form the final allinone image that can be run directly.Use the command below to compile the pre- and back-end code together to form an allinone mirror that can eventually be directly running. ``` VERSION=v5.5.0-release ./release.sh allinone @@ -43,7 +43,7 @@ VERSION=v5.5.0-release ./release.sh allinone ### Run the business layer image -After compiling the allinone image, you can refer to the following command, replace the image name in the last line with the image name you packaged, and run the image. +When compiling the allinone mirror, you can use the command below to replace the last line of mirror name with the one you packed. ```bash docker run -d -p 7070:7070 \ From 6042a46e4dde4ae45cf99675c4547f5ee7319ac8 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:25:58 +0800 Subject: [PATCH 197/398] New translations index.md (English) --- .../current/contribution/compile/index.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/compile/index.md b/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/compile/index.md index 702f6691de..084aea6832 100644 --- a/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/compile/index.md +++ b/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/compile/index.md @@ -5,18 +5,18 @@ description: Rainbond Project Introduction ## Introduction to Rainbond related projects -Rainbond mainly consists of the following three projects.Click to view[](/docs/quick-start/architecture) +Rainbond mainly consists of the following three projects.Click to viewClick to view[技术架构](/docs/quick-start/archive) -[Rainbond-UI](https://github.com/goodrain/rainbond-ui) -[Rainbond-Console](https://github.com/goodrain/rainbond-console) +[Rainbond-UI](https://github.com/goodrain/rainbond-ui)\ +[Rainbond-Console](https://github.com/foodrain/rainbond-console) -* Rainbond-UI and Rainbond-Console together form the business layer.The business layer is a front-end and back-end separation model.UI is the front-end code of the business layer, and Console is the back-end code of the business layer. +- Rainbond-UI and Rainbond-Console together form the business layer.The business layer is a front-end and back-end separation model.UI is the front-end code of the business layer, and Console is the back-end code of the business layer.The business layer is a separation mode before and after the end.UI is the front end code of the business layer. Console is the backend code of the business layer. [Rainbond](https://github.com/goodrain/rainbond-console) -* Rainbond is the implementation of the data center side of the platform, which mainly interacts with the Kubernetes cluster. +- Rainbond is the implementation of the data center side of the platform, which mainly interacts with the Kubernetes cluster. ## Learn about source code compilation for the Rainbond project @@ -25,4 +25,4 @@ import DocCardList from '@theme/DocCardList'; import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; -``` \ No newline at end of file +``` From febf5404a9e05c16a1d3c91be4b2230a7de82dd8 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:26:00 +0800 Subject: [PATCH 198/398] New translations region.md (English) --- .../current/contribution/compile/region.md | 41 +++++++++---------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/compile/region.md b/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/compile/region.md index 19b5e8ffbb..27c9c42c89 100644 --- a/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/compile/region.md +++ b/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/compile/region.md @@ -13,20 +13,19 @@ Single-component compilation is very important in the actual development process Single component compilation supports the following components: -| components | illustrate | -| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| chaos | The chaos component corresponds to the Rainbond application construction service, which mainly deals with the CI process. The input source includes `source code` or `Docker image` or `application market application` for parsing, compiling, packaging, and finally generating the version medium of the application (component). | -| api | The api component corresponds to the Rainbond data center API service. As the abstract core control service at the data center level, the API service provides Restful-style API services to the outside world, and is the only entry for data center control requests. | -| gateway | The gateway component corresponds to the Rainbond application gateway service. The application gateway is the only entry for external traffic to enter the internal components of the Rainbond tenant, providing HTTP, HTTPs routing, TCP/UDP services, load balancer, advanced routing (A/B testing, grayscale publishing), Features such as virtual IP support. | -| monitor | The monitor component corresponds to the Rainbond monitoring service. Rainbond encapsulates the Monitor component based on Prometheus. By automatically discovering various monitoring objects of applications, clusters, and cluster node services from etcd and Kubernetes clusters, and completing the configuration of Prometheus monitoring targets, the monitoring targets are included in the scope of Prometheus monitoring. . | -| mq | The mq component corresponds to the Rainbond message middleware service. The MQ component is a lightweight distributed message middleware with message persistence and global consistency based on Etcd.This component maintains asynchronous task messages and provides multi-topic message publishing and subscription capabilities. | -| webcli | The webcli component corresponds to the Rainbond application web terminal control service, which implements the function of connecting to the container console through the web.This component communicates with the UI through WebSocket. Users can send various shell commands by simulating the web terminal. The webcli executes commands in the container through the exec method provided by kube-apiserver and returns the results to the web terminal. | -| worker | The worker component corresponds to the Rainbond application runtime control service. The application runtime control service instantiates the Rainbond-Application Model and converts it into a Kubernetes resource model. It is associated with various resources required for application running, and completes the running state part of the application life cycle. It is understandable For the CD control service, the design of the service is to support the life cycle supervision of a large number of applications. | -| eventlog | The eventlog component corresponds to the Rainbond event and log processing service, and mainly handles user asynchronous operation logs, application construction logs and application running logs. | -| mesh-data-panel | The mesh-data-panel component handles dependencies between components. | -| grctl | The grctl component provides command-line tools for querying information about components in the cluster. | -| node | The node component corresponds to the Rainbond cluster and node management service. The node component is the basic service of the Rainbond cluster. All nodes in the cluster need to run this component.Provides key capabilities such as node information collection, cluster service maintenance, application log collection, and application runtime support. | - +| components | illustrate | +| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| chaos | The chaos component corresponds to the Rainbond application construction service, which mainly deals with the CI process. The input source includes `source code` or `Docker image` or `application market application` for parsing, compiling, packaging, and finally generating the version medium of the application (component). | +| api | The api component corresponds to the Rainbond data center API service. As the abstract core control service at the data center level, the API service provides Restful-style API services to the outside world, and is the only entry for data center control requests. | +| gateway | The gateway component corresponds to the Rainbond application gateway service. The application gateway is the only entry for external traffic to enter the internal components of the Rainbond tenant, providing HTTP, HTTPs routing, TCP/UDP services, load balancer, advanced routing (A/B testing, grayscale publishing), Features such as virtual IP support. | +| Monitor | The monitor component corresponds to the Rainbond monitoring service. Rainbond encapsulates the Monitor component based on Prometheus. By automatically discovering various monitoring objects of applications, clusters, and cluster node services from etcd and Kubernetes clusters, and completing the configuration of Prometheus monitoring targets, the monitoring targets are included in the scope of Prometheus monitoring. . | +| mq | The mq component corresponds to the Rainbond message middleware service. The MQ component is a lightweight distributed message middleware with message persistence and global consistency based on Etcd.This component maintains asynchronous task messages and provides multi-topic message publishing and subscription capabilities.This component maintains asynchronous task messages, provides multi-topic message posting and subscription capabilities. | +| webcli | The webcli component corresponds to the Rainbond application web terminal control service, which implements the function of connecting to the container console through the web.This component communicates with the UI through WebSocket. Users can send various shell commands by simulating the web terminal. The webcli executes commands in the container through the exec method provided by kube-apiserver and returns the results to the web terminal.This component communicates WebSocket with UI. Users can use the simulation of Web Terminals to send shell commands and webcli to execute commands in the container using exec provided by kube-apisert. | +| walker | The worker component corresponds to the Rainbond application runtime control service. The application runtime control service instantiates the Rainbond-Application Model and converts it into a Kubernetes resource model. It is associated with various resources required for application running, and completes the running state part of the application life cycle. It is understandable For the CD control service, the design of the service is to support the life cycle supervision of a large number of applications. | +| eventlog | The eventlog component corresponds to the Rainbond event and log processing service, and mainly handles user asynchronous operation logs, application construction logs and application running logs. | +| mesh-data-panel | The mesh-data-panel component handles dependencies between components. | +| grctl | The grctl component provides command-line tools for querying information about components in the cluster. | +| node | The node component corresponds to the Rainbond cluster and node management service. The node component is the basic service of the Rainbond cluster. All nodes in the cluster need to run this component.Provides key capabilities such as node information collection, cluster service maintenance, application log collection, and application runtime support.Provides key capabilities for nodal information gathering, cluster service maintenance, application log gathering, app running support, etc. | ## The compilation method is as follows: @@ -44,7 +43,7 @@ git clone https://github.com/goodrain/rainbond.git ## The complete installation package is packaged and compiled -Compiling the complete installation package is suitable for regenerating the installation package after changing a lot of source code.Execute in the main directory of the rainbond code +Compiling the complete installation package is suitable for regenerating the installation package after changing a lot of source code.Execute in the main directory of the rainbond codeExecute in rainbond code home directory ``` ./release.sh all @@ -61,9 +60,9 @@ Since the data center is deployed on the Kubernetes cluster, you need to meet th ### run image -The components on the data center side of Rainbond are all defined by the CRD resource rbdcomponent.Therefore, when you compile the image of a component and need to run it, you need to modify the rbdcomponent resource. +The components on the data center side of Rainbond are all defined by the CRD resource rbdcomponent.Therefore, when you compile the image of a component and need to run it, you need to modify the rbdcomponent resource.So when you compile a mirror of a component that needs to be running, you need to modify the rbdcomponent resource. -Still take the chaos component as an example.Suppose your compiled chaos image is named +Still take the chaos component as an example.Suppose your compiled chaos image is namedAssume your compiled chaos mirror is named ```Bash rainbond/rbd-chaos:v5.5.0-release @@ -74,18 +73,18 @@ Then you need to do the following in order to replace the component images in yo (1) Edit the corresponding rbdcomponent file ```Bash -kubectl edit rbdcomponent rbd-chaos -n rbd-system +kubtl edit rbdcomponent rbd-chaos -n rbd-system ``` (2) Find the mirror address column and modify it to your mirror, such as ```Bash image: rainbond/rbd-chaos:v5.5.0-release -imagePolicy: IfNotPresent +imagPolicy: IfNotPresent ``` -(3) Save and exit, execute the following command at this time, you should see that the corresponding component is being updated.Just wait for the pod to update. +(3) Save and exit, execute the following command at this time, you should see that the corresponding component is being updated.Just wait for the pod to update.Wait until the pod update is complete. ```Bash -kubectl get po -n rbd-system +kubtl get po -n rbd-system ``` From 28591cd5d1815abe78c7ccd81c638fdb55e40117 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:26:01 +0800 Subject: [PATCH 199/398] New translations index.md (English) --- .../current/contribution/document/index.md | 33 ++++++++----------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/document/index.md b/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/document/index.md index 0c10aaf4d3..bb11e6e38a 100644 --- a/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/document/index.md +++ b/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/document/index.md @@ -38,7 +38,7 @@ $ yarn install ### local start ```bash -$ yarn start +$yarn start ``` will automatically open http://localhost:3000/ in your browser @@ -48,38 +48,32 @@ will automatically open http://localhost:3000/ in your browser Use the following command to simulate a production test launch locally ```bash -$ yarn serve --build . +$yarn serve --build ``` - - ## Participate and contribute The old version of the documentation is no longer maintained, only the Current version is maintained. Fork the [Rainbond-docs](https://github.com/goodrain/rainbond-docs.git) repository to your own repository, modify the document and submit it to your own repository, submit a Pull Request to [Rainbond-docs](https://github.com/goodrain/rainbond-docs.git) - - ### Content requirements -The documents in Rainbond are divided into **conceptual documents** **operational guidance documents** and **best practice documents** different document types.When writing a document, please specify the type of document, and determine the content of the article according to the effect that different types need to achieve. - - +Rainbond Chinese documents are divided into **Conceptual Documents**\*\* **Operate Guidance Documents** and **Best Practice Documents** different document types.The documents in Rainbond are divided into **conceptual documents** **operational guidance documents** and **best practice documents** different document types.When writing a document, please specify the type of document, and determine the content of the article according to the effect that different types need to achieve. ### Typesetting requirements -* Chinese and English must be separated by spaces, and they can also be wrapped in backticks `` +- Chinese and English must be separated by spaces, and they can also be wrapped in backticks \`\` For example:I deploy xxx on Rainbond, I deploy xxx on `Rainbond` -* The word Rainbond appears in the document, and the R must be uppercase. +- The word Rainbond appears in the document, and the R must be uppercase. -* The title is preferably 1 2 3 4, and the fifth or sixth title should be avoided as much as possible. If there is too much content, it can be added. +- The title is preferably 1 2 3 4, and the fifth or sixth title should be avoided as much as possible. If there is too much content, it can be added. -* The name of the title should be clear at a glance +- The name of the title should be clear at a glance -* The imported image format is as follows +- The imported image format is as follows ```html ![API架构](https://grstatic.oss-cn-shanghai.aliyuncs.com/images/5.1/images/api.png) @@ -88,7 +82,7 @@ The documents in Rainbond are divided into **conceptual documents** **operationa ``` -* The citation format for the link is as follows +- The citation format for the link is as follows 1. Refer to other documents in the document to use relative paths, refer to [docusaurus document](https://docusaurus.io/zh-CN/docs/markdown-features/assets) 2. Referring to external links must include http or https @@ -100,18 +94,17 @@ The documents in Rainbond are divided into **conceptual documents** **operationa ``` -* The imported video formats are as follows +- The imported video formats are as follows ```html - import Bvideo from "@site/src/components/Bvideo"; + import Bvideo from @site/src/components/Bvideo"; ``` -* Use of Code Blocks Reference [Docusaurus Code Block](https://docusaurus.io/zh-CN/docs/markdown-features/code-blocks) +- Use of Code Blocks Reference [Docusaurus Code Block](https://docusaurus.io/zh-CN/docs/markdown-features/code-blocks) -* Documents contain "Instructions to users" to use [Docusaurus Notice](https://docusaurus.io/zh-CN/docs/markdown-features/admonitions) +- Documents contain "Instructions to users" to use [Docusaurus Notice](https://docusaurus.io/zh-CN/docs/markdown-features/admonitions) ### Add MD file If you need to add new files, add them to the corresponding directory in the `docs/` directory, and fill in the new file names in `sidebars.js` in order, please refer to [Docusaurus Sidebar](https://docusaurus.io/zh-CN/docs/sidebar). - From 3a6350214486ced937a64f05d89684c0c31e1f51 Mon Sep 17 00:00:00 2001 From: Qi Zhang <13651281168@163.com> Date: Fri, 22 Nov 2024 01:26:02 +0800 Subject: [PATCH 200/398] New translations index.md (English) --- .../current/contribution/index.md | 45 +++++++++---------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/index.md b/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/index.md index 0c40225232..99943f83ad 100644 --- a/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/index.md +++ b/i18n/en/docusaurus-plugin-content-docs-community/current/contribution/index.md @@ -1,17 +1,16 @@ --- -title: 'Contribution Guidelines' -description: 'Guide you to contribute to Rainbond' +title: Contribution Guidelines +description: Guide you to contribute to Rainbond --- ## Contribute to Rainbond -Rainbond is a cloud-native application management platform that is easy to use and does not require knowledge of containers, Kubernetes and the underlying complex technologies. It supports managing multiple Kubernetes clusters and managing the entire lifecycle of enterprise applications.The main functions include application development environment, application market, microservice architecture, application delivery, application operation and maintenance, application-level multi-cloud management, etc. +Rainbond is a cloud-native application management platform that is easy to use and does not require knowledge of containers, Kubernetes and the underlying complex technologies. It supports managing multiple Kubernetes clusters and managing the entire lifecycle of enterprise applications.The main functions include application development environment, application market, microservice architecture, application delivery, application operation and maintenance, application-level multi-cloud management, etc.The main functions include the application development environment, the application market, the micro-service architecture, the application delivery, the application workload, and the application of cloud management. If you're interested in contributing to Rainbond, hopefully this documentation will make your contribution process easier, faster, and more efficient. If you're new to open source contributing, check out the [Open Source Guides](https://opensource.guide/) website, which provides some open source contributing guides, a collection of resources for people, communities, and companies who want to learn how to contribute to open source projects. - ## CODE_OF_CONDUCT Rainbond expects project participants to abide by the Code of Conduct, please read [CODE_OF_CONDUCT](https://github.com/goodrain/rainbond/blob/main/CODE_OF_CONDUCT.md). @@ -20,19 +19,19 @@ Rainbond expects project participants to abide by the Code of Conduct, please re There are many ways to contribute to:, not just code contributions0 -* Deal with unresolved [issues](https://github.com/goodrain/rainbond/issues)and put forward your solution ideas. -* Feedback bugs.When you find a bug, please use [issues](https://github.com/goodrain/rainbond/issues) to report and discuss. -* Propose new features.When you want to propose a new feature, please use [issues](https://github.com/goodrain/rainbond/issues) to report and discuss. -* [code contribution](/community/contribution/compile/) -* [Documentation Contribution](/community/contribution/document/) -* [Contribute open source applications](/community/contribution/app-share/)to Rainbond App Store -* [Contribute open source plugins](/community/contribution/plugin/)to the Rainbond app store +- Deal with unresolved [issues](https://github.com/goodrain/rainbond/issues)and put forward your solution ideas. +- Feedback Bug.Feedback bugs.When you find a bug, please use [issues](https://github.com/goodrain/rainbond/issues) to report and discuss. +- New feature.Propose new features.When you want to propose a new feature, please use [issues](https://github.com/goodrain/rainbond/issues) to report and discuss. +- [code contribution](/community/contribution/compile/) +- [Documentation Contribution](/community/contribution/document/) +- [Contribute open source applications](/community/contribution/app-share/)to Rainbond App Store +- [Contribute open source plugins](/community/contribution/plugin/)to the Rainbond app store Contributions are very welcome. If you think your contribution needs help, please add[small assistants to WeChat](/community/support)to contact us, and Rainbond TOC members will help you continue to contribute. ## Git Commit Specification -We refer to [Angular Specification](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#commits), and try to provide clearer historical information to facilitate the judgment of the purpose of submission and browsing.Each commit message contains a header, body and footer.The header has a special format with type, scope and subject: +We refer to [Angular Specification](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#commits), and try to provide clearer historical information to facilitate the judgment of the purpose of submission and browsing.Each commit message contains a header, body and footer.The header has a special format with type, scope and subject:There should be a blank line between header, body, and footer. The header is required, and the scope is optional.The text of each line of the commit message cannot exceed 72 characters.This makes it easier to read on github and git tools.header has a special format package containing type, scope and subject: ``` (): @@ -42,7 +41,7 @@ We refer to [Angular Specification](https://github.com/angular/angular.js/blob/m