3030 type : string
3131 outputs :
3232 job-started :
33- value : ${{ jobs.metric-limiter .outputs.job-started }}
33+ value : ${{ jobs.java-eks-otlp-ocb .outputs.job-started }}
3434 validation-result :
35- value : ${{ jobs.metric-limiter .outputs.validation-result }}
35+ value : ${{ jobs.java-eks-otlp-ocb .outputs.validation-result }}
3636
3737permissions :
3838 id-token : write
5454 TEST_RESOURCES_FOLDER : ${GITHUB_WORKSPACE}
5555
5656jobs :
57- test :
57+ java-eks-otlp-ocb :
5858 runs-on : ubuntu-latest
5959 timeout-minutes : 30
6060 outputs :
@@ -65,12 +65,10 @@ jobs:
6565 id : job-started
6666 run : echo "job-started=true" >> $GITHUB_OUTPUT
6767
68- # TODO: Put back namespace
6968 - name : Generate testing id and sample app namespace
7069 run : |
7170 echo TESTING_ID="${{ github.job }}-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" >> $GITHUB_ENV
72- echo SAMPLE_APP_NAMESPACE="default" >> $GITHUB_ENV
73- # echo SAMPLE_APP_NAMESPACE="ns-${{ github.run_id }}-${{ github.run_number }}" >> $GITHUB_ENV
71+ echo SAMPLE_APP_NAMESPACE="ns-${{ github.run_id }}-${{ github.run_number }}" >> $GITHUB_ENV
7472
7573 - uses : actions/checkout@v4
7674 with :
9088 max_retry : 3
9189 sleep_time : 60
9290
93- - name : Download enablement script
94- uses : ./.github/workflows/actions/execute_and_retry
95- with :
96- pre-command : " mkdir enablement-script && cd enablement-script"
97- command : " wget https://raw.githubusercontent.com/aws-observability/application-signals-demo/refs/heads/ocb/scripts/eks/appsignals/enable-app-signals-ocb.sh"
98- cleanup : " rm -f enable-app-signals-ocb.sh"
99- post-command : " chmod +x enable-app-signals-ocb.sh"
100-
10191 - name : Configure AWS Credentials
10292 uses : aws-actions/configure-aws-credentials@v4
10393 with :
10898 uses : aws-actions/aws-secretsmanager-get-secrets@v2
10999 with :
110100 secret-ids : |
111- ACCOUNT_ID, region-account/${{ env.E2E_TEST_AWS_REGION }}
101+ ACCOUNT_ID, otlp- region-account/gamma- ${{ env.E2E_TEST_AWS_REGION }}
112102 JAVA_MAIN_SAMPLE_APP_IMAGE, e2e-test/java-main-sample-app-image
113103 JAVA_REMOTE_SAMPLE_APP_IMAGE, e2e-test/java-remote-sample-app-image
114104
@@ -149,20 +139,21 @@ jobs:
149139 run : kubectl get namespace | awk '/^ns-[0-9]+-[0-9]+/{print $1}' | xargs --no-run-if-empty kubectl delete namespace
150140
151141 # Set up App Signals permissions and resources
142+ # Renamed `service-account` to `sa` to get under 128 character limit for CFN stack names, which includes the namespace
152143 - name : Create role for AWS access from the sample app
153144 id : create_service_account
154145 uses : ./.github/workflows/actions/execute_and_retry
155146 with :
156147 command : " eksctl create iamserviceaccount \
157- --name service-account -${{ env.TESTING_ID }} \
148+ --name sa -${{ env.TESTING_ID }} \
158149 --namespace ${{ env.SAMPLE_APP_NAMESPACE }} \
159150 --cluster ${{ env.CLUSTER_NAME }} \
160151 --role-name eks-s3-access-${{ env.TESTING_ID }} \
161152 --attach-policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess \
162153 --region ${{ env.E2E_TEST_AWS_REGION }} \
163154 --approve"
164155 cleanup : " eksctl delete iamserviceaccount \
165- --name service-account -${{ env.TESTING_ID }} \
156+ --name sa -${{ env.TESTING_ID }} \
166157 --namespace ${{ env.SAMPLE_APP_NAMESPACE }} \
167158 --cluster ${{ env.CLUSTER_NAME }} \
168159 --region ${{ env.E2E_TEST_AWS_REGION }}"
@@ -192,7 +183,7 @@ jobs:
192183 - name : Install OTel Operator using enablement script
193184 uses : ./.github/workflows/actions/execute_and_retry
194185 with :
195- command : " ${{ env.TEST_RESOURCES_FOLDER }}/enablement-script /enable-app-signals-ocb.sh \
186+ command : " ${{ env.TEST_RESOURCES_FOLDER }}/terraform/java/eks-otlp-ocb/util /enable-app-signals-ocb.sh \
196187 ${{ env.CLUSTER_NAME }} \
197188 ${{ env.E2E_TEST_AWS_REGION }} \
198189 ${{ env.SAMPLE_APP_NAMESPACE }}"
@@ -202,7 +193,10 @@ jobs:
202193 - name : Install OTel Collector
203194 uses : ./.github/workflows/actions/execute_and_retry
204195 with :
205- command : " cd ${{ env.TEST_RESOURCES_FOLDER }}/terraform/java/eks-otlp-ocb/util && kubectl apply -f ./appsignals-collector.yaml -n ${{ env.SAMPLE_APP_NAMESPACE }}"
196+ command : " cd ${{ env.TEST_RESOURCES_FOLDER }}/terraform/java/eks-otlp-ocb/util && \
197+ sed -i -e 's/${E2E_TEST_AWS_REGION}/${{ env.E2E_TEST_AWS_REGION }}/g' ./appsignals-collector.yaml && \
198+ sed -i -e 's/${SAMPLE_APP_NAMESPACE}/${{ env.SAMPLE_APP_NAMESPACE }}/g' ./appsignals-collector.yaml && \
199+ kubectl apply -f ./appsignals-collector.yaml -n ${{ env.SAMPLE_APP_NAMESPACE }}"
206200 cleanup : " kubectl delete -f ./appsignals-collector.yaml -n ${{ env.SAMPLE_APP_NAMESPACE }} && \
207201 aws eks update-kubeconfig --name ${{ env.CLUSTER_NAME }} --region ${{ env.E2E_TEST_AWS_REGION }}"
208202 max_retry : 3
@@ -220,7 +214,7 @@ jobs:
220214 -var=\" eks_cluster_name=${{ env.CLUSTER_NAME }}\" \
221215 -var=\" eks_cluster_context_name=$(kubectl config current-context)\" \
222216 -var=\" test_namespace=${{ env.SAMPLE_APP_NAMESPACE }}\" \
223- -var=\" service_account_aws_access=service-account -${{ env.TESTING_ID }}\" \
217+ -var=\" service_account_aws_access=sa -${{ env.TESTING_ID }}\" \
224218 -var=\" sample_app_image=${{ env.MAIN_SAMPLE_APP_IMAGE_ARN }}\" \
225219 -var=\" sample_remote_app_image=${{ env.REMOTE_SAMPLE_APP_IMAGE_ARN }}\" \
226220 -var='account_id=${{ env.ACCOUNT_ID }}'"
@@ -230,7 +224,7 @@ jobs:
230224 -var=\" kube_directory_path=${{ github.workspace }}/.kube\" \
231225 -var=\" eks_cluster_name=${{ env.CLUSTER_NAME }}\" \
232226 -var=\" test_namespace=${{ env.SAMPLE_APP_NAMESPACE }}\" \
233- -var=\" service_account_aws_access=service-account -${{ env.TESTING_ID }}\" \
227+ -var=\" service_account_aws_access=sa -${{ env.TESTING_ID }}\" \
234228 -var=\" sample_app_image=${{ env.MAIN_SAMPLE_APP_IMAGE_ARN }}\" \
235229 -var=\" sample_remote_app_image=${{ env.REMOTE_SAMPLE_APP_IMAGE_ARN }}\" "
236230 max_retry : 2
@@ -271,60 +265,54 @@ jobs:
271265 run : ./gradlew validator:run --args='-c java/eks-otlp-ocb/log-validation.yml
272266 --testing-id ${{ env.TESTING_ID }}
273267 --endpoint http://${{ env.APP_ENDPOINT }}
274- --region us-west-2
268+ --region ${{ env.E2E_TEST_AWS_REGION }}
275269 --account-id ${{ env.ACCOUNT_ID }}
276270 --metric-namespace ${{ env.METRIC_NAMESPACE }}
277271 --log-group ${{ env.LOG_GROUP_NAME }}
278272 --app-namespace ${{ env.SAMPLE_APP_NAMESPACE }}
279- --platform-info appsignals-ocb-demo
273+ --platform-info ${{ env.CLUSTER_NAME }}
280274 --service-name sample-application-${{ env.TESTING_ID }}
281275 --remote-service-deployment-name ${{ env.REMOTE_SERVICE_DEPLOYMENT_NAME }}
276+ --remote-service-ip ${{ env.REMOTE_SERVICE_POD_IP }}
282277 --query-string ip=${{ env.REMOTE_SERVICE_POD_IP }}&testingId=${{ env.TESTING_ID }}
283278 --rollup'
284- # TODO: Undo hardcode
285- # --platform-info ${{ env.CLUSTER_NAME }}
286- # --region ${{ env.E2E_TEST_AWS_REGION }}
287279
288280 - name : Call endpoints and validate generated metrics
289281 id : metric-validation
290282 if : (steps.deploy-sample-app.outcome == 'success' || steps.log-validation.outcome == 'failure') && !cancelled()
291283 run : ./gradlew validator:run --args='-c java/eks-otlp-ocb/metric-validation.yml
292284 --testing-id ${{ env.TESTING_ID }}
293285 --endpoint http://${{ env.APP_ENDPOINT }}
294- --region us-west-2
286+ --region ${{ env.E2E_TEST_AWS_REGION }}
295287 --account-id ${{ env.ACCOUNT_ID }}
296288 --metric-namespace ${{ env.METRIC_NAMESPACE }}
297289 --log-group ${{ env.LOG_GROUP_NAME }}
298290 --app-namespace ${{ env.SAMPLE_APP_NAMESPACE }}
299- --platform-info appsignals-ocb-demo
291+ --platform-info ${{ env.CLUSTER_NAME }}
300292 --service-name sample-application-${{ env.TESTING_ID }}
301293 --remote-service-name sample-remote-application-${{ env.TESTING_ID }}
302294 --remote-service-deployment-name ${{ env.REMOTE_SERVICE_DEPLOYMENT_NAME }}
295+ --remote-service-ip ${{ env.REMOTE_SERVICE_POD_IP }}
303296 --query-string ip=${{ env.REMOTE_SERVICE_POD_IP }}&testingId=${{ env.TESTING_ID }}
304297 --rollup'
305- # TODO: Undo hardcodes:
306- # --platform-info ${{ env.CLUSTER_NAME }}
307- # --region ${{ env.E2E_TEST_AWS_REGION }}
308298
309299 - name : Call endpoints and validate generated traces
310300 id : trace-validation
311301 if : (steps.deploy-sample-app.outcome == 'success' || steps.log-validation.outcome == 'failure' || steps.metric-validation.outcome == 'failure') && !cancelled()
312302 run : ./gradlew validator:run --args='-c java/eks-otlp-ocb/trace-validation.yml
313303 --testing-id ${{ env.TESTING_ID }}
314304 --endpoint http://${{ env.APP_ENDPOINT }}
315- --region us-west-2
305+ --region ${{ env.E2E_TEST_AWS_REGION }}
316306 --account-id ${{ env.ACCOUNT_ID }}
317307 --metric-namespace ${{ env.METRIC_NAMESPACE }}
318308 --log-group ${{ env.LOG_GROUP_NAME }}
319309 --app-namespace ${{ env.SAMPLE_APP_NAMESPACE }}
320- --platform-info appsignals-ocb-demo
310+ --platform-info ${{ env.CLUSTER_NAME }}
321311 --service-name sample-application-${{ env.TESTING_ID }}
322312 --remote-service-deployment-name ${{ env.REMOTE_SERVICE_DEPLOYMENT_NAME }}
313+ --remote-service-ip ${{ env.REMOTE_SERVICE_POD_IP }}
323314 --query-string ip=${{ env.REMOTE_SERVICE_POD_IP }}&testingId=${{ env.TESTING_ID }}
324315 --rollup'
325- # TODO: Undo hardcode
326- # --platform-info ${{ env.CLUSTER_NAME }}
327- # --region ${{ env.E2E_TEST_AWS_REGION }}
328316
329317 - name : Refresh AWS Credentials
330318 if : ${{ github.event.repository.name == 'aws-application-signals-test-framework' }}
@@ -343,8 +331,6 @@ jobs:
343331 echo "validation-result=failure" >> $GITHUB_OUTPUT
344332 fi
345333
346- # TODO: Simplify cleanup
347- # Can just use `kubectl delete ns -n ${{ env.SAMPLE_APP_NAMESPACE }}` once the namespace is no longer hardcoded
348334 - name : Clean up
349335 if : always()
350336 continue-on-error : true
@@ -354,13 +340,7 @@ jobs:
354340 aws eks update-kubeconfig --name ${{ env.CLUSTER_NAME }} --region ${{ env.E2E_TEST_AWS_REGION }}
355341 eksctl delete iamserviceaccount --name cloudwatch-agent --namespace amazon-cloudwatch --cluster ${{ env.CLUSTER_NAME }} --region ${{ env.E2E_TEST_AWS_REGION }}
356342 kubectl delete ns opentelemetry-operator-system
357- kubectl delete service appsignals-collector -n ${{ env.SAMPLE_APP_NAMESPACE }}
358- kubectl delete service appsignals-collector-headless -n ${{ env.SAMPLE_APP_NAMESPACE }}
359- kubectl delete service appsignals-collector-monitoring -n ${{ env.SAMPLE_APP_NAMESPACE }}
360- kubectl delete deploy --all -n ${{ env.SAMPLE_APP_NAMESPACE }}
361- kubectl delete service sample-remote-app-service -n ${{ env.SAMPLE_APP_NAMESPACE }}
362- kubectl delete service sample-app-service -n ${{ env.SAMPLE_APP_NAMESPACE }}
363- kubectl delete -f ./appsignals-collector.yaml -n ${{ env.SAMPLE_APP_NAMESPACE }}
343+ kubectl delete ns -n ${{ env.SAMPLE_APP_NAMESPACE }}
364344 aws eks update-kubeconfig --name ${{ env.CLUSTER_NAME }} --region ${{ env.E2E_TEST_AWS_REGION }}
365345
366346 - name : Terraform destroy
@@ -375,7 +355,7 @@ jobs:
375355 -var="kube_directory_path=${{ github.workspace }}/.kube" \
376356 -var="eks_cluster_name=${{ env.CLUSTER_NAME }}" \
377357 -var="test_namespace=${{ env.SAMPLE_APP_NAMESPACE }}" \
378- -var="service_account_aws_access=service-account -${{ env.TESTING_ID }}" \
358+ -var="service_account_aws_access=sa -${{ env.TESTING_ID }}" \
379359 -var="sample_app_image=${{ env.MAIN_SAMPLE_APP_IMAGE_ARN }}" \
380360 -var="sample_remote_app_image=${{ env.REMOTE_SAMPLE_APP_IMAGE_ARN }}"
381361
@@ -384,7 +364,7 @@ jobs:
384364 continue-on-error : true
385365 run : |
386366 eksctl delete iamserviceaccount \
387- --name service-account -${{ env.TESTING_ID }} \
367+ --name sa -${{ env.TESTING_ID }} \
388368 --namespace ${{ env.SAMPLE_APP_NAMESPACE }} \
389369 --cluster ${{ env.CLUSTER_NAME }} \
390370 --region ${{ env.E2E_TEST_AWS_REGION }}
0 commit comments