Преглед изворни кода

Move AWS IRSA e2e setup into managed suites

Signed-off-by: Moritz Johner <beller.moritz@googlemail.com>
Moritz Johner пре 2 месеци
родитељ
комит
1fae4a3db1

+ 32 - 0
e2e/suites/provider/cases/aws/parameterstore/parameterstore_managed.go

@@ -17,6 +17,7 @@ limitations under the License.
 package aws
 
 import (
+	"strings"
 
 	// nolint
 	. "github.com/onsi/ginkgo/v2"
@@ -34,6 +35,15 @@ var _ = Describe("[awsmanaged] IRSA via referenced service account", Label("aws"
 	f := framework.New("eso-aws-ps-managed")
 	prov := NewFromEnv(f)
 
+	BeforeEach(func() {
+		skipIfManagedIRSAEnvMissing(prov)
+		prov.SetupReferencedIRSAStore()
+	})
+
+	AfterEach(func() {
+		prov.TeardownReferencedIRSAStore()
+	})
+
 	// nolint
 	DescribeTable("sync secrets",
 		framework.TableFuncWithExternalSecret(f,
@@ -64,6 +74,8 @@ var _ = Describe("[awsmanaged] with mounted IRSA", Label("aws", "parameterstore"
 
 	// each test case gets its own ESO instance
 	BeforeEach(func() {
+		skipIfManagedIRSAEnvMissing(prov)
+		prov.SetupMountedIRSAStore()
 		f.Install(addon.NewESO(
 			addon.WithControllerClass(f.BaseName),
 			addon.WithServiceAccount(prov.ServiceAccountName),
@@ -74,6 +86,10 @@ var _ = Describe("[awsmanaged] with mounted IRSA", Label("aws", "parameterstore"
 		))
 	})
 
+	AfterEach(func() {
+		prov.TeardownMountedIRSAStore()
+	})
+
 	// nolint
 	DescribeTable("sync secrets",
 		framework.TableFuncWithExternalSecret(f,
@@ -95,3 +111,19 @@ var _ = Describe("[awsmanaged] with mounted IRSA", Label("aws", "parameterstore"
 		framework.Compose(awscommon.WithMountedIRSA, f, FindByTagWithPath, awscommon.UseMountedIRSAStore),
 	)
 })
+
+func skipIfManagedIRSAEnvMissing(prov *Provider) {
+	var missing []string
+	if prov.region == "" {
+		missing = append(missing, "AWS_REGION")
+	}
+	if prov.ServiceAccountName == "" {
+		missing = append(missing, "AWS_SA_NAME")
+	}
+	if prov.ServiceAccountNamespace == "" {
+		missing = append(missing, "AWS_SA_NAMESPACE")
+	}
+	if len(missing) > 0 {
+		Skip("missing AWS managed IRSA environment: " + strings.Join(missing, ", "))
+	}
+}

+ 0 - 7
e2e/suites/provider/cases/aws/parameterstore/provider.go

@@ -68,13 +68,6 @@ func NewProvider(f *framework.Framework, kid, sak, st, region, saName, saNamespa
 	BeforeEach(func() {
 		awscommon.SetupStaticStore(f, awscommon.AccessOpts{KID: kid, SAK: sak, ST: st, Region: region}, esv1.AWSServiceParameterStore)
 		awscommon.CreateReferentStaticStore(f, awscommon.AccessOpts{KID: kid, SAK: sak, ST: st, Region: region}, esv1.AWSServiceParameterStore)
-		prov.SetupReferencedIRSAStore()
-		prov.SetupMountedIRSAStore()
-	})
-
-	AfterEach(func() {
-		prov.TeardownReferencedIRSAStore()
-		prov.TeardownMountedIRSAStore()
 	})
 
 	return prov

+ 0 - 7
e2e/suites/provider/cases/aws/secretsmanager/provider.go

@@ -75,13 +75,6 @@ func NewProvider(f *framework.Framework, kid, sak, st, region, saName, saNamespa
 			esv1.AWSServiceSecretsManager,
 		)
 		awscommon.CreateReferentStaticStore(f, awscommon.AccessOpts{KID: kid, SAK: sak, ST: st, Region: region}, esv1.AWSServiceSecretsManager)
-		prov.SetupReferencedIRSAStore()
-		prov.SetupMountedIRSAStore()
-	})
-
-	AfterEach(func() {
-		prov.TeardownReferencedIRSAStore()
-		prov.TeardownMountedIRSAStore()
 	})
 
 	return prov

+ 15 - 0
e2e/suites/provider/cases/aws/secretsmanager/secretsmanager_managed.go

@@ -34,6 +34,15 @@ var _ = Describe("[awsmanaged] IRSA via referenced service account", Label("aws"
 	f := framework.New("eso-aws-managed")
 	prov := NewFromEnv(f)
 
+	BeforeEach(func() {
+		skipIfAWSManagedIRSAEnvMissing(loadAWSAccessConfigFromEnv())
+		prov.SetupReferencedIRSAStore()
+	})
+
+	AfterEach(func() {
+		prov.TeardownReferencedIRSAStore()
+	})
+
 	// nolint
 	DescribeTable("sync secretsmanager secrets",
 		framework.TableFuncWithExternalSecret(f,
@@ -64,6 +73,8 @@ var _ = Describe("[awsmanaged] with mounted IRSA", Label("aws", "secretsmanager"
 
 	// each test case gets its own ESO instance
 	BeforeEach(func() {
+		skipIfAWSManagedIRSAEnvMissing(loadAWSAccessConfigFromEnv())
+		prov.SetupMountedIRSAStore()
 		f.Install(addon.NewESO(
 			addon.WithControllerClass(f.BaseName),
 			addon.WithServiceAccount(prov.ServiceAccountName),
@@ -74,6 +85,10 @@ var _ = Describe("[awsmanaged] with mounted IRSA", Label("aws", "secretsmanager"
 		))
 	})
 
+	AfterEach(func() {
+		prov.TeardownMountedIRSAStore()
+	})
+
 	// nolint
 	DescribeTable("sync secretsmanager secrets",
 		framework.TableFuncWithExternalSecret(f,