Skip to content

Commit 897280b

Browse files
committed
Add IAMRA Testing
Signed-off-by: Brady Siegel <[email protected]>
1 parent aad18c0 commit 897280b

File tree

3 files changed

+95
-0
lines changed

3 files changed

+95
-0
lines changed

.github/workflows/on-safe-to-test-label.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,22 @@ jobs:
178178
if: ${{ always() }}
179179
run: |
180180
make kind-cluster-delete
181+
- name: Run test cases with IAMRA
182+
if: ${{ always() }}
183+
run: |
184+
./e2e/iamra-test/test.sh
185+
make e2etest
186+
- name: Copy Kind logs to S3
187+
if: ${{ always() }}
188+
run: |
189+
mkdir logs-iamra-test
190+
export E2E_ARTIFACTS_DIRECTORY=logs-iamra-test
191+
make kind-export-logs
192+
aws s3 cp --recursive logs-iamra-test s3://aws-privateca-issuer-k8s-logs-brsiegel-us-east-1/${{ needs.start-runner.outputs.ec2-instance-id }}-logs-iamra-test/
193+
- name: Terminate Kind cluster
194+
if: ${{ always() }}
195+
run: |
196+
make kind-cluster-delete
181197
- name: Run helm test
182198
if: ${{ !contains(github.event.pull_request.labels.*.name, 'chart update') && inputs.architecture != 'arm64' }}
183199
run: |

e2e/iamra-test/iamra-values.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
serviceAccount:
2+
create: false
3+
4+
image:
5+
repository: localhost:5000/aws-privateca-issuer
6+
tag: latest
7+
pullPolicy: Always
8+
9+
env:
10+
AWS_EC2_METADATA_SERVICE_ENDPOINT: "http://127.0.0.1:9911"
11+
12+
extraContainers:
13+
- name: "rolesanywhere-credential-helper"
14+
image: "public.ecr.aws/rolesanywhere/credential-helper:latest"
15+
command: ["aws_signing_helper"]
16+
args:
17+
- "serve"
18+
- "--private-key"
19+
- "/etc/cert/tls.key"
20+
- "--certificate"
21+
- "/etc/cert/tls.crt"
22+
- "--role-arn"
23+
- "$ROLE_ARN"
24+
- "--profile-arn"
25+
- "$PROFILE_ARN"
26+
- "--trust-anchor-arn"
27+
- "$TRUST_ANCHOR_ARN"
28+
volumeMounts:
29+
- name: cert
30+
mountPath: /etc/cert/
31+
readOnly: true
32+
33+
volumes:
34+
- name: cert
35+
secret:
36+
secretName: cert

e2e/iamra-test/test.sh

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
set -euo pipefail
2+
3+
CA_ARN=$(aws ssm get-parameter --name /iamra/certificate-authority-arn | jq -r '.Parameter.Value')
4+
TRUST_ANCHOR_ARN=$(aws ssm get-parameter --name /iamra/trust-anchor-arn | jq -r '.Parameter.Value')
5+
PROFILE_ARN=$(aws ssm get-parameter --name /iamra/profile-arn | jq -r '.Parameter.Value')
6+
ROLE_ARN=$(aws ssm get-parameter --name /iamra/role-arn | jq -r '.Parameter.Value')
7+
8+
echo $CA_ARN
9+
echo $TRUST_ANCHOR_ARN
10+
echo $PROFILE_ARN
11+
echo $ROLE_ARN
12+
13+
openssl req -out iamra.csr -new -newkey rsa:2048 -nodes -keyout iamra.key -subj "/CN=iamra-issuer"
14+
15+
CERT_ARN=$(aws acm-pca issue-certificate \
16+
--certificate-authority-arn $CA_ARN \
17+
--csr fileb://iamra.csr \
18+
--signing-algorithm "SHA256WITHRSA" \
19+
--validity Value=1,Type="DAYS" | jq -r .CertificateArn)
20+
21+
aws acm-pca get-certificate \
22+
--certificate-authority-arn $CA_ARN \
23+
--certificate-arn $CERT_ARN | \
24+
jq -r .Certificate > iamra-cert.pem
25+
26+
cat iamra-cert.pem
27+
28+
PROFILE_ARN=$PROFILE_ARN ROLE_ARN=$ROLE_ARN TRUST_ANCHOR_ARN=$TRUST_ANCHOR_ARN envsubst <e2e/iamra-test/iamra-values.yaml >replaced-values.yaml
29+
30+
cat replaced-values.yaml
31+
32+
make manager
33+
make create-local-registry
34+
make kind-cluster
35+
make deploy-cert-manager
36+
make docker-build
37+
make docker-push-local
38+
39+
kubectl create secret tls -n aws-privateca-issuer cert --cert=iamra-cert.pem --key=iamra.key
40+
41+
sleep 15
42+
43+
helm install issuer ./charts/aws-pca-issuer -f replaced-values.yaml -n aws-privateca-issuer

0 commit comments

Comments
 (0)