项目

创建项目

创建空项目

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

请求

  1. POST /openapi/projects/project

body 参数说明

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

返回

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

创建 YAML 项目并初始化

适用于 Kubernetes 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服务的创建来源,有以下两种创建来源:
template:通过模板创建服务
yaml:通过手写yaml创建服务
string
template_name服务模板的名称stringsourcetemplate 时必填
variable_yaml服务模板中的变量[]KeyVal
auto_sync自动同步开关,sourcetemplate 时生效bool
service_name服务名称string
yaml服务的 YAML 配置stringsourceyaml 时必填

Env 参数说明

参数名说明类型必填
env_key环境标识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_key": "dev",
  17. "cluster_name": "dev",
  18. "namespace": "demo-env-dev"
  19. }
  20. ]
  21. }

返回

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

创建 Helm 项目并初始化

请求

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

body 参数说明

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

Service 参数说明

参数名说明类型必填
service_name服务名称string
source服务的创建类型,固定值:templatestring
template_name服务模板的名称stringsourcetemplate 时必填
variable_yaml服务模板中的变量[]KeyVal
auto_sync自动同步开关,sourcetemplate 时生效bool
values_yamlHelm values 文件string

Env 参数说明

参数名说明类型必填
env_key环境标识string
cluster_name集群名称string
namespace环境所在的 Namespace 名称string

KeyVal 参数说明

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

body 参数示例

  1. {
  2. "project_name":"helm项目测试2",
  3. "project_key":"test-helm-2",
  4. "is_public":true,
  5. "description":"测试",
  6. "service_list":[
  7. {
  8. "source":"template",
  9. "service_name":"service33",
  10. "template_name":"minmin-helm-template",
  11. "variable_yaml":[{"key":"port","value":"7777"}],
  12. "values_yaml":"",
  13. "auto_sync":true
  14. }
  15. ],
  16. "env_list":[
  17. {
  18. "env_key":"dev1",
  19. "cluster_name":"local-20220823144517",
  20. "namespace":"test-helm-env-dev"
  21. }
  22. ]
  23. }

返回

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

获取项目列表

请求

  1. GET /openapi/projects/project?pageSize=<当前页显示数量>&pageNum=<当前页数>

Query 参数说明

参数名类型描述必填
pageSizeint分页每页显示数量,默认值:20
pageNumint分页当前页数,默认值:1

返回说明

参数名类型描述
projects[]Project项目列表
totalint项目总数

Project 参数说明

参数名类型描述
project_namestring项目名称
project_keystring项目标识
deploy_typestring项目部署类型:
helm:Kubernetes Helm Chart 项目
yaml:Kubernetes YAML 项目
loaded:Kubernetes 托管项目
descstring项目描述

返回示例

  1. {
  2. "total": 14,
  3. "projects": [
  4. {
  5. "project_name": "lilian-test",
  6. "project_key": "lilian-test",
  7. "description": "",
  8. "deploy_type":"k8s"
  9. },
  10. {
  11. "project_name": "发布中心",
  12. "project_key": "release-center",
  13. "description": "migrate from deploy center",
  14. "deploy_type":"k8s"
  15. }
  16. ]
  17. }

获取指定项目详情

请求

  1. GET /openapi/projects/project/detail?projectKey=<项目标识>

Query 参数说明

参数名类型描述必填
projectKeystring项目标识

返回说明

参数名类型描述
project_namestring项目名称
project_keystring项目标识
deploy_typestring项目部署类型:
helm:Kubernetes Helm Chart 项目
yaml:Kubernetes YAML 项目
loaded:Kubernetes 托管项目
descstring项目描述
created_bystring创建者
created_timeint创建时间

返回示例

  1. {
  2. "project_name": "lilian-test",
  3. "project_key": "lilian-test",
  4. "desc": "",
  5. "deploy_type": "k8s",
  6. "create_time": 1686134245,
  7. "created_by": "admin",
  8. }

删除项目

请求

  1. DELETE /openapi/projects/project?projectKey=<项目标识>&isDelete=<是否删除项目相关资源>

Query 参数说明

参数名类型描述必填
projectKeystring项目标识
isDeletebool是否同时删除环境对应的 Kubernetes 命名空间和服务

成功返回说明

  1. {message: "success"}