diff --git a/.github/workflows/operator-integration-test.yml b/.github/workflows/operator-integration-test.yml index b81886a06..32ee90c38 100644 --- a/.github/workflows/operator-integration-test.yml +++ b/.github/workflows/operator-integration-test.yml @@ -20,8 +20,8 @@ permissions: contents: read jobs: - AmazonCloudWatchAgentOperatorIntegrationTest: - name: AmazonCloudWatchAgentOperatorIntegrationTest + InstrumentationTest: + name: InstrumentationTest runs-on: ubuntu-latest permissions: id-token: write @@ -53,12 +53,14 @@ jobs: - name: Deploy operator to minikube run: | make deploy + kubectl wait --for=condition=Ready pod --all -n amazon-cloudwatch - - name: Test case for AmazonCloudWatchAgent pod creation + - name: Test case for cloudwatch agent pod creation run: | kubectl apply -f integration-tests/manifests/cloudwatch-agent-daemonset.yaml -n amazon-cloudwatch - sleep 60 - kubectl describe pods -n amazon-cloudwatch + sleep 5 + kubectl wait --for=condition=Ready pod --all -n amazon-cloudwatch + pod_name="$(kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/component=amazon-cloudwatch-agent,app.kubernetes.io/instance=amazon-cloudwatch.cloudwatch-agent -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}')" if [ -z "$pod_name" ]; then echo "Pod $pod_name is not created. Exiting with ERROR." @@ -72,18 +74,17 @@ jobs: run: | kubectl apply -f integration-tests/java/sample-deployment-java.yaml sleep 5 - kubectl get pods -A - kubectl describe pods -n default + kubectl wait --for=condition=Ready pod --all -n default + go run integration-tests/manifests/cmd/validate_instrumentation_vars.go default integration-tests/java/default_instrumentation_java_env_variables.json - name: Test for defined instrumentation resources for Java run: | kubectl apply -f integration-tests/manifests/sample-instrumentation.yaml + kubectl delete pods --all -n default sleep 5 - kubectl rollout restart deployment nginx - sleep 5 - kubectl get pods -A - kubectl describe pods -n default + kubectl wait --for=condition=Ready pod --all -n default + cd integration-tests/manifests/cmd go run validate_instrumentation_vars.go default ns_instrumentation_env_variables.json kubectl delete instrumentation sample-instrumentation @@ -91,20 +92,19 @@ jobs: - name: Test for default instrumentation resources for python run: | kubectl apply -f integration-tests/python/sample-deployment-python.yaml + kubectl delete pods --all -n default sleep 5 - kubectl rollout restart deployment nginx - sleep 5 - kubectl get pods -A - kubectl describe pods -n default + kubectl wait --for=condition=Ready pod --all -n default + go run integration-tests/manifests/cmd/validate_instrumentation_vars.go default integration-tests/python/default_instrumentation_python_env_variables.json - name: Test for defined instrumentation resources for python run: | kubectl apply -f integration-tests/manifests/sample-instrumentation.yaml + kubectl delete pods --all -n default sleep 5 - kubectl rollout restart deployment nginx - sleep 5 - kubectl describe pods -n default + kubectl wait --for=condition=Ready pod --all -n default + cd integration-tests/manifests/cmd go run validate_instrumentation_vars.go default ns_instrumentation_env_variables.json kubectl delete instrumentation sample-instrumentation @@ -112,22 +112,19 @@ jobs: - name: Test for default instrumentation resources for python and java run: | kubectl apply -f integration-tests/python-java/sample-deployment-python-java.yaml + kubectl delete pods --all -n default sleep 5 - kubectl rollout restart deployment nginx - sleep 5 - kubectl get pods -A - kubectl describe pods -n default - kubectl describe pods -n amazon-cloudwatch + kubectl wait --for=condition=Ready pod --all -n default + go run integration-tests/manifests/cmd/validate_instrumentation_vars.go default integration-tests/python-java/default_instrumentation_python-java_env_variables.json - name: Test for defined instrumentation resources for python and java run: | kubectl apply -f integration-tests/manifests/sample-instrumentation.yaml + kubectl delete pods --all -n default sleep 5 - kubectl rollout restart deployment nginx - sleep 5 - kubectl get pods -A - kubectl describe pods -n default + kubectl wait --for=condition=Ready pod --all -n default + cd integration-tests/manifests/cmd go run validate_instrumentation_vars.go default ns_instrumentation_env_variables.json kubectl delete instrumentation sample-instrumentation @@ -326,6 +323,4 @@ jobs: sleep 5 go test -v -run TestPythonOnlyNamespace ./integration-tests/manifests/annotations -timeout 30m sleep 5 - go test -v -run TestAlreadyAutoAnnotatedResourceShouldNotRestart ./integration-tests/manifests/annotations -timeout 30m - - + go test -v -run TestAlreadyAutoAnnotatedResourceShouldNotRestart ./integration-tests/manifests/annotations -timeout 30m \ No newline at end of file