项目

创建项目

将会创建一个空的项目,不包含任何服务资源、环境资源。

请求

  1. POST /openapi/projects/project

body 参数说明

参数名说明类型必填样例
project_name项目名称stringvoting-app
project_key项目标识,命名规则如下:
支持小写字母和数字,以及中划线 -
stringvoting-app
is_public是否是公开项目boolfalse
description项目描述string投票系统
project_type项目类型,可选值如下:
helm(即:K8s Helm Chart 项目)
yaml(即:K8s YAML 项目)
loaded(即:K8s 托管项目)
stringyaml

返回

  1. {
  2. "message": "success"
  3. }

创建项目并初始化

适用于 K8s YAML 类型项目。

请求

  1. POST /openapi/projects/project/init/yaml

body 参数说明

参数名说明类型必填
project_name项目名称string
project_key项目标识,命名规则如下:
支持小写字母和数字,以及中划线 -
string
project_type项目类型,固定值 yamlstring
is_public是否是公开项目bool
description项目描述string
service_list服务列表[]Service
env_list环境列表[]Env

Service 参数说明

参数名说明类型必填
source服务的创建来源,可选项:templateyamlstring
template_name服务模板的名称stringsourcetemplate 时必填
variable_yaml服务模板中的变量[]KeyVal
auto_sync自动同步开关,sourcetemplate 时生效bool
service_name服务名称string
yaml服务的 YAML 配置stringsourceyaml 时必填

Env 参数说明

参数名说明类型必填
env_name环境名称string
cluster集群名称string
namespace环境所在的 Namespace 名称string

KeyVal 参数说明

参数名说明类型必填
key变量的键值string
value变量的值,如果有嵌套内容,使用 json 格式any

body 参数示例

以创建 demo 项目,并初始化创建服务 myapp-1 和环境 dev 为例:

  1. {
  2. "project_name": "demo",
  3. "project_key": "demo",
  4. "project_type": "yaml",
  5. "is_public": true,
  6. "description": "demo 项目",
  7. "service_list": [
  8. {
  9. "source": "yaml",
  10. "service_name": "myapp-1",
  11. "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"
  12. }
  13. ],
  14. "env_list": [
  15. {
  16. "env_name": "dev",
  17. "cluster_name": "dev",
  18. "namespace": "demo-env-dev"
  19. }
  20. ]
  21. }

返回

  1. {
  2. "message": "success"
  3. }