Skip to content

Commit bc74a04

Browse files
committed
fix: IAM role cleanup order to prevent orphaned roles
1 parent 11c7981 commit bc74a04

File tree

1 file changed

+33
-24
lines changed

1 file changed

+33
-24
lines changed

.github/workflows/java-eks-otlp-ocb-test.yml

Lines changed: 33 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -342,17 +342,37 @@ jobs:
342342
echo "validation-result=failure" >> $GITHUB_OUTPUT
343343
fi
344344
345-
- name: Clean up
345+
# IAM service accounts must be deleted BEFORE the namespace is deleted,
346+
# otherwise eksctl cannot find the K8s ServiceAccount and leaves the IAM role orphaned
347+
- name: Remove aws access service account
346348
if: always()
347349
continue-on-error: true
348-
timeout-minutes: 5
349-
working-directory: terraform/java/eks-otlp-ocb/util
350350
run: |
351-
aws eks update-kubeconfig --name ${{ env.CLUSTER_NAME }} --region ${{ env.E2E_TEST_AWS_REGION }}
352-
kubectl delete ns ${{ env.SAMPLE_APP_NAMESPACE }}
353-
eksctl delete iamserviceaccount --name cloudwatch-agent --namespace amazon-cloudwatch --cluster ${{ env.CLUSTER_NAME }} --region ${{ env.E2E_TEST_AWS_REGION }}
354-
kubectl delete ns opentelemetry-operator-system
355-
aws eks update-kubeconfig --name ${{ env.CLUSTER_NAME }} --region ${{ env.E2E_TEST_AWS_REGION }}
351+
eksctl delete iamserviceaccount \
352+
--name sa-${{ env.TESTING_ID }} \
353+
--namespace ${{ env.SAMPLE_APP_NAMESPACE }} \
354+
--cluster ${{ env.CLUSTER_NAME }} \
355+
--region ${{ env.E2E_TEST_AWS_REGION }}
356+
357+
- name: Remove Application Signals Collector IAM service account
358+
if: always()
359+
continue-on-error: true
360+
run: |
361+
eksctl delete iamserviceaccount \
362+
--name appsignals-collector \
363+
--namespace ${{ env.SAMPLE_APP_NAMESPACE }} \
364+
--cluster ${{ env.CLUSTER_NAME }} \
365+
--region ${{ env.E2E_TEST_AWS_REGION }}
366+
367+
- name: Remove cloudwatch-agent IAM service account
368+
if: always()
369+
continue-on-error: true
370+
run: |
371+
eksctl delete iamserviceaccount \
372+
--name cloudwatch-agent \
373+
--namespace amazon-cloudwatch \
374+
--cluster ${{ env.CLUSTER_NAME }} \
375+
--region ${{ env.E2E_TEST_AWS_REGION }}
356376
357377
- name: Terraform destroy
358378
if: always()
@@ -370,22 +390,11 @@ jobs:
370390
-var="sample_app_image=${{ env.MAIN_SAMPLE_APP_IMAGE_ARN }}" \
371391
-var="sample_remote_app_image=${{ env.REMOTE_SAMPLE_APP_IMAGE_ARN }}"
372392
373-
- name: Remove aws access service account
374-
if: always()
375-
continue-on-error: true
376-
run: |
377-
eksctl delete iamserviceaccount \
378-
--name sa-${{ env.TESTING_ID }} \
379-
--namespace ${{ env.SAMPLE_APP_NAMESPACE }} \
380-
--cluster ${{ env.CLUSTER_NAME }} \
381-
--region ${{ env.E2E_TEST_AWS_REGION }}
382-
383-
- name: Remove Application Signals Collector IAM service account
393+
- name: Clean up namespaces
384394
if: always()
385395
continue-on-error: true
396+
timeout-minutes: 5
386397
run: |
387-
eksctl delete iamserviceaccount \
388-
--name appsignals-collector \
389-
--namespace ${{ env.SAMPLE_APP_NAMESPACE }} \
390-
--cluster ${{ env.CLUSTER_NAME }} \
391-
--region ${{ env.E2E_TEST_AWS_REGION }}
398+
aws eks update-kubeconfig --name ${{ env.CLUSTER_NAME }} --region ${{ env.E2E_TEST_AWS_REGION }}
399+
kubectl delete ns ${{ env.SAMPLE_APP_NAMESPACE }}
400+
kubectl delete ns opentelemetry-operator-system

0 commit comments

Comments
 (0)