Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions gitlab/resource_gitlab_project_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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))
}
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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))
}
Expand Down
10 changes: 10 additions & 0 deletions gitlab/resource_gitlab_project_cluster_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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,
Expand All @@ -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,
Expand Down Expand Up @@ -90,6 +93,7 @@ func TestAccGitlabProjectCluster_import(t *testing.T) {

type testAccGitlabProjectClusterExpectedAttributes struct {
Name string
Domain string
EnvironmentScope string
KubernetesApiURL string
KubernetesCACert string
Expand Down Expand Up @@ -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)
}
Expand Down Expand Up @@ -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)}"
Expand Down Expand Up @@ -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)}"
Expand Down
3 changes: 3 additions & 0 deletions website/docs/r/project_cluster.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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.
Expand Down