服务
提示
本文所介绍的 OpenAPI 适用于 K8s YAML 服务。
获取服务列表
测试服务
请求
GET /openapi/service/yaml/services?projectKey=<项目标识>
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
projectKey | string | 项目标识 | 是 |
返回说明
参数名 | 类型 | 描述 |
---|---|---|
service_name | string | 服务名称 |
type | string | 服务类型,固定值 k8s |
containers | []Container | 服务组件列表 |
Container 参数说明
参数名 | 类型 | 描述 |
---|---|---|
name | string | 服务组件名称 |
image | string | 服务组件的镜像信息 |
image_name | string | 服务组件的镜像名称 |
返回示例
点击查看
{
"service": [
{
"service_name": "service-1",
"type": "k8s",
"containers": [
{
"name": "myapp-1",
"image": "koderover.tencentcloudcr.com/koderover-demo/myapp-1:v0.1__linux_amd64",
"image_name": "myapp-1"
}
]
}
]
}
生产服务
请求
GET /openapi/service/yaml/production/services?projectKey=<项目标识>
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
projectKey | string | 项目标识 | 是 |
返回说明
参数名 | 类型 | 描述 |
---|---|---|
service_name | string | 服务名称 |
type | string | 服务类型,固定值 k8s |
containers | []Container | 服务组件列表 |
Container
参数名 | 类型 | 描述 |
---|---|---|
name | string | 服务组件名称 |
image | string | 服务组件的镜像信息 |
image_name | string | 服务组件的镜像名称 |
返回示例
点击查看
[
{
"service_name": "service-1",
"type": "k8s",
"containers": [
{
"name": "myapp-1",
"image": "koderover.tencentcloudcr.com/koderover-demo/myapp-1:v0.1__linux_amd64",
"image_name": "myapp-1"
}
]
}
]
获取服务详情
测试服务
请求
GET /openapi/service/yaml/:serviceName?projectKey=<项目标识>
路径参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
serviceName | string | 服务名称 | 是 |
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
projectKey | string | 项目标识 | 是 |
返回说明
参数名 | 类型 | 描述 |
---|---|---|
service_name | string | 服务名称 |
created_by | string | 服务创建者 |
created_time | int | 服务创建时间 |
type | string | 服务类型,固定为 k8s |
containers | []Container | 服务组件列表 |
service_variable_kvs | []KeyVal | 服务变量列表 |
yaml | string | 服务配置的 YAML 内容 |
Container 参数说明
参数名 | 类型 | 描述 |
---|---|---|
name | string | 服务组件名称 |
image | string | 服务组件的镜像信息 |
image_name | string | 服务组件的镜像名称 |
KeyVal 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
key | 变量的键 | string | 是 |
value | 变量的值,若有嵌套值,使用 json 格式 | any | 是 |
type | 变量值的类型,有四种类型:bool、string、enum、yaml | string | 是 |
options | 变量可选值列表,当 type 为 enum 时该字段有意义 | []string | 否 |
desc | 变量描述信息 | String | 否 |
返回示例
点击查看
{
"service_name": "service2",
"type": "k8s",
"created_by": "admin",
"created_time": 1689660993,
"yaml": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: service2\n labels: \n app.kubernetes.io/name: ai-test-2\n app.kubernetes.io/instance: service2\n hello: test\nspec:\n selector:\n matchLabels:\n app.kubernetes.io/name: ai-test-2\n app.kubernetes.io/instance: service2\n replicas: 1\n template:\n metadata: \n labels:\n app.kubernetes.io/name: ai-test-2\n app.kubernetes.io/instance: service2\n hello: {{.world}}\n spec:\n containers:\n - name: service2\n image: koderover.******.com/koderover-demo/service2:latest\n imagePullPolicy: Always \n command:\n - /workspace/service2\n ports:\n - protocol: TCP\n containerPort: {{.port}}\n resources:\n limits:\n memory: {{.memoryLimit}}\n cpu: {{.cpuLimit}}\n---\napiVersion: v1\nkind: Service\nmetadata:\n name: service2\n labels:\n app.kubernetes.io/name: ai-test-2\n app.kubernetes.io/instance: service2\nspec:\n type: NodePort\n ports:\n - protocol: TCP\n port: {{.port}}\n targetPort: {{.port}}",
"containers": [
{
"name": "service2",
"image": "koderover.******.com/koderover-demo/service2:latest",
"image_name": "service2"
}
],
"service_variable_kvs": [
{
"key": "cpuLimit",
"value": "55m",
"type": "string",
"options": [],
"desc": ""
}
]
}
生产服务
请求
GET /openapi/service/yaml/production/:serviceName?projectKey=<项目标识>
路径参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
serviceName | string | 服务名称 | 是 |
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
projectKey | string | 项目标识 | 是 |
返回说明
参数名 | 类型 | 描述 |
---|---|---|
service_name | string | 服务名称 |
created_by | string | 服务创建者 |
created_time | int | 服务创建时间 |
type | string | 服务类型,固定为 k8s |
containers | []Container | 服务组件列表 |
service_variable_kvs | []KeyVal | 服务变量列表 |
yaml | string | 服务配置的 YAML 内容 |
Container 参数说明
参数名 | 类型 | 描述 |
---|---|---|
name | string | 服务组件名称 |
image | string | 服务组件的镜像信息 |
image_name | string | 服务组件的镜像名称 |
KeyVal 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
key | 变量的键 | string | 是 |
value | 变量的值,若有嵌套值,使用 json 格式 | any | 是 |
type | 变量值的类型,有四种类型:bool、string、enum、yaml | string | 是 |
options | 变量可选值列表,当 type 为 enum 时该字段有意义 | []string | 否 |
desc | 变量描述信息 | String | 否 |
返回示例
点击查看
{
"service_name": "service2",
"type": "k8s",
"created_by": "admin",
"created_time": 1689660993,
"yaml": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: service2\n labels: \n app.kubernetes.io/name: ai-test-2\n app.kubernetes.io/instance: service2\n hello: test\nspec:\n selector:\n matchLabels:\n app.kubernetes.io/name: ai-test-2\n app.kubernetes.io/instance: service2\n replicas: 1\n template:\n metadata: \n labels:\n app.kubernetes.io/name: ai-test-2\n app.kubernetes.io/instance: service2\n hello: {{.world}}\n spec:\n containers:\n - name: service2\n image: koderover.******.com/koderover-demo/service2:latest\n imagePullPolicy: Always \n command:\n - /workspace/service2\n ports:\n - protocol: TCP\n containerPort: {{.port}}\n resources:\n limits:\n memory: {{.memoryLimit}}\n cpu: {{.cpuLimit}}\n---\napiVersion: v1\nkind: Service\nmetadata:\n name: service2\n labels:\n app.kubernetes.io/name: ai-test-2\n app.kubernetes.io/instance: service2\nspec:\n type: NodePort\n ports:\n - protocol: TCP\n port: {{.port}}\n targetPort: {{.port}}",
"containers": [
{
"name": "service2",
"image": "koderover.******.com/koderover-demo/service2:latest",
"image_name": "service2"
}
],
"service_variable_kvs": [
{
"key": "cpuLimit",
"value": "55m",
"type": "string",
"options": [],
"desc": ""
}
]
}
使用模板创建服务
测试服务
请求
POST /openapi/service/template/load/yaml
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
service_name | 服务名称 | string | 是 |
project_key | 项目标识 | string | 是 |
template_name | K8s Yaml 模板名称 | string | 是 |
auto_sync | 自动同步开关 | bool | 否 |
variable_yaml | 模板中的变量信息 | []KeyVal | 否 |
KeyVal 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
key | 变量的键值 | string | 是 |
value | 变量的值,若有嵌套值,使用 json 格式 | any | 是 |
Body 参数示例
使用模板 microservice-template
为项目 demo
创建服务 service1
:
点击查看
{
"service_name": "service1",
"project_key":"demo",
"template_name": "microservice-template",
"auto_sync": true,
"variable_yaml": [
{
"key": "cpuLimit",
"value": "100m"
},
{
"key": "memoryLimit",
"value": "100Mi"
},
{
"key": "port",
"value": "20221"
}
]
}
返回
{
"message": "success"
}
生产服务
请求
POST /openapi/service/template/production/load/yaml
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
service_name | 服务名称 | string | 是 |
yaml | 服务的 YAML 内容 | string | 是 |
project_key | 项目标识 | string | 是 |
template_name | K8s Yaml 模板名称 | string | 是 |
auto_sync | 自动同步开关 | bool | 否 |
variable_yaml | 模板中的变量信息 | []KeyVal | 否 |
KeyVal 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
key | 变量的键值 | string | 是 |
value | 变量的值,若有嵌套值,使用 json 格式 | any | 是 |
Body 参数示例
使用模板 base-template 为项目 demo
创建服务 service1
:
点击查看
{
"service_name": "service1",
"production":true,
"project_key":"demo",
"template_name":"base-template",
"auto_sync":true,
"variable_yaml":[
{
"key":"cpuLimit",
"value":"15m"
}
]
}
返回
{
"message": "success"
}
手动输入创建服务
测试服务
请求
POST /openapi/service/yaml/raw?projectKey=<项目标识>
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
service_name | 服务名称 | string | 是 |
yaml | 服务的 YAML 内容 | string | 是 |
variable_yaml | yaml中的变量信息 | []KeyVal | 否 |
KeyVal 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
key | 变量的键 | string | 是 |
value | 变量的值,若有嵌套值,使用 json 格式 | any | 是 |
type | 变量值的类型,有四种类型:bool、string、enum、yaml | string | 是 |
options | 变量可选值列表,当 type 为 enum 时该字段有意义 | []string | 否 |
desc | 变量描述信息 | String | 否 |
Body 参数示例
点击查看
{
"service_name":"service-3",
"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.******.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: {{.cpu}}\n memory: 122Mi\n",
"variable_yaml":[
{
"key":"cpu",
"value":"12m",
"desc":"cpu值",
"type":"string"
}
]
}
返回
{
"message": "success"
}
生产服务
请求
POST /openapi/service/yaml/production/raw?projectKey=<项目标识>
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
service_name | 服务名称 | string | 是 |
yaml | 服务的 YAML 内容 | string | 是 |
variable_yaml | yaml中的变量信息 | []KeyVal | 否 |
KeyVal 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
key | 变量的键 | string | 是 |
value | 变量的值,若有嵌套值,使用 json 格式 | any | 是 |
type | 变量值的类型,有四种类型:bool、string、enum、yaml | string | 是 |
options | 变量可选值列表,当 type 为 enum 时该字段有意义 | []string | 否 |
desc | 变量描述信息 | String | 否 |
Body 参数示例
点击查看
{
"service_name":"service-3",
"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.******.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: {{.cpu}}\n memory: 122Mi\n",
"variable_yaml":[
{
"key":"cpu",
"value":"12m",
"desc":"cpu值",
"type":"string"
}
]
}
返回
{
"message": "success"
}
更新服务配置
测试服务
请求
PUT /openapi/service/yaml/:serviceName?projectKey=<project_name>
路径参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
serviceName | string | 服务名称 | 是 |
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
projectKey | string | 项目标识 | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
type | 服务类型,指定为 k8s | string | 是 |
yaml | 服务配置的 YAML 内容 | string | 是 |
Body 参数示例
点击查看
{
"type":"k8s",
"yaml":"apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: service1\n labels: \n app.kubernetes.io/name: demo\n app.kubernetes.io/instance: service1\nspec:\n selector:\n matchLabels:\n app.kubernetes.io/name: demo\n app.kubernetes.io/instance: service1\n replicas: 1\n template:\n metadata: \n labels:\n app.kubernetes.io/name: demo\n app.kubernetes.io/instance: service1\n spec:\n containers:\n - name: service1\n image: koderover.******.com/koderover-demo/service1:latest\n imagePullPolicy: Always \n command:\n - /workspace/service1\n ports:\n - protocol: TCP\n containerPort: {{.port}}\n resources:\n limits:\n memory: {{.memoryLimit}}\n cpu: {{.cpuLimit}}\n---\napiVersion: v1\nkind: Service\nmetadata:\n name: service1\n labels:\n app.kubernetes.io/name: yaml-poc\n app.kubernetes.io/instance: service1\nspec:\n type: NodePort\n ports:\n - protocol: TCP\n port: {{.port}}\n targetPort: {{.port}}\n",
}
返回
{
"message": "success"
}
生产服务
请求
PUT /openapi/service/yaml/production/:serviceName?projectKey=<project_name>
路径参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
serviceName | string | 服务名称 | 是 |
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
projectKey | string | 项目标识 | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
type | 服务类型,指定为 k8s | string | 是 |
yaml | 服务配置的 YAML 内容 | string | 是 |
Body 参数示例
点击查看
{
"type":"k8s",
"yaml":"apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: service1\n labels: \n app.kubernetes.io/name: demo\n app.kubernetes.io/instance: service1\nspec:\n selector:\n matchLabels:\n app.kubernetes.io/name: demo\n app.kubernetes.io/instance: service1\n replicas: 1\n template:\n metadata: \n labels:\n app.kubernetes.io/name: demo\n app.kubernetes.io/instance: service1\n spec:\n containers:\n - name: service1\n image: koderover.******.com/koderover-demo/service1:latest\n imagePullPolicy: Always \n command:\n - /workspace/service1\n ports:\n - protocol: TCP\n containerPort: {{.port}}\n resources:\n limits:\n memory: {{.memoryLimit}}\n cpu: {{.cpuLimit}}\n---\napiVersion: v1\nkind: Service\nmetadata:\n name: service1\n labels:\n app.kubernetes.io/name: yaml-poc\n app.kubernetes.io/instance: service1\nspec:\n type: NodePort\n ports:\n - protocol: TCP\n port: {{.port}}\n targetPort: {{.port}}\n",
}
返回
{
"message": "success"
}
更新服务变量
测试服务
请求
PUT /openapi/service/yaml/:serviceName/variable?projectKey=<projectKey>
路径参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
serviceName | string | 服务名称 | 是 |
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
projectKey | string | 项目标识 | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
service_variable_kvs | 服务变量列表 | []KeyVal | 是 |
KeyVal 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
key | 变量的键 | string | 是 |
value | 变量的值,若有嵌套值,使用 json 格式 | any | 是 |
type | 变量值的类型,有四种类型:bool、string、enum、yaml | string | 是 |
options | 变量可选值列表,当 type 为 enum 时该字段有意义 | []string | 否 |
desc | 变量描述信息 | String | 否 |
Body 参数示例
点击查看
{
"service_variable_kvs": [
{
"key":"cpu",
"value":"12m",
"type":"string",
"options":[],
"desc":""
}
]
}
返回
{
"message": "success"
}
生产服务
请求
PUT /openapi/service/yaml/production/:serviceName/variable?projectKey=<projectKey>
路径参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
serviceName | string | 服务名称 | 是 |
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
projectKey | string | 项目标识 | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
service_variable_kvs | 服务变量列表 | []KeyVal | 是 |
KeyVal 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
key | 变量的键 | string | 是 |
value | 变量的值,若有嵌套值,使用 json 格式 | any | 是 |
type | 变量值的类型,有四种类型:bool、string、enum、yaml | string | 是 |
options | 变量可选值列表,当 type 为 enum 时该字段有意义 | []string | 否 |
desc | 变量描述信息 | String | 否 |
Body 参数示例
点击查看
{
"service_variable_kvs": [
{
"key":"cpu",
"value":"12m",
"type":"string",
"options":[],
"desc":""
}
]
}
返回
{
"message": "success"
}
删除服务
测试服务
请求
DELETE /openapi/service/yaml/<服务名称>?projectKey=<项目标识>
返回
{
"message": "success"
}
生产服务
请求
DELETE /openapi/service/yaml/production/:serviceName?projectKey=<项目标识>
路径参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
serviceName | string | 服务名称 | 是 |
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
projectKey | string | 项目标识 | 是 |
返回
{
"message": "success"
}