Merge branch '59441-add-base-domain-to-cluster-api' into 'master'
Include cluster domain in Project Clusters API Closes #59441 See merge request gitlab-org/gitlab-ce!26735
This commit is contained in:
commit
8813447c6f
5 changed files with 21 additions and 3 deletions
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Add cluster domain to Project Cluster API
|
||||
merge_request: 26735
|
||||
author:
|
||||
type: other
|
|
@ -33,6 +33,7 @@ Example response:
|
|||
{
|
||||
"id":18,
|
||||
"name":"cluster-1",
|
||||
"domain":"example.com",
|
||||
"created_at":"2019-01-02T20:18:12.563Z",
|
||||
"provider_type":"user",
|
||||
"platform_type":"kubernetes",
|
||||
|
@ -90,6 +91,7 @@ Example response:
|
|||
{
|
||||
"id":18,
|
||||
"name":"cluster-1",
|
||||
"domain":"example.com",
|
||||
"created_at":"2019-01-02T20:18:12.563Z",
|
||||
"provider_type":"user",
|
||||
"platform_type":"kubernetes",
|
||||
|
@ -157,6 +159,7 @@ Parameters:
|
|||
| --------- | ---- | -------- | ----------- |
|
||||
| `id` | integer | yes | The ID of the project owned by the authenticated user |
|
||||
| `name` | String | yes | The name of the cluster |
|
||||
| `domain` | String | no | The [base domain](../user/project/clusters/index.md#base_domain) of the cluster |
|
||||
| `enabled` | Boolean | no | Determines if cluster is active or not, defaults to true |
|
||||
| `platform_kubernetes_attributes[api_url]` | String | yes | The URL to access the Kubernetes API |
|
||||
| `platform_kubernetes_attributes[token]` | String | yes | The token to authenticate against Kubernetes |
|
||||
|
@ -247,6 +250,7 @@ Parameters:
|
|||
| `id` | integer | yes | The ID of the project owned by the authenticated user |
|
||||
| `cluster_id` | integer | yes | The ID of the cluster |
|
||||
| `name` | String | no | The name of the cluster |
|
||||
| `domain` | String | no | The [base domain](../user/project/clusters/index.md#base_domain) of the cluster |
|
||||
| `platform_kubernetes_attributes[api_url]` | String | no | The URL to access the Kubernetes API |
|
||||
| `platform_kubernetes_attributes[token]` | String | no | The token to authenticate against Kubernetes |
|
||||
| `platform_kubernetes_attributes[ca_cert]` | String | no | TLS certificate (needed if API is using a self-signed TLS certificate |
|
||||
|
@ -262,7 +266,7 @@ Example request:
|
|||
```bash
|
||||
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","api_url":"https://new-api-url.com"}'
|
||||
-X PUT --data '{"name":"new-cluster-name","domain":"new-domain.com","api_url":"https://new-api-url.com"}'
|
||||
```
|
||||
|
||||
Example response:
|
||||
|
@ -271,6 +275,7 @@ Example response:
|
|||
{
|
||||
"id":24,
|
||||
"name":"new-cluster-name",
|
||||
"domain":"new-domain.com",
|
||||
"created_at":"2019-01-03T21:53:40.610Z",
|
||||
"provider_type":"user",
|
||||
"platform_type":"kubernetes",
|
||||
|
|
|
@ -1588,7 +1588,7 @@ module API
|
|||
end
|
||||
|
||||
class Cluster < Grape::Entity
|
||||
expose :id, :name, :created_at
|
||||
expose :id, :name, :created_at, :domain
|
||||
expose :provider_type, :platform_type, :environment_scope, :cluster_type
|
||||
expose :user, using: Entities::UserBasic
|
||||
expose :platform_kubernetes, using: Entities::Platform::Kubernetes
|
||||
|
|
|
@ -53,6 +53,7 @@ module API
|
|||
params do
|
||||
requires :name, type: String, desc: 'Cluster name'
|
||||
optional :enabled, type: Boolean, default: true, desc: 'Determines if cluster is active or not, defaults to true'
|
||||
optional :domain, type: String, desc: 'Cluster base domain'
|
||||
requires :platform_kubernetes_attributes, type: Hash, desc: %q(Platform Kubernetes data) do
|
||||
requires :api_url, type: String, allow_blank: false, desc: 'URL to access the Kubernetes API'
|
||||
requires :token, type: String, desc: 'Token to authenticate against Kubernetes'
|
||||
|
@ -83,6 +84,7 @@ module API
|
|||
params do
|
||||
requires :cluster_id, type: Integer, desc: 'The cluster ID'
|
||||
optional :name, type: String, desc: 'Cluster name'
|
||||
optional :domain, type: String, desc: 'Cluster base domain'
|
||||
optional :platform_kubernetes_attributes, type: Hash, desc: %q(Platform Kubernetes data) do
|
||||
optional :api_url, type: String, desc: 'URL to access the Kubernetes API'
|
||||
optional :token, type: String, desc: 'Token to authenticate against Kubernetes'
|
||||
|
|
|
@ -60,7 +60,7 @@ describe API::ProjectClusters do
|
|||
end
|
||||
|
||||
let(:cluster) do
|
||||
create(:cluster, :project, :provided_by_gcp,
|
||||
create(:cluster, :project, :provided_by_gcp, :with_domain,
|
||||
platform_kubernetes: platform_kubernetes,
|
||||
user: current_user,
|
||||
projects: [project])
|
||||
|
@ -88,6 +88,7 @@ describe API::ProjectClusters do
|
|||
expect(json_response['platform_type']).to eq('kubernetes')
|
||||
expect(json_response['environment_scope']).to eq('*')
|
||||
expect(json_response['cluster_type']).to eq('project_type')
|
||||
expect(json_response['domain']).to eq('example.com')
|
||||
end
|
||||
|
||||
it 'returns project information' do
|
||||
|
@ -187,6 +188,7 @@ describe API::ProjectClusters do
|
|||
let(:cluster_params) do
|
||||
{
|
||||
name: 'test-cluster',
|
||||
domain: 'domain.example.com',
|
||||
platform_kubernetes_attributes: platform_kubernetes_attributes
|
||||
}
|
||||
end
|
||||
|
@ -217,6 +219,7 @@ describe API::ProjectClusters do
|
|||
expect(cluster_result).to be_kubernetes
|
||||
expect(cluster_result.project).to eq(project)
|
||||
expect(cluster_result.name).to eq('test-cluster')
|
||||
expect(cluster_result.domain).to eq('domain.example.com')
|
||||
expect(platform_kubernetes.rbac?).to be_truthy
|
||||
expect(platform_kubernetes.api_url).to eq(api_url)
|
||||
expect(platform_kubernetes.namespace).to eq(namespace)
|
||||
|
@ -294,6 +297,7 @@ describe API::ProjectClusters do
|
|||
|
||||
let(:update_params) do
|
||||
{
|
||||
domain: 'new-domain.com',
|
||||
platform_kubernetes_attributes: platform_kubernetes_attributes
|
||||
}
|
||||
end
|
||||
|
@ -330,6 +334,7 @@ describe API::ProjectClusters do
|
|||
end
|
||||
|
||||
it 'should update cluster attributes' do
|
||||
expect(cluster.domain).to eq('new-domain.com')
|
||||
expect(cluster.platform_kubernetes.namespace).to eq('new-namespace')
|
||||
end
|
||||
end
|
||||
|
@ -342,6 +347,7 @@ describe API::ProjectClusters do
|
|||
end
|
||||
|
||||
it 'should not update cluster attributes' do
|
||||
expect(cluster.domain).not_to eq('new_domain.com')
|
||||
expect(cluster.platform_kubernetes.namespace).not_to eq('invalid_namespace')
|
||||
expect(cluster.kubernetes_namespace.namespace).not_to eq('invalid_namespace')
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue