RAPD 提供一些內建的元件型別。每個元件的規格描述都採用相同的資料綱要,不同元件型別的特點由其所含的「特徵」決定。
Webservice 容器
透過網路端口提供服務的容器化工作負載元件。
規格
| 元件型別 | 分類 | 說明 |
|---|
| webservice.container | 工作負載 | 容器化的工作負載元件。 |
| 叢集型別 | 是否內建 | 說明 |
|---|
| kubernetes | v | 使用 Kubernetes 叢集作為容器工作負載交付標的。 |
Worker 容器
用於持續在背景工作的容器化工作負載元件,例如:持續處理佇列(queue)中的訊息。
規格
| 元件型別 | 分類 | 說明 |
|---|
| worker.container | 工作負載 | 容器實現的背景進程。 |
| 叢集型別 | 是否內建 | 說明 |
|---|
| kubernetes | v | 使用 Kubernetes 叢集作為容器工作負載交付標的。 |
StatefulSet 容器
透過網路端口提供有狀態服務的容器化工作負載元件。
規格
| 元件型別 | 分類 | 說明 |
|---|
| statefulset.container | 工作負載 | 容器化的工作負載元件。 |
| 叢集型別 | 是否內建 | 說明 |
|---|
| kubernetes | v | 使用 Kubernetes 叢集作為容器工作負載交付標的。 |
Job 容器
用於執行一次性任務的容器化工作負載元件。
規格
| 元件型別 | 分類 | 說明 |
|---|
| job.container | 工作負載 | 容器化的工作負載元件。 |
| 叢集型別 | 是否內建 | 說明 |
|---|
| kubernetes | v | 使用 Kubernetes 叢集作為容器工作負載交付標的。 |
Cronjob 容器
用於定期執行任務的容器化工作負載元件。
規格
| 元件型別 | 分類 | 說明 |
|---|
| cronjob.container | 工作負載 | 容器化的工作負載元件。 |
| 叢集型別 | 是否內建 | 說明 |
|---|
| kubernetes | v | 使用 Kubernetes 叢集作為容器工作負載交付標的。 |
MinIO 儲存體
用於分布式物件存儲的系統,兼容 Amazon S3 雲端儲存服務。
規格
| 元件型別 | 分類 | 說明 |
|---|
| storage.minio | 存儲服務 | 物件儲存服務 |
| 叢集型別 | 是否內建 | 說明 |
|---|
| kubernetes | v | 使用 Kubernetes 叢集作為容器工作負載交付標的。 |
連線Secret
| Name | Type | Required | Default | Description |
|---|
| host | string | v | | MinIO 服務主機地址 |
| api_port | string | v | 9000 | API port |
| console_port | string | v | 9001 | 控制台 port |
| username | string | v | | 登入用戶名 |
| password | string | v | | 登入密碼 |
Messaging AMQP (RabbitMQ)
RabbitMQ 是一個實現了 AMQP 的開源訊息佇列。
規格
| 元件型別 | 分類 | 說明 |
|---|
| messaging.amqp | 訊息佇列 | 訊息佇列服務 |
| 叢集型別 | 是否內建 | 說明 |
|---|
| kubernetes | v | 使用 Kubernetes 叢集作為容器工作負載交付標的。 |
連線Secret
| Name | Type | Required | Default | Description |
|---|
| host | string | v | | RabbitMQ 服務主機地址 |
| amqp_port | string | v | 5672 | AMQP 協議 port |
| http_port | string | v | 15672 | HTTP 管理介面 port |
| username | string | v | | 登入用戶名 |
| password | string | v | | 登入密碼 |
Config Secret
Config Secret 用於在 Kubernetes 中創建和管理敏感的數據
規格
| 元件型別 | 分類 | 說明 |
|---|
| config.secret | Secret | 用於建立機敏資訊 |
| 叢集型別 | 是否內建 | 說明 |
|---|
| kubernetes | v | 使用 Kubernetes 叢集作為容器工作負載交付標的。 |
K8s 物件
K8s 物件允許您在 Kubernetes 中部署自定義的 Kubernetes 資源。
規格
| 元件型別 | 分類 | 說明 |
|---|
| package.k8s-object | Object | 用於在 kubernetes 中建立資源 |
| 叢集型別 | 是否內建 | 說明 |
|---|
| kubernetes | v | 使用 Kubernetes 叢集作為容器工作負載交付標的。 |
MySQL 資料庫
MySQL 相容資料庫服務。
範例
apiVersion: po.rapd.app/v1beta1
auto.mavis.work/environment: default
規格
| 元件型別 | 分類 | 說明 |
|---|
| database.mysql | 支援服務 | MySQL 資料庫,多個資料庫可能共用同一個 MySQL 叢集。 |
| 叢集型別 | 是否內建 | 說明 |
|---|
| mysql.gcp-cloudsql | | GCP Cloud SQL for MySQL |
連線Secret
| Name | Type | Required | Default | Description |
|---|
| host | string | v | | |
| port | string | v | | |
| username | string | v | | 登入用戶名 |
| password | string | v | | 登入密碼 |
| db | string | | | 連線資料庫 如果沒提供,表示用戶有所有資料庫的操作權限 |
PostgreSQL 資料庫
PostgreSQL 相容資料庫服務。
範例
apiVersion: po.rapd.app/v1beta1
auto.mavis.work/environment: default
- type: database.postgresql
規格
| 元件型別 | 分類 | 說明 |
|---|
| database.postgredql | Support service | PostgreSQL database. Multiple PostgreSQL databases might be provided by a single PostgreSQL cluster. |
| 叢集型別 | 是否內建 | 說明 |
|---|
| postgresql.gcp-cloudsql | | GCP Cloud SQL for PostrgreSQL |
連線Secret
| Name | Type | Required | Default | Description |
|---|
| host | string | v | | |
| port | string | v | | |
| username | string | v | | 登入username |
| password | string | v | | 登入密碼 |
| db | string | v | | 連線資料庫 |
| schema | string | | | 如果沒提供,表示用戶有此資料庫及schema的操作、管理權限 |
Redis 服務
Redis 快取服務。
範例
apiVersion: po.rapd.app/v1beta1
auto.mavis.work/environment: default
規格
| 元件型別 | 分類 | 說明 |
|---|
| caching.redis | 支援服務 | Redis cache 服務。 |
| 叢集型別 | 是否內建 | 說明 |
|---|
| redis.gcp-cluster | v | GCP Memorystore |
連線Secret
| Name | Type | Required | Default | Description |
|---|
| host | string | v | | |
| port | string | v | | |
| username | string | | "" | username為空時表示與Redis連線不需要使用username |
| password | string | | "" | password為空時表示與Redis連線不需要使用password |
| db | string | | | 連線資料庫 如果沒提供,表示用戶有所有資料庫的操作權限 |
API 閘道
支援 Kubernetes Gateway API 的 API Gatway 元件。 Webservice 容器元件依賴此元件才能正確運作。
httpRoute 特徵也依賴此元件才能正確運作。
範例
apiVersion: po.rapd.app/v1beta1
auto.mavis.work/environment: default
- type: networking.api-gateway
規格
| 元件型別 | 分類 | 說明 |
|---|
| networking.api-gateway | 支援服務 | API 閘道。 |
| 叢集型別 | 是否內建 | 說明 |
|---|
| kubernetes | v | 使用 Kong gateway 提供 Gateway API。 |