环境
查看环境列表
测试环境
适用于 K8s YAML 项目。
请求
GET /openapi/environments?projectKey=<项目标识>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
返回示例
点击查看
[
{
"env_name": "dev",
"cluster_id": "0123456789abcdef12345678", # K8s 集群 ID
"namespace": "k8s-fansitest-env-dev", # K8s 命名空间
"production": false, # 是否是生产环境
"registry_id": "630c7ad700430c131062e245", # 镜像仓库 ID
"status": "success", # 环境状态,包括 success(正常)、failed(失败)、creating(正在创建)、updating(更新中)、deleting(删除中)、unknown(未知)、unstable(运行不稳定)、sleeping(睡眠中)
"update_by": "admin", # 环境更新者
"update_time": 1690186199 # 最后一次更新时间,Unix 时间戳格式
},
{
"env_name": "dev5",
"cluster_id": "0123456789abcdef12345678",
"namespace": "ai-test-2-env-dev",
"production": false,
"registry_id": "6350be2b4503905e98b4b771",
"status": "success",
"update_by": "admin",
"update_time": 1690181832
}
]
生产环境
适用于 K8s YAML 项目。
请求
GET /openapi/environments/production?projectKey=<项目标识>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
返回示例
点击查看
[
{
"env_name": "dev",
"cluster_id": "0123456789abcdef12345678", # K8s 集群 ID
"namespace": "k8s-fansitest-env-dev", # K8s 命名空间
"production": true, # 是否是生产环境
"registry_id": "630c7ad700430c131062e245", # 镜像仓库 ID
"status": "success", # 环境状态,包括 success(正常)、failed(失败)、creating(正在创建)、updating(更新中)、deleting(删除中)、unknown(未知)、unstable(运行不稳定)、sleeping(睡眠中)
"update_by": "admin", # 环境更新者
"update_time": 1690186199 # 最后一次更新时间,Unix 时间戳格式
},
{
"env_name": "dev5",
"cluster_id": "0123456789abcdef12345678",
"namespace": "ai-test-2-env-dev",
"production": true,
"registry_id": "6350be2b4503905e98b4b771",
"status": "success",
"update_by": "admin",
"update_time": 1690181832
}
]
查看环境详情
适用于 K8s YAML 项目。
测试环境
请求
GET /openapi/environments/<环境标识>?projectKey=<项目标识>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
返回示例
点击查看
{
"project_key": "simple-demo", # 项目标识
"env_key": "dev", # 环境标识
"update_by": "admin", # 环境更新者
"update_time": 1689933256, # 最后一次更新时间,Unix 时间戳格式
"cluster_id": "0123456789abcdef12345678", # K8s 集群 ID
"namespace": "simple-demo-env-dev", # K8s 命名空间
"registry_id": "630c7ad700430c131062e245", # 镜像仓库 ID
"global_variables": [ # 全局变量列表
{
"key": "cpuLimit", # 变量的键
"value": "1000m", # 变量的值
"type": "string", # 变量的类型,包括 string、bool、enum、yaml 四种
"options": [], # 变量的可选值,当 type 为 enum 时该字段有意义
"desc": "CPU 资源限制", # 变量的描述信息
"related_services": ["service1"] # 变量关联的服务
}
],
"services": [ # 服务列表
{
"service_name": "service2", # 服务名称
"containers": [ # 服务组件信息
{
"name": "myapp-1", # 服务组件名称
"image": "koderover.tencentcloudcr.com/test/myapp-1:20230721164449-6-main", # 服务组件镜像
"image_name": "myapp-1" # 服务组件镜像名称
}
],
"variable_kvs": [ # 服务变量列表
{
"key": "env1",
"value": "demo",
"type": "string",
}
],
"status": "running", # 服务状态,包括 running(正在运行)、unstable(运行不稳定)、unstart(未开始)、failed(失败)、pending(挂起中)、unknown(未知)
"type": "k8s" # 项目类型,恒定为 k8s
}
],
"status": "success" # 环境状态,包括 creating(创建中)、updating(更新中)、deleting(删除中)、succeeded(正常)、error(内部错误)、running(正在运行)、unstable(运行不稳定)、sleeping(睡眠中)、unknown(未知)
}
生产环境
请求
GET /openapi/environments/production/<环境名称>?projectKey=<项目标识>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
返回示例
点击查看
{
"project_key": "simple-demo", # 项目标识
"env_key": "prod", # 环境标识
"env_name":"prod", # 环境名称
"update_by": "admin", # 环境更新者
"update_time": 1689933256, # 最后一次更新时间,Unix 时间戳格式
"cluster_id": "0123456789abcdef12345678", # K8s 集群 ID
"namespace": "simple-demo-env-prod", # K8s 命名空间
"registry_id": "630c7ad700430c131062e245", # 镜像仓库 ID
"global_variables": [ # 全局变量列表
{
"key": "cpuLimit", # 变量的键
"value": "1000m", # 变量的值
"type": "string", # 变量的类型,包括 string、bool、enum、yaml 四种
"options": [], # 变量的可选值,当 type 为 enum 时该字段有意义
"desc": "CPU 资源限制", # 变量的描述信息
"related_services": ["service1"] # 变量关联的服务
}
],
"services": [ # 服务列表
{
"service_name": "service2", # 服务名称
"containers": [ # 服务组件信息
{
"name": "myapp-1", # 服务组件名称
"image": "koderover.tencentcloudcr.com/test/myapp-1:20230721164449-6-main", # 服务组件镜像
"image_name": "myapp-1" # 服务组件镜像名称
}
],
"variable_kvs": [ # 服务变量列表
{
"key": "env1",
"value": "demo",
"type": "string",
}
],
"status": "running", # 服务状态,包括 running(正在运行)、unstable(运行不稳定)、unstart(未开始)、failed(失败)、pending(挂起中)、unknown(未知)
"type": "k8s" # 项目类型,恒定为 k8s
}
],
"status": "success" # 环境状态,包括 creating(创建中)、updating(更新中)、deleting(删除中)、succeeded(正常)、error(内部错误)、running(正在运行)、unstable(运行不稳定)、sleeping(睡眠中)、unknown(未知)
}
新建环境
适用于 K8s YAML 项目。
测试环境
请求
POST /openapi/environments?projectKey=<项目标识>
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
env_key | 环境标识 | string | 是 |
cluster_id | K8s 集群 ID | string | 是 |
namespace | K8s 命名空间 | string | 是 |
registry_id | 镜像仓库 ID | string | 是 |
env_configs | 环境配置 | []EnvConfig | 否 |
global_variables | 全局变量 | []GlobalVariable | 否 |
services | 服务列表 | []Service | 否 |
EnvConfig 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
yaml_data | 环境配置的 YAML 内容 | string | 是 |
common_env_cfg_type | 环境配置的类型,可选值如下:ConfigMap Ingress Secret PVC | string | 是 |
GlobalVariable 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
key | 变量的键 | string | 是 |
value | 变量的值 | string | 是 |
Service 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
service_name | 服务名称 | string | 是 |
type | 服务类型,指定为 k8s 即可 | string | 是 |
containers | 服务的镜像信息 | []Container | 是 |
variable_kvs | 服务变量配置 | []VariableKV | 否 |
Container 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
image | 完整的镜像地址,比如:koderover.demo.com/public/service1:latest | string | 是 |
image_name | 镜像名称 | string | 是 |
name | 服务组件名称 | string | 是 |
VariableKV 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
key | 变量的键 | string | 是 |
value | 变量的值 | string | 和 use_global_variable 参数二选一 |
use_global_variable | 是否使用全局变量 | bool | 和 value 参数二选一 |
Body 参数示例
点击查看
{
"env_key": "dev7",
"cluster_id": "0123456789abcdef12345678",
"namespace": "ai-test-2-env-dev",
"registry_id": "6350be2b4503905e98b4b771",
"is_public": true,
"global_variables": [
{
"key": "cpuLimit",
"value": "15m"
}
],
"services": [
{
"service_name": "service2",
"type": "k8s",
"containers": [
{
"image": "koderover.tencentcloudcr.com/test/service2:20230730070002-38-main",
"image_name": "service2",
"name": "service2"
}
],
"variable_kvs": [
{
"key": "cpu",
"value": "8m"
},
{
"key":"cpuLimit",
"value":"15m"
}
]
}
],
"env_configs": [
{
"yaml_data": "apiVersion: v1\ndata:\n root-cert.pem: |\n -----BEGIN CERTIFICATE-----\n MIIC/TCCAeWgAwIBAgIRAISZur/+Sm1i2dv4w5qWhy0wDQYJKoZIhvcNAQELBQAw\n GDEWMBQGA1UEChMNY2x1c3Rlci5sb2NhbDAeFw0yMjA4MTUwMjM5MTdaFw0zMjA4\n MTIwMjM5MTdaMBgxFjAUBgNVBAoTDWNsdXN0ZXIubG9jYWwwggEiMA0GCSqGSIb3\n DQEBAQUAA4IBDwAwggEKAoIBAQDQWPcRpknooTvvR8rg9XOXtOV2XyW2mDCBhQ0E\n THTQI17l5UK+AkhifJwUeGcc6KsZvBff7ksf5eQ6e1XBkwhEFTn0QBNTQwzVH/gz\n dVLB/SYgDKZyUBq3N2E0V1tYsrXE/Mc5qRcnBwscAdOcH5gpW3ZxfRUr7t40DY0H\n Im8RIajIB7UyT9lo+unaPozF5AuIN4ylv6XGcO1voXimCXNg5r2T/ATTA/vqJcS2\n ZlaT/85+cZCycu8ZwZaVNgxlyjE1CgUBEdMxy0svMXpJvDondEZEPfZVuB1X2FUL\n fczThsA7XmBvBYKXoKD7cAGlJS1I2nkfxXk+dkN+tolDQA6NAgMBAAGjQjBAMA4G\n A1UdDwEB/wQEAwICBDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS1JbJ810a/\n +KEqd78PtqTKRu+iqDANBgkqhkiG9w0BAQsFAAOCAQEAy833M/pdnLkKmZK9NaTp\n Ten5TQdxhRlPuG3dBfU45VXQ0IhgO7Er0caPagMaVPkqdfuUcd5sT5lfEiJUtt3B\n bOhyPK09GkD7muhO7Bx1o+qAPXkCjf0JRcAgQcpZ5va72V6bB8CJ5+6YoQV4eQGa\n mF80vbzPx3zR6At+3JAZaMhbXItBWJi5ULIGMaJ3JRUvqBMG1jsZdeqOa/fTjVc1\n 6gdX/O9eZjfRdnUiBv4kCD00nr74crXfvAmQGDX/EbNqYGLNHqAdqRgibUYowvEC\n 9gaZfvKU4lOaWYnwE4RlJ1Q6uhVgH45fFiq8pAeflSh56TLbjRfi/VM2lg3GN+cm\n 6g==\n -----END CERTIFICATE-----\nkind: ConfigMap\nmetadata:\n creationTimestamp: \"2023-07-06T08:01:16Z\"\n labels:\n istio.io/config: \"true\"\n name: istio-ca-root-cert-test\n namespace: ai-test-2-env-dev\n selfLink: /api/v1/namespaces/ai-test-2-env-dev/configmaps/istio-ca-root-cert\n uid: 767723b1-8bb2-4c51-92fd-d224bf0c0dc5\n",
"common_env_cfg_type": "ConfigMap"
}
]
}
返回
{
"message": "success"
}
生产环境
请求
POST /openapi/environments/production?projectKey=<项目标识>
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
env_key | 环境标识 | string | 是 |
env_name | 环境名称 | string | 否 |
cluster_id | K8s 集群 ID | string | 是 |
namespace | K8s 命名空间 | string | 是 |
registry_id | 镜像仓库 ID | string | 是 |
返回
{
"message": "success"
}
编辑环境
适用于 K8s YAML 项目。
测试环境
请求
PUT /openapi/environments/<环境标识>?projectKey=<项目标识>
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
registry_id | 镜像仓库 ID | string | 是 |
返回
{
"message": "success"
}
生产环境
请求
PUT /openapi/environments/production/<环境标识>?projectKey=<项目标识>
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
registry_id | 镜像仓库 ID | string | 否 |
env_name | 环境名称 | string | 否 |
返回
{
"message": "success"
}
删除环境
适用于 K8s YAML 项目。
测试环境
请求
DELETE /openapi/environments/<环境标识>?projectKey=<项目标识>&isDelete=true
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
isDelete | 是否删除环境对应的 K8s 命名空间和服务 | bool | 是 |
返回
{
"message": "success"
}
生产环境
请求
DELETE /openapi/environments/production/<环境标识>?projectKey=<项目标识>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
返回
{
"message": "success"
}
添加服务
适用于 K8s YAML 项目。
测试环境
请求
POST /openapi/environments/service/yaml?projectKey=<项目标识>
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
env_key | 环境标识 | string | 是 |
service_list | 需要加入环境的服务列表 | []Service | 是 |
Service 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
service_name | 服务名称 | string | 是 |
variable_kvs | 服务变量列表 | []VariableKV | 否 |
Body 参数示例
点击查看
{
"env_key": "dev",
"service_list": [
{
"service_name": "service2",
"variable_kvs": [
{
"key": "cpuLimit",
"use_global_variable":true
},
{
"key": "port",
"value": "20221"
}
]
}
]
}
返回
{
"message": "success"
}
生产环境
请求
POST /openapi/environments/production/service/yaml?projectKey=<项目标识>
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
env_key | 环境标识 | string | 是 |
service_list | 需要加入环境的服务列表 | []Service | 是 |
Service 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
service_name | 服务名称 | string | 是 |
variable_kvs | 服务变量列表 | []VariableKV | 否 |
VariableKV 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
key | 变量的键 | string | 是 |
value | 变量的值 | string | 当 use_global_variable 为 true 时无需设置 |
use_global_variable | 是否使用环境全局变量 | bool | 设置为 true 时,value 参数无效 |
Body 参数示例
点击查看
{
"env_key": "dev",
"service_list": [
{
"service_name": "service2",
"variable_kvs": [
{
"key": "cpuLimit",
"use_global_variable":true
},
{
"key": "port",
"value": "20221"
}
]
}
]
}
返回
{
"message": "success"
}
更新服务
适用于 K8s YAML 项目。
测试环境
请求
PUT /openapi/environments/<环境标识>/services?projectKey=<项目标识>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
service_list | 服务变量列表 | []Service | 是 |
Service 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
service_name | 服务名称 | string | 是 |
variable_kvs | 服务变量列表 | []VariableKV | 否 |
Body 参数示例
点击查看
{
"service_list": [
{
"service_name": "service2",
"variable_kvs": [
{
"key": "cpu",
"value": "4m",
"use_global_variable":true
}
]
}
]
}
返回
{
"message": "success"
}
生产环境
请求
PUT /openapi/environments/production/<环境标识>/services?projectKey=<项目标识>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
service_list | 服务变量列表 | []Service | 是 |
Service 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
service_name | 服务名称 | string | 是 |
variable_kvs | 服务变量列表 | []VariableKV | 否 |
Body 参数示例
点击查看
{
"service_list": [
{
"service_name": "service2",
"variable_kvs": [
{
"key": "cpu",
"value": "4m",
"use_global_variable":true
}
]
}
]
}
返回
{
"message": "success"
}
删除服务
适用于 K8s YAML 项目。
测试环境
请求
DELETE /openapi/environments/service/yaml?projectKey=<项目标识>
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
env_key | 环境标识 | string | 是 |
service_names | 需要从环境中删除的服务列表 | []string | 是 |
返回
{
"message": "success"
}
生产环境
请求
DELETE /openapi/environments/production/service/yaml?projectKey=<项目标识>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
env_key | 环境标识 | string | 是 |
service_names | 需要从环境中删除的服务列表 | []string | 是 |
返回
{
"message": "success"
}
查看全局变量
适用于 K8s YAML 项目。
测试环境
请求
GET /openapi/environments/<环境标识>/variable?projectKey=<项目标识>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
返回示例
点击查看
[
{
"key": "cpuLimit", # 全局变量的键
"value": "1000m", # 全局变量的值
"type": "string", # 全局变量的类型,包括 string、bool、yaml、enum 四种
"options": [], # type 为 enum 时,全局变量的可选值
"desc": "CPU Limit", # 全局变量描述
"related_services": ["service1", "service2"] # 关联服务列表
}
]
生产环境
请求
GET /openapi/environments/production/<环境标识>/variable?projectKey=<项目标识>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
返回示例
点击查看
[
{
"key": "cpuLimit", # 全局变量的键
"value": "1000m", # 全局变量的值
"type": "string", # 全局变量的类型,包括 string、bool、yaml、enum 四种
"options": [], # type 为 enum 时,全局变量的可选值
"desc": "CPU Limit", # 全局变量描述
"related_services": ["service1", "service2"] # 关联服务列表
}
]
更新全局变量
提示
- 适用于 K8s YAML 项目。
- 更新全局变量后,关联的服务会同步更新。
测试环境
请求
PUT /openapi/environments/<环境标识>/variable?projectKey=<项目标识>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
global_variables | 需要更新的全局变量列表 | []VariableKV | 是 |
VariableKV 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
key | 变量的键 | string | 是 |
value | 变量的值 | string | 是 |
返回
{
"message": "success"
}
生产环境
请求
PUT /openapi/environments/production/<环境标识>/variable?projectKey=<项目标识>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
global_variables | 需要更新的全局变量列表 | []VariableKV | 是 |
VariableKV 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
key | 变量的键 | string | 是 |
value | 变量的值 | string | 是 |
返回
{
"message": "success"
}
添加环境配置
适用于 K8s YAML 项目。
测试环境
请求
POST /openapi/environments/<环境标识>/envcfgs?projectKey=<项目标识>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
name | 环境配置的名称 | string | 是 |
common_env_cfg_type | 环境配置的类型,可选值如下:ConfigMap Ingress Secret PVC | string | 是 |
yaml_data | 环境配置的内容 | string | 是 |
Body 示例
点击查看
{
"name": "game-demo",
"common_env_cfg_type": "ConfigMap",
"yaml_data": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: game-demo\ndata:\n player_initial_lives: \"3\"\n ui_properties_file_name: \"user-interface.properties\"\n game.properties: |\n enemy.types=aliens,monsters\n player.maximum-lives=5 \n user-interface.properties: |\n color.good=purple\n color.bad=yellow\n allow.textmode=true"
}
返回
{
"message": "success"
}
生产环境
请求
POST /openapi/environments/production/<环境标识>/envcfgs?projectKey=<项目标识>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
name | 环境配置的名称 | string | 是 |
common_env_cfg_type | 环境配置的类型,可选值如下:ConfigMap Ingress Secret PVC | string | 是 |
yaml_data | 环境配置的内容 | string | 是 |
Body 示例
点击查看
{
"name": "game-demo",
"common_env_cfg_type": "ConfigMap",
"yaml_data": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: game-demo\ndata:\n player_initial_lives: \"3\"\n ui_properties_file_name: \"user-interface.properties\"\n game.properties: |\n enemy.types=aliens,monsters\n player.maximum-lives=5 \n user-interface.properties: |\n color.good=purple\n color.bad=yellow\n allow.textmode=true"
}
返回
{
"message": "success"
}
查看环境配置列表
适用于 K8s YAML 项目。
测试环境
请求
GET /openapi/environments/<环境标识>/envcfgs?projectKey=<项目标识>&type=<环境配置的类型>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
type | 环境配置的类型,可选值如下:ConfigMap Ingress Secret PVC | string | 是 |
返回示例
点击查看
[
{
"name": "game-demo", # 环境配置的名称
"env_name": "dev", # 环境名称
"project_name": "simple-demo", # 项目标识
"common_env_cfg_type": "ConfigMap", # 环境配置的类型
},
{
"name": "istio-ca-root-cert",
"env_name": "dev",
"project_name": "simple-demo",
"common_env_cfg_type": "ConfigMap",
"update_time": 1687259964
}
]
生产环境
请求
GET /openapi/environments/production/<环境标识>/envcfgs?projectKey=<项目标识>&type=<环境配置的类型>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
type | 环境配置的类型,可选值如下:ConfigMap Ingress Secret PVC | string | 是 |
返回示例
点击查看
[
{
"name": "game-demo", # 环境配置的名称
"env_name": "dev", # 环境名称
"project_name": "simple-demo", # 项目标识
"common_env_cfg_type": "ConfigMap", # 环境配置的类型
},
{
"name": "istio-ca-root-cert",
"env_name": "dev",
"project_name": "simple-demo",
"common_env_cfg_type": "ConfigMap",
"update_time": 1687259964
}
]
查看环境配置详情
适用于 K8s YAML 项目。
测试环境
请求
GET /openapi/environments/<环境标识>/envcfg/<环境配置名称>?projectKey=<项目标识>&type=<环境配置的类型>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
type | 环境配置的类型,可选值如下:ConfigMap Ingress Secret PVC | string | 是 |
返回示例
手动输入的环境配置示例
{
"configMap_detail": { // configMap环境配置资源详情,其他资源类型此处的key为:ingress_detail、secret_detail、pvc_detail
"name": "istio-ca-root-cert", # 环境配置的名称
"common_env_cfg_type": "ConfigMap", # 环境配置的类型
"created_time": 1686225615, # 环境配置的创建时间,Unix 时间戳格式
"env_key": "dev", # 环境标识
"product_key": "simple-demo", # 项目标识
"yaml_data": ".......", # 环境配置的 YAML 内容,string 格式
"source_detail": { # 代码库配置,环境配置是从代码库导入时该字段有信息
"git_repo_config": {
"codehost_key": "kr-test", # 代码源标识
"namespace": "kr-test-org1", # 组织名/用户名
"owner": "kr-test-org1", # 代码库拥有者
"repo": "config-data", # 代码库
"branch": "main", # 代码分支
},
"load_path": "cm.yaml", # 文件路径
"auto_sync": true # 自动同步开关
}
}
}
生产环境
请求
GET /openapi/environments/production/<环境标识>/envcfg/<环境配置名称>?projectKey=<项目标识>&type=<环境配置的类型>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
type | 环境配置的类型,可选值如下:ConfigMap Ingress Secret PVC | string | 是 |
返回示例
手动输入的环境配置示例
{
"configMap_detail": { // configMap环境配置资源详情,其他资源类型此处的key为:ingress_detail、secret_detail、pvc_detail
"name": "istio-ca-root-cert", # 环境配置的名称
"common_env_cfg_type": "ConfigMap", # 环境配置的类型
"created_time": 1686225615, # 环境配置的创建时间,Unix 时间戳格式
"env_key": "dev", # 环境标识
"product_key": "simple-demo", # 项目标识
"yaml_data": ".......", # 环境配置的 YAML 内容,string 格式
"source_detail": { # 代码库配置,环境配置是从代码库导入时该字段有信息
"git_repo_config": {
"codehost_key": "kr-test", # 代码源标识
"namespace": "kr-test-org1", # 组织名/用户名
"owner": "kr-test-org1", # 代码库拥有者
"repo": "config-data", # 代码库
"branch": "main", # 代码分支
},
"load_path": "cm.yaml", # 文件路径
"auto_sync": true # 自动同步开关
}
}
}
更新环境配置
适用于 K8s YAML 项目。
请求
PUT /openapi/environments/envcfgs?projectKey=<项目标识>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
name | 要被更新的配置名称 | string | 是 |
env_key | 环境标识 | string | 是 |
common_env_cfg_type | 环境配置的类型,可选值如下:Secret、ConfigMap、PVC、Ingress | string | 是 |
yaml_data | 配置的 YAML 内容 | string | 是 |
Body 参数示例
点击查看
{
"name":"game-demo",
"env_key":"dev",
"common_env_cfg_type":"ConfigMap",
"yaml_data": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: game-demo\ndata:\n player_initial_lives: \"3\"\n ui_properties_file_name: \"user-interface.properties\"\n\n game.properties: |\n enemy.types=aliens,monsters\n player.maximum-lives=25 \n user-interface.properties: |\n color.good=purple\n color.bad=yellow\n allow.textmode=true "
}
返回
{
"message": "success"
}
删除环境配置
适用于 K8s YAML 项目。
测试环境
请求
DELETE /openapi/environments/<环境标识>/envcfg/<环境配置名称>?projectKey=<项目标识>&type=<环境配置的类型>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
type | 环境配置的类型,可选值如下:ConfigMap Ingress Secret PVC | string | 是 |
返回
{
"message": 200
}
生产环境
请求
DELETE /openapi/environments/production/<环境标识>/envcfg/<环境配置名称>?projectKey=<项目标识>&type=<环境配置的类型>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
type | 环境配置的类型,可选值如下:ConfigMap Ingress Secret PVC | string | 是 |
返回
{
"message": 200
}
调整服务实例副本数
请求
POST /openapi/environments/scale
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
project_key | 项目标识 | string | 是 |
env_key | 环境名称 | string | 是 |
workload_name | 服务实例名称 | string | 是 |
workload_type | 服务实例类型,可选项:Deployment 、StatefulSet | string | 是 |
target_replicas | 目标副本数量 | int | 是 |
Body 参数示例
调整 microservice-demo
项目,dev
环境的 backend
服务副本数为 3:
{
"project_key": "microservice-demo",
"env_key": "dev",
"workload_name": "backend",
"workload_type": "Deployment",
"target_replicas": 3
}
返回
{
"message": "success"
}
重启服务实例
测试环境
请求
POST /openapi/environments/<环境标识>/service/<服务名称>/restart?projectKey=<项目标识>
返回
{
"message": "success"
}
生产环境
请求
POST /openapi/environments/production/<环境标识>/service/<服务名称>/restart?projectKey=<项目标识>
返回
{
"message": "success"
}
更新镜像
更新 Deployment 镜像
请求
POST /openapi/environments/image/deployment/<环境标识>
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
product_name | 项目标识 | string | 是 |
env_name | 环境名称 | string | 是 |
service_name | 服务名称 | string | 是 |
name | Deployment名称 | string | 是 |
container_name | 容器名称 | string | 是 |
image | 镜像 | string | 是 |
Body 参数示例
{
"product_name":"patrick-dev1-k8s-1",
"service_name":"service1",
"container_name":"service1",
"name":"service1",
"image":"koderover.tencentcloudcr.com/test/service1:20231116105254-6-main",
"env_name":"dev2"
}
返回
{
"message": "success"
}
更新 Statefulset 镜像
请求
POST /openapi/environments/image/statefulset/<环境标识>
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
product_name | 项目标识 | string | 是 |
env_name | 环境名称 | string | 是 |
service_name | 服务名称 | string | 是 |
name | Deployment名称 | string | 是 |
container_name | 容器名称 | string | 是 |
image | 镜像 | string | 是 |
Body 参数示例
{
"product_name":"patrick-dev1-k8s-1",
"service_name":"service1",
"container_name":"service1",
"name":"service1",
"image":"koderover.tencentcloudcr.com/test/service1:20231116105254-6-main",
"env_name":"dev2"
}
返回
{
"message": "success"
}
更新 Cronjob 镜像
请求
POST /openapi/environments/image/cronjob/<环境标识>
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
product_name | 项目标识 | string | 是 |
env_name | 环境名称 | string | 是 |
service_name | 服务名称 | string | 是 |
name | Deployment名称 | string | 是 |
container_name | 容器名称 | string | 是 |
image | 镜像 | string | 是 |
Body 参数示例
{
"product_name":"patrick-dev1-k8s-1",
"service_name":"service1",
"container_name":"service1",
"name":"service1",
"image":"koderover.tencentcloudcr.com/test/service1:20231116105254-6-main",
"env_name":"dev2"
}
返回
{
"message": "success"
}
列出事件
请求
GET /openapi/environments/kube/events
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
envName | 环境名称 | string | 是 |
name | involvedObject名称 | string | 是 |
type | involvedObject类型 | string | 是 |
返回
点击查看
{
[
{
"reason": "ScalingReplicaSet",
"message": "Scaled up replica set service1-7cc994479d to 1",
"first_seen": 1707396095,
"last_seen": 1707396095,
"count": 1,
"type": "Normal"
},
{
"reason": "ScalingReplicaSet",
"message": "Scaled down replica set service1-67455dd499 to 0",
"first_seen": 1707396102,
"last_seen": 1707396102,
"count": 1,
"type": "Normal"
}
]
}
子环境
检查 Workload 的 K8S Service
请求
GET /openapi/environments/<环境标识>/check/workloads/k8sservices
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
返回
点击查看
["service2.Deployment","service1.Deployment"]
开启子环境
请求
POST /openapi/environments/<环境标识>/share/enable
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
返回
{
"message": "success"
}
关闭子环境
请求
DELETE /openapi/environments/<环境标识>/share/enable
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
返回
{
"message": "success"
}
检查子环境 Ready
请求
GET /openapi/environments/:name/check/sharenv/:op/ready
路径参数说明
参数名 | 类型 | 描述 | 是否必须 | 默认值 |
---|---|---|---|---|
name | string | 环境名称 | 是 | 无 |
op | string | 操作类型,可选”enable”或”disable” | 是 | 无 |
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
返回
点击查看
{
"is_ready": true,
"checks": {
"namespace_has_istio_label": false,
"virtualservice_deployed": false,
"pods_have_istio_proxy": false,
"workloads_ready": true,
"workloads_have_k8s_service": true
}
}
获取入口服务
请求
GET /openapi/environments/:name/share/portal/:serviceName
路径参数说明
参数名 | 类型 | 描述 | 是否必须 | 默认值 |
---|---|---|---|---|
name | string | 环境名称 | 是 | 无 |
serviceName | string | 服务名称 | 是 | 无 |
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
返回
点击查看
{
"default_gateway_address": "81.69.166.47",
"servers": [
{
"host": "zcms-a-b1.8slan.com",
"port_number": 80,
"port_protocol": "HTTP"
},
{
"host": "a.zicemoshi-helm-env-dev",
"port_number": 80,
"port_protocol": "HTTP"
}
]
}
设置入口服务
请求
POST /openapi/environments/:name/share/portal/:serviceName
路径参数说明
参数名 | 类型 | 描述 | 是否必须 | 默认值 |
---|---|---|---|---|
name | string | 环境名称 | 是 | 无 |
serviceName | string | 服务名称 | 是 | 无 |
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
Body 参数说明
类型 | 必填 |
---|---|
[]OpenAPISetPortalServiceRequest | 是 |
OpenAPISetPortalServiceRequest 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
host | 默认gateway地址,可能为ip或者域名 | string | 是 |
port_number | 端口号 | uint32 | 是 |
port_protocol | 端口协议,HTTP | string | 是 |
Body 示例
点击查看
[
{
"host": "zcms-a-b1.8slan.com",
"port_number": 80,
"port_protocol": "HTTP"
},
{
"host": "a.zicemoshi-helm-env-dev",
"port_number": 80,
"port_protocol": "HTTP"
}
]
返回
{
"message": "success"
}
查看环境服务详情
测试环境
请求
GET /openapi/environments/<环境标识>/services/<服务名称>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
workLoadtype | 可选值如下:StatefulSet Deployment CronJob | string | 是 |
返回示例
点击查看
{
"service_name": "service1",
"scales": [
{
"name": "service1",
"type": "Deployment",
"images": [
{
"name": "service1",
"image": "koderover.tencentcloudcr.com/test/service1:20231214162411",
"image_name": "service1"
}
],
"pods": [
{
"kind": "ReplicaSet",
"name": "service1-5b94c8f98f-hsqfl",
"status": "Running",
"age": "34d",
"createtime": 1704444315,
"ip": "10.200.2.76",
"labels": {
"app.kubernetes.io/instance": "service1",
"app.kubernetes.io/name": "yaml",
"pod-template-hash": "5b94c8f98f",
"s-product": "yaml",
"s-service": "service1"
},
"containers": [
{
"name": "service1",
"image": "koderover.tencentcloudcr.com/test/service1:20231214162411",
"restart_count": 0,
"status": "running",
"ready": true,
"ports": [
{
"containerPort": 20211,
"protocol": "TCP"
}
],
"message": "",
"reason": "",
"started_at": 1704444316
}
],
"node_name": "172.16.0.46",
"host_ip": "172.16.0.46",
"enable_debug_container": false,
"pod_ready": true,
"containers_ready": true,
"containers_message": ""
}
],
"replicas": 1,
"zadigx_release_type": "",
"zadigx_release_tag": ""
}
],
"ingress": [],
"service_endpoints": [
{
"name": "service1",
"age": "119d",
"labels": {
"app.kubernetes.io/instance": "service1",
"app.kubernetes.io/name": "yaml",
"s-product": "yaml",
"s-service": "service1"
},
"endpoints": [
{
"service_name": "service1",
"service_port": 20211,
"node_port": 30593
}
]
}
],
"cron_jobs": [],
"namespace": "yaml-env-dev",
"env_name": "dev",
"product_name": "yaml",
"group_name": ""
}
生产环境
请求
GET /openapi/environments/production/<环境标识>/services/<服务名称>
Query 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
projectKey | 项目标识 | string | 是 |
workLoadtype | 可选值如下:StatefulSet Deployment CronJob | string | 是 |
返回示例
点击查看
{
"service_name": "service1",
"scales": [
{
"name": "service1",
"type": "Deployment",
"images": [
{
"name": "service1",
"image": "koderover.tencentcloudcr.com/test/service1:20231214162411",
"image_name": "service1"
}
],
"pods": [
{
"kind": "ReplicaSet",
"name": "service1-5b94c8f98f-hsqfl",
"status": "Running",
"age": "34d",
"createtime": 1704444315,
"ip": "10.200.2.76",
"labels": {
"app.kubernetes.io/instance": "service1",
"app.kubernetes.io/name": "yaml",
"pod-template-hash": "5b94c8f98f",
"s-product": "yaml",
"s-service": "service1"
},
"containers": [
{
"name": "service1",
"image": "koderover.tencentcloudcr.com/test/service1:20231214162411",
"restart_count": 0,
"status": "running",
"ready": true,
"ports": [
{
"containerPort": 20211,
"protocol": "TCP"
}
],
"message": "",
"reason": "",
"started_at": 1704444316
}
],
"node_name": "172.16.0.46",
"host_ip": "172.16.0.46",
"enable_debug_container": false,
"pod_ready": true,
"containers_ready": true,
"containers_message": ""
}
],
"replicas": 1,
"zadigx_release_type": "",
"zadigx_release_tag": ""
}
],
"ingress": [],
"service_endpoints": [
{
"name": "service1",
"age": "119d",
"labels": {
"app.kubernetes.io/instance": "service1",
"app.kubernetes.io/name": "yaml",
"s-product": "yaml",
"s-service": "service1"
},
"endpoints": [
{
"service_name": "service1",
"service_port": 20211,
"node_port": 30593
}
]
}
],
"cron_jobs": [],
"namespace": "yaml-env-dev",
"env_name": "dev",
"product_name": "yaml",
"group_name": ""
}