Project clusters API

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

Project clusters API

在 GitLab 11.7 中引入 .

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

List project clusters

返回项目集群的列表.

GET /projects/:id/clusters 

Parameters:

Attribute Type Required Description
id integer yes 认证用户拥有的项目的 ID

请求示例:

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

响应示例:

[  {  "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":"project_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",  "namespace":"cluster-1-namespace",  "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 project cluster

获取单个项目集群.

GET /projects/:id/clusters/:cluster_id 

Parameters:

Attribute Type Required Description
id integer yes 认证用户拥有的项目的 ID
cluster_id integer yes 集群的 ID

请求示例:

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

响应示例:

{  "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":"project_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",  "namespace":"cluster-1-namespace",  "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"  },  "project":  {  "id":26,  "description":"",  "name":"project-with-clusters-api",  "name_with_namespace":"Administrator / project-with-clusters-api",  "path":"project-with-clusters-api",  "path_with_namespace":"root/project-with-clusters-api",  "created_at":"2019-01-02T20:13:32.600Z",  "default_branch":null,  "tag_list":[],  "ssh_url_to_repo":"ssh://gitlab.example.com/root/project-with-clusters-api.git",  "http_url_to_repo":"https://gitlab.example.com/root/project-with-clusters-api.git",  "web_url":"https://gitlab.example.com/root/project-with-clusters-api",  "readme_url":null,  "avatar_url":null,  "star_count":0,  "forks_count":0,  "last_activity_at":"2019-01-02T20:13:32.600Z",  "namespace":  {  "id":1,  "name":"root",  "path":"root",  "kind":"user",  "full_path":"root",  "parent_id":null  }  }  } 

Add existing cluster to project

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

POST /projects/:id/clusters/user 

Parameters:

Attribute Type Required Description
id integer yes 认证用户拥有的项目的 ID
name string yes 集群名称
domain string no 集群的基础域
management_project_id integer no 集群管理项目的 ID
enabled boolean no 确定集群是否处于活动状态,默认为 true
managed boolean no Determines if GitLab will manage namespaces and service accounts for this cluster, defaults to 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[namespace] string no 与项目相关的唯一名称空间
platform_kubernetes_attributes[authorization_type] string no 集群授权类型: rbacabacunknown_authorization . 默认为rbac .
environment_scope string no 集群的关联环境. 默认为*

请求示例:

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

响应示例:

{  "id":24,  "name":"cluster-5",  "created_at":"2019-01-03T21:53:40.610Z",  "provider_type":"user",  "platform_type":"kubernetes",  "environment_scope":"*",  "cluster_type":"project_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",  "namespace":"cluster-5-namespace",  "authorization_type":"rbac",  "ca_cert":"-----BEGIN CERTIFICATE-----\r\nhFiK1L61owwDQYJKoZIhvcNAQELBQAw\r\nLzEtMCsGA1UEAxMkZDA1YzQ1YjctNzdiMS00NDY0LThjNmEtMTQ0ZDJkZjM4ZDBj\r\nMB4XDTE4MTIyNzIwMDM1MVoXDTIzMTIyNjIxMDM1MVowLzEtMCsGA1UEAxMkZDA1\r\nYzQ1YjctNzdiMS00NDY0LThjNmEtMTQ0ZDJkZjM.......-----END CERTIFICATE-----"  },  "management_project":null,  "project":  {  "id":26,  "description":"",  "name":"project-with-clusters-api",  "name_with_namespace":"Administrator / project-with-clusters-api",  "path":"project-with-clusters-api",  "path_with_namespace":"root/project-with-clusters-api",  "created_at":"2019-01-02T20:13:32.600Z",  "default_branch":null,  "tag_list":[],  "ssh_url_to_repo":"ssh:://gitlab.example.com/root/project-with-clusters-api.git",  "http_url_to_repo":"https://gitlab.example.com/root/project-with-clusters-api.git",  "web_url":"https://gitlab.example.com/root/project-with-clusters-api",  "readme_url":null,  "avatar_url":null,  "star_count":0,  "forks_count":0,  "last_activity_at":"2019-01-02T20:13:32.600Z",  "namespace":  {  "id":1,  "name":"root",  "path":"root",  "kind":"user",  "full_path":"root",  "parent_id":null  }  }  } 

Edit project cluster

更新现有项目集群.

PUT /projects/:id/clusters/:cluster_id 

Parameters:

Attribute Type Required Description
id integer yes 认证用户拥有的项目的 ID
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 证书,则为必填.
platform_kubernetes_attributes[namespace] string no 与项目相关的唯一名称空间
environment_scope string no 集群的关联环境

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

请求示例:

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

响应示例:

{  "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":"project_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",  "namespace":"cluster-5-namespace",  "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"  },  "project":  {  "id":26,  "description":"",  "name":"project-with-clusters-api",  "name_with_namespace":"Administrator / project-with-clusters-api",  "path":"project-with-clusters-api",  "path_with_namespace":"root/project-with-clusters-api",  "created_at":"2019-01-02T20:13:32.600Z",  "default_branch":null,  "tag_list":[],  "ssh_url_to_repo":"ssh:://gitlab.example.com/root/project-with-clusters-api.git",  "http_url_to_repo":"https://gitlab.example.com/root/project-with-clusters-api.git",  "web_url":"https://gitlab.example.com/root/project-with-clusters-api",  "readme_url":null,  "avatar_url":null,  "star_count":0,  "forks_count":0,  "last_activity_at":"2019-01-02T20:13:32.600Z",  "namespace":  {  "id":1,  "name":"root",  "path":"root",  "kind":"user",  "full_path":"root",  "parent_id":null  }  }  } 

Delete project cluster

删除现有项目集群.

DELETE /projects/:id/clusters/:cluster_id 

Parameters:

Attribute Type Required Description
id integer yes 认证用户拥有的项目的 ID
cluster_id integer yes 集群的 ID

请求示例:

curl --request DELETE --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/projects/26/clusters/23" 
Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2021-03-27 13:48:25

results matching ""

    No results matching ""