Skip to content

Built-in Component Types

RAPD provides several built-in component types. The specification description for each component follows the same data schema, and the characteristics of different component types are determined by the “traits” they contain.

Webservice Container

Containerized workload components provides services via network endpoints.

Specification

Component TypeCategoryDescription
webservice.containerWorkloadContainerized webservice component.
Cluster TypeBuilt-inDescription
kubernetesvKubernetes clusters may be the deployment targets of containerized webservice components.

Worker Container

Containerized workload components for processing jobs in the background.

Specification

Component TypeCategoryDescription
worker.containerWorkloadContainerized worker component.
Cluster TypeBuilt-inDescription
kubernetesvKubernetes clusters may be the deployment targets of containerized worker components.

StatefulSet Container

Containerized workload components provides stateful services via network endpoints.

Specification

Component TypeCategoryDescription
statefulset.containerWorkloadContainerized worker component.
Cluster TypeBuilt-inDescription
kubernetesvKubernetes clusters may be the deployment targets of containerized worker components.

MySQL Database

MySQL-compatible database service.

Example

apiVersion: po.rapd.app/v1beta1
kind: Application
metadata:
labels:
auto.mavis.work/environment: default
name: mysql-app
spec:
version: "1.0"
revisionHistory: 3
components:
- type: database.mysql
name: mysql
target: bind-mysql

Specification

Component TypeCategoryDescription
database.mysqlSupport serviceMySQL database. Multiple MySQL databases might be provided by a single MySQL cluster.
Cluster TypeBuilt-inDescription
mysql.gcp-cloudsqlGCP Cloud SQL for MySQL

Connection Secret

NameTypeRequiredDefaultDescription
hoststringv
portstringv
usernamestringvlogin username
passwordstringvlogin password
dbstringConnecting database
If non-exist, it indicates that this user has privileges across all databases

PostgreSQL Database

PostgreSQL-compatible database service.

Example

apiVersion: po.rapd.app/v1beta1
kind: Application
metadata:
labels:
auto.mavis.work/environment: default
name: postgres-app
spec:
version: "1.0"
revisionHistory: 3
components:
- type: database.postgresql
name: mypostgres
target: bind-postgres

Specification

Component TypeCategoryDescription
database.postgredqlSupport servicePostgreSQL database. Multiple PostgreSQL databases might be provided by a single PostgreSQL cluster.
Cluster TypeBuilt-inDescription
postgresql.gcp-cloudsqlGCP Cloud SQL for PostrgreSQL

Connection Secret

NameTypeRequiredDefaultDescription
hoststringv
portstringv
usernamestringvlogin username
passwordstringvlogin password
dbstringvConnecting database
schemastringConnecting schema
If non-exist, it indicates that this user has privileges on database and all schemas on this database

Redis Service

Redis caching service.

Example

apiVersion: po.rapd.app/v1beta1
kind: Application
metadata:
labels:
auto.mavis.work/environment: default
name: redis-app-gcp
spec:
version: "1.0"
revisionHistory: 3
components:
- type: caching.redis
name: redis
target: bind-redis-gcp

Specification

Component TypeCategoryDescription
caching.redisSupport serviceRedis caching service.
Cluster TypeBuilt-inDescription
redis.gcp-clustervGCP Memorystore

Connection Secret

NameTypeRequiredDefaultDescription
hoststringv
portstringv
usernamestring""An empty username indicates that connecting to Redis does not require a username
passwordstring""An empty password indicates that connecting to Redis does not require a password
dbstringConnecting database
If non-exist, it indicates that this user has privileges across all databases

API Gateway

The component supports Kuberntes Gateway API. This component is a dependency for webservice components to work properly.

Example

apiVersion: po.rapd.app/v1beta1
kind: Application
metadata:
labels:
auto.mavis.work/environment: default
name: gateway
spec:
version: "1.0"
revisionHistory: 3
components:
- type: networking.api-gateway
name: kong
target: default

Specification

Component TypeCategoryDescription
networking.api-gatewaySupport serviceAPI gateway.
Cluster TypeBuilt-inDescription
kubernetesvUsing Kong gateway to support the Gateway API behind the scene。