项目
创建项目
将会创建一个空的项目,不包含任何服务资源、环境资源。
请求
POST /openapi/projects/project
body 参数说明
参数名 | 说明 | 类型 | 必填 | 样例 |
---|---|---|---|---|
project_name | 项目名称 | string | 是 | voting-app |
project_key | 项目标识,命名规则如下: 支持小写字母和数字,以及中划线 - | string | 是 | voting-app |
is_public | 是否是公开项目 | bool | 是 | false |
description | 项目描述 | string | 否 | 投票系统 |
project_type | 项目类型,可选值如下:helm (即:K8s Helm Chart 项目)yaml (即:K8s YAML 项目)loaded (即:K8s 托管项目) | string | 是 | yaml |
返回
{
"message": "success"
}
创建项目并初始化
适用于 K8s YAML 类型项目。
请求
POST /openapi/projects/project/init/yaml
body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
project_name | 项目名称 | string | 是 |
project_key | 项目标识,命名规则如下: 支持小写字母和数字,以及中划线 - | string | 是 |
project_type | 项目类型,固定值 yaml | string | 是 |
is_public | 是否是公开项目 | bool | 是 |
description | 项目描述 | string | 否 |
service_list | 服务列表 | []Service | 是 |
env_list | 环境列表 | []Env | 是 |
Service 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
source | 服务的创建来源,可选项:template 、yaml | string | 是 |
template_name | 服务模板的名称 | string | source 为 template 时必填 |
variable_yaml | 服务模板中的变量 | []KeyVal | 否 |
auto_sync | 自动同步开关,source 为 template 时生效 | bool | 否 |
service_name | 服务名称 | string | 是 |
yaml | 服务的 YAML 配置 | string | source 为 yaml 时必填 |
Env 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
env_name | 环境名称 | string | 是 |
cluster | 集群名称 | string | 是 |
namespace | 环境所在的 Namespace 名称 | string | 是 |
KeyVal 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
key | 变量的键值 | string | 是 |
value | 变量的值,如果有嵌套内容,使用 json 格式 | any | 是 |
body 参数示例
以创建 demo
项目,并初始化创建服务 myapp-1
和环境 dev
为例:
{
"project_name": "demo",
"project_key": "demo",
"project_type": "yaml",
"is_public": true,
"description": "demo 项目",
"service_list": [
{
"source": "yaml",
"service_name": "myapp-1",
"yaml": "apiVersion: v1\nkind: Service\nmetadata:\n name: a\n labels:\n app: a\nspec:\n ports:\n - name: http\n port: 80\n targetPort: 8080\n selector:\n app: a\n\n---\n\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: a\n labels:\n app: a\nspec:\n selector:\n matchLabels:\n app: a\n replicas: 1\n template:\n metadata:\n labels:\n app: a\n spec:\n containers:\n - name: myapp-1\n image: koderover.tencentcloudcr.com/koderover-demo/myapp-1:v0.1__linux_amd64\n imagePullPolicy: Always\n command: [\"/myapp-1\"]\n args: [\"--downstream-addr\", \"$(DOWNSTREAM_ADDR)\", \"--headers\", \"$(HEADERS)\"]\n env:\n - name: DOWNSTREAM_ADDR\n value: \"b\"\n - name: HEADERS\n value: \"x-request-id\"\n ports:\n - containerPort: 8080\n resources:\n limits:\n cpu: 100m\n memory: 100Mi\n"
}
],
"env_list": [
{
"env_name": "dev",
"cluster_name": "dev",
"namespace": "demo-env-dev"
}
]
}
返回
{
"message": "success"
}