diff --git a/gitlab/resource_gitlab_project_cluster.go b/gitlab/resource_gitlab_project_cluster.go index 0759fc67f..e30b3f8ee 100644 --- a/gitlab/resource_gitlab_project_cluster.go +++ b/gitlab/resource_gitlab_project_cluster.go @@ -40,6 +40,12 @@ func resourceGitlabProjectCluster() *schema.Resource { Default: true, ForceNew: true, }, + "managed": { + Type: schema.TypeBool, + Optional: true, + Default: true, + ForceNew: true, + }, "created_at": { Type: schema.TypeString, Computed: true, @@ -113,6 +119,7 @@ func resourceGitlabProjectClusterCreate(d *schema.ResourceData, meta interface{} options := &gitlab.AddClusterOptions{ Name: gitlab.String(d.Get("name").(string)), Enabled: gitlab.Bool(d.Get("enabled").(bool)), + Managed: gitlab.Bool(d.Get("managed").(bool)), PlatformKubernetes: &pk, } diff --git a/gitlab/resource_gitlab_project_cluster_test.go b/gitlab/resource_gitlab_project_cluster_test.go index 0fb839e3d..e5eebf9b7 100644 --- a/gitlab/resource_gitlab_project_cluster_test.go +++ b/gitlab/resource_gitlab_project_cluster_test.go @@ -21,7 +21,22 @@ func TestAccGitlabProjectCluster_basic(t *testing.T) { Steps: []resource.TestStep{ // Create a project and cluster with default options { - Config: testAccGitlabProjectClusterConfig(rInt), + Config: testAccGitlabProjectClusterConfig(rInt, true), + Check: resource.ComposeTestCheckFunc( + 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, + KubernetesAuthorizationType: "abac", + }), + ), + }, + // create an unmanaged cluster + { + Config: testAccGitlabProjectClusterConfig(rInt, false), Check: resource.ComposeTestCheckFunc( testAccCheckGitlabProjectClusterExists("gitlab_project_cluster.foo", &cluster), testAccCheckGitlabProjectClusterAttributes(&cluster, &testAccGitlabProjectClusterExpectedAttributes{ @@ -79,13 +94,13 @@ func TestAccGitlabProjectCluster_import(t *testing.T) { CheckDestroy: testAccCheckGitlabProjectClusterDestroy, Steps: []resource.TestStep{ { - Config: testAccGitlabProjectClusterConfig(rInt), + Config: testAccGitlabProjectClusterConfig(rInt, true), }, { ResourceName: "gitlab_project_cluster.foo", ImportState: true, ImportStateVerify: true, - ImportStateVerifyIgnore: []string{"enabled", "kubernetes_token"}, + ImportStateVerifyIgnore: []string{"enabled", "kubernetes_token", "managed"}, }, }, }) @@ -187,7 +202,12 @@ func testAccCheckGitlabProjectClusterAttributes(cluster *gitlab.ProjectCluster, } } -func testAccGitlabProjectClusterConfig(rInt int) string { +func testAccGitlabProjectClusterConfig(rInt int, managed bool) string { + m := "false" + if managed { + m = "true" + } + return fmt.Sprintf(` variable "cert" { default = <