Group clusters API

原文:https://docs.gitlab.com/ee/api/group_clusters.html

Group clusters API

在 GitLab 12.1 中引入 .

注意:组将至少需要用户具有维护者访问权限才能使用这些端点.

List group clusters

返回组集群的列表.

  1. GET /groups/:id/clusters

Parameters:

Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径

请求示例:

  1. curl --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/groups/26/clusters"

响应示例:

  1. [ { "id":18, "name":"cluster-1", "domain":"example.com", "created_at":"2019-01-02T20:18:12.563Z", "provider_type":"user", "platform_type":"kubernetes", "environment_scope":"*", "cluster_type":"group_type", "user": { "id":1, "name":"Administrator", "username":"root", "state":"active", "avatar_url":"https://www.gravatar.com/avatar/4249f4df72b..", "web_url":"https://gitlab.example.com/root" }, "platform_kubernetes": { "api_url":"https://104.197.68.152", "authorization_type":"rbac", "ca_cert":"-----BEGIN CERTIFICATE-----\r\nhFiK1L61owwDQYJKoZIhvcNAQELBQAw\r\nLzEtMCsGA1UEAxMkZDA1YzQ1YjctNzdiMS00NDY0LThjNmEtMTQ0ZDJkZjM4ZDBj\r\nMB4XDTE4MTIyNzIwMDM1MVoXDTIzMTIyNjIxMDM1MVowLzEtMCsGA1UEAxMkZDA1\r\nYzQ1YjctNzdiMS00NDY0LThjNmEtMTQ0ZDJkZjM.......-----END CERTIFICATE-----" }, "management_project": { "id":2, "description":null, "name":"project2", "name_with_namespace":"John Doe8 / project2", "path":"project2", "path_with_namespace":"namespace2/project2", "created_at":"2019-10-11T02:55:54.138Z" } }, { "id":19, "name":"cluster-2", ... } ]

Get a single group cluster

获取单个组集群.

  1. GET /groups/:id/clusters/:cluster_id

Parameters:

Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径
cluster_id integer yes 集群的 ID

请求示例:

  1. curl --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/groups/26/clusters/18"

响应示例:

  1. { "id":18, "name":"cluster-1", "domain":"example.com", "created_at":"2019-01-02T20:18:12.563Z", "provider_type":"user", "platform_type":"kubernetes", "environment_scope":"*", "cluster_type":"group_type", "user": { "id":1, "name":"Administrator", "username":"root", "state":"active", "avatar_url":"https://www.gravatar.com/avatar/4249f4df72b..", "web_url":"https://gitlab.example.com/root" }, "platform_kubernetes": { "api_url":"https://104.197.68.152", "authorization_type":"rbac", "ca_cert":"-----BEGIN CERTIFICATE-----\r\nhFiK1L61owwDQYJKoZIhvcNAQELBQAw\r\nLzEtMCsGA1UEAxMkZDA1YzQ1YjctNzdiMS00NDY0LThjNmEtMTQ0ZDJkZjM4ZDBj\r\nMB4XDTE4MTIyNzIwMDM1MVoXDTIzMTIyNjIxMDM1MVowLzEtMCsGA1UEAxMkZDA1\r\nYzQ1YjctNzdiMS00NDY0LThjNmEtMTQ0ZDJkZjM.......-----END CERTIFICATE-----" }, "management_project": { "id":2, "description":null, "name":"project2", "name_with_namespace":"John Doe8 / project2", "path":"project2", "path_with_namespace":"namespace2/project2", "created_at":"2019-10-11T02:55:54.138Z" }, "group": { "id":26, "name":"group-with-clusters-api", "web_url":"https://gitlab.example.com/group-with-clusters-api" } }

Add existing cluster to group

将现有的 Kubernetes 集群添加到组中.

  1. POST /groups/:id/clusters/user

Parameters:

Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径
name string yes 集群名称
domain string no 集群的基础域
management_project_id integer no 集群管理项目的 ID
enabled boolean no 确定集群是否处于活动状态,默认为 true
managed boolean no 确定 GitLab 是否将管理该集群的名称空间和服务帐户,默认为 true
platform_kubernetes_attributes[api_url] string yes 访问 Kubernetes API 的 URL
platform_kubernetes_attributes[token] string yes 针对 Kubernetes 进行身份验证的令牌
platform_kubernetes_attributes[ca_cert] string no TLS 证书. 如果 API 使用自签名 TLS 证书,则为必填.
platform_kubernetes_attributes[authorization_type] string no 集群授权类型: rbacabacunknown_authorization . 默认为rbac .
environment_scope string no 集群的关联环境. 默认为*

请求示例:

  1. curl --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/groups/26/clusters/user" \
  2. -H "Accept: application/json" \
  3. -H "Content-Type:application/json" \
  4. --request POST --data '{"name":"cluster-5", "platform_kubernetes_attributes":{"api_url":"https://35.111.51.20","token":"12345","ca_cert":"-----BEGIN CERTIFICATE-----\r\nhFiK1L61owwDQYJKoZIhvcNAQELBQAw\r\nLzEtMCsGA1UEAxMkZDA1YzQ1YjctNzdiMS00NDY0LThjNmEtMTQ0ZDJkZjM4ZDBj\r\nMB4XDTE4MTIyNzIwMDM1MVoXDTIzMTIyNjIxMDM1MVowLzEtMCsGA1UEAxMkZDA1\r\nYzQ1YjctNzdiMS00NDY0LThjNmEtMTQ0ZDJkZjM.......-----END CERTIFICATE-----"}}'

响应示例:

  1. { "id":24, "name":"cluster-5", "created_at":"2019-01-03T21:53:40.610Z", "provider_type":"user", "platform_type":"kubernetes", "environment_scope":"*", "cluster_type":"group_type", "user": { "id":1, "name":"Administrator", "username":"root", "state":"active", "avatar_url":"https://www.gravatar.com/avatar/4249f4df72b..", "web_url":"https://gitlab.example.com/root" }, "platform_kubernetes": { "api_url":"https://35.111.51.20", "authorization_type":"rbac", "ca_cert":"-----BEGIN CERTIFICATE-----\r\nhFiK1L61owwDQYJKoZIhvcNAQELBQAw\r\nLzEtMCsGA1UEAxMkZDA1YzQ1YjctNzdiMS00NDY0LThjNmEtMTQ0ZDJkZjM4ZDBj\r\nMB4XDTE4MTIyNzIwMDM1MVoXDTIzMTIyNjIxMDM1MVowLzEtMCsGA1UEAxMkZDA1\r\nYzQ1YjctNzdiMS00NDY0LThjNmEtMTQ0ZDJkZjM.......-----END CERTIFICATE-----" }, "management_project":null, "group": { "id":26, "name":"group-with-clusters-api", "web_url":"https://gitlab.example.com/root/group-with-clusters-api" } }

Edit group cluster

更新现有的组群集.

  1. PUT /groups/:id/clusters/:cluster_id

Parameters:

Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径
cluster_id integer yes 集群的 ID
name string no 集群名称
domain string no 集群的基础域
management_project_id integer no 集群管理项目的 ID
platform_kubernetes_attributes[api_url] string no 访问 Kubernetes API 的 URL
platform_kubernetes_attributes[token] string no 针对 Kubernetes 进行身份验证的令牌
platform_kubernetes_attributes[ca_cert] string no TLS 证书. 如果 API 使用自签名 TLS 证书,则为必填.
environment_scope string no 集群的关联环境

注意:仅通过“添加现有 Kubernetes 群集”选项或通过“将现有群集添加到组”端点添加群集时,才能更新nameapi_urlca_certtoken .

请求示例:

  1. curl --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/groups/26/clusters/24" \
  2. -H "Content-Type:application/json" \
  3. --request PUT --data '{"name":"new-cluster-name","domain":"new-domain.com","api_url":"https://new-api-url.com"}'

响应示例:

  1. { "id":24, "name":"new-cluster-name", "domain":"new-domain.com", "created_at":"2019-01-03T21:53:40.610Z", "provider_type":"user", "platform_type":"kubernetes", "environment_scope":"*", "cluster_type":"group_type", "user": { "id":1, "name":"Administrator", "username":"root", "state":"active", "avatar_url":"https://www.gravatar.com/avatar/4249f4df72b..", "web_url":"https://gitlab.example.com/root" }, "platform_kubernetes": { "api_url":"https://new-api-url.com", "authorization_type":"rbac", "ca_cert":null }, "management_project": { "id":2, "description":null, "name":"project2", "name_with_namespace":"John Doe8 / project2", "path":"project2", "path_with_namespace":"namespace2/project2", "created_at":"2019-10-11T02:55:54.138Z" }, "group": { "id":26, "name":"group-with-clusters-api", "web_url":"https://gitlab.example.com/group-with-clusters-api" } }

Delete group cluster

删除现有的组群集.

  1. DELETE /groups/:id/clusters/:cluster_id

Parameters:

Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径
cluster_id integer yes 集群的 ID

请求示例:

  1. curl --request DELETE --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/groups/26/clusters/23"