diff --git a/.github/workflows/acctest.yml b/.github/workflows/acctest.yml index 4ccb4a61..f3eb538b 100644 --- a/.github/workflows/acctest.yml +++ b/.github/workflows/acctest.yml @@ -19,7 +19,7 @@ jobs: name: Run acceptance tests runs-on: ubuntu-latest env: - ACC_TEST_SERVICE_ACCOUNT: ${{ secrets.ACC_TEST_SERVICE_ACCOUNT }} + E2E_TEST_ORG_OAUTH: ${{ secrets.E2E_TEST_ORG_OAUTH }} GLOBAL_DEFAULT_API_SERVER: https://api.test.cloud.gcp.streamnative.dev GLOBAL_DEFAULT_AUDIENCE: https://api.test.cloud.gcp.streamnative.dev GLOBAL_DEFAULT_ISSUER: https://auth.test.cloud.gcp.streamnative.dev/ @@ -55,6 +55,6 @@ jobs: - name: Run Acceptance Tests for the Provider run: | - echo $ACC_TEST_SERVICE_ACCOUNT > $HOME/service_account.json + echo $E2E_TEST_ORG_OAUTH > $HOME/service_account.json export KEY_FILE_PATH=$HOME/service_account.json make testacc diff --git a/cloud/apikey_test.go b/cloud/apikey_test.go index 07f8f6d4..0a0b66d1 100644 --- a/cloud/apikey_test.go +++ b/cloud/apikey_test.go @@ -38,10 +38,9 @@ func TestApiKey(t *testing.T) { Steps: []resource.TestStep{ { Config: testResourceDataSourceApiKey( - "sndev", + orgId, apiKeyGeneratedName, - "shared-gcp-prod", - "streamnative", + cloudConnectionName, "us-central1", "rapid"), Check: resource.ComposeTestCheckFunc( testCheckApiKeyExists("streamnative_apikey.test-terraform-api-key"), @@ -111,7 +110,7 @@ func testCheckApiKeyExists(resourceName string) resource.TestCheckFunc { } } -func testResourceDataSourceApiKey(organization, name, poolName, poolNamespace, location, releaseChannel string) string { +func testResourceDataSourceApiKey(organization, name, cloudConnectionName, location, releaseChannel string) string { return fmt.Sprintf(` provider "streamnative" { } @@ -119,8 +118,7 @@ resource "streamnative_pulsar_instance" "test-api-key-pulsar-instance" { organization = "%s" name = "%s" availability_mode = "zonal" - pool_name = "%s" - pool_namespace = "%s" + cloud_connection_name = "%s" type = "dedicated" } resource "streamnative_pulsar_cluster" "test-api-key-pulsar-cluster" { @@ -170,5 +168,5 @@ data "streamnative_apikey" "test-terraform-api-key" { name = streamnative_apikey.test-terraform-api-key.name private_key = streamnative_apikey.test-terraform-api-key.private_key } -`, organization, name, poolName, poolNamespace, organization, name, name, location, releaseChannel, organization, name, name) +`, organization, name, cloudConnectionName, organization, name, name, location, releaseChannel, organization, name, name) } diff --git a/cloud/data_source_apikey.go b/cloud/data_source_apikey.go index 14fbf743..0cdab98d 100644 --- a/cloud/data_source_apikey.go +++ b/cloud/data_source_apikey.go @@ -18,11 +18,12 @@ import ( "context" "encoding/base64" "fmt" - "github.com/streamnative/cloud-api-server/pkg/apis/cloud/v1alpha1" "net/url" "os" "strings" + "github.com/streamnative/cloud-api-server/pkg/apis/cloud/v1alpha1" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/lestrrat-go/jwx/v2/jwa" diff --git a/cloud/provider_test.go b/cloud/provider_test.go index 970533cb..eb408e2f 100644 --- a/cloud/provider_test.go +++ b/cloud/provider_test.go @@ -25,6 +25,8 @@ var ( testAccProvider *schema.Provider testAccProviderFactories map[string]func() (*schema.Provider, error) ) +var orgId = "o-q77cp" +var cloudConnectionName = "terraform-provider-test-gcp" func init() { testAccProvider = Provider() diff --git a/cloud/pulsar_cluster_test.go b/cloud/pulsar_cluster_test.go index 1d3bce19..7fbbf740 100644 --- a/cloud/pulsar_cluster_test.go +++ b/cloud/pulsar_cluster_test.go @@ -40,10 +40,9 @@ func TestPulsarCluster(t *testing.T) { Steps: []resource.TestStep{ { Config: testResourceDataSourcePulsarCluster( - "sndev", + orgId, clusterGeneratedName, - "shared-gcp-prod", - "streamnative", + cloudConnectionName, "us-central1", "rapid"), Check: resource.ComposeTestCheckFunc( testCheckPulsarClusterExists("streamnative_pulsar_cluster.test-pulsar-cluster"), @@ -64,10 +63,9 @@ func TestPulsarClusterNoConfig(t *testing.T) { Steps: []resource.TestStep{ { Config: testResourceDataSourcePulsarClusterWithoutConfig( - "sndev", + orgId, clusterGeneratedName, - "shared-gcp-prod", - "streamnative", + cloudConnectionName, "us-central1", "rapid"), Check: resource.ComposeTestCheckFunc( testCheckPulsarClusterExists("streamnative_pulsar_cluster.test-pulsar-cluster"), @@ -150,10 +148,9 @@ func TestPulsarClusterConfigDrift(t *testing.T) { Steps: []resource.TestStep{ { Config: testResourceDataSourcePulsarCluster( - "sndev", + orgId, clusterGeneratedName, - "shared-gcp-prod", - "streamnative", + cloudConnectionName, "us-central1", "rapid"), Check: resource.ComposeTestCheckFunc( testCheckPulsarClusterExists("streamnative_pulsar_cluster.test-pulsar-cluster"), @@ -161,10 +158,9 @@ func TestPulsarClusterConfigDrift(t *testing.T) { }, { Config: testResourceDataSourcePulsarCluster( - "sndev", + orgId, clusterGeneratedName, - "shared-gcp-prod", - "streamnative", + cloudConnectionName, "us-central1", "rapid"), PlanOnly: true, ExpectNonEmptyPlan: false, @@ -184,10 +180,9 @@ func TestPulsarClusterNoConfigConfigDrift(t *testing.T) { Steps: []resource.TestStep{ { Config: testResourceDataSourcePulsarClusterWithoutConfig( - "sndev", + orgId, clusterGeneratedName, - "shared-gcp-prod", - "streamnative", + cloudConnectionName, "us-central1", "rapid"), Check: resource.ComposeTestCheckFunc( testCheckPulsarClusterExists("streamnative_pulsar_cluster.test-pulsar-cluster"), @@ -195,10 +190,9 @@ func TestPulsarClusterNoConfigConfigDrift(t *testing.T) { }, { Config: testResourceDataSourcePulsarClusterWithoutConfig( - "sndev", + orgId, clusterGeneratedName, - "shared-gcp-prod", - "streamnative", + cloudConnectionName, "us-central1", "rapid"), PlanOnly: true, ExpectNonEmptyPlan: false, @@ -207,7 +201,7 @@ func TestPulsarClusterNoConfigConfigDrift(t *testing.T) { }) } -func testResourceDataSourcePulsarCluster(organization, name, poolName, poolNamespace, location, releaseChannel string) string { +func testResourceDataSourcePulsarCluster(organization, name, cloudEnvironmentName, location, releaseChannel string) string { return fmt.Sprintf(` provider "streamnative" { } @@ -215,8 +209,7 @@ resource "streamnative_pulsar_instance" "test-pulsar-instance" { organization = "%s" name = "%s" availability_mode = "zonal" - pool_name = "%s" - pool_namespace = "%s" + cloud_connection_name = "%s" type = "dedicated" } resource "streamnative_pulsar_cluster" "test-pulsar-cluster" { @@ -249,10 +242,10 @@ data "streamnative_pulsar_cluster" "test-pulsar-cluster" { organization = streamnative_pulsar_cluster.test-pulsar-cluster.organization name = streamnative_pulsar_cluster.test-pulsar-cluster.name } -`, organization, name, poolName, poolNamespace, organization, name, name, location, releaseChannel) +`, organization, name, cloudEnvironmentName, organization, name, name, location, releaseChannel) } -func testResourceDataSourcePulsarClusterWithoutConfig(organization, name, poolName, poolNamespace, location, releaseChannel string) string { +func testResourceDataSourcePulsarClusterWithoutConfig(organization, name, cloudEnvironmentName, location, releaseChannel string) string { return fmt.Sprintf(` provider "streamnative" { } @@ -260,8 +253,7 @@ resource "streamnative_pulsar_instance" "test-pulsar-instance" { organization = "%s" name = "%s" availability_mode = "zonal" - pool_name = "%s" - pool_namespace = "%s" + cloud_connection_name = "%s" type = "dedicated" } resource "streamnative_pulsar_cluster" "test-pulsar-cluster" { @@ -277,5 +269,5 @@ data "streamnative_pulsar_cluster" "test-pulsar-cluster" { organization = streamnative_pulsar_cluster.test-pulsar-cluster.organization name = streamnative_pulsar_cluster.test-pulsar-cluster.name } -`, organization, name, poolName, poolNamespace, organization, name, name, location, releaseChannel) +`, organization, name, cloudEnvironmentName, organization, name, name, location, releaseChannel) } diff --git a/cloud/pulsar_instance_test.go b/cloud/pulsar_instance_test.go index 5629e5f1..4dd67ec5 100644 --- a/cloud/pulsar_instance_test.go +++ b/cloud/pulsar_instance_test.go @@ -37,11 +37,10 @@ func TestPulsarInstance(t *testing.T) { Steps: []resource.TestStep{ { Config: testResourceDataSourcePulsarInstance( - "sndev", + orgId, "terraform-test-pulsar-instance-b", "zonal", - "shared-gcp-prod", - "streamnative"), + cloudConnectionName), Check: resource.ComposeTestCheckFunc( testCheckPulsarInstanceExists("streamnative_pulsar_instance.test-pulsar-instance"), ), @@ -116,7 +115,7 @@ func testCheckPulsarInstanceExists(name string) resource.TestCheckFunc { } func testResourceDataSourcePulsarInstance( - organization string, name string, availabilityMode string, poolName string, poolNamespace string) string { + organization string, name string, availabilityMode string, cloudConnectionName string) string { return fmt.Sprintf(` provider "streamnative" { } @@ -124,13 +123,12 @@ resource "streamnative_pulsar_instance" "test-pulsar-instance" { organization = "%s" name = "%s" availability_mode = "%s" - pool_name = "%s" - pool_namespace = "%s" + cloud_connection_name = "%s" } data "streamnative_pulsar_instance" "test-pulsar-instance" { depends_on = [streamnative_pulsar_instance.test-pulsar-instance] name = streamnative_pulsar_instance.test-pulsar-instance.name organization = streamnative_pulsar_instance.test-pulsar-instance.organization } -`, organization, name, availabilityMode, poolName, poolNamespace) +`, organization, name, availabilityMode, cloudConnectionName) } diff --git a/cloud/resource_pulsar_cluster.go b/cloud/resource_pulsar_cluster.go index 4d1818d5..c99f20b0 100644 --- a/cloud/resource_pulsar_cluster.go +++ b/cloud/resource_pulsar_cluster.go @@ -49,9 +49,9 @@ func resourcePulsarCluster() *schema.Resource { // Auto generate the name, so we don't need to check the diff. return nil } - if diff.HasChanges([]string{"organization", "name", "instance_name", "location", "pool_member_name", "release_channel"}...) { + if diff.HasChanges([]string{"organization", "name", "instance_name", "location", "cloud_environment_name", "release_channel"}...) { return fmt.Errorf("ERROR_UPDATE_PULSAR_CLUSTER: " + - "The pulsar cluster organization, name, instance_name, location, pool_member_name does not support updates, please recreate it") + "The pulsar cluster organization, name, instance_name, location, cloud_environment_name does not support updates, please recreate it") } return nil }, @@ -93,10 +93,10 @@ func resourcePulsarCluster() *schema.Resource { Description: descriptions["location"], ValidateFunc: validateNotBlank, }, - "pool_member_name": { + "cloud_environment_name": { Type: schema.TypeString, Optional: true, - Description: descriptions["pool_member_name"], + Description: descriptions["cloud_environment_name"], ValidateFunc: validateNotBlank, }, "release_channel": { @@ -363,11 +363,11 @@ func resourcePulsarClusterCreate(ctx context.Context, d *schema.ResourceData, me name := d.Get("name").(string) displayName := d.Get("display_name").(string) instanceName := d.Get("instance_name").(string) - pool_member_name := d.Get("pool_member_name").(string) + cloudEnvironmentName := d.Get("cloud_environment_name").(string) location := d.Get("location").(string) - if pool_member_name == "" && location == "" { + if cloudEnvironmentName == "" && location == "" { return diag.FromErr(fmt.Errorf("ERROR_CREATE_PULSAR_CLUSTER: " + - "either pool_member_name or location must be provided")) + "either cloud_environment_name or location must be provided")) } releaseChannel := d.Get("release_channel").(string) bookieReplicas := int32(d.Get("bookie_replicas").(int)) @@ -396,17 +396,17 @@ func resourcePulsarClusterCreate(ctx context.Context, d *schema.ResourceData, me brokerMem := resource.NewQuantity(int64(computeUnit*8*1024*1024*1024), resource.DecimalSI) bookieMem := resource.NewQuantity(int64(storageUnit*8*1024*1024*1024), resource.DecimalSI) - if pool_member_name != "" { + if cloudEnvironmentName != "" { // only allow BYOC user to select specific pool member poolMember, err := clientSet.CloudV1alpha1(). PoolMembers(namespace). - Get(ctx, pool_member_name, metav1.GetOptions{}) + Get(ctx, cloudEnvironmentName, metav1.GetOptions{}) if err != nil { - return diag.FromErr(fmt.Errorf("ERROR_GET_POOL_MEMBER_ON_CREATE_PULSAR_CLUSTER: %w", err)) + return diag.FromErr(fmt.Errorf("ERROR_GET_CLOUD_ENVIRONMENT_ON_CREATE_PULSAR_CLUSTER: %w", err)) } if poolMember.Spec.PoolName != pulsarInstance.Spec.PoolRef.Name { return diag.FromErr(fmt.Errorf("ERROR_CREATE_PULSAR_CLUSTER: " + - "the pool member does not belong to the pool which pulsar instance is attached")) + "the cloud environment does not belong to the cloud connection that pulsar instance is attached to")) } } @@ -487,9 +487,9 @@ func resourcePulsarClusterCreate(ctx context.Context, d *schema.ResourceData, me if !ursaEnabled && !pulsarInstance.IsServerless() { pulsarCluster.Spec.BookKeeper = bookkeeper } - if pool_member_name != "" { + if cloudEnvironmentName != "" { pulsarCluster.Spec.PoolMemberRef = cloudv1alpha1.PoolMemberReference{ - Name: pool_member_name, + Name: cloudEnvironmentName, Namespace: namespace, } } else { diff --git a/cloud/resource_pulsar_gateway.go b/cloud/resource_pulsar_gateway.go index dd84e40c..23c5f4bd 100644 --- a/cloud/resource_pulsar_gateway.go +++ b/cloud/resource_pulsar_gateway.go @@ -82,10 +82,10 @@ func resourcePulsarGateway() *schema.Resource { Description: descriptions["gateway_access"], ValidateFunc: validation.StringInSlice([]string{"public", "private"}, false), }, - "pool_member_name": { + "cloud_environment_name": { Type: schema.TypeString, Required: true, - Description: descriptions["pool_member_name"], + Description: descriptions["cloud_environment_name"], ValidateFunc: validateNotBlank, }, "private_service": { @@ -123,16 +123,16 @@ func resourcePulsarGatewayCreate(ctx context.Context, d *schema.ResourceData, me namespace := d.Get("organization").(string) name := d.Get("name").(string) access := d.Get("access").(string) - poolMemberName := d.Get("pool_member_name").(string) + cloudEnvironmentName := d.Get("cloud_environment_name").(string) waitForCompletion := d.Get("wait_for_completion").(bool) clientSet, err := getClientSet(getFactoryFromMeta(meta)) if err != nil { return diag.FromErr(fmt.Errorf("ERROR_INIT_CLIENT_ON_PULSAR_GATEWAY: %w", err)) } - _, err = clientSet.CloudV1alpha1().PoolMembers(namespace).Get(ctx, poolMemberName, metav1.GetOptions{}) + _, err = clientSet.CloudV1alpha1().PoolMembers(namespace).Get(ctx, cloudEnvironmentName, metav1.GetOptions{}) if err != nil { - return diag.FromErr(fmt.Errorf("ERROR_GET_POOL_MEMBER_ON_CREATE_PULSAR_GATEWAY: %w", err)) + return diag.FromErr(fmt.Errorf("ERROR_GET_CLOUD_ENVIRONMENT_ON_CREATE_PULSAR_GATEWAY: %w", err)) } pulsarGateway := &cloudv1alpha1.PulsarGateway{ TypeMeta: metav1.TypeMeta{ @@ -149,7 +149,7 @@ func resourcePulsarGatewayCreate(ctx context.Context, d *schema.ResourceData, me }, PoolMemberRef: cloudv1alpha1.PoolMemberReference{ Namespace: namespace, - Name: poolMemberName, + Name: cloudEnvironmentName, }, }, } diff --git a/cloud/resource_pulsar_instance.go b/cloud/resource_pulsar_instance.go index 70be22dd..7bb7cf95 100644 --- a/cloud/resource_pulsar_instance.go +++ b/cloud/resource_pulsar_instance.go @@ -45,8 +45,7 @@ func resourcePulsarInstance() *schema.Resource { if diff.HasChange("name") || diff.HasChanges("organization") || diff.HasChanges("availability_mode") || - diff.HasChanges("pool_name") || - diff.HasChanges("pool_namespace") { + diff.HasChanges("cloud_connection_name") { return fmt.Errorf("ERROR_UPDATE_PULSAR_INSTANCE: " + "The pulsar instance does not support updates, please recreate it") } @@ -87,17 +86,10 @@ func resourcePulsarInstance() *schema.Resource { Description: descriptions["availability-mode"], ForceNew: true, }, - "pool_name": { + "cloud_connection_name": { Type: schema.TypeString, Required: true, - Description: descriptions["pool_name"], - ValidateFunc: validateNotBlank, - ForceNew: true, - }, - "pool_namespace": { - Type: schema.TypeString, - Required: true, - Description: descriptions["pool_namespace"], + Description: descriptions["cloud_connection_name"], ValidateFunc: validateNotBlank, ForceNew: true, }, @@ -128,8 +120,7 @@ func resourcePulsarInstanceCreate(ctx context.Context, d *schema.ResourceData, m namespace := d.Get("organization").(string) name := d.Get("name").(string) availabilityMode := d.Get("availability_mode").(string) - poolName := d.Get("pool_name").(string) - poolNamespace := d.Get("pool_namespace").(string) + cloudConnectionName := d.Get("cloud_connection_name").(string) instanceType := d.Get("type").(string) instanceEngine := d.Get("engine").(string) clientSet, err := getClientSet(getFactoryFromMeta(meta)) @@ -137,14 +128,14 @@ func resourcePulsarInstanceCreate(ctx context.Context, d *schema.ResourceData, m return diag.FromErr(fmt.Errorf("ERROR_INIT_CLIENT_ON_PULSAR_INSTANCE: %w", err)) } poolRef := &cloudv1alpha1.PoolRef{ - Namespace: poolNamespace, - Name: poolName, + Namespace: namespace, + Name: cloudConnectionName, } poolOption, err := clientSet.CloudV1alpha1(). PoolOptions(namespace). - Get(ctx, fmt.Sprintf("%s-%s", poolNamespace, poolName), metav1.GetOptions{}) + Get(ctx, fmt.Sprintf("%s-%s", namespace, cloudConnectionName), metav1.GetOptions{}) if err != nil { - return diag.FromErr(fmt.Errorf("ERROR_GET_POOL_OPTION: %w", err)) + return diag.FromErr(fmt.Errorf("ERROR_GET_CLOUD_CONNECTION_OPTION: %w in namespace %s", err, namespace)) } if instanceType == "" { if poolOption.Spec.DeploymentType == cloudv1alpha1.PoolDeploymentTypeHosted { diff --git a/cloud/resource_service_account_binding.go b/cloud/resource_service_account_binding.go index 06da5062..9a78038b 100644 --- a/cloud/resource_service_account_binding.go +++ b/cloud/resource_service_account_binding.go @@ -44,8 +44,7 @@ func resourceServiceAccountBinding() *schema.Resource { } if diff.HasChange("name") || diff.HasChanges("organization") || - diff.HasChanges("pool_member_name") || - diff.HasChanges("pool_member_namespace") || + diff.HasChanges("cloud_environment_name") || diff.HasChanges("service_account_name") { return fmt.Errorf("ERROR_UPDATE_SERVICE_ACCOUNT_BINDING: " + "The service account binding does not support updates, please recreate it") @@ -87,15 +86,9 @@ func resourceServiceAccountBinding() *schema.Resource { Optional: true, Description: descriptions["cluster_name"], }, - "pool_member_name": { + "cloud_environment_name": { Type: schema.TypeString, - Description: descriptions["pool_member_name"], - Computed: true, - Optional: true, - }, - "pool_member_namespace": { - Type: schema.TypeString, - Description: descriptions["pool_member_namespace"], + Description: descriptions["cloud_environment_name"], Computed: true, Optional: true, }, @@ -107,11 +100,10 @@ func resourceServiceAccountBindingCreate(ctx context.Context, d *schema.Resource namespace := d.Get("organization").(string) serviceAccountName := d.Get("service_account_name").(string) clusterName := d.Get("cluster_name").(string) - poolMemberName := d.Get("pool_member_name").(string) - poolMemberNamespace := d.Get("pool_member_namespace").(string) - if poolMemberName == "" && poolMemberNamespace == "" && clusterName == "" { + cloudEnvironmentName := d.Get("cloud_environment_name").(string) + if cloudEnvironmentName == "" && clusterName == "" { return diag.FromErr(fmt.Errorf("ERROR_CREATE_SERVICE_ACCOUNT_BINDING: " + - "either (pool_member_name & pool_member_namespace) or cluster_name must be provided")) + "either cloud_environment_name or cluster_name must be provided")) } clientSet, err := getClientSet(getFactoryFromMeta(meta)) @@ -119,17 +111,17 @@ func resourceServiceAccountBindingCreate(ctx context.Context, d *schema.Resource return diag.FromErr(fmt.Errorf("ERROR_INIT_CLIENT_ON_CREATE_SERVICE_ACCOUNT_BINDING: %w", err)) } + name := fmt.Sprintf("%s.%s.%s", serviceAccountName, namespace, cloudEnvironmentName) + if clusterName != "" { pulsarCluster, err := clientSet.CloudV1alpha1().PulsarClusters(namespace).Get(ctx, clusterName, metav1.GetOptions{}) if err != nil { return diag.FromErr(fmt.Errorf("ERROR_READ_PULSAR_CLUSTER: %w", err)) } - poolMemberNamespace = pulsarCluster.Spec.PoolMemberRef.Namespace - poolMemberName = pulsarCluster.Spec.PoolMemberRef.Name + name = fmt.Sprintf("%s.%s.%s", serviceAccountName, pulsarCluster.Spec.PoolMemberRef.Namespace, pulsarCluster.Spec.PoolMemberRef.Name) } - name := fmt.Sprintf("%s.%s.%s", serviceAccountName, poolMemberNamespace, poolMemberName) sab := &v1alpha1.ServiceAccountBinding{ TypeMeta: metav1.TypeMeta{ Kind: "ServiceAccount", @@ -142,8 +134,8 @@ func resourceServiceAccountBindingCreate(ctx context.Context, d *schema.Resource Spec: v1alpha1.ServiceAccountBindingSpec{ ServiceAccountName: serviceAccountName, PoolMemberRef: v1alpha1.PoolMemberReference{ - Name: poolMemberName, - Namespace: poolMemberNamespace, + Name: cloudEnvironmentName, + Namespace: namespace, }, }, } @@ -186,8 +178,7 @@ func resourceServiceAccountBindingRead(ctx context.Context, d *schema.ResourceDa _ = d.Set("name", serviceAccountBinding.Name) _ = d.Set("organization", serviceAccountBinding.Namespace) _ = d.Set("service_account_name", serviceAccountBinding.Spec.ServiceAccountName) - _ = d.Set("pool_member_name", serviceAccountBinding.Spec.PoolMemberRef.Name) - _ = d.Set("pool_member_namespace", serviceAccountBinding.Spec.PoolMemberRef.Namespace) + _ = d.Set("cloud_environment_name", serviceAccountBinding.Spec.PoolMemberRef.Name) d.SetId(fmt.Sprintf("%s/%s", serviceAccountBinding.Namespace, serviceAccountBinding.Name)) return nil diff --git a/cloud/rolebinding_test.go b/cloud/rolebinding_test.go index 9429b77d..7477f634 100644 --- a/cloud/rolebinding_test.go +++ b/cloud/rolebinding_test.go @@ -3,6 +3,10 @@ package cloud import ( "context" "fmt" + "strings" + "testing" + "time" + "github.com/google/uuid" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" @@ -11,9 +15,6 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/utils/pointer" - "strings" - "testing" - "time" ) func TestPredefinedBinding(t *testing.T) { @@ -57,7 +58,7 @@ provider "streamnative" { } resource "streamnative_rolebinding" "rolebinding_demo" { - organization = "o-y8z75" + organization = "o-q77cp" name = "%s" cluster_role_name = "metrics-viewer" service_account_names = ["%s"] diff --git a/cloud/service_account_test.go b/cloud/service_account_test.go index 07f3103d..c07dde7e 100644 --- a/cloud/service_account_test.go +++ b/cloud/service_account_test.go @@ -37,7 +37,7 @@ func TestServiceAccount(t *testing.T) { Steps: []resource.TestStep{ { Config: testResourceDataSourceServiceAccount( - "sndev", "terraform-test-service-account-b", true), + orgId, "terraform-test-service-account-b", true), Check: resource.ComposeTestCheckFunc( testCheckServiceAccountExists("streamnative_service_account.test-service-account"), ), @@ -58,7 +58,7 @@ func TestServiceAccountRemovedExternally(t *testing.T) { Steps: []resource.TestStep{ { Config: testResourceDataSourceServiceAccount( - "sndev", "terraform-test-service-account-remove", true), + orgId, "terraform-test-service-account-remove", true), Check: resource.ComposeTestCheckFunc( testCheckServiceAccountExists("streamnative_service_account.test-service-account"), ), @@ -71,14 +71,14 @@ func TestServiceAccountRemovedExternally(t *testing.T) { t.Fatal(err) } err = clientSet.CloudV1alpha1(). - ServiceAccounts("sndev"). + ServiceAccounts(orgId). Delete(context.Background(), "terraform-test-service-account-remove", metav1.DeleteOptions{}) if err != nil { t.Fatal(err) } }, Config: testResourceDataSourceServiceAccount( - "sndev", "terraform-test-service-account-remove", true), + orgId, "terraform-test-service-account-remove", true), PlanOnly: true, ExpectNonEmptyPlan: true, },