Skip to content

Commit 5985f7d

Browse files
committed
Set Aws credentials in cert manager package pod for e2e test
1 parent a87378e commit 5985f7d

File tree

5 files changed

+59
-27
lines changed

5 files changed

+59
-27
lines changed

test/e2e/certmanager.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ func runCertManagerRemoteClusterInstallSimpleFlow(test *framework.MulticlusterE2
2626
test.ManagementCluster.SetPackageBundleActive()
2727
packageName := "cert-manager"
2828
packagePrefix := "test"
29-
packageFile := e.BuildPackageConfigFile(packageName, packagePrefix, EksaPackagesNamespace)
30-
test.ManagementCluster.InstallCuratedPackageFile(packageFile, kubeconfig.FromClusterName(test.ManagementCluster.ClusterName))
29+
test.ManagementCluster.InstallCertManagerPackageWithAwsCredentials(packagePrefix, packageName, EksaPackagesNamespace)
3130
e.VerifyCertManagerPackageInstalled(packagePrefix, EksaPackagesNamespace, cmPackageName, withCluster(test.ManagementCluster))
3231
e.CleanupCerts(withCluster(test.ManagementCluster))
3332
e.DeleteClusterWithKubectl()

test/framework/cluster.go

+37-18
Original file line numberDiff line numberDiff line change
@@ -1808,25 +1808,11 @@ var certManagerSecret string
18081808
func (e *ClusterE2ETest) verifyLetsEncryptCert() error {
18091809
ctx := context.Background()
18101810
letsEncryptCert := "test-cert"
1811-
accessKey, secretAccess, region, zoneID := GetRoute53Configs()
1812-
data := map[string]interface{}{
1813-
"route53SecretAccessKey": secretAccess,
1814-
}
1815-
1816-
certManagerSecretData, err := templater.Execute(certManagerSecret, data)
1817-
if err != nil {
1818-
return fmt.Errorf("failed creating cert manager secret: %v", err)
1819-
}
1820-
1821-
err = e.KubectlClient.ApplyKubeSpecFromBytes(ctx, e.Cluster(), certManagerSecretData)
1822-
if err != nil {
1823-
return fmt.Errorf("error creating cert manager secret: %v", err)
1824-
}
1811+
region, zoneID := GetRoute53Configs()
18251812

1826-
data = map[string]interface{}{
1827-
"route53AccessKeyId": accessKey,
1828-
"route53ZoneId": zoneID,
1829-
"route53Region": region,
1813+
data := map[string]interface{}{
1814+
"route53ZoneId": zoneID,
1815+
"route53Region": region,
18301816
}
18311817

18321818
certManagerIssuerData, err := templater.Execute(certManagerLetsEncryptIssuer, data)
@@ -2061,6 +2047,39 @@ func (e *ClusterE2ETest) InstallAutoScaler(workloadClusterName, targetNamespace
20612047
}
20622048
}
20632049

2050+
//go:embed testdata/certmanager/certmanager_package.yaml
2051+
var certManagerPackageTemplate string
2052+
2053+
// InstallCertManagerPackageWithAwsCredentials installs cert-manager package by setting aws credentials in the pod.
2054+
func (e *ClusterE2ETest) InstallCertManagerPackageWithAwsCredentials(prefix, packageName, namespace string) {
2055+
generatedName := fmt.Sprintf("%s-%s", prefix, packageName)
2056+
targetNamespace := namespace
2057+
namespace = fmt.Sprintf("%s-%s", namespace, e.ClusterName)
2058+
ctx := context.Background()
2059+
accessKeyID := os.Getenv(route53AccessKey)
2060+
secretKey := os.Getenv(route53SecretKey)
2061+
sessionToken := os.Getenv(route53SessionToken)
2062+
data := map[string]interface{}{
2063+
"targetNamespace": targetNamespace,
2064+
"namespace": namespace,
2065+
"name": generatedName,
2066+
"accessKeyId": accessKeyID,
2067+
"secretKey": secretKey,
2068+
"sessionToken": sessionToken,
2069+
}
2070+
2071+
certManagerPackageDeployment, err := templater.Execute(certManagerPackageTemplate, data)
2072+
if err != nil {
2073+
e.T.Fatalf("Failed creating cert-manager Package Deployment: %s", err)
2074+
}
2075+
2076+
err = e.KubectlClient.ApplyKubeSpecFromBytesWithNamespace(ctx, e.Cluster(), certManagerPackageDeployment,
2077+
namespace)
2078+
if err != nil {
2079+
e.T.Fatalf("Error installing cert-manager pacakge: %s", err)
2080+
}
2081+
}
2082+
20642083
// CombinedAutoScalerMetricServerTest verifies that new nodes are spun up after using a HPA to scale a deployment.
20652084
func (e *ClusterE2ETest) CombinedAutoScalerMetricServerTest(autoscalerName, metricServerName, targetNamespace string, mgmtCluster *types.Cluster) {
20662085
e.VerifyMetricServerPackageInstalled(metricServerName, targetNamespace, mgmtCluster)

test/framework/curatedpackages.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ const (
3838
eksaPackagesRegion = "EKSA_AWS_REGION"
3939
route53AccessKey = "ROUTE53_ACCESS_KEY_ID"
4040
route53SecretKey = "ROUTE53_SECRET_ACCESS_KEY"
41+
route53SessionToken = "ROUTE53_SESSION_TOKEN"
4142
route53Region = "ROUTE53_REGION"
4243
route53ZoneID = "ROUTE53_ZONEID"
4344
)
@@ -87,7 +88,6 @@ func CheckCertManagerCredentials(t *testing.T) {
8788
}
8889

8990
// GetRoute53Configs returns route53 configurations for cert-manager.
90-
func GetRoute53Configs() (string, string, string, string) {
91-
return os.Getenv(route53AccessKey), os.Getenv(route53SecretKey),
92-
os.Getenv(route53Region), os.Getenv(route53ZoneID)
91+
func GetRoute53Configs() (string, string) {
92+
return os.Getenv(route53Region), os.Getenv(route53ZoneID)
9393
}

test/framework/testdata/certmanager/certmanager_letsencrypt_issuer.yaml

-4
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@ spec:
1313
route53:
1414
region: "{{.route53Region}}"
1515
hostedZoneID: "{{.route53ZoneId}}"
16-
accessKeyID: "{{.route53AccessKeyId}}"
17-
secretAccessKeySecretRef:
18-
name: route53-credentials-secret
19-
key: secret-access-key
2016
selector:
2117
dnsZones:
2218
- "cert-manager-e2e.model-rocket.aws.dev"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
apiVersion: packages.eks.amazonaws.com/v1alpha1
2+
kind: Package
3+
metadata:
4+
name: {{.name}}
5+
namespace: {{.namespace}}
6+
spec:
7+
packageName: cert-manager
8+
targetNamespace: {{.targetNamespace}}
9+
config: |-
10+
extraEnv:
11+
- name: AWS_ACCESS_KEY_ID
12+
value: {{.accessKeyId}}
13+
- name: AWS_SECRET_ACCESS_KEY
14+
value: {{.secretKey}}
15+
{{- if .sessionToken }}
16+
- name: AWS_SESSION_TOKEN
17+
value: {{.sessionToken}}
18+
{{- end }}

0 commit comments

Comments
 (0)