@@ -10,6 +10,7 @@ import (
1010 "time"
1111
1212 "github.com/aws/aws-sdk-go-v2/aws"
13+ "github.com/aws/aws-sdk-go-v2/aws/arn"
1314 "github.com/aws/aws-sdk-go-v2/config"
1415 "github.com/cert-manager/aws-privateca-issuer/pkg/api/v1beta1"
1516 clientV1beta1 "github.com/cert-manager/aws-privateca-issuer/pkg/clientset/v1beta1"
@@ -31,7 +32,7 @@ type TestContext struct {
3132 xaCfg aws.Config
3233 caArns map [string ]string
3334
34- region , partition , accessKey , secretKey , endEntityResourceShareArn , subordinateCaResourceShareArn , userName , policyArn string
35+ region , partition , accessKey , secretKey , endEntityResourceShareArn , subordinateCaResourceShareArn , userName , policyArn , roleToAssume string
3536}
3637
3738// These are variables specific to each test
@@ -111,7 +112,19 @@ func InitializeTestSuite(suiteCtx *godog.TestSuiteContext) {
111112 panic (cfgErr .Error ())
112113 }
113114
114- testContext .partition = getPartition (ctx , cfg )
115+ callerID := getCallerIdentity (ctx , cfg )
116+
117+ parsedArn , parseErr := arn .Parse (* callerID .Arn )
118+ if parseErr != nil {
119+ panic ("Failed to parse caller identity ARN: " + parseErr .Error ())
120+ }
121+
122+ testContext .partition = parsedArn .Partition
123+
124+ testContext .roleToAssume = fmt .Sprintf ("arn:%s:iam::%s:role/IssuerTestRole-test-us-east-1" , testContext .partition , * callerID .Account )
125+ if roleToAssumeOverride , exists := os .LookupEnv ("ROLE_TO_ASSUME_OVERRIDE" ); exists {
126+ testContext .roleToAssume = roleToAssumeOverride
127+ }
115128
116129 testContext .iclient , err = clientV1beta1 .NewForConfig (clientConfig )
117130
@@ -217,8 +230,10 @@ func InitializeScenario(ctx *godog.ScenarioContext) {
217230 ctx .Step (`^I create a namespace` , issuerContext .createNamespace )
218231 ctx .Step (`^I create a Secret with keys ([A-Za-z_]+) and ([A-Za-z_]+) for my AWS credentials$` , issuerContext .createSecret )
219232 ctx .Step (`^I create an AWSPCAClusterIssuer using a (RSA|ECDSA|XA) CA$` , issuerContext .createClusterIssuer )
233+ ctx .Step (`^I create an AWSPCAClusterIssuer with role assumption$` , issuerContext .createClusterIssuerWithRole )
220234 ctx .Step (`^I delete the AWSPCAClusterIssuer$` , issuerContext .deleteClusterIssuer )
221235 ctx .Step (`^I create an AWSPCAIssuer using a (RSA|ECDSA|XA) CA$` , issuerContext .createNamespaceIssuer )
236+ ctx .Step (`^I create an AWSPCAIssuer with role assumption$` , issuerContext .createNamespaceIssuerWithRole )
222237 ctx .Step (`^I issue a (SHORT_VALIDITY|RSA|ECDSA|CA) certificate$` , issuerContext .issueCertificate )
223238 ctx .Step (`^the certificate should be issued successfully$` , issuerContext .verifyCertificateIssued )
224239 ctx .Step (`^the certificate request has been created$` , issuerContext .verifyCertificateRequestIsCreated )
0 commit comments