From 3056a855bf0bbd435378ae8d3f22b34df9ea87d1 Mon Sep 17 00:00:00 2001 From: Matej Velikonja Date: Wed, 8 May 2019 09:55:24 +0200 Subject: [PATCH] add domain to project cluster --- gitlab/resource_gitlab_project_cluster.go | 13 +++++++++++++ gitlab/resource_gitlab_project_cluster_test.go | 10 ++++++++++ website/docs/r/project_cluster.html.markdown | 3 +++ 3 files changed, 26 insertions(+) diff --git a/gitlab/resource_gitlab_project_cluster.go b/gitlab/resource_gitlab_project_cluster.go index af6443e76..f229758fd 100644 --- a/gitlab/resource_gitlab_project_cluster.go +++ b/gitlab/resource_gitlab_project_cluster.go @@ -30,6 +30,10 @@ func resourceGitlabProjectCluster() *schema.Resource { Type: schema.TypeString, Required: true, }, + "domain": { + Type: schema.TypeString, + Optional: true, + }, "enabled": { Type: schema.TypeBool, Optional: true, @@ -112,6 +116,10 @@ func resourceGitlabProjectClusterCreate(d *schema.ResourceData, meta interface{} PlatformKubernetes: &pk, } + if v, ok := d.GetOk("domain"); ok { + options.Domain = gitlab.String(v.(string)) + } + if v, ok := d.GetOk("environment_scope"); ok { options.EnvironmentScope = gitlab.String(v.(string)) } @@ -153,6 +161,7 @@ func resourceGitlabProjectClusterRead(d *schema.ResourceData, meta interface{}) d.Set("project", project) d.Set("name", cluster.Name) + d.Set("domain", cluster.Domain) d.Set("created_at", cluster.CreatedAt.String()) d.Set("provider_type", cluster.ProviderType) d.Set("platform_type", cluster.PlatformType) @@ -181,6 +190,10 @@ func resourceGitlabProjectClusterUpdate(d *schema.ResourceData, meta interface{} options.Name = gitlab.String(d.Get("name").(string)) } + if d.HasChange("domain") { + options.Domain = gitlab.String(d.Get("domain").(string)) + } + if d.HasChange("environment_scope") { options.EnvironmentScope = gitlab.String(d.Get("environment_scope").(string)) } diff --git a/gitlab/resource_gitlab_project_cluster_test.go b/gitlab/resource_gitlab_project_cluster_test.go index 5df8e2faa..0fb839e3d 100644 --- a/gitlab/resource_gitlab_project_cluster_test.go +++ b/gitlab/resource_gitlab_project_cluster_test.go @@ -26,6 +26,7 @@ func TestAccGitlabProjectCluster_basic(t *testing.T) { testAccCheckGitlabProjectClusterExists("gitlab_project_cluster.foo", &cluster), testAccCheckGitlabProjectClusterAttributes(&cluster, &testAccGitlabProjectClusterExpectedAttributes{ Name: fmt.Sprintf("foo-cluster-%d", rInt), + Domain: "example.com", EnvironmentScope: "*", KubernetesApiURL: "https://123.123.123", KubernetesCACert: projectClusterFakeCert, @@ -40,6 +41,7 @@ func TestAccGitlabProjectCluster_basic(t *testing.T) { testAccCheckGitlabProjectClusterExists("gitlab_project_cluster.foo", &cluster), testAccCheckGitlabProjectClusterAttributes(&cluster, &testAccGitlabProjectClusterExpectedAttributes{ Name: fmt.Sprintf("foo-cluster-%d", rInt), + Domain: "example-new.com", EnvironmentScope: "*", KubernetesApiURL: "https://124.124.124", KubernetesCACert: projectClusterFakeCert, @@ -55,6 +57,7 @@ func TestAccGitlabProjectCluster_basic(t *testing.T) { testAccCheckGitlabProjectClusterExists("gitlab_project_cluster.foo", &cluster), testAccCheckGitlabProjectClusterAttributes(&cluster, &testAccGitlabProjectClusterExpectedAttributes{ Name: fmt.Sprintf("foo-cluster-%d", rInt), + Domain: "example-new.com", EnvironmentScope: "*", KubernetesApiURL: "https://124.124.124", KubernetesCACert: projectClusterFakeCert, @@ -90,6 +93,7 @@ func TestAccGitlabProjectCluster_import(t *testing.T) { type testAccGitlabProjectClusterExpectedAttributes struct { Name string + Domain string EnvironmentScope string KubernetesApiURL string KubernetesCACert string @@ -155,6 +159,10 @@ func testAccCheckGitlabProjectClusterAttributes(cluster *gitlab.ProjectCluster, return fmt.Errorf("got name %q; want %q", cluster.Name, want.Name) } + if cluster.Domain != want.Domain { + return fmt.Errorf("got domain %q; want %q", cluster.Domain, want.Domain) + } + if cluster.EnvironmentScope != want.EnvironmentScope { return fmt.Errorf("got environment scope %q; want %q", cluster.EnvironmentScope, want.EnvironmentScope) } @@ -199,6 +207,7 @@ resource "gitlab_project" "foo" { resource gitlab_project_cluster "foo" { project = "${gitlab_project.foo.id}" name = "foo-cluster-%d" + domain = "example.com" kubernetes_api_url = "https://123.123.123" kubernetes_token = "some-token" kubernetes_ca_cert = "${trimspace(var.cert)}" @@ -227,6 +236,7 @@ resource "gitlab_project" "foo" { resource gitlab_project_cluster "foo" { project = "${gitlab_project.foo.id}" name = "foo-cluster-%d" + domain = "example-new.com" kubernetes_api_url = "https://124.124.124" kubernetes_token = "some-token" kubernetes_ca_cert = "${trimspace(var.cert)}" diff --git a/website/docs/r/project_cluster.html.markdown b/website/docs/r/project_cluster.html.markdown index 5d038d0dc..db522f49c 100644 --- a/website/docs/r/project_cluster.html.markdown +++ b/website/docs/r/project_cluster.html.markdown @@ -23,6 +23,7 @@ resource "gitlab_project" "foo" { resource gitlab_project_cluster "bar" { project = "${gitlab_project.foo.id}" name = "bar-cluster" + domain = "example.com" enabled = true kubernetes_api_url = "https://124.124.124" kubernetes_token = "some-token" @@ -41,6 +42,8 @@ The following arguments are supported: * `name` - (Required, string) The name of cluster. +* `domain` - (Optional, string) The base domain of the cluster. + * `enabled` - (Optional, boolean) Determines if cluster is active or not. Defaults to `true`. * `kubernetes_api_url` - (Required, string) The URL to access the Kubernetes API.