Executing tests against SMCP version 2.4 WARNING: Using insecure TLS client config. Setting this option is not supported! Login successful. You have access to 76 projects, the list has been suppressed. You can list all projects with 'oc projects' Using project "default". Resetting cluster by deleting namespaces used in the test suite namespace "istio-system" deleted namespace "bookinfo" deleted namespace "foo" deleted namespace "bar" deleted namespace "legacy" deleted namespace "mesh-external" deleted Output dir: /home/jenkins/workspace/maistra/maistra-test-tool/maistra-test-tool/tests/result-20230714132308/v2.4 ====== Executing tests in group 'full' against SMCP v2.4 go: downloading gopkg.in/yaml.v2 v2.4.0 go: downloading github.com/pmezard/go-difflib v1.0.0 go: downloading golang.org/x/net v0.7.0 go: downloading github.com/prometheus/client_model v0.3.0 go: downloading github.com/prometheus/common v0.42.0 go: downloading github.com/sirupsen/logrus v1.8.1 go: downloading github.com/golang/protobuf v1.5.2 go: downloading golang.org/x/sys v0.5.0 go: downloading github.com/matttproud/golang_protobuf_extensions v1.0.4 go: downloading google.golang.org/protobuf v1.28.1 test_helper_setup.go:64: Creating namespaces: [istio-system bookinfo foo bar legacy mesh-external] === RUN TestSMCPMultiple bug_multiple_smcp_test.go:18: This test verifies whether the operator only reconciles one SMCP when two exist in a namespace bug_multiple_smcp_test.go:19: See https://issues.redhat.com/browse/OSSM-2189 bug_multiple_smcp_test.go:41: bug_multiple_smcp_test.go:41: STEP 1: Delete and recreate namespace istio-system bug_multiple_smcp_test.go:42: Deleting namespaces: [istio-system] bug_multiple_smcp_test.go:42: Creating namespaces: [istio-system] bug_multiple_smcp_test.go:44: bug_multiple_smcp_test.go:44: STEP 2: Delete the operator's ValidationWebhookConfiguration bug_multiple_smcp_test.go:47: bug_multiple_smcp_test.go:47: STEP 3: Create the first SMCP bug_multiple_smcp_test.go:50: bug_multiple_smcp_test.go:50: STEP 4: Check whether the first SMCP gets reconciled and becomes ready bug_multiple_smcp_test.go:51: Wait for condition condition=Ready on smcp istio-system/smcp1... bug_multiple_smcp_test.go:51: Wait for condition condition=Ready on smcp istio-system/smcp1... bug_multiple_smcp_test.go:51: Wait for condition condition=Ready on smcp istio-system/smcp1... bug_multiple_smcp_test.go:51: Wait for condition condition=Ready on smcp istio-system/smcp1... bug_multiple_smcp_test.go:51: SUCCESS: Condition condition=Ready met by smcp istio-system/smcp1 bug_multiple_smcp_test.go:52: SUCCESS: First SMCP is ready bug_multiple_smcp_test.go:54: bug_multiple_smcp_test.go:54: STEP 5: Create the second SMCP bug_multiple_smcp_test.go:57: bug_multiple_smcp_test.go:57: STEP 6: Check whether the second SMCP shows ErrMultipleSMCPs bug_multiple_smcp_test.go:58: SUCCESS: The second SMCP status is ErrMultipleSMCPs test.go:77: test.go:82: Test completed in 43.85s (excluding cleanup) bug_multiple_smcp_test.go:24: bug_multiple_smcp_test.go:24: Performing cleanup bug_multiple_smcp_test.go:25: bug_multiple_smcp_test.go:25: STEP 7: Delete namespace istio-system bug_multiple_smcp_test.go:26: Deleting namespaces: [istio-system] bug_multiple_smcp_test.go:26: Creating namespaces: [istio-system] bug_multiple_smcp_test.go:28: bug_multiple_smcp_test.go:28: STEP 8: Delete operator to recreate the ValidationWebhookConfiguration bug_multiple_smcp_test.go:29: SUCCESS: Pod istio-operator-8cc9f5444-lkz2j is being deleted bug_multiple_smcp_test.go:31: bug_multiple_smcp_test.go:31: STEP 9: Wait for operator pod to be ready bug_multiple_smcp_test.go:32: Pod istio-operator-8cc9f5444-245wv in namespace openshift-operators is ready! bug_multiple_smcp_test.go:34: bug_multiple_smcp_test.go:34: STEP 10: Check whether ValidatingWebhookConfiguration exists bug_multiple_smcp_test.go:35: SUCCESS: ValidatingWebhookConfiguration was recreated by the operator bug_multiple_smcp_test.go:24: Cleanup completed in 55.19s --- PASS: TestSMCPMultiple (99.04s) PASS ok github.com/maistra/maistra-test-tool/pkg/tests/non-dependant 104.687s test_helper_setup.go:64: Creating namespaces: [istio-system bookinfo foo bar legacy mesh-external] === RUN TestIstiodPodFailsAfterRestarts bug_istiopods_test.go:38: bug_istiopods_test.go:38: STEP 1: Apply default SMCP and SMMR manifests bug_istiopods_test.go:38: Wait for condition condition=Ready on smcp istio-system/basic... bug_istiopods_test.go:38: Wait for condition condition=Ready on smcp istio-system/basic... bug_istiopods_test.go:38: Wait for condition condition=Ready on smcp istio-system/basic... bug_istiopods_test.go:38: Wait for condition condition=Ready on smcp istio-system/basic... bug_istiopods_test.go:38: SUCCESS: Condition condition=Ready met by smcp istio-system/basic bug_istiopods_test.go:40: bug_istiopods_test.go:40: STEP 2: Create Namespaces and SMMR bug_istiopods_test.go:41: Creating namespaces: [test-0 test-1 test-2 test-3 test-4 test-5 test-6 test-7 test-8 test-9 test-10 test-11 test-12 test-13 test-14 test-15 test-16 test-17 test-18 test-19 test-20 test-21 test-22 test-23 test-24 test-25 test-26 test-27 test-28 test-29 test-30 test-31 test-32 test-33 test-34 test-35 test-36 test-37 test-38 test-39 test-40 test-41 test-42 test-43 test-44 test-45 test-46 test-47 test-48 test-49] bug_istiopods_test.go:44: bug_istiopods_test.go:44: STEP 3: Delete Istio pod 10 times and check that it is running and ready after the deletions bug_istiopods_test.go:47: SUCCESS: Pod istiod-basic-c5db96944-dnts2 is being deleted bug_istiopods_test.go:48: Pod istio-system/istiod-basic-c5db96944-kgmzv is running! bug_istiopods_test.go:49: Pod istiod-basic-c5db96944-kgmzv in namespace istio-system is ready! bug_istiopods_test.go:47: SUCCESS: Pod istiod-basic-c5db96944-kgmzv is being deleted bug_istiopods_test.go:48: Pod istio-system/istiod-basic-c5db96944-6fr28 is running! bug_istiopods_test.go:49: Pod istiod-basic-c5db96944-6fr28 in namespace istio-system is ready! bug_istiopods_test.go:47: SUCCESS: Pod istiod-basic-c5db96944-6fr28 is being deleted bug_istiopods_test.go:48: Pod istio-system/istiod-basic-c5db96944-rskww is running! bug_istiopods_test.go:49: Pod istiod-basic-c5db96944-rskww in namespace istio-system is ready! bug_istiopods_test.go:47: SUCCESS: Pod istiod-basic-c5db96944-rskww is being deleted bug_istiopods_test.go:48: Pod istio-system/istiod-basic-c5db96944-5mq87 is running! bug_istiopods_test.go:49: Pod istiod-basic-c5db96944-5mq87 in namespace istio-system is ready! bug_istiopods_test.go:47: SUCCESS: Pod istiod-basic-c5db96944-5mq87 is being deleted bug_istiopods_test.go:48: Pod istio-system/istiod-basic-c5db96944-6tbsl is running! bug_istiopods_test.go:49: Pod istiod-basic-c5db96944-6tbsl in namespace istio-system is ready! bug_istiopods_test.go:47: SUCCESS: Pod istiod-basic-c5db96944-6tbsl is being deleted bug_istiopods_test.go:48: Pod istio-system/istiod-basic-c5db96944-hlrln is running! bug_istiopods_test.go:49: Pod istiod-basic-c5db96944-hlrln in namespace istio-system is ready! bug_istiopods_test.go:47: SUCCESS: Pod istiod-basic-c5db96944-hlrln is being deleted bug_istiopods_test.go:48: Pod istio-system/istiod-basic-c5db96944-nnrt4 is running! bug_istiopods_test.go:49: Pod istiod-basic-c5db96944-nnrt4 in namespace istio-system is ready! bug_istiopods_test.go:47: SUCCESS: Pod istiod-basic-c5db96944-nnrt4 is being deleted bug_istiopods_test.go:48: Pod istio-system/istiod-basic-c5db96944-z4rqr is running! bug_istiopods_test.go:49: Pod istiod-basic-c5db96944-z4rqr in namespace istio-system is ready! bug_istiopods_test.go:47: SUCCESS: Pod istiod-basic-c5db96944-z4rqr is being deleted bug_istiopods_test.go:48: Pod istio-system/istiod-basic-c5db96944-zcqff is running! bug_istiopods_test.go:49: Pod istiod-basic-c5db96944-zcqff in namespace istio-system is ready! bug_istiopods_test.go:47: SUCCESS: Pod istiod-basic-c5db96944-zcqff is being deleted bug_istiopods_test.go:48: Pod istio-system/istiod-basic-c5db96944-7l966 is running! bug_istiopods_test.go:49: Pod istiod-basic-c5db96944-7l966 in namespace istio-system is ready! test.go:77: test.go:82: Test completed in 184.00s (excluding cleanup) bug_istiopods_test.go:33: bug_istiopods_test.go:33: Performing cleanup bug_istiopods_test.go:34: Deleting namespaces: [test-0 test-1 test-2 test-3 test-4 test-5 test-6 test-7 test-8 test-9 test-10 test-11 test-12 test-13 test-14 test-15 test-16 test-17 test-18 test-19 test-20 test-21 test-22 test-23 test-24 test-25 test-26 test-27 test-28 test-29 test-30 test-31 test-32 test-33 test-34 test-35 test-36 test-37 test-38 test-39 test-40 test-41 test-42 test-43 test-44 test-45 test-46 test-47 test-48 test-49] bug_istiopods_test.go:33: Cleanup completed in 51.87s --- PASS: TestIstiodPodFailsAfterRestarts (235.87s) === RUN TestDeployOnInfraNodes deploy_on_infra_test.go:37: This test verifies that the OSSM operator and Istio components can be configured to run on infrastructure nodes deploy_on_infra_test.go:63: deploy_on_infra_test.go:63: STEP 1: Setup: Get a worker node from the cluster that does not have the istio operator installed and label it as infra deploy_on_infra_test.go:65: Worker node selected: ppc64le-qe59c-w2tm2-worker-0-465fr === RUN TestDeployOnInfraNodes/operator deploy_on_infra_test.go:73: Verify OSSM Operator is deployed on infra node when configured deploy_on_infra_test.go:74: Reference: https://issues.redhat.com/browse/OSSM-2342 deploy_on_infra_test.go:76: deploy_on_infra_test.go:76: STEP 1: Patch subscription to run on infra nodes and wait for the operator pod to be ready deploy_on_infra_test.go:91: deploy_on_infra_test.go:91: STEP 2: Verify operator pod is running on the infra node. Node expected: ppc64le-qe59c-w2tm2-worker-0-465fr deploy_on_infra_test.go:94: Pod istio-operator-8cc9f5444-245wv in namespace openshift-operators is ready! deploy_on_infra_test.go:94: Pod istio-operator-8cc9f5444-245wv in namespace openshift-operators is ready! deploy_on_infra_test.go:94: Pod istio-operator-79ff4dc94-5bkh6 in namespace openshift-operators is ready! deploy_on_infra_test.go:92: SUCCESS: Operator pod is running on the infra node subtest.go:23: subtest.go:28: Subtest completed in 28.13s (excluding cleanup) --- PASS: TestDeployOnInfraNodes/operator (28.13s) === RUN TestDeployOnInfraNodes/control_plane deploy_on_infra_test.go:106: Verify that all control plane pods are deployed on infra node when configured deploy_on_infra_test.go:111: deploy_on_infra_test.go:111: STEP 1: Apply default SMCP and SMMR manifests deploy_on_infra_test.go:111: Wait for condition condition=Ready on smcp istio-system/basic... deploy_on_infra_test.go:111: Wait for condition condition=Ready on smcp istio-system/basic... deploy_on_infra_test.go:111: SUCCESS: Condition condition=Ready met by smcp istio-system/basic deploy_on_infra_test.go:113: deploy_on_infra_test.go:113: STEP 2: Deploy SMCP and patch to run all control plane components on infra nodes deploy_on_infra_test.go:130: SUCCESS: Condition condition=Ready met by smcp istio-system/basic deploy_on_infra_test.go:114: Wait for condition condition=Ready on smcp istio-system/basic... deploy_on_infra_test.go:114: Wait for condition condition=Ready on smcp istio-system/basic... deploy_on_infra_test.go:114: Wait for condition condition=Ready on smcp istio-system/basic... deploy_on_infra_test.go:114: Wait for condition condition=Ready on smcp istio-system/basic... deploy_on_infra_test.go:133: deploy_on_infra_test.go:133: STEP 3: Verify that the following control plane pods are running on the infra node: istiod, istio-ingressgateway, istio-egressgateway, jaeger, grafana, prometheus deploy_on_infra_test.go:146: SUCCESS: istiod-basic-7cc4f86d7d-srrnk is running on the infra node deploy_on_infra_test.go:146: SUCCESS: istio-ingressgateway-bdd6cfd8d-cjrp7 is running on the infra node deploy_on_infra_test.go:146: SUCCESS: istio-egressgateway-79747897f-lr4l9 is running on the infra node deploy_on_infra_test.go:146: SUCCESS: grafana-85fd7f6b6d-tqtqk is running on the infra node deploy_on_infra_test.go:146: SUCCESS: prometheus-56d579f496-6c2np is running on the infra node deploy_on_infra_test.go:146: SUCCESS: jaeger-db766ff59-s7sb4 is running on the infra node subtest.go:23: subtest.go:28: Subtest completed in 56.18s (excluding cleanup) deploy_on_infra_test.go:107: deploy_on_infra_test.go:107: Performing cleanup deploy_on_infra_test.go:108: Deleting namespaces: [istio-system] deploy_on_infra_test.go:108: Creating namespaces: [istio-system] deploy_on_infra_test.go:107: Cleanup completed in 27.28s --- PASS: TestDeployOnInfraNodes/control_plane (83.46s) test.go:77: test.go:82: Test completed in 114.40s (excluding cleanup) deploy_on_infra_test.go:50: deploy_on_infra_test.go:50: Performing cleanup deploy_on_infra_test.go:60: Pod istio-operator-79ff4dc94-5bkh6 in namespace openshift-operators is ready! deploy_on_infra_test.go:50: Cleanup completed in 2.18s --- PASS: TestDeployOnInfraNodes (116.57s) === RUN TestDiscoverySelectors discovery_selectors_test.go:34: This test checks if discoverySelectors are being honored discovery_selectors_test.go:35: See https://issues.redhat.com/browse/OSSM-3802 discovery_selectors_test.go:36: Test case is based on https://istio.io/latest/blog/2021/discovery-selectors/ discovery_selectors_test.go:41: discovery_selectors_test.go:41: STEP 1: Apply cluster-wide SMCP and standard SMMR discovery_selectors_test.go:42: Deleting namespaces: [istio-system] discovery_selectors_test.go:42: Creating namespaces: [istio-system] discovery_selectors_test.go:43: FATAL: Command failed: oc -n istio-system apply -f - Error from server (InternalError): error when creating "STDIN": Internal error occurred: failed calling webhook "smmr.mutation.maistra.io": failed to call webhook: Post "https://maistra-admission-controller.openshift-operators.svc:443/mutate-smmr?timeout=10s": no endpoints available for service "maistra-admission-controller" error: exit status 1 test.go:77: test.go:79: Test failed in 5.93s (excluding cleanup) test.go:95: Capturing cluster state using must-gather registry.redhat.io/openshift-service-mesh/istio-must-gather-rhel8:2.4 test.go:99: /home/jenkins/workspace/maistra/maistra-test-tool/maistra-test-tool/tests/result-20230714132308/v2.4/failures-must-gather/20230714133308-TestDiscoverySelectors --- FAIL: TestDiscoverySelectors (41.24s) === RUN TestInitContainerNotRemovedDuringInjection initcontainer_test.go:32: Checking init container not removed during sidecar injection. initcontainer_test.go:38: initcontainer_test.go:38: STEP 1: Apply default SMCP and SMMR manifests initcontainer_test.go:38: Wait for condition condition=Ready on smcp istio-system/basic... initcontainer_test.go:38: Wait for condition condition=Ready on smcp istio-system/basic... initcontainer_test.go:38: Wait for condition condition=Ready on smcp istio-system/basic... initcontainer_test.go:38: SUCCESS: Condition condition=Ready met by smcp istio-system/basic initcontainer_test.go:40: Deleting namespaces: [bookinfo] initcontainer_test.go:40: Creating namespaces: [bookinfo] initcontainer_test.go:42: initcontainer_test.go:42: STEP 2: Deploying test pod. initcontainer_test.go:46: initcontainer_test.go:46: STEP 3: Checking pod logs for init message. initcontainer_test.go:47: SUCCESS: Init container executed successfully. test.go:77: test.go:82: Test completed in 56.59s (excluding cleanup) initcontainer_test.go:34: initcontainer_test.go:34: Performing cleanup initcontainer_test.go:35: Deleting namespaces: [bookinfo] initcontainer_test.go:35: Creating namespaces: [bookinfo] initcontainer_test.go:34: Cleanup completed in 14.49s --- PASS: TestInitContainerNotRemovedDuringInjection (71.09s) === RUN TestIOR ior_test.go:41: This test verifies the behavior of IOR. ior_test.go:73: ior_test.go:73: STEP 1: Apply default SMCP and SMMR manifests ior_test.go:73: Wait for condition condition=Ready on smcp istio-system/basic... ior_test.go:73: SUCCESS: Condition condition=Ready met by smcp istio-system/basic === RUN TestIOR/check_IOR_off_by_default_v2.5 ior_test.go:77: Skipping until 2.5 subtest.go:23: subtest.go:28: Subtest completed in 0.00s (excluding cleanup) --- SKIP: TestIOR/check_IOR_off_by_default_v2.5 (0.00s) === RUN TestIOR/check_IOR_basic_functionalities ior_test.go:98: ior_test.go:98: STEP 1: Ensure the IOR enabled ior_test.go:103: ior_test.go:103: STEP 2: Check whether the IOR creates Routes for hosts specified in the Gateway ior_test.go:53: Creating Gateway for www.test.ocp host ior_test.go:58: Checking whether a Route is generated for www.test.ocp ior_test.go:68: SUCCESS: Got an expected Route for www.test.ocp subtest.go:23: subtest.go:28: Subtest completed in 1.90s (excluding cleanup) ior_test.go:92: ior_test.go:92: Performing cleanup ior_test.go:92: Cleanup completed in 0.00s --- PASS: TestIOR/check_IOR_basic_functionalities (1.90s) === RUN TestIOR/check_routes_aren't_deleted_during_v2.3_to_v2.4_upgrade ior_test.go:118: ior_test.go:118: STEP 1: Delete and recreate namespace istio-system ior_test.go:119: Deleting namespaces: [istio-system] ior_test.go:119: Creating namespaces: [istio-system] ior_test.go:121: ior_test.go:121: STEP 2: Deploy SMCP v2.3 ior_test.go:310: Wait for condition condition=Ready on smcp istio-system/basic... ior_test.go:310: Wait for condition condition=Ready on smcp istio-system/basic... ior_test.go:310: SUCCESS: Condition condition=Ready met by smcp istio-system/basic ior_test.go:124: ior_test.go:124: STEP 3: Check whether IOR creates Routes for hosts specified in the Gateway ior_test.go:53: Creating Gateway for www.test.ocp host ior_test.go:58: Checking whether a Route is generated for www.test.ocp ior_test.go:68: SUCCESS: Got an expected Route for www.test.ocp ior_test.go:128: ior_test.go:128: STEP 4: Record the Route before the upgrade ior_test.go:131: ior_test.go:131: STEP 5: Upgrade SMCP to v2.4 ior_test.go:320: Wait for condition condition=Ready on smcp istio-system/basic... ior_test.go:320: Wait for condition condition=Ready on smcp istio-system/basic... ior_test.go:320: Wait for condition condition=Ready on smcp istio-system/basic... ior_test.go:320: Wait for condition condition=Ready on smcp istio-system/basic... ior_test.go:320: SUCCESS: Condition condition=Ready met by smcp istio-system/basic ior_test.go:134: ior_test.go:134: STEP 6: Check the Routes existed afther the upgrade ior_test.go:58: Checking whether a Route is generated for www.test.ocp ior_test.go:68: SUCCESS: Got an expected Route for www.test.ocp ior_test.go:138: ior_test.go:138: STEP 7: Check the Routes unchanged afther the upgrade ior_test.go:142: SUCCESS: Got the same resourceVersion before and after the upgrade subtest.go:23: subtest.go:28: Subtest completed in 91.67s (excluding cleanup) ior_test.go:113: ior_test.go:113: Performing cleanup ior_test.go:114: Deleting namespaces: [istio-system] ior_test.go:114: Creating namespaces: [istio-system] ior_test.go:305: Wait for condition condition=Ready on smcp istio-system/basic... ior_test.go:305: Wait for condition condition=Ready on smcp istio-system/basic... ior_test.go:305: Wait for condition condition=Ready on smcp istio-system/basic... ior_test.go:305: Wait for condition condition=Ready on smcp istio-system/basic... ior_test.go:305: SUCCESS: Condition condition=Ready met by smcp istio-system/basic ior_test.go:113: Cleanup completed in 115.43s --- PASS: TestIOR/check_routes_aren't_deleted_during_v2.3_to_v2.4_upgrade (207.10s) === RUN TestIOR/check_IOR_does_not_delete_routes_after_deleting_Istio_pod ior_test.go:161: ior_test.go:161: STEP 1: Ensure the IOR enabled ior_test.go:166: ior_test.go:166: STEP 2: Create 3 Gateways and they are in their own Namespace ior_test.go:176: Creating namespaces: [ns-0 ns-1 ns-2] ior_test.go:179: ior_test.go:179: STEP 3: Update SMMR to include 3 Namespaces ior_test.go:209: SUCCESS: Found all 3 Routes ior_test.go:224: ior_test.go:224: STEP 4: Check whether the Routes changes when the istio pod restarts multiple times ior_test.go:225: Restart pod 10 times to make sure the Routes are not changed ior_test.go:229: SUCCESS: Pod istiod-basic-c5db96944-sdwx6 is being deleted ior_test.go:230: Pod istiod-basic-c5db96944-sjgfr in namespace istio-system is ready! ior_test.go:229: SUCCESS: Pod istiod-basic-c5db96944-sjgfr is being deleted ior_test.go:230: Pod istiod-basic-c5db96944-brtrl in namespace istio-system is ready! ior_test.go:229: SUCCESS: Pod istiod-basic-c5db96944-brtrl is being deleted ior_test.go:230: Pod istiod-basic-c5db96944-fsrl5 in namespace istio-system is ready! ior_test.go:229: SUCCESS: Pod istiod-basic-c5db96944-fsrl5 is being deleted ior_test.go:230: Pod istiod-basic-c5db96944-5m4xl in namespace istio-system is ready! ior_test.go:229: SUCCESS: Pod istiod-basic-c5db96944-5m4xl is being deleted ior_test.go:230: Pod istiod-basic-c5db96944-p8shw in namespace istio-system is ready! ior_test.go:229: SUCCESS: Pod istiod-basic-c5db96944-p8shw is being deleted ior_test.go:230: Pod istiod-basic-c5db96944-86frd in namespace istio-system is ready! ior_test.go:229: SUCCESS: Pod istiod-basic-c5db96944-86frd is being deleted ior_test.go:230: Pod istiod-basic-c5db96944-rw46b in namespace istio-system is ready! ior_test.go:229: SUCCESS: Pod istiod-basic-c5db96944-rw46b is being deleted ior_test.go:230: Pod istiod-basic-c5db96944-xthlt in namespace istio-system is ready! ior_test.go:229: SUCCESS: Pod istiod-basic-c5db96944-xthlt is being deleted ior_test.go:230: Pod istiod-basic-c5db96944-x4d2l in namespace istio-system is ready! ior_test.go:229: SUCCESS: Pod istiod-basic-c5db96944-x4d2l is being deleted ior_test.go:230: Pod istiod-basic-c5db96944-9594b in namespace istio-system is ready! ior_test.go:232: Wait for condition condition=Ready on smcp istio-system/basic... ior_test.go:232: SUCCESS: Condition condition=Ready met by smcp istio-system/basic ior_test.go:221: SUCCESS: Got 3 Routes unchanged ior_test.go:235: ior_test.go:235: STEP 5: Check weather the Routes changes when adding new IngressGateway ior_test.go:256: Wait for condition condition=Ready on smcp istio-system/basic... ior_test.go:256: Wait for condition condition=Ready on smcp istio-system/basic... ior_test.go:256: SUCCESS: Condition condition=Ready met by smcp istio-system/basic ior_test.go:221: SUCCESS: Got 3 Routes unchanged subtest.go:23: subtest.go:28: Subtest completed in 85.50s (excluding cleanup) ior_test.go:151: ior_test.go:151: Performing cleanup ior_test.go:156: Deleting namespaces: [ns-0 ns-1 ns-2] ior_test.go:151: Cleanup completed in 16.60s --- PASS: TestIOR/check_IOR_does_not_delete_routes_after_deleting_Istio_pod (102.10s) test.go:77: test.go:82: Test completed in 323.32s (excluding cleanup) ior_test.go:46: ior_test.go:46: Performing cleanup ior_test.go:47: Deleting namespaces: [istio-system] ior_test.go:47: Creating namespaces: [istio-system] ior_test.go:46: Cleanup completed in 31.77s --- PASS: TestIOR (355.09s) === RUN TestOperatorCanUpdatePrometheusConfigMap prometheus_scoped_scraping_test.go:28: This test checks if the operator can update Prometheus ConfigMap when the SMMR is updated prometheus_scoped_scraping_test.go:38: prometheus_scoped_scraping_test.go:38: STEP 1: Apply default SMCP and SMMR manifests prometheus_scoped_scraping_test.go:38: Wait for condition condition=Ready on smcp istio-system/basic... prometheus_scoped_scraping_test.go:38: Wait for condition condition=Ready on smcp istio-system/basic... prometheus_scoped_scraping_test.go:38: Wait for condition condition=Ready on smcp istio-system/basic... prometheus_scoped_scraping_test.go:38: Wait for condition condition=Ready on smcp istio-system/basic... prometheus_scoped_scraping_test.go:38: SUCCESS: Condition condition=Ready met by smcp istio-system/basic prometheus_scoped_scraping_test.go:187: prometheus_scoped_scraping_test.go:187: STEP 2: Check the Prometheus log to see if there is any permission error prometheus_scoped_scraping_test.go:188: SUCCESS: Found no permission error === RUN TestOperatorCanUpdatePrometheusConfigMap/when_the_default_SMMR_with_no_member prometheus_scoped_scraping_test.go:48: prometheus_scoped_scraping_test.go:48: STEP 1: Update default SMMR with no member prometheus_scoped_scraping_test.go:231: prometheus_scoped_scraping_test.go:231: STEP 2: Update SMMR apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default spec: members: prometheus_scoped_scraping_test.go:201: Wait one minute on the kubelet to update the volume to reflect the changes prometheus_scoped_scraping_test.go:203: SUCCESS: Triggered configuration reloading prometheus_scoped_scraping_test.go:187: prometheus_scoped_scraping_test.go:187: STEP 3: Check the Prometheus log to see if there is any permission error prometheus_scoped_scraping_test.go:188: SUCCESS: Found no permission error subtest.go:23: subtest.go:28: Subtest completed in 80.09s (excluding cleanup) prometheus_scoped_scraping_test.go:43: prometheus_scoped_scraping_test.go:43: Performing cleanup prometheus_scoped_scraping_test.go:43: Cleanup completed in 1.82s --- PASS: TestOperatorCanUpdatePrometheusConfigMap/when_the_default_SMMR_with_no_member (81.91s) === RUN TestOperatorCanUpdatePrometheusConfigMap/when_creating_a_SMMR prometheus_scoped_scraping_test.go:63: prometheus_scoped_scraping_test.go:63: STEP 1: Create namespace namespace-1015443938158834754 and add it into SMMR prometheus_scoped_scraping_test.go:64: Creating namespaces: [namespace-1015443938158834754] prometheus_scoped_scraping_test.go:231: prometheus_scoped_scraping_test.go:231: STEP 2: Update SMMR apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default spec: members: - namespace-1015443938158834754 prometheus_scoped_scraping_test.go:67: prometheus_scoped_scraping_test.go:67: STEP 3: Look for namespace-1015443938158834754 in prometheus ConfigMap prometheus_scoped_scraping_test.go:216: SUCCESS: Found namespace-1015443938158834754 in Prometheus config subtest.go:23: subtest.go:28: Subtest completed in 3.17s (excluding cleanup) prometheus_scoped_scraping_test.go:58: prometheus_scoped_scraping_test.go:58: Performing cleanup prometheus_scoped_scraping_test.go:59: Deleting namespaces: [namespace-1015443938158834754] prometheus_scoped_scraping_test.go:58: Cleanup completed in 15.22s --- PASS: TestOperatorCanUpdatePrometheusConfigMap/when_creating_a_SMMR (18.39s) === RUN TestOperatorCanUpdatePrometheusConfigMap/when_adding_a_new_namespace_into_existing_SMMR prometheus_scoped_scraping_test.go:80: prometheus_scoped_scraping_test.go:80: STEP 1: Create namespace namespace-3892718154449920212 and add it into SMMR prometheus_scoped_scraping_test.go:81: Creating namespaces: [namespace-3892718154449920212] prometheus_scoped_scraping_test.go:231: prometheus_scoped_scraping_test.go:231: STEP 2: Update SMMR apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default spec: members: - namespace-3892718154449920212 prometheus_scoped_scraping_test.go:84: prometheus_scoped_scraping_test.go:84: STEP 3: Create namespace namespace-3852092273668619951 and add it into SMMR along with namespace-3892718154449920212 prometheus_scoped_scraping_test.go:85: Creating namespaces: [namespace-3852092273668619951] prometheus_scoped_scraping_test.go:231: prometheus_scoped_scraping_test.go:231: STEP 4: Update SMMR apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default spec: members: - namespace-3892718154449920212 - namespace-3852092273668619951 prometheus_scoped_scraping_test.go:88: prometheus_scoped_scraping_test.go:88: STEP 5: Look for [namespace-3892718154449920212 namespace-3852092273668619951] in prometheus ConfigMap prometheus_scoped_scraping_test.go:216: SUCCESS: Found namespace-3892718154449920212 in Prometheus config prometheus_scoped_scraping_test.go:216: SUCCESS: Found namespace-3852092273668619951 in Prometheus config subtest.go:23: subtest.go:28: Subtest completed in 7.29s (excluding cleanup) prometheus_scoped_scraping_test.go:75: prometheus_scoped_scraping_test.go:75: Performing cleanup prometheus_scoped_scraping_test.go:76: Deleting namespaces: [namespace-3892718154449920212 namespace-3852092273668619951] prometheus_scoped_scraping_test.go:75: Cleanup completed in 15.97s --- PASS: TestOperatorCanUpdatePrometheusConfigMap/when_adding_a_new_namespace_into_existing_SMMR (23.26s) === RUN TestOperatorCanUpdatePrometheusConfigMap/when_removing_a_namespace_from_existing_SMMR prometheus_scoped_scraping_test.go:101: prometheus_scoped_scraping_test.go:101: STEP 1: Create namespace (namespace-4843449715734955885,namespace-4561653169071515025) and add it into SMMR prometheus_scoped_scraping_test.go:102: Creating namespaces: [namespace-4843449715734955885 namespace-4561653169071515025] prometheus_scoped_scraping_test.go:231: prometheus_scoped_scraping_test.go:231: STEP 2: Update SMMR apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default spec: members: - namespace-4843449715734955885 - namespace-4561653169071515025 prometheus_scoped_scraping_test.go:105: prometheus_scoped_scraping_test.go:105: STEP 3: Update SMMR with only namespace-4843449715734955885 prometheus_scoped_scraping_test.go:231: prometheus_scoped_scraping_test.go:231: STEP 4: Update SMMR apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default spec: members: - namespace-4843449715734955885 prometheus_scoped_scraping_test.go:108: prometheus_scoped_scraping_test.go:108: STEP 5: Look for namespace-4843449715734955885 in prometheus ConfigMap prometheus_scoped_scraping_test.go:216: SUCCESS: Found namespace-4843449715734955885 in Prometheus config prometheus_scoped_scraping_test.go:216: SUCCESS: Expected to not find namespace-4561653169071515025 in the Prometheus config subtest.go:23: subtest.go:28: Subtest completed in 6.61s (excluding cleanup) prometheus_scoped_scraping_test.go:96: prometheus_scoped_scraping_test.go:96: Performing cleanup prometheus_scoped_scraping_test.go:97: Deleting namespaces: [namespace-4843449715734955885 namespace-4561653169071515025] prometheus_scoped_scraping_test.go:96: Cleanup completed in 15.18s --- PASS: TestOperatorCanUpdatePrometheusConfigMap/when_removing_a_namespace_from_existing_SMMR (21.79s) === RUN TestOperatorCanUpdatePrometheusConfigMap/when_the_default_SMMR_with_nonexistent_namespace prometheus_scoped_scraping_test.go:117: prometheus_scoped_scraping_test.go:117: STEP 1: Update default SMMR with nonexistent member prometheus_scoped_scraping_test.go:123: prometheus_scoped_scraping_test.go:123: STEP 2: Update SMMR apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default spec: members: - namespace-8446462268866117624 prometheus_scoped_scraping_test.go:216: SUCCESS: Expected to not find namespace-8446462268866117624 in the Prometheus config prometheus_scoped_scraping_test.go:187: prometheus_scoped_scraping_test.go:187: STEP 3: Check the Prometheus log to see if there is any permission error prometheus_scoped_scraping_test.go:188: SUCCESS: Found no permission error subtest.go:23: subtest.go:28: Subtest completed in 2.23s (excluding cleanup) prometheus_scoped_scraping_test.go:113: prometheus_scoped_scraping_test.go:113: Performing cleanup prometheus_scoped_scraping_test.go:113: Cleanup completed in 1.93s --- PASS: TestOperatorCanUpdatePrometheusConfigMap/when_the_default_SMMR_with_nonexistent_namespace (4.16s) === RUN TestOperatorCanUpdatePrometheusConfigMap/query_istio_request_total prometheus_scoped_scraping_test.go:136: prometheus_scoped_scraping_test.go:136: STEP 1: Install bookinfo prometheus_scoped_scraping_test.go:137: Install app "bookinfo" in namespace "bookinfo" prometheus_scoped_scraping_test.go:137: Create Bookinfo Gateway prometheus_scoped_scraping_test.go:137: Create Bookinfo Destination Rules (all) prometheus_scoped_scraping_test.go:137: Create Bookinfo Deployments prometheus_scoped_scraping_test.go:137: Wait for app bookinfo/bookinfo to be ready prometheus_scoped_scraping_test.go:140: prometheus_scoped_scraping_test.go:140: STEP 2: Generate 10 requests to product page prometheus_scoped_scraping_test.go:146: prometheus_scoped_scraping_test.go:146: STEP 3: Check if the "istio_request_total metric is in Prometheus" prometheus_scoped_scraping_test.go:147: SUCCESS: Found the "istio_request_total" metric subtest.go:23: subtest.go:28: Subtest completed in 23.74s (excluding cleanup) prometheus_scoped_scraping_test.go:132: prometheus_scoped_scraping_test.go:132: Performing cleanup prometheus_scoped_scraping_test.go:133: Deleting namespaces: [bookinfo] prometheus_scoped_scraping_test.go:133: Creating namespaces: [bookinfo] prometheus_scoped_scraping_test.go:132: Cleanup completed in 22.31s --- PASS: TestOperatorCanUpdatePrometheusConfigMap/query_istio_request_total (46.06s) === RUN TestOperatorCanUpdatePrometheusConfigMap/when_removing_SMMR prometheus_scoped_scraping_test.go:167: prometheus_scoped_scraping_test.go:167: STEP 1: Delete default SMMR apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default spec: members: - bookinfo - foo - bar - legacy prometheus_scoped_scraping_test.go:216: SUCCESS: Expected to not find bar in the Prometheus config prometheus_scoped_scraping_test.go:216: SUCCESS: Expected to not find bookinfo in the Prometheus config prometheus_scoped_scraping_test.go:216: SUCCESS: Expected to not find foo in the Prometheus config prometheus_scoped_scraping_test.go:216: SUCCESS: Expected to not find legacy in the Prometheus config prometheus_scoped_scraping_test.go:201: Wait one minute on the kubelet to update the volume to reflect the changes prometheus_scoped_scraping_test.go:203: SUCCESS: Triggered configuration reloading prometheus_scoped_scraping_test.go:187: prometheus_scoped_scraping_test.go:187: STEP 2: Check the Prometheus log to see if there is any permission error prometheus_scoped_scraping_test.go:188: SUCCESS: Found no permission error subtest.go:23: subtest.go:28: Subtest completed in 62.21s (excluding cleanup) prometheus_scoped_scraping_test.go:162: prometheus_scoped_scraping_test.go:162: Performing cleanup prometheus_scoped_scraping_test.go:162: Cleanup completed in 2.24s --- PASS: TestOperatorCanUpdatePrometheusConfigMap/when_removing_SMMR (64.45s) === RUN TestOperatorCanUpdatePrometheusConfigMap/[TODO]_test_under_cluster_scoped prometheus_scoped_scraping_test.go:181: subtest.go:23: subtest.go:28: Subtest completed in 0.00s (excluding cleanup) --- SKIP: TestOperatorCanUpdatePrometheusConfigMap/[TODO]_test_under_cluster_scoped (0.00s) test.go:77: test.go:82: Test completed in 295.65s (excluding cleanup) prometheus_scoped_scraping_test.go:34: prometheus_scoped_scraping_test.go:34: Performing cleanup prometheus_scoped_scraping_test.go:34: Cleanup completed in 1.47s --- PASS: TestOperatorCanUpdatePrometheusConfigMap (297.13s) === RUN TestRateLimiting test.go:120: This test is being skipped because it doesn't support the current SMCP version v2.4 (max version is v2.2) --- SKIP: TestRateLimiting (0.00s) === RUN TestSMCPAddons === RUN TestSMCPAddons/3scale_addon smcp_addons_test.go:31: smcp_addons_test.go:31: STEP 1: Enable 3scale in a SMCP expecting to get validation error. smcp_addons_test.go:36: smcp_addons_test.go:36: STEP 2: Apply default SMCP and SMMR manifests smcp_addons_test.go:36: Wait for condition condition=Ready on smcp istio-system/basic... smcp_addons_test.go:36: SUCCESS: Condition condition=Ready met by smcp istio-system/basic smcp_addons_test.go:38: SUCCESS: Got expected validation error: support for 3scale has been removed smcp_addons_test.go:43: Wait for condition condition=Ready on smcp istio-system/basic... smcp_addons_test.go:43: SUCCESS: Condition condition=Ready met by smcp istio-system/basic subtest.go:23: subtest.go:28: Subtest completed in 12.61s (excluding cleanup) smcp_addons_test.go:32: smcp_addons_test.go:32: Performing cleanup smcp_addons_test.go:32: Cleanup completed in 0.30s --- PASS: TestSMCPAddons/3scale_addon (12.90s) test.go:77: test.go:82: Test completed in 12.90s (excluding cleanup) --- PASS: TestSMCPAddons (12.90s) === RUN TestSMCPAnnotations smcp_annotation_test.go:31: Test annotations: verify deployment with sidecar.maistra.io/proxyEnv annotations and Enable automatic injection in SMCP to propagate the annotations to the sidecar smcp_annotation_test.go:33: smcp_annotation_test.go:33: STEP 1: Apply default SMCP and SMMR manifests smcp_annotation_test.go:33: Wait for condition condition=Ready on smcp istio-system/basic... smcp_annotation_test.go:33: SUCCESS: Condition condition=Ready met by smcp istio-system/basic === RUN TestSMCPAnnotations/proxyEnvoy === PAUSE TestSMCPAnnotations/proxyEnvoy === RUN TestSMCPAnnotations/quote_injection === PAUSE TestSMCPAnnotations/quote_injection test.go:77: test.go:82: Test completed in 12.11s (excluding cleanup) === CONT TestSMCPAnnotations/proxyEnvoy === CONT TestSMCPAnnotations/quote_injection smcp_annotation_test.go:58: smcp_annotation_test.go:58: STEP 1: Enable annotation auto injection in SMCP smcp_annotation_test.go:41: smcp_annotation_test.go:41: STEP 1: Deploy TestSSL pod with annotations sidecar.maistra.io/proxyEnv smcp_annotation_test.go:64: Wait for condition condition=Ready on smcp istio-system/basic... smcp_annotation_test.go:45: smcp_annotation_test.go:45: STEP 2: Get annotations and verify that the pod has the expected: sidecar.maistra.io/proxyEnv : { "maistra_test_env": "env_value", "maistra_test_env_2": "env_value_2" } subtest.go:23: subtest.go:28: Subtest completed in 5.01s (excluding cleanup) smcp_annotation_test.go:38: smcp_annotation_test.go:38: Performing cleanup smcp_annotation_test.go:38: Cleanup completed in 0.26s --- PASS: TestSMCPAnnotations/proxyEnvoy (5.27s) smcp_annotation_test.go:64: Wait for condition condition=Ready on smcp istio-system/basic... smcp_annotation_test.go:64: SUCCESS: Condition condition=Ready met by smcp istio-system/basic smcp_annotation_test.go:66: smcp_annotation_test.go:66: STEP 2: Deploy TestSSL pod with annotations sidecar.maistra.io/proxyEnv smcp_annotation_test.go:70: smcp_annotation_test.go:70: STEP 3: Get annotations and verify that the pod has the expected: test1.annotation-from-smcp : test1, test2.annotation-from-smcp : ["test2"], test3.annotation-from-smcp : {test3} subtest.go:23: subtest.go:28: Subtest completed in 19.08s (excluding cleanup) smcp_annotation_test.go:54: smcp_annotation_test.go:54: Performing cleanup smcp_annotation_test.go:54: Cleanup completed in 0.51s --- PASS: TestSMCPAnnotations/quote_injection (19.59s) --- PASS: TestSMCPAnnotations (12.11s) === RUN TestMustGather smcp_must_gather_test.go:36: This test verifies must-gather log collection smcp_must_gather_test.go:43: smcp_must_gather_test.go:43: STEP 1: Apply default SMCP and SMMR manifests smcp_must_gather_test.go:43: Wait for condition condition=Ready on smcp istio-system/basic... smcp_must_gather_test.go:43: Wait for condition condition=Ready on smcp istio-system/basic... smcp_must_gather_test.go:43: SUCCESS: Condition condition=Ready met by smcp istio-system/basic smcp_must_gather_test.go:45: smcp_must_gather_test.go:45: STEP 2: Deploy bookinfo in bookinfo ns smcp_must_gather_test.go:46: Install app "bookinfo" in namespace "bookinfo" smcp_must_gather_test.go:46: Create Bookinfo Gateway smcp_must_gather_test.go:46: Create Bookinfo Destination Rules (all) smcp_must_gather_test.go:46: Create Bookinfo Deployments smcp_must_gather_test.go:46: Wait for app bookinfo/bookinfo to be ready smcp_must_gather_test.go:51: smcp_must_gather_test.go:51: STEP 3: Capture must-gather using image registry.redhat.io/openshift-service-mesh/istio-must-gather-rhel8:2.4 without namespace flag smcp_must_gather_test.go:52: SUCCESS: Must gather completed successfully === RUN TestMustGather/dump_files_and_proxy_stats_files_exist_for_pods smcp_must_gather_test.go:60: smcp_must_gather_test.go:60: STEP 1: Check dump files exist under the directory of namespace directory smcp_must_gather_test.go:61: Verify these files: smcp_must_gather_test.go:62: config_dump_istiod.json, config_dump_proxy.json, proxy_stats smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/namespaces/bookinfo/pods/details*/config_dump_istiod.json exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/namespaces/bookinfo/pods/details*/config_dump_proxy.json exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/namespaces/bookinfo/pods/details*/proxy_stats exists smcp_must_gather_test.go:68: smcp_must_gather_test.go:68: STEP 2: verify content of proxy_stats smcp_must_gather_test.go:69: verify that proxy stats file is not empty and contains parameters like: server.stats_recent_lookups, server.total_connections, server.uptime, server.version smcp_must_gather_test.go:176: SUCCESS: server.stats_recent_lookups is on the proxy_stats file smcp_must_gather_test.go:176: SUCCESS: server.total_connections is on the proxy_stats file smcp_must_gather_test.go:176: SUCCESS: server.uptime is on the proxy_stats file smcp_must_gather_test.go:176: SUCCESS: server.version is on the proxy_stats file subtest.go:23: subtest.go:28: Subtest completed in 0.02s (excluding cleanup) --- PASS: TestMustGather/dump_files_and_proxy_stats_files_exist_for_pods (0.02s) === RUN TestMustGather/version_file smcp_must_gather_test.go:83: smcp_must_gather_test.go:83: STEP 1: verify file version exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/version exists smcp_must_gather_test.go:87: smcp_must_gather_test.go:87: STEP 2: verify file version contains the version of the must-gather image smcp_must_gather_test.go:176: SUCCESS: Expected must gather version was found subtest.go:23: subtest.go:28: Subtest completed in 0.05s (excluding cleanup) --- PASS: TestMustGather/version_file (0.05s) === RUN TestMustGather/resources_cluster_scoped smcp_must_gather_test.go:98: smcp_must_gather_test.go:98: STEP 1: Get nodes of the cluster smcp_must_gather_test.go:102: smcp_must_gather_test.go:102: STEP 2: verify nodes files exist in cluster-scoped-resources smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/cluster-scoped-resources/core/nodes/ppc64le-qe59c-w2tm2-master-0.yaml exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/cluster-scoped-resources/core/nodes/ppc64le-qe59c-w2tm2-master-1.yaml exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/cluster-scoped-resources/core/nodes/ppc64le-qe59c-w2tm2-master-2.yaml exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/cluster-scoped-resources/core/nodes/ppc64le-qe59c-w2tm2-worker-0-465fr.yaml exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/cluster-scoped-resources/core/nodes/ppc64le-qe59c-w2tm2-worker-0-6gn6s.yaml exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/cluster-scoped-resources/core/nodes/ppc64le-qe59c-w2tm2-worker-0-ggxls.yaml exists smcp_must_gather_test.go:111: smcp_must_gather_test.go:111: STEP 3: Verify cluster-scoped-resources files exist in cluster-scoped-resources folder smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/cluster-scoped-resources/rbac.authorization.k8s.io/clusterrolebindings/istiod-internal-basic-istio-system.yaml exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/cluster-scoped-resources/admissionregistration.k8s.io/mutatingwebhookconfigurations/openshift-operators.servicemesh-resources.maistra.io.yaml exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/cluster-scoped-resources/rbac.authorization.k8s.io/clusterroles/istiod-clusterrole-basic-istio-system.yaml exists subtest.go:23: subtest.go:28: Subtest completed in 0.41s (excluding cleanup) --- PASS: TestMustGather/resources_cluster_scoped (0.41s) === RUN TestMustGather/resource_for_namespaces_exist smcp_must_gather_test.go:120: smcp_must_gather_test.go:120: STEP 1: verify that resources for namespaces are created including bookinfo and istio-system folders smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/namespaces/istio-system/debug-syncz.json exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/namespaces/istio-system/istio-system.yaml exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/namespaces/bookinfo/bookinfo.yaml exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/namespaces/openshift-operators/openshift-operators.yaml exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/namespaces/*/rbac.authorization.k8s.io/rolebindings/mesh-users.yaml exists subtest.go:23: subtest.go:28: Subtest completed in 0.01s (excluding cleanup) --- PASS: TestMustGather/resource_for_namespaces_exist (0.01s) === RUN TestMustGather/cluster_service_version_files_validation smcp_must_gather_test.go:131: smcp_must_gather_test.go:131: STEP 1: Get service current service version from the cluster smcp_must_gather_test.go:134: smcp_must_gather_test.go:134: STEP 2: verify if the csv files exist for the current service version smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/namespaces/openshift-operators/operators.coreos.com/clusterserviceversions/elasticsearch-operator.v5.6.5.yaml exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/namespaces/openshift-operators/operators.coreos.com/clusterserviceversions/jaeger-operator.v1.42.0-5-0.1687199951.p.yaml exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/namespaces/openshift-operators/operators.coreos.com/clusterserviceversions/kiali-operator.v1.65.7.yaml exists smcp_must_gather_test.go:153: SUCCESS: /tmp/must-gather-2677202449/**/namespaces/openshift-operators/operators.coreos.com/clusterserviceversions/servicemeshoperator.v2.4.1.yaml exists subtest.go:23: subtest.go:28: Subtest completed in 0.38s (excluding cleanup) --- PASS: TestMustGather/cluster_service_version_files_validation (0.38s) test.go:77: test.go:82: Test completed in 152.68s (excluding cleanup) smcp_must_gather_test.go:39: smcp_must_gather_test.go:39: Performing cleanup smcp_must_gather_test.go:40: Deleting namespaces: [bookinfo] smcp_must_gather_test.go:40: Creating namespaces: [bookinfo] smcp_must_gather_test.go:39: Cleanup completed in 16.30s --- PASS: TestMustGather (168.98s) === RUN TestTLSVersionSMCP smcp_tls_ssl_test.go:25: This test checks if the SMCP updated the tls.minProtocolVersion to TLSv1_0, TLSv1_1, and tls.maxProtocolVersion to TLSv1_3. smcp_tls_ssl_test.go:34: smcp_tls_ssl_test.go:34: STEP 1: Apply default SMCP and SMMR manifests smcp_tls_ssl_test.go:34: Wait for condition condition=Ready on smcp istio-system/basic... smcp_tls_ssl_test.go:34: SUCCESS: Condition condition=Ready met by smcp istio-system/basic === RUN TestTLSVersionSMCP/minVersion_TLSv1_0 smcp_tls_ssl_test.go:37: smcp_tls_ssl_test.go:37: STEP 1: Update SMCP spec.security.controlPlane.tls.minProtocolVersion: TLSv1_0 smcp_tls_ssl_test.go:39: Wait for condition condition=Ready on smcp istio-system/basic... smcp_tls_ssl_test.go:39: Wait for condition condition=Ready on smcp istio-system/basic... smcp_tls_ssl_test.go:39: SUCCESS: Condition condition=Ready met by smcp istio-system/basic subtest.go:23: subtest.go:28: Subtest completed in 15.19s (excluding cleanup) --- PASS: TestTLSVersionSMCP/minVersion_TLSv1_0 (15.19s) === RUN TestTLSVersionSMCP/minVersion_TLSv1_1 smcp_tls_ssl_test.go:43: smcp_tls_ssl_test.go:43: STEP 1: Check to see if the SMCP minProtocolVersion is TLSv1_1 smcp_tls_ssl_test.go:45: Wait for condition condition=Ready on smcp istio-system/basic... smcp_tls_ssl_test.go:45: Wait for condition condition=Ready on smcp istio-system/basic... smcp_tls_ssl_test.go:45: SUCCESS: Condition condition=Ready met by smcp istio-system/basic subtest.go:23: subtest.go:28: Subtest completed in 13.85s (excluding cleanup) --- PASS: TestTLSVersionSMCP/minVersion_TLSv1_1 (13.85s) === RUN TestTLSVersionSMCP/maxVersion_TLSv1_3 smcp_tls_ssl_test.go:49: smcp_tls_ssl_test.go:49: STEP 1: Check to see if the SMCP maxProtocolVersion is TLSv1_3 smcp_tls_ssl_test.go:51: Wait for condition condition=Ready on smcp istio-system/basic... smcp_tls_ssl_test.go:51: Wait for condition condition=Ready on smcp istio-system/basic... smcp_tls_ssl_test.go:51: SUCCESS: Condition condition=Ready met by smcp istio-system/basic subtest.go:23: subtest.go:28: Subtest completed in 16.86s (excluding cleanup) --- PASS: TestTLSVersionSMCP/maxVersion_TLSv1_3 (16.86s) test.go:77: test.go:82: Test completed in 57.81s (excluding cleanup) smcp_tls_ssl_test.go:26: smcp_tls_ssl_test.go:26: Performing cleanup smcp_tls_ssl_test.go:31: Wait for condition condition=Ready on smcp istio-system/basic... smcp_tls_ssl_test.go:31: Wait for condition condition=Ready on smcp istio-system/basic... smcp_tls_ssl_test.go:31: SUCCESS: Condition condition=Ready met by smcp istio-system/basic smcp_tls_ssl_test.go:26: Cleanup completed in 13.85s --- PASS: TestTLSVersionSMCP (71.66s) === RUN TestSMMRAutoCreationAndDeletion smm_test.go:17: This test verifies what happens to the SMMR when SMM is created and deleted smm_test.go:24: smm_test.go:24: STEP 1: Apply default SMCP and SMMR manifests smm_test.go:24: Wait for condition condition=Ready on smcp istio-system/basic... smm_test.go:24: Wait for condition condition=Ready on smcp istio-system/basic... smm_test.go:24: SUCCESS: Condition condition=Ready met by smcp istio-system/basic smm_test.go:26: smm_test.go:26: STEP 2: Delete SMMR smm_test.go:29: smm_test.go:29: STEP 3: Create two namespaces smm_test.go:30: Creating namespaces: [foo bar] === RUN TestSMMRAutoCreationAndDeletion/create_first_SMM smm_test.go:33: This test checks if the SMMR is created when you create a ServiceMeshMember smm_test.go:35: smm_test.go:35: STEP 1: Create ServiceMeshMembers in namespaces foo and bar smm_test.go:39: smm_test.go:39: STEP 2: Wait for SMMR to be ready smm_test.go:42: smm_test.go:42: STEP 3: Check both namespaces are shown as members in SMMR smm_test.go:43: SUCCESS: SMMR has the member foo smm_test.go:43: SUCCESS: SMMR has the member bar subtest.go:23: subtest.go:28: Subtest completed in 3.83s (excluding cleanup) --- PASS: TestSMMRAutoCreationAndDeletion/create_first_SMM (3.83s) === RUN TestSMMRAutoCreationAndDeletion/delete_non-terminal_SMM smm_test.go:52: This test verifies that the SMMR isn't deleted when one SMM is deleted, but other SMMs still exist smm_test.go:53: See https://issues.redhat.com/browse/OSSM-2374 (implementation) smm_test.go:54: See https://issues.redhat.com/browse/OSSM-3450 (test) smm_test.go:56: smm_test.go:56: STEP 1: Delete one SMM, but keep the other smm_test.go:59: smm_test.go:59: STEP 2: Check if SMMR becomes ready (it won't be if it gets deleted) subtest.go:23: subtest.go:28: Subtest completed in 0.59s (excluding cleanup) --- PASS: TestSMMRAutoCreationAndDeletion/delete_non-terminal_SMM (0.59s) === RUN TestSMMRAutoCreationAndDeletion/delete_terminal_SMM smm_test.go:66: This test verifies tht the SMMR is deleted when the last SMM is deleted smm_test.go:67: See https://issues.redhat.com/browse/OSSM-2374 (implementation) smm_test.go:68: See https://issues.redhat.com/browse/OSSM-3450 (test) smm_test.go:70: smm_test.go:70: STEP 1: Delete last SMM smm_test.go:73: smm_test.go:73: STEP 2: Check that SMMR is deleted smm_test.go:74: SUCCESS: SMMR has been deleted subtest.go:23: subtest.go:28: Subtest completed in 0.61s (excluding cleanup) --- PASS: TestSMMRAutoCreationAndDeletion/delete_terminal_SMM (0.61s) test.go:77: test.go:82: Test completed in 19.97s (excluding cleanup) smm_test.go:20: smm_test.go:20: Performing cleanup smm_test.go:20: Cleanup completed in 1.27s --- PASS: TestSMMRAutoCreationAndDeletion (21.23s) === RUN TestSmoke smoke_test.go:46: Smoke Test for SMCP: deploy, upgrade, bookinfo and uninstall smoke_test.go:56: Deleting namespaces: [istio-system] smoke_test.go:56: Creating namespaces: [istio-system] === RUN TestSmoke/upgrade_v2.3_to_v2.4 smoke_test.go:59: This test checks whether SMCP becomes ready after it's upgraded from v2.3 to v2.4 and bookinfo is still working after the upgrade and also test a clean installation of the target SMCP smoke_test.go:65: smoke_test.go:65: STEP 1: Install SMCP v2.3 and verify it becomes ready smoke_test.go:187: smoke_test.go:187: STEP 2: Install SMCP smoke_test.go:189: Wait for condition condition=Ready on smcp istio-system/basic... smoke_test.go:189: Wait for condition condition=Ready on smcp istio-system/basic... smoke_test.go:189: Wait for condition condition=Ready on smcp istio-system/basic... smoke_test.go:189: SUCCESS: Condition condition=Ready met by smcp istio-system/basic smoke_test.go:191: smoke_test.go:191: STEP 3: Check SMCP is Ready smoke_test.go:192: Wait for condition condition=Ready on smcp istio-system/basic... smoke_test.go:192: SUCCESS: Condition condition=Ready met by smcp istio-system/basic smoke_test.go:68: smoke_test.go:68: STEP 4: Install bookinfo pods and sleep pod smoke_test.go:69: Install app "bookinfo" in namespace "bookinfo" smoke_test.go:69: Create Bookinfo Gateway smoke_test.go:69: Create Bookinfo Destination Rules (all) smoke_test.go:69: Create Bookinfo Deployments smoke_test.go:69: Install app "sleep" in namespace "bookinfo" smoke_test.go:69: Wait for app bookinfo/bookinfo to be ready smoke_test.go:69: Wait for app bookinfo/sleep to be ready smoke_test.go:71: smoke_test.go:71: STEP 5: Check if bookinfo traffic flows through the Proxy smoke_test.go:137: SUCCESS: ProductPage returns 200 OK smoke_test.go:137: SUCCESS: HTTP header 'server: istio-envoy' is present in the response smoke_test.go:137: SUCCESS: HTTP header 'x-envoy-decorator-operation' is present in the response smoke_test.go:74: smoke_test.go:74: STEP 6: Upgrade SMCP from v2.3 to v2.4 smoke_test.go:187: smoke_test.go:187: STEP 7: Install SMCP smoke_test.go:189: Wait for condition condition=Ready on smcp istio-system/basic... smoke_test.go:189: Wait for condition condition=Ready on smcp istio-system/basic... smoke_test.go:189: Wait for condition condition=Ready on smcp istio-system/basic... smoke_test.go:189: Wait for condition condition=Ready on smcp istio-system/basic... smoke_test.go:189: SUCCESS: Condition condition=Ready met by smcp istio-system/basic smoke_test.go:191: smoke_test.go:191: STEP 8: Check SMCP is Ready smoke_test.go:192: Wait for condition condition=Ready on smcp istio-system/basic... smoke_test.go:192: SUCCESS: Condition condition=Ready met by smcp istio-system/basic smoke_test.go:77: smoke_test.go:77: STEP 9: Check if bookinfo productpage is running through the Proxy after the upgrade smoke_test.go:137: SUCCESS: ProductPage returns 200 OK smoke_test.go:137: SUCCESS: HTTP header 'server: istio-envoy' is present in the response smoke_test.go:137: SUCCESS: HTTP header 'x-envoy-decorator-operation' is present in the response smoke_test.go:80: smoke_test.go:80: STEP 10: Delete Bookinfo pods to force the update of the sidecar smoke_test.go:125: smoke_test.go:125: STEP 11: Verify if all the routes are created smoke_test.go:196: Related issue: https://issues.redhat.com/browse/OSSM-4069 smoke_test.go:197: SUCCESS: Route grafana is created smoke_test.go:197: SUCCESS: Route istio-ingressgateway is created smoke_test.go:197: SUCCESS: Route jaeger is created smoke_test.go:197: SUCCESS: Route kiali is created smoke_test.go:197: SUCCESS: Route prometheus is created smoke_test.go:128: smoke_test.go:128: STEP 12: Check if bookinfo traffic flows through the Proxy smoke_test.go:137: SUCCESS: ProductPage returns 200 OK smoke_test.go:137: SUCCESS: HTTP header 'server: istio-envoy' is present in the response smoke_test.go:137: SUCCESS: HTTP header 'x-envoy-decorator-operation' is present in the response smoke_test.go:131: smoke_test.go:131: STEP 13: verify proxy startup time. Expected to be less than 10 seconds smoke_test.go:132: Jira related: https://issues.redhat.com/browse/OSSM-3586 smoke_test.go:157: Extracting proxy startup time and last transition time for all the pods in the namespace subtest.go:23: subtest.go:28: Subtest completed in 90.70s (excluding cleanup) smoke_test.go:60: smoke_test.go:60: Performing cleanup smoke_test.go:61: Uninstalling Bookinfo from namespace "bookinfo" smoke_test.go:62: Deleting namespaces: [istio-system] smoke_test.go:62: Creating namespaces: [istio-system] smoke_test.go:60: Cleanup completed in 54.20s --- PASS: TestSmoke/upgrade_v2.3_to_v2.4 (144.90s) === RUN TestSmoke/install_smcp_v2.4 smoke_test.go:87: This test checks whether SMCP v2.4 install the SMCP version smoke_test.go:92: smoke_test.go:92: STEP 1: Install SMCP v2.4 smoke_test.go:187: smoke_test.go:187: STEP 2: Install SMCP smoke_test.go:189: Wait for condition condition=Ready on smcp istio-system/basic... smoke_test.go:189: Wait for condition condition=Ready on smcp istio-system/basic... smoke_test.go:189: Wait for condition condition=Ready on smcp istio-system/basic... smoke_test.go:189: Wait for condition condition=Ready on smcp istio-system/basic... smoke_test.go:189: SUCCESS: Condition condition=Ready met by smcp istio-system/basic smoke_test.go:191: smoke_test.go:191: STEP 3: Check SMCP is Ready smoke_test.go:192: Wait for condition condition=Ready on smcp istio-system/basic... smoke_test.go:192: SUCCESS: Condition condition=Ready met by smcp istio-system/basic smoke_test.go:95: smoke_test.go:95: STEP 4: Install bookinfo pods and sleep pod smoke_test.go:96: Install app "bookinfo" in namespace "bookinfo" smoke_test.go:96: Create Bookinfo Gateway smoke_test.go:96: Create Bookinfo Destination Rules (all) smoke_test.go:96: Create Bookinfo Deployments smoke_test.go:96: Install app "sleep" in namespace "bookinfo" smoke_test.go:96: Wait for app bookinfo/bookinfo to be ready smoke_test.go:96: Wait for app bookinfo/sleep to be ready smoke_test.go:125: smoke_test.go:125: STEP 5: Verify if all the routes are created smoke_test.go:196: Related issue: https://issues.redhat.com/browse/OSSM-4069 smoke_test.go:197: SUCCESS: Route grafana is created smoke_test.go:197: SUCCESS: Route istio-ingressgateway is created smoke_test.go:197: SUCCESS: Route jaeger is created smoke_test.go:197: SUCCESS: Route kiali is created smoke_test.go:197: SUCCESS: Route prometheus is created smoke_test.go:128: smoke_test.go:128: STEP 6: Check if bookinfo traffic flows through the Proxy smoke_test.go:137: SUCCESS: ProductPage returns 200 OK smoke_test.go:137: SUCCESS: HTTP header 'server: istio-envoy' is present in the response smoke_test.go:137: SUCCESS: HTTP header 'x-envoy-decorator-operation' is present in the response smoke_test.go:131: smoke_test.go:131: STEP 7: verify proxy startup time. Expected to be less than 10 seconds smoke_test.go:132: Jira related: https://issues.redhat.com/browse/OSSM-3586 smoke_test.go:157: Extracting proxy startup time and last transition time for all the pods in the namespace subtest.go:23: subtest.go:28: Subtest completed in 79.82s (excluding cleanup) smoke_test.go:88: smoke_test.go:88: Performing cleanup smoke_test.go:89: Uninstalling Bookinfo from namespace "bookinfo" smoke_test.go:88: Cleanup completed in 2.61s --- PASS: TestSmoke/install_smcp_v2.4 (82.43s) === RUN TestSmoke/delete_smcp_v2.4 smoke_test.go:102: This test checks whether SMCP v2.4 deletion deletes all the resources smoke_test.go:107: smoke_test.go:107: STEP 1: Delete SMCP and SMMR in namespace istio-system smoke_test.go:110: smoke_test.go:110: STEP 2: verify SMCP resources are deleted smoke_test.go:111: SUCCESS: SMCP resources are deleted subtest.go:23: subtest.go:28: Subtest completed in 34.57s (excluding cleanup) smoke_test.go:103: smoke_test.go:103: Performing cleanup smoke_test.go:104: Deleting namespaces: [istio-system] smoke_test.go:104: Creating namespaces: [istio-system] smoke_test.go:103: Cleanup completed in 23.90s --- PASS: TestSmoke/delete_smcp_v2.4 (58.47s) test.go:77: test.go:82: Test completed in 315.90s (excluding cleanup) smoke_test.go:49: smoke_test.go:49: Performing cleanup smoke_test.go:50: Deleting namespaces: [istio-system] smoke_test.go:50: Creating namespaces: [istio-system] smoke_test.go:49: Cleanup completed in 6.91s --- PASS: TestSmoke (322.81s) === RUN TestSSL testssl_test.go:45: testssl_test.go:45: STEP 1: Apply default SMCP and SMMR manifests testssl_test.go:45: Wait for condition condition=Ready on smcp istio-system/basic... testssl_test.go:45: Wait for condition condition=Ready on smcp istio-system/basic... testssl_test.go:45: Wait for condition condition=Ready on smcp istio-system/basic... testssl_test.go:45: SUCCESS: Condition condition=Ready met by smcp istio-system/basic testssl_test.go:47: testssl_test.go:47: STEP 2: Patch SMCP to enable mTLS in dataPlane and controlPlane and set min/maxProtocolVersion, cipherSuites, and ecdhCurves testssl_test.go:64: Wait for condition condition=Ready on smcp istio-system/basic... testssl_test.go:64: Wait for condition condition=Ready on smcp istio-system/basic... testssl_test.go:64: SUCCESS: Condition condition=Ready met by smcp istio-system/basic testssl_test.go:66: testssl_test.go:66: STEP 3: Install bookinfo with mTLS and testssl pod testssl_test.go:68: Install app "bookinfo" in namespace "bookinfo" testssl_test.go:68: Create Bookinfo Gateway testssl_test.go:68: Create Bookinfo Destination Rules (all) testssl_test.go:68: Create Bookinfo Deployments testssl_test.go:68: Wait for app bookinfo/bookinfo to be ready testssl_test.go:71: testssl_test.go:71: STEP 4: Check testssl.sh results testssl_test.go:72: SUCCESS: Received the TLSv1.2 needed in the testssl.sh results testssl_test.go:72: SUCCESS: Results received the correct SHA256 testssl_test.go:72: SUCCESS: Results included: P-256 test.go:77: test.go:82: Test completed in 69.66s (excluding cleanup) testssl_test.go:31: testssl_test.go:31: Performing cleanup testssl_test.go:41: Uninstalling Bookinfo from namespace "bookinfo" testssl_test.go:31: Cleanup completed in 4.46s --- PASS: TestSSL (74.11s) FAIL FAIL github.com/maistra/maistra-test-tool/pkg/tests/ossm 1821.908s test_helper_setup.go:64: Creating namespaces: [istio-system bookinfo foo bar legacy mesh-external] === RUN TestClusterWideMode clusterwide_mode_test.go:34: This test verifies the behavior of SMCP.spec.mode: ClusterWide clusterwide_mode_test.go:45: clusterwide_mode_test.go:45: STEP 1: Delete and recreate namespace istio-system clusterwide_mode_test.go:46: Deleting namespaces: [istio-system] clusterwide_mode_test.go:46: Creating namespaces: [istio-system] clusterwide_mode_test.go:48: clusterwide_mode_test.go:48: STEP 2: Install cluster-wide SMCP clusterwide_mode_test.go:51: clusterwide_mode_test.go:51: STEP 3: Wait for SMCP to be Ready clusterwide_mode_test.go:52: Wait for condition condition=Ready on smcp istio-system/basic... clusterwide_mode_test.go:52: Wait for condition condition=Ready on smcp istio-system/basic... clusterwide_mode_test.go:52: Wait for condition condition=Ready on smcp istio-system/basic... clusterwide_mode_test.go:52: Wait for condition condition=Ready on smcp istio-system/basic... clusterwide_mode_test.go:52: SUCCESS: Condition condition=Ready met by smcp istio-system/basic === RUN TestClusterWideMode/SMMR_auto-creation clusterwide_mode_test.go:55: clusterwide_mode_test.go:55: STEP 1: Check whether SMMR is created automatically clusterwide_mode_test.go:56: SUCCESS: The SMMR was created immediately after the SMCP was created subtest.go:23: subtest.go:28: Subtest completed in 0.28s (excluding cleanup) --- PASS: TestClusterWideMode/SMMR_auto-creation (0.28s) === RUN TestClusterWideMode/default_namespace_selector clusterwide_mode_test.go:65: Check whether namespaces with the label istio-injection=enabled become members automatically clusterwide_mode_test.go:67: clusterwide_mode_test.go:67: STEP 1: Create 5 member namespaces clusterwide_mode_test.go:401: Creating 5 namespaces with the label 'istio-injection=enabled': [member-0 member-1 member-2 member-3 member-4] clusterwide_mode_test.go:70: clusterwide_mode_test.go:70: STEP 2: Wait for SMMR to be Ready clusterwide_mode_test.go:73: clusterwide_mode_test.go:73: STEP 3: Check whether the SMMR shows the 5 namespaces created as members subtest.go:23: subtest.go:28: Subtest completed in 2.60s (excluding cleanup) --- PASS: TestClusterWideMode/default_namespace_selector (2.60s) === RUN TestClusterWideMode/RoleBindings_verification clusterwide_mode_test.go:80: Related to OSSM-3468 clusterwide_mode_test.go:81: clusterwide_mode_test.go:81: STEP 1: Check that Rolebindings are not created in the member namespaces clusterwide_mode_test.go:82: SUCCESS: The Rolebings does not contains istiod-clusterrole-basic-istio-system RoleBinding clusterwide_mode_test.go:82: SUCCESS: The Rolebings does not contains istiod-gateway-controller-basic-istio-system subtest.go:23: subtest.go:28: Subtest completed in 0.30s (excluding cleanup) --- PASS: TestClusterWideMode/RoleBindings_verification (0.30s) === RUN TestClusterWideMode/validate_privileges_for_SMMR_case_1 clusterwide_mode_test.go:94: Case 1: user has admin role only in mesh namespace. Expectation: user can't edit SMMR with member-0 and member-1 namespaces clusterwide_mode_test.go:424: clusterwide_mode_test.go:424: STEP 1: Create user user1 clusterwide_mode_test.go:425: SUCCESS: User created clusterwide_mode_test.go:430: clusterwide_mode_test.go:430: STEP 2: Add role admin to user user1 for namespace istio-system clusterwide_mode_test.go:431: SUCCESS: Added role to user user1 clusterwide_mode_test.go:102: clusterwide_mode_test.go:102: STEP 3: Edit SMMR to add member-0 and member-1 as a member, expect to fail clusterwide_mode_test.go:103: SUCCESS: User is not allowed to update SMMR subtest.go:23: subtest.go:28: Subtest completed in 1.90s (excluding cleanup) clusterwide_mode_test.go:96: clusterwide_mode_test.go:96: Performing cleanup clusterwide_mode_test.go:438: clusterwide_mode_test.go:438: STEP 4: Delete user user1 clusterwide_mode_test.go:439: SUCCESS: User deleted clusterwide_mode_test.go:444: clusterwide_mode_test.go:444: STEP 5: Delete role admin to user user1 for namespace istio-system clusterwide_mode_test.go:445: SUCCESS: User removed from role clusterwide_mode_test.go:96: Cleanup completed in 0.50s --- PASS: TestClusterWideMode/validate_privileges_for_SMMR_case_1 (2.40s) === RUN TestClusterWideMode/validate_privileges_for_SMMR_case_2 clusterwide_mode_test.go:122: Case 2: user has admin role only in mesh namespace. Expectation: user can't edit SMMR with * wildcard clusterwide_mode_test.go:424: clusterwide_mode_test.go:424: STEP 1: Create user user1 clusterwide_mode_test.go:425: SUCCESS: User created clusterwide_mode_test.go:430: clusterwide_mode_test.go:430: STEP 2: Add role admin to user user1 for namespace istio-system clusterwide_mode_test.go:431: SUCCESS: Added role to user user1 clusterwide_mode_test.go:130: clusterwide_mode_test.go:130: STEP 3: Edit SMMR to add "*" as a member, expect to fail clusterwide_mode_test.go:131: Adding "*" as a member to verify that user can't add all the namespaces to the SMMR clusterwide_mode_test.go:132: SUCCESS: User is not allowed to update SMMR subtest.go:23: subtest.go:28: Subtest completed in 1.80s (excluding cleanup) clusterwide_mode_test.go:124: clusterwide_mode_test.go:124: Performing cleanup clusterwide_mode_test.go:438: clusterwide_mode_test.go:438: STEP 4: Delete user user1 clusterwide_mode_test.go:439: SUCCESS: User deleted clusterwide_mode_test.go:444: clusterwide_mode_test.go:444: STEP 5: Delete role admin to user user1 for namespace istio-system clusterwide_mode_test.go:445: SUCCESS: User removed from role clusterwide_mode_test.go:124: Cleanup completed in 0.61s --- PASS: TestClusterWideMode/validate_privileges_for_SMMR_case_2 (2.41s) === RUN TestClusterWideMode/validate_privileges_for_SMMR_case_3 clusterwide_mode_test.go:150: Case 3: user has admin role in mesh, member-0 and member-1 namespaces. Expectation: user can edit SMMR clusterwide_mode_test.go:424: clusterwide_mode_test.go:424: STEP 1: Create user user1 clusterwide_mode_test.go:425: SUCCESS: User created clusterwide_mode_test.go:430: clusterwide_mode_test.go:430: STEP 2: Add role admin to user user1 for namespace istio-system clusterwide_mode_test.go:431: SUCCESS: Added role to user user1 clusterwide_mode_test.go:430: clusterwide_mode_test.go:430: STEP 3: Add role admin to user user1 for namespace member-0 clusterwide_mode_test.go:431: SUCCESS: Added role to user user1 clusterwide_mode_test.go:430: clusterwide_mode_test.go:430: STEP 4: Add role admin to user user1 for namespace member-1 clusterwide_mode_test.go:431: SUCCESS: Added role to user user1 clusterwide_mode_test.go:158: clusterwide_mode_test.go:158: STEP 5: Edit SMMR to add member-0 and member-1 as a member, expect to succeed clusterwide_mode_test.go:159: SUCCESS: User is allowed to update SMMR at the cluster scope subtest.go:23: subtest.go:28: Subtest completed in 2.29s (excluding cleanup) clusterwide_mode_test.go:152: clusterwide_mode_test.go:152: Performing cleanup clusterwide_mode_test.go:438: clusterwide_mode_test.go:438: STEP 6: Delete user user1 clusterwide_mode_test.go:439: SUCCESS: User deleted clusterwide_mode_test.go:444: clusterwide_mode_test.go:444: STEP 7: Delete role admin to user user1 for namespace istio-system clusterwide_mode_test.go:445: SUCCESS: User removed from role clusterwide_mode_test.go:444: clusterwide_mode_test.go:444: STEP 8: Delete role admin to user user1 for namespace member-0 clusterwide_mode_test.go:445: SUCCESS: User removed from role clusterwide_mode_test.go:444: clusterwide_mode_test.go:444: STEP 9: Delete role admin to user user1 for namespace member-1 clusterwide_mode_test.go:445: SUCCESS: User removed from role clusterwide_mode_test.go:152: Cleanup completed in 1.04s --- PASS: TestClusterWideMode/validate_privileges_for_SMMR_case_3 (3.33s) === RUN TestClusterWideMode/validate_privileges_for_SMMR_case_4 clusterwide_mode_test.go:177: Case 4: user has admin role in member-0 and member-1 namespaces. Expectation: user can't edit SMMR clusterwide_mode_test.go:424: clusterwide_mode_test.go:424: STEP 1: Create user user1 clusterwide_mode_test.go:425: SUCCESS: User created clusterwide_mode_test.go:430: clusterwide_mode_test.go:430: STEP 2: Add role admin to user user1 for namespace member-0 clusterwide_mode_test.go:431: SUCCESS: Added role to user user1 clusterwide_mode_test.go:430: clusterwide_mode_test.go:430: STEP 3: Add role admin to user user1 for namespace member-1 clusterwide_mode_test.go:431: SUCCESS: Added role to user user1 clusterwide_mode_test.go:185: clusterwide_mode_test.go:185: STEP 4: Edit SMMR to add member-0 and member-1 as a member, expect to fail clusterwide_mode_test.go:186: SUCCESS: User is not allowed to update SMMR subtest.go:23: subtest.go:28: Subtest completed in 2.52s (excluding cleanup) clusterwide_mode_test.go:179: clusterwide_mode_test.go:179: Performing cleanup clusterwide_mode_test.go:438: clusterwide_mode_test.go:438: STEP 5: Delete user user1 clusterwide_mode_test.go:439: SUCCESS: User deleted clusterwide_mode_test.go:444: clusterwide_mode_test.go:444: STEP 6: Delete role admin to user user1 for namespace member-0 clusterwide_mode_test.go:445: SUCCESS: User removed from role clusterwide_mode_test.go:444: clusterwide_mode_test.go:444: STEP 7: Delete role admin to user user1 for namespace member-1 clusterwide_mode_test.go:445: SUCCESS: User removed from role clusterwide_mode_test.go:179: Cleanup completed in 0.78s --- PASS: TestClusterWideMode/validate_privileges_for_SMMR_case_4 (3.30s) === RUN TestClusterWideMode/customize_SMMR clusterwide_mode_test.go:204: Check whether the SMMR can be modified clusterwide_mode_test.go:206: clusterwide_mode_test.go:206: STEP 1: Configure static members member-0 and member-1 in SMMR clusterwide_mode_test.go:210: clusterwide_mode_test.go:210: STEP 2: Check whether the SMMR shows only two namespaces as members: member-0 and member-1 subtest.go:23: subtest.go:28: Subtest completed in 2.33s (excluding cleanup) --- PASS: TestClusterWideMode/customize_SMMR (2.33s) === RUN TestClusterWideMode/verify_memberselector_operator_IN clusterwide_mode_test.go:218: Check the use of IN in memberselector clusterwide_mode_test.go:220: clusterwide_mode_test.go:220: STEP 1: Check the use of IN operator in member selector matchExpressions clusterwide_mode_test.go:224: clusterwide_mode_test.go:224: STEP 2: Check whether the SMMR shows only one namespace as members: member-0 subtest.go:23: subtest.go:28: Subtest completed in 2.39s (excluding cleanup) --- PASS: TestClusterWideMode/verify_memberselector_operator_IN (2.39s) === RUN TestClusterWideMode/verify_multiple_memberselector clusterwide_mode_test.go:232: Check if is possible to use multiple memberselector at the same time clusterwide_mode_test.go:234: clusterwide_mode_test.go:234: STEP 1: Check the use of multiple selector at the same time clusterwide_mode_test.go:238: clusterwide_mode_test.go:238: STEP 2: Check whether the SMMR shows only namespaces as members: member-0 subtest.go:23: subtest.go:28: Subtest completed in 2.29s (excluding cleanup) --- PASS: TestClusterWideMode/verify_multiple_memberselector (2.29s) === RUN TestClusterWideMode/verify_memberselector_operator_NOTIN clusterwide_mode_test.go:246: Check the use of NOTIN in memberselector clusterwide_mode_test.go:248: clusterwide_mode_test.go:248: STEP 1: Check the use of NotIn operator in member selector matchExpressions clusterwide_mode_test.go:252: clusterwide_mode_test.go:252: STEP 2: Check whether the SMMR shows all the namespaces except: member-0 clusterwide_mode_test.go:258: clusterwide_mode_test.go:258: STEP 3: Reset member selector back to default clusterwide_mode_test.go:262: clusterwide_mode_test.go:262: STEP 4: Check whether the SMMR shows all 5 namespaces as members subtest.go:23: subtest.go:28: Subtest completed in 5.31s (excluding cleanup) --- PASS: TestClusterWideMode/verify_memberselector_operator_NOTIN (5.31s) === RUN TestClusterWideMode/verify_sidecar_injection clusterwide_mode_test.go:268: Check if sidecar injeection works properly in clustewide mode clusterwide_mode_test.go:274: clusterwide_mode_test.go:274: STEP 1: Install httpbin in member-0 namespace clusterwide_mode_test.go:275: Install app "httpbin" in namespace "member-0" clusterwide_mode_test.go:275: Wait for app member-0/httpbin to be ready clusterwide_mode_test.go:278: clusterwide_mode_test.go:278: STEP 2: Verify that sidecar is injected in httpbin pod clusterwide_mode_test.go:279: SUCCESS: Side car injected in httpbin pod subtest.go:23: subtest.go:28: Subtest completed in 7.59s (excluding cleanup) clusterwide_mode_test.go:270: clusterwide_mode_test.go:270: Performing cleanup clusterwide_mode_test.go:270: Cleanup completed in 0.42s --- PASS: TestClusterWideMode/verify_sidecar_injection (8.01s) === RUN TestClusterWideMode/cluster-scoped_watches_in_istiod clusterwide_mode_test.go:288: Check whether istiod watches API resources at the cluster scope clusterwide_mode_test.go:290: clusterwide_mode_test.go:290: STEP 1: Enable Kubernetes API request logging in istiod Deployment clusterwide_mode_test.go:291: Patch istiod deployment to add the --logKubernetesApiRequests flag to pilot-discovery clusterwide_mode_test.go:296: Wait for istiod deployment rollout to complete clusterwide_mode_test.go:299: clusterwide_mode_test.go:299: STEP 2: Check whether the number of API requests on istiod startup is in the expected range for cluster-wide mode clusterwide_mode_test.go:418: SUCCESS: number of API requests (76) is in range (10 - 100) subtest.go:23: subtest.go:28: Subtest completed in 9.62s (excluding cleanup) --- PASS: TestClusterWideMode/cluster-scoped_watches_in_istiod (9.62s) === RUN TestClusterWideMode/cluster_wide_works_with_profiles clusterwide_mode_test.go:309: Check whether the cluster wide feature works with profiles clusterwide_mode_test.go:311: clusterwide_mode_test.go:311: STEP 1: Delete SMCP and SMMR clusterwide_mode_test.go:315: clusterwide_mode_test.go:315: STEP 2: Deploy SMCP with the profile clusterwide_mode_test.go:320: Wait for condition condition=Ready on smcp istio-system/cluster-wide... clusterwide_mode_test.go:320: Wait for condition condition=Ready on smcp istio-system/cluster-wide... clusterwide_mode_test.go:320: SUCCESS: Condition condition=Ready met by smcp istio-system/cluster-wide clusterwide_mode_test.go:322: clusterwide_mode_test.go:322: STEP 3: Check whether SMMR is created automatically clusterwide_mode_test.go:323: SUCCESS: The SMMR was created immediately after the SMCP was created clusterwide_mode_test.go:330: clusterwide_mode_test.go:330: STEP 4: verify that smcp has ClusterWide enable clusterwide_mode_test.go:331: SUCCESS: The smcp has ClusterWide enable subtest.go:23: subtest.go:28: Subtest completed in 18.07s (excluding cleanup) --- PASS: TestClusterWideMode/cluster_wide_works_with_profiles (18.07s) test.go:77: test.go:82: Test completed in 149.07s (excluding cleanup) clusterwide_mode_test.go:40: clusterwide_mode_test.go:40: Performing cleanup clusterwide_mode_test.go:41: Deleting namespaces: [istio-system] clusterwide_mode_test.go:41: Creating namespaces: [istio-system] clusterwide_mode_test.go:383: Deleting namespaces: [member-0 member-1 member-2 member-3 member-4] clusterwide_mode_test.go:40: Cleanup completed in 31.48s --- PASS: TestClusterWideMode (180.55s) === RUN TestOperatorCanReconcileSMCPWhenIstiodOffline operator_deadlock_test.go:16: This test checks if the operator can reconcile an SMCP even if the istiod pod is missing operator_deadlock_test.go:17: See https://issues.redhat.com/browse/OSSM-3235 operator_deadlock_test.go:31: operator_deadlock_test.go:31: STEP 1: Install SMCP and wait for it to be Ready operator_deadlock_test.go:33: Wait for condition condition=Ready on smcp istio-system/basic... operator_deadlock_test.go:33: Wait for condition condition=Ready on smcp istio-system/basic... operator_deadlock_test.go:33: Wait for condition condition=Ready on smcp istio-system/basic... operator_deadlock_test.go:33: Wait for condition condition=Ready on smcp istio-system/basic... operator_deadlock_test.go:33: SUCCESS: Condition condition=Ready met by smcp istio-system/basic operator_deadlock_test.go:35: operator_deadlock_test.go:35: STEP 2: Scale istiod to zero replicas, so that the validation webhook goes offline operator_deadlock_test.go:38: operator_deadlock_test.go:38: STEP 3: Force SMCP to be reconciled operator_deadlock_test.go:41: operator_deadlock_test.go:41: STEP 4: Wait for SMCP to be ready; if this doesn't happen, the ValidationWebhookConfiguration is probably missing the correct objectSelector operator_deadlock_test.go:42: Wait for condition condition=Ready on smcp istio-system/basic... operator_deadlock_test.go:42: Wait for condition condition=Ready on smcp istio-system/basic... operator_deadlock_test.go:42: SUCCESS: Condition condition=Ready met by smcp istio-system/basic test.go:77: test.go:82: Test completed in 47.18s (excluding cleanup) operator_deadlock_test.go:27: operator_deadlock_test.go:27: Performing cleanup operator_deadlock_test.go:27: Cleanup completed in 4.30s --- PASS: TestOperatorCanReconcileSMCPWhenIstiodOffline (51.47s) === RUN TestOperatorPodHonorsReadinessProbe operator_readiness_test.go:19: This test checks if the operator correctly reports its readiness status operator_readiness_test.go:24: operator_readiness_test.go:24: STEP 1: Install SMCP and wait for it to be Ready operator_readiness_test.go:26: Wait for condition condition=Ready on smcp istio-system/basic... operator_readiness_test.go:26: Wait for condition condition=Ready on smcp istio-system/basic... operator_readiness_test.go:26: SUCCESS: Condition condition=Ready met by smcp istio-system/basic operator_readiness_test.go:28: operator_readiness_test.go:28: STEP 2: Delete istio-operator pod operator_readiness_test.go:31: operator_readiness_test.go:31: STEP 3: Wait for pod to start running operator_readiness_test.go:32: Pod openshift-operators/istio-operator-8cc9f5444-ztgvr is running! operator_readiness_test.go:34: operator_readiness_test.go:34: STEP 4: Confirm pod is not yet ready operator_readiness_test.go:35: SUCCESS: pod running, but not yet ready operator_readiness_test.go:41: operator_readiness_test.go:41: STEP 5: Wait for pod to be ready operator_readiness_test.go:42: Pod istio-operator-8cc9f5444-ztgvr in namespace openshift-operators is ready! operator_readiness_test.go:44: operator_readiness_test.go:44: STEP 6: Check if readiness probe responds to request operator_readiness_test.go:45: SUCCESS: readiness probe responds with 200 OK test.go:77: test.go:82: Test completed in 33.56s (excluding cleanup) --- PASS: TestOperatorPodHonorsReadinessProbe (33.56s) PASS ok github.com/maistra/maistra-test-tool/pkg/tests/ossm/operator 267.218s === RUN TestMultiClusterFederationFailover federation_failover_test.go:41: this test only runs when the KUBECONFIG2 environment variable points to the kubeconfig of the second cluster test.go:77: test.go:82: Test completed in 0.00s (excluding cleanup) --- SKIP: TestMultiClusterFederationFailover (0.00s) === RUN TestFederation federation_traffic_splitting_test.go:38: Both OC clusters are set respectively to cluster west and east if they are provided with two kubeconfig files, if not, both are set from the same file federation_common.go:63: federation_common.go:63: STEP 1: Create projects for west-mesh and east-mesh federation_common.go:64: Creating namespaces: [west-mesh-system west-mesh-bookinfo] federation_common.go:65: Creating namespaces: [east-mesh-system east-mesh-bookinfo] federation_common.go:67: federation_common.go:67: STEP 2: Install control planes for west-mesh and east-mesh federation_common.go:159: Install ServiceMeshControlPlane west-mesh in namespace west-mesh-system federation_common.go:164: Create ServiceMeshMemberRoll federation_common.go:159: Install ServiceMeshControlPlane east-mesh in namespace east-mesh-system federation_common.go:164: Create ServiceMeshMemberRoll federation_common.go:70: federation_common.go:70: STEP 3: Wait for west-mesh and east-mesh installation to complete federation_common.go:71: Wait for condition condition=Ready on smcp west-mesh-system/west-mesh... federation_common.go:71: Wait for condition condition=Ready on smcp west-mesh-system/west-mesh... federation_common.go:71: Wait for condition condition=Ready on smcp west-mesh-system/west-mesh... federation_common.go:71: SUCCESS: Condition condition=Ready met by smcp west-mesh-system/west-mesh federation_common.go:72: Wait for condition condition=Ready on smcp east-mesh-system/east-mesh... federation_common.go:72: SUCCESS: Condition condition=Ready met by smcp east-mesh-system/east-mesh federation_common.go:74: federation_common.go:74: STEP 4: Retrieve peer addresses and ports federation_common.go:77: Using ClusterIP service for ingress federation_common.go:88: west-mesh: address: east-mesh-ingress.west-mesh-system.svc.cluster.local; discovery port: 8188, service port: 15443 federation_common.go:89: east-mesh: address: west-mesh-ingress.east-mesh-system.svc.cluster.local; discovery port: 8188, service port: 15443 federation_common.go:91: federation_common.go:91: STEP 5: Retrieve root certificates federation_common.go:153: Get key root-cert.pem from ConfigMap istio-ca-root-cert federation_common.go:153: Get key root-cert.pem from ConfigMap istio-ca-root-cert federation_common.go:95: federation_common.go:95: STEP 6: Install ServiceMeshPeer and ExportedServiceSet in west-mesh federation_common.go:100: federation_common.go:100: STEP 7: Install ServiceMeshPeer and ImportedServiceSet in east-mesh federation_traffic_splitting_test.go:111: federation_traffic_splitting_test.go:111: STEP 8: Install ratings-v2 and mongodb in west-mesh federation_traffic_splitting_test.go:117: federation_traffic_splitting_test.go:117: STEP 9: Install full bookinfo in east-mesh federation_common.go:107: federation_common.go:107: STEP 10: Wait for all bookinfo pods in west-mesh and east-mesh to be ready federation_common.go:111: federation_common.go:111: STEP 11: Check if west-mesh and east-mesh are connected to each other federation_common.go:112: SUCCESS: west-mesh is connected to east-mesh federation_common.go:112: SUCCESS: east-mesh is connected to west-mesh federation_traffic_splitting_test.go:129: federation_traffic_splitting_test.go:129: STEP 12: Check if traffic is split between ratings-v1 in east-mesh and west-mesh federation_traffic_splitting_test.go:131: federation_traffic_splitting_test.go:131: STEP 13: Check if east-mesh can see services from west-mesh federation_traffic_splitting_test.go:132: SUCCESS: mongodb service from west-mesh successfully imported in east-mesh federation_traffic_splitting_test.go:132: SUCCESS: ratings service from west-mesh successfully imported in east-mesh federation_traffic_splitting_test.go:156: SUCCESS: ratings-v2 in east-mesh received 15 requests federation_traffic_splitting_test.go:162: SUCCESS: ratings-v2 in west-mesh received 7 requests test.go:77: test.go:82: Test completed in 75.70s (excluding cleanup) federation_common.go:53: federation_common.go:53: Performing cleanup federation_common.go:56: Deleting namespaces: [west-mesh-system east-mesh-system west-mesh-bookinfo east-mesh-bookinfo] federation_common.go:53: Cleanup completed in 20.33s --- PASS: TestFederation (96.02s) === RUN TestFederationDifferentCerts federation_common.go:63: federation_common.go:63: STEP 1: Create projects for west-mesh and east-mesh federation_common.go:64: Creating namespaces: [west-mesh-system west-mesh-bookinfo] federation_common.go:65: Creating namespaces: [east-mesh-system east-mesh-bookinfo] federation_common.go:67: federation_common.go:67: STEP 2: Install control planes for west-mesh and east-mesh federation_traffic_splitting_test.go:84: Create Secret 'cacerts' for custom CA certs in west-mesh federation_common.go:159: Install ServiceMeshControlPlane west-mesh in namespace west-mesh-system federation_common.go:164: Create ServiceMeshMemberRoll federation_common.go:159: Install ServiceMeshControlPlane east-mesh in namespace east-mesh-system federation_common.go:164: Create ServiceMeshMemberRoll federation_common.go:70: federation_common.go:70: STEP 3: Wait for west-mesh and east-mesh installation to complete federation_common.go:71: Wait for condition condition=Ready on smcp west-mesh-system/west-mesh... federation_common.go:71: Wait for condition condition=Ready on smcp west-mesh-system/west-mesh... federation_common.go:71: Wait for condition condition=Ready on smcp west-mesh-system/west-mesh... federation_common.go:71: SUCCESS: Condition condition=Ready met by smcp west-mesh-system/west-mesh federation_common.go:72: Wait for condition condition=Ready on smcp east-mesh-system/east-mesh... federation_common.go:72: SUCCESS: Condition condition=Ready met by smcp east-mesh-system/east-mesh federation_common.go:74: federation_common.go:74: STEP 4: Retrieve peer addresses and ports federation_common.go:77: Using ClusterIP service for ingress federation_common.go:88: west-mesh: address: east-mesh-ingress.west-mesh-system.svc.cluster.local; discovery port: 8188, service port: 15443 federation_common.go:89: east-mesh: address: west-mesh-ingress.east-mesh-system.svc.cluster.local; discovery port: 8188, service port: 15443 federation_common.go:91: federation_common.go:91: STEP 5: Retrieve root certificates federation_common.go:153: Get key root-cert.pem from ConfigMap istio-ca-root-cert federation_common.go:153: Get key root-cert.pem from ConfigMap istio-ca-root-cert federation_common.go:95: federation_common.go:95: STEP 6: Install ServiceMeshPeer and ExportedServiceSet in west-mesh federation_common.go:100: federation_common.go:100: STEP 7: Install ServiceMeshPeer and ImportedServiceSet in east-mesh federation_traffic_splitting_test.go:111: federation_traffic_splitting_test.go:111: STEP 8: Install ratings-v2 and mongodb in west-mesh federation_traffic_splitting_test.go:117: federation_traffic_splitting_test.go:117: STEP 9: Install full bookinfo in east-mesh federation_common.go:107: federation_common.go:107: STEP 10: Wait for all bookinfo pods in west-mesh and east-mesh to be ready federation_common.go:111: federation_common.go:111: STEP 11: Check if west-mesh and east-mesh are connected to each other federation_common.go:112: SUCCESS: west-mesh is connected to east-mesh federation_common.go:112: SUCCESS: east-mesh is connected to west-mesh federation_traffic_splitting_test.go:129: federation_traffic_splitting_test.go:129: STEP 12: Check if traffic is split between ratings-v1 in east-mesh and west-mesh federation_traffic_splitting_test.go:131: federation_traffic_splitting_test.go:131: STEP 13: Check if east-mesh can see services from west-mesh federation_traffic_splitting_test.go:132: SUCCESS: mongodb service from west-mesh successfully imported in east-mesh federation_traffic_splitting_test.go:132: SUCCESS: ratings service from west-mesh successfully imported in east-mesh federation_traffic_splitting_test.go:156: SUCCESS: ratings-v2 in east-mesh received 12 requests federation_traffic_splitting_test.go:162: SUCCESS: ratings-v2 in west-mesh received 10 requests test.go:77: test.go:82: Test completed in 72.35s (excluding cleanup) federation_common.go:53: federation_common.go:53: Performing cleanup federation_common.go:56: Deleting namespaces: [west-mesh-system east-mesh-system west-mesh-bookinfo east-mesh-bookinfo] federation_common.go:53: Cleanup completed in 19.61s --- PASS: TestFederationDifferentCerts (91.96s) PASS ok github.com/maistra/maistra-test-tool/pkg/tests/ossm-federation 187.992s test_helper_setup.go:64: Creating namespaces: [istio-system bookinfo foo bar legacy mesh-external] === RUN TestCustomPrometheus custom_prometheus_test.go:33: Custom Prometheus operator from red hat is not supported in OCP older than v4.11 test.go:77: test.go:82: Test completed in 0.20s (excluding cleanup) --- SKIP: TestCustomPrometheus (0.20s) === RUN TestOpenShiftMonitoring openshift_monitoring_test.go:65: openshift_monitoring_test.go:65: STEP 1: Waiting until user workload monitoring stack is up and running openshift_monitoring_test.go:67: SUCCESS: Found pods in openshift-user-workload-monitoring openshift_monitoring_test.go:70: openshift_monitoring_test.go:70: STEP 2: Fetch Thanos secret openshift_monitoring_test.go:83: openshift_monitoring_test.go:83: STEP 3: Fetch Thanos token openshift_monitoring_test.go:92: openshift_monitoring_test.go:92: STEP 4: Create secret with Thanos token for Kiali openshift_monitoring_test.go:95: openshift_monitoring_test.go:95: STEP 5: Deploying Kiali openshift_monitoring_test.go:98: openshift_monitoring_test.go:98: STEP 6: Deploying SMCP openshift_monitoring_test.go:100: Wait for condition condition=Ready on smcp istio-system/basic... openshift_monitoring_test.go:100: Wait for condition condition=Ready on smcp istio-system/basic... openshift_monitoring_test.go:100: SUCCESS: Condition condition=Ready met by smcp istio-system/basic openshift_monitoring_test.go:102: openshift_monitoring_test.go:102: STEP 7: Wait until Kiali is ready openshift_monitoring_test.go:103: Wait for condition condition=Successful on Kiali istio-system/kiali-user-workload-monitoring... openshift_monitoring_test.go:103: Wait for condition condition=Successful on Kiali istio-system/kiali-user-workload-monitoring... openshift_monitoring_test.go:103: Wait for condition condition=Successful on Kiali istio-system/kiali-user-workload-monitoring... openshift_monitoring_test.go:103: Wait for condition condition=Successful on Kiali istio-system/kiali-user-workload-monitoring... openshift_monitoring_test.go:103: Wait for condition condition=Successful on Kiali istio-system/kiali-user-workload-monitoring... openshift_monitoring_test.go:103: Wait for condition condition=Successful on Kiali istio-system/kiali-user-workload-monitoring... openshift_monitoring_test.go:103: Wait for condition condition=Successful on Kiali istio-system/kiali-user-workload-monitoring... openshift_monitoring_test.go:103: Wait for condition condition=Successful on Kiali istio-system/kiali-user-workload-monitoring... openshift_monitoring_test.go:103: Wait for condition condition=Successful on Kiali istio-system/kiali-user-workload-monitoring... openshift_monitoring_test.go:103: Wait for condition condition=Successful on Kiali istio-system/kiali-user-workload-monitoring... openshift_monitoring_test.go:103: Wait for condition condition=Successful on Kiali istio-system/kiali-user-workload-monitoring... openshift_monitoring_test.go:103: Wait for condition condition=Successful on Kiali istio-system/kiali-user-workload-monitoring... openshift_monitoring_test.go:103: Wait for condition condition=Successful on Kiali istio-system/kiali-user-workload-monitoring... openshift_monitoring_test.go:103: Wait for condition condition=Successful on Kiali istio-system/kiali-user-workload-monitoring... openshift_monitoring_test.go:103: Wait for condition condition=Successful on Kiali istio-system/kiali-user-workload-monitoring... openshift_monitoring_test.go:103: SUCCESS: Condition condition=Successful met by Kiali istio-system/kiali-user-workload-monitoring openshift_monitoring_test.go:105: openshift_monitoring_test.go:105: STEP 8: Verify that Kiali was reconciled by Istio Operator openshift_monitoring_test.go:113: openshift_monitoring_test.go:113: STEP 9: Enable Prometheus telemetry openshift_monitoring_test.go:116: openshift_monitoring_test.go:116: STEP 10: Deploy httpbin openshift_monitoring_test.go:117: Install app "httpbin" in namespace "foo" openshift_monitoring_test.go:117: Wait for app foo/httpbin to be ready openshift_monitoring_test.go:118: SUCCESS: Found pods in foo openshift_monitoring_test.go:121: openshift_monitoring_test.go:121: STEP 11: Apply Prometheus monitors openshift_monitoring_test.go:125: openshift_monitoring_test.go:125: STEP 12: Generate some ingress traffic openshift_monitoring_test.go:128: SUCCESS: received expected status code 200 openshift_monitoring_test.go:132: openshift_monitoring_test.go:132: STEP 13: Check istiod metrics openshift_monitoring_test.go:141: SUCCESS: Successfully fetched pilot_info metrics openshift_monitoring_test.go:135: openshift_monitoring_test.go:135: STEP 14: Check httpbin metrics openshift_monitoring_test.go:141: SUCCESS: Successfully fetched istio_requests_total metrics test.go:77: test.go:82: Test completed in 246.01s (excluding cleanup) openshift_monitoring_test.go:53: openshift_monitoring_test.go:53: Performing cleanup openshift_monitoring_test.go:53: Cleanup completed in 67.11s --- PASS: TestOpenShiftMonitoring (313.13s) PASS ok github.com/maistra/maistra-test-tool/pkg/tests/tasks/observability 314.531s test_helper_setup.go:64: Creating namespaces: [istio-system bookinfo foo bar legacy mesh-external] === RUN TestAuthPolicy auth_test.go:45: auth_test.go:45: STEP 1: Apply default SMCP and SMMR manifests auth_test.go:45: Wait for condition condition=Ready on smcp istio-system/basic... auth_test.go:45: Wait for condition condition=Ready on smcp istio-system/basic... auth_test.go:45: Wait for condition condition=Ready on smcp istio-system/basic... auth_test.go:45: SUCCESS: Condition condition=Ready met by smcp istio-system/basic auth_test.go:47: auth_test.go:47: STEP 2: Install httpbin and sleep in multiple namespaces auth_test.go:48: Install app "httpbin" in namespace "foo" auth_test.go:48: Install app "httpbin" in namespace "bar" auth_test.go:48: Install app "httpbin" in namespace "legacy" auth_test.go:48: Install app "sleep" in namespace "foo" auth_test.go:48: Install app "sleep" in namespace "bar" auth_test.go:48: Install app "sleep" in namespace "legacy" auth_test.go:48: Wait for app foo/httpbin to be ready auth_test.go:48: Wait for app bar/httpbin to be ready auth_test.go:48: Wait for app legacy/httpbin to be ready auth_test.go:48: Wait for app foo/sleep to be ready auth_test.go:48: Wait for app bar/sleep to be ready auth_test.go:48: Wait for app legacy/sleep to be ready auth_test.go:59: auth_test.go:59: STEP 3: Check connectivity from namespaces foo, bar, and legacy to namespaces foo and bar auth_test.go:60: SUCCESS: foo connects to foo auth_test.go:60: SUCCESS: foo connects to bar auth_test.go:60: SUCCESS: bar connects to foo auth_test.go:60: SUCCESS: bar connects to bar auth_test.go:60: SUCCESS: legacy connects to foo auth_test.go:60: SUCCESS: legacy connects to bar === RUN TestAuthPolicy/enable_auto_mTLS auth_test.go:69: auth_test.go:69: STEP 1: Check if mTLS is enabled in foo auth_test.go:70: SUCCESS: mTLS is enabled in namespace foo (X-Forwarded-Client-Cert header is present) auth_test.go:80: auth_test.go:80: STEP 2: Check that mTLS is NOT enabled in legacy auth_test.go:81: SUCCESS: mTLS is not enabled in namespace legacy (X-Forwarded-Client-Cert header is not present) subtest.go:23: subtest.go:28: Subtest completed in 1.60s (excluding cleanup) --- PASS: TestAuthPolicy/enable_auto_mTLS (1.60s) === RUN TestAuthPolicy/enable_global_mTLS_STRICT_mode auth_test.go:93: auth_test.go:93: STEP 1: Enable mTLS STRICT mode globally auth_test.go:99: SUCCESS: Global mTLS expected 000 auth_test.go:99: SUCCESS: Global mTLS expected 000 subtest.go:23: subtest.go:28: Subtest completed in 2.76s (excluding cleanup) auth_test.go:95: auth_test.go:95: Performing cleanup auth_test.go:95: Cleanup completed in 0.21s --- PASS: TestAuthPolicy/enable_global_mTLS_STRICT_mode (2.97s) === RUN TestAuthPolicy/namespace_policy_mtls auth_test.go:114: auth_test.go:114: STEP 1: Enable mutual TLS per namespace auth_test.go:119: SUCCESS: foo connects to foo auth_test.go:119: SUCCESS: foo connects to bar auth_test.go:119: SUCCESS: bar connects to foo auth_test.go:119: SUCCESS: bar connects to bar auth_test.go:119: SUCCESS: legacy can't conect to foo auth_test.go:119: SUCCESS: legacy connects to bar subtest.go:23: subtest.go:28: Subtest completed in 6.76s (excluding cleanup) auth_test.go:116: auth_test.go:116: Performing cleanup auth_test.go:116: Cleanup completed in 0.27s --- PASS: TestAuthPolicy/namespace_policy_mtls (7.03s) === RUN TestAuthPolicy/workload_policy_mtls auth_test.go:133: auth_test.go:133: STEP 1: Enable mutual TLS per workload auth_test.go:138: SUCCESS: legacy can't conect to bar auth_test.go:142: auth_test.go:142: STEP 2: Refine mutual TLS per port auth_test.go:144: SUCCESS: legacy connects to bar subtest.go:23: subtest.go:28: Subtest completed in 4.68s (excluding cleanup) auth_test.go:135: auth_test.go:135: Performing cleanup auth_test.go:135: Cleanup completed in 0.30s --- PASS: TestAuthPolicy/workload_policy_mtls (4.98s) === RUN TestAuthPolicy/policy_precedence_mtls auth_test.go:150: auth_test.go:150: STEP 1: Overwrite foo namespace policy by a workload policy auth_test.go:155: SUCCESS: legacy connects to foo subtest.go:23: subtest.go:28: Subtest completed in 2.92s (excluding cleanup) auth_test.go:152: auth_test.go:152: Performing cleanup auth_test.go:152: Cleanup completed in 0.24s --- PASS: TestAuthPolicy/policy_precedence_mtls (3.16s) === RUN TestAuthPolicy/end-user_JWT auth_test.go:164: End-user authentication auth_test.go:166: auth_test.go:166: STEP 1: Apply httpbin gateway auth_test.go:169: auth_test.go:169: STEP 2: Check httpbin request is successful auth_test.go:170: SUCCESS: received expected status code 200 auth_test.go:174: auth_test.go:174: STEP 3: Apply a JWT policy auth_test.go:180: auth_test.go:180: STEP 4: Check whether request without token returns 200 auth_test.go:181: SUCCESS: received expected status code 200 auth_test.go:185: auth_test.go:185: STEP 5: Check whether request with an invalid token returns 401 auth_test.go:186: SUCCESS: received expected status code 401 auth_test.go:190: auth_test.go:190: STEP 6: Check whether request with a valid token returns 200 auth_test.go:193: SUCCESS: received expected status code 200 subtest.go:23: subtest.go:28: Subtest completed in 3.95s (excluding cleanup) auth_test.go:176: auth_test.go:176: Performing cleanup auth_test.go:176: Cleanup completed in 0.28s --- PASS: TestAuthPolicy/end-user_JWT (4.24s) === RUN TestAuthPolicy/end-user_require_JWT auth_test.go:201: Require a valid token auth_test.go:207: SUCCESS: received expected status code 403 subtest.go:23: subtest.go:28: Subtest completed in 2.62s (excluding cleanup) auth_test.go:203: auth_test.go:203: Performing cleanup auth_test.go:203: Cleanup completed in 0.26s --- PASS: TestAuthPolicy/end-user_require_JWT (2.88s) === RUN TestAuthPolicy/end-user_require_JWT_per_path auth_test.go:213: Require valid tokens per-path auth_test.go:219: SUCCESS: received expected status code 403 auth_test.go:219: SUCCESS: received expected status code 200 subtest.go:23: subtest.go:28: Subtest completed in 2.59s (excluding cleanup) auth_test.go:215: auth_test.go:215: Performing cleanup auth_test.go:215: Cleanup completed in 0.26s --- PASS: TestAuthPolicy/end-user_require_JWT_per_path (2.85s) test.go:77: test.go:82: Test completed in 83.79s (excluding cleanup) auth_test.go:41: auth_test.go:41: Performing cleanup auth_test.go:42: Deleting namespaces: [foo bar legacy] auth_test.go:42: Creating namespaces: [foo bar legacy] auth_test.go:41: Cleanup completed in 17.95s --- PASS: TestAuthPolicy (101.75s) === RUN TestMTlsMigration mtls_migration_test.go:40: mtls_migration_test.go:40: STEP 1: Apply default SMCP and SMMR manifests mtls_migration_test.go:40: Wait for condition condition=Ready on smcp istio-system/basic... mtls_migration_test.go:40: SUCCESS: Condition condition=Ready met by smcp istio-system/basic mtls_migration_test.go:42: mtls_migration_test.go:42: STEP 2: Install httpbin and sleep in multiple namespaces mtls_migration_test.go:43: Install app "httpbin" in namespace "foo" mtls_migration_test.go:43: Install app "httpbin" in namespace "bar" mtls_migration_test.go:43: Install app "sleep" in namespace "foo" mtls_migration_test.go:43: Install app "sleep" in namespace "bar" mtls_migration_test.go:43: Install app "sleep" in namespace "legacy" mtls_migration_test.go:43: Wait for app foo/httpbin to be ready mtls_migration_test.go:43: Wait for app bar/httpbin to be ready mtls_migration_test.go:43: Wait for app foo/sleep to be ready mtls_migration_test.go:43: Wait for app bar/sleep to be ready mtls_migration_test.go:43: Wait for app legacy/sleep to be ready mtls_migration_test.go:53: mtls_migration_test.go:53: STEP 3: Check connectivity from namespaces foo, bar, and legacy to namespace foo and bar mtls_migration_test.go:54: SUCCESS: foo connects to foo mtls_migration_test.go:54: SUCCESS: foo connects to bar mtls_migration_test.go:54: SUCCESS: bar connects to foo mtls_migration_test.go:54: SUCCESS: bar connects to bar mtls_migration_test.go:54: SUCCESS: legacy connects to foo mtls_migration_test.go:54: SUCCESS: legacy connects to bar === RUN TestMTlsMigration/mTLS_enabled_in_foo mtls_migration_test.go:63: mtls_migration_test.go:63: STEP 1: Apply strict mTLS in namespace foo mtls_migration_test.go:66: mtls_migration_test.go:66: STEP 2: Check connectivity from namespaces foo, bar, and legacy to namespace foo and bar (expect failure only from legacy to foo) mtls_migration_test.go:67: SUCCESS: foo connects to foo mtls_migration_test.go:67: SUCCESS: foo connects to bar mtls_migration_test.go:67: SUCCESS: bar connects to foo mtls_migration_test.go:67: SUCCESS: bar connects to bar mtls_migration_test.go:67: SUCCESS: legacy can't conect to foo mtls_migration_test.go:67: SUCCESS: legacy connects to bar subtest.go:23: subtest.go:28: Subtest completed in 6.60s (excluding cleanup) --- PASS: TestMTlsMigration/mTLS_enabled_in_foo (6.60s) === RUN TestMTlsMigration/mTLS_enabled_globally mtls_migration_test.go:81: mtls_migration_test.go:81: STEP 1: Apply strict mTLS for the entire mesh mtls_migration_test.go:87: mtls_migration_test.go:87: STEP 2: Check connectivity from namespaces foo, bar, and legacy to namespace foo and bar (expect failure from legacy) mtls_migration_test.go:88: SUCCESS: foo connects to foo mtls_migration_test.go:88: SUCCESS: foo connects to bar mtls_migration_test.go:88: SUCCESS: bar connects to foo mtls_migration_test.go:88: SUCCESS: bar connects to bar mtls_migration_test.go:88: SUCCESS: legacy can't conect to foo mtls_migration_test.go:88: SUCCESS: legacy can't conect to bar subtest.go:23: subtest.go:28: Subtest completed in 7.11s (excluding cleanup) mtls_migration_test.go:83: mtls_migration_test.go:83: Performing cleanup mtls_migration_test.go:83: Cleanup completed in 0.20s --- PASS: TestMTlsMigration/mTLS_enabled_globally (7.31s) test.go:77: test.go:82: Test completed in 44.08s (excluding cleanup) mtls_migration_test.go:36: mtls_migration_test.go:36: Performing cleanup mtls_migration_test.go:37: Deleting namespaces: [foo bar legacy] mtls_migration_test.go:37: Creating namespaces: [foo bar legacy] mtls_migration_test.go:36: Cleanup completed in 16.07s --- PASS: TestMTlsMigration (60.16s) PASS ok github.com/maistra/maistra-test-tool/pkg/tests/tasks/security/authentication 163.399s test_helper_setup.go:64: Creating namespaces: [istio-system bookinfo foo bar legacy mesh-external] === RUN TestAuthorizationDenyAllow deny_test.go:33: This test validates authorization policies with a deny action deny_test.go:35: deny_test.go:35: STEP 1: Apply default SMCP and SMMR manifests deny_test.go:35: Wait for condition condition=Ready on smcp istio-system/basic... deny_test.go:35: SUCCESS: Condition condition=Ready met by smcp istio-system/basic deny_test.go:37: deny_test.go:37: STEP 2: Install httpbin and sleep deny_test.go:38: Install app "httpbin" in namespace "foo" deny_test.go:38: Install app "sleep" in namespace "foo" deny_test.go:38: Wait for app foo/httpbin to be ready deny_test.go:38: Wait for app foo/sleep to be ready deny_test.go:40: deny_test.go:40: STEP 3: Check if httpbin returns 200 OK when no authorization policies are in place deny_test.go:41: SUCCESS: Got expected 200 OK from httpbin === RUN TestAuthorizationDenyAllow/explicitly_deny_request deny_test.go:47: deny_test.go:47: STEP 1: Apply policy that denies all GET requests to httpbin deny_test.go:50: deny_test.go:50: STEP 2: Verify that GET request is denied deny_test.go:51: SUCCESS: Got the expected 403 response code deny_test.go:53: deny_test.go:53: STEP 3: Verify that POST request is allowed deny_test.go:54: SUCCESS: Got the expected 200 OK response for request from httpbin subtest.go:23: subtest.go:28: Subtest completed in 5.25s (excluding cleanup) deny_test.go:44: deny_test.go:44: Performing cleanup deny_test.go:44: Cleanup completed in 0.27s --- PASS: TestAuthorizationDenyAllow/explicitly_deny_request (5.52s) === RUN TestAuthorizationDenyAllow/deny_request_header deny_test.go:61: deny_test.go:61: STEP 1: Apply policy that denies GET requests unless the HTTP header 'x-token: admin' is present deny_test.go:64: deny_test.go:64: STEP 2: Verify that GET request with HTTP header 'x-token: admin' is allowed deny_test.go:65: SUCCESS: Got the expected 200 OK response for request from httpbin deny_test.go:67: deny_test.go:67: STEP 3: Verify that GET request with HTTP header 'x-token: guest' is denied deny_test.go:68: SUCCESS: Got the expected 403 response code subtest.go:23: subtest.go:28: Subtest completed in 5.31s (excluding cleanup) deny_test.go:58: deny_test.go:58: Performing cleanup deny_test.go:58: Cleanup completed in 0.32s --- PASS: TestAuthorizationDenyAllow/deny_request_header (5.63s) === RUN TestAuthorizationDenyAllow/allow_request_path deny_test.go:76: deny_test.go:76: STEP 1: Apply policy that denies GET requests unless the HTTP header 'x-token: admin' is present deny_test.go:79: deny_test.go:79: STEP 2: Apply policy that allows requests with the path '/ip' deny_test.go:82: deny_test.go:82: STEP 3: Verify that GET request with the HTTP header 'x-token: guest' at path '/ip' is denied deny_test.go:83: SUCCESS: Got the expected 403 response code deny_test.go:85: deny_test.go:85: STEP 4: Verify that GET request with HTTP header 'x-token: admin' at path '/ip' is allowed deny_test.go:86: SUCCESS: Got the expected 200 OK response for request from httpbin deny_test.go:88: deny_test.go:88: STEP 5: Verify that GET request with HTTP header 'x-token: admin' at path '/get' is denied deny_test.go:89: SUCCESS: Got the expected 403 response code subtest.go:23: subtest.go:28: Subtest completed in 5.87s (excluding cleanup) deny_test.go:72: deny_test.go:72: Performing cleanup deny_test.go:72: Cleanup completed in 0.54s --- PASS: TestAuthorizationDenyAllow/allow_request_path (6.41s) test.go:77: test.go:82: Test completed in 37.84s (excluding cleanup) deny_test.go:29: deny_test.go:29: Performing cleanup deny_test.go:30: Deleting namespaces: [foo] deny_test.go:30: Creating namespaces: [foo] deny_test.go:29: Cleanup completed in 14.86s --- PASS: TestAuthorizationDenyAllow (52.70s) === RUN TestEnvoyExtAuthzHttpExtensionProvider ext_auth_test.go:33: This test validates authorization policies with a JWT Token ext_auth_test.go:37: ext_auth_test.go:37: STEP 1: Apply default SMCP and SMMR manifests ext_auth_test.go:37: Wait for condition condition=Ready on smcp istio-system/basic... ext_auth_test.go:37: SUCCESS: Condition condition=Ready met by smcp istio-system/basic ext_auth_test.go:39: ext_auth_test.go:39: STEP 2: Install httpbin and sleep ext_auth_test.go:40: Install app "httpbin" in namespace "foo" ext_auth_test.go:40: Install app "sleep" in namespace "foo" ext_auth_test.go:40: Wait for app foo/httpbin to be ready ext_auth_test.go:40: Wait for app foo/sleep to be ready ext_auth_test.go:45: ext_auth_test.go:45: STEP 3: Check if httpbin returns 200 OK when no authorization policies are in place ext_auth_test.go:46: SUCCESS: Got expected 200 OK from httpbin ext_auth_test.go:48: ext_auth_test.go:48: STEP 4: Deploy the External Authorizer and Verify the sample external authorizer is up and running ext_auth_test.go:56: ext_auth_test.go:56: STEP 5: Set envoyExtAuthzHttp extension provider in SMCP ext_auth_test.go:93: ext_auth_test.go:93: STEP 6: Deploy the external authorization in the Authorization policy ext_auth_test.go:99: ext_auth_test.go:99: STEP 7: Verify a request to path /headers with header x-ext-authz: deny is denied by the sample ext_authz server: ext_auth_test.go:100: SUCCESS: Got the expected 403 response code ext_auth_test.go:102: ext_auth_test.go:102: STEP 8: Verify a request to path /headers with header x-ext-authz: allow is allowed by the sample ext_authz server ext_auth_test.go:103: SUCCESS: Got the expected 200 OK response for request from httpbin ext_auth_test.go:105: ext_auth_test.go:105: STEP 9: Verify a request to path /ip is allowed and does not trigger the external authorization ext_auth_test.go:106: SUCCESS: Got expected 200 OK from httpbin test.go:77: test.go:82: Test completed in 32.45s (excluding cleanup) ext_auth_test.go:94: ext_auth_test.go:94: Performing cleanup ext_auth_test.go:94: Cleanup completed in 0.25s ext_auth_test.go:87: ext_auth_test.go:87: Performing cleanup ext_auth_test.go:87: Cleanup completed in 0.38s ext_auth_test.go:50: ext_auth_test.go:50: Performing cleanup ext_auth_test.go:50: Cleanup completed in 0.22s ext_auth_test.go:41: ext_auth_test.go:41: Performing cleanup ext_auth_test.go:41: Cleanup completed in 1.09s --- PASS: TestEnvoyExtAuthzHttpExtensionProvider (34.39s) === RUN TestEnvoyExtAuthzGrpcExtensionProvider ext_auth_test.go:115: This test validates authorization policies with a JWT Token ext_auth_test.go:119: ext_auth_test.go:119: STEP 1: Apply default SMCP and SMMR manifests ext_auth_test.go:119: Wait for condition condition=Ready on smcp istio-system/basic... ext_auth_test.go:119: Wait for condition condition=Ready on smcp istio-system/basic... ext_auth_test.go:119: SUCCESS: Condition condition=Ready met by smcp istio-system/basic ext_auth_test.go:121: ext_auth_test.go:121: STEP 2: Install httpbin and sleep ext_auth_test.go:122: Install app "httpbin" in namespace "foo" ext_auth_test.go:122: Install app "sleep" in namespace "foo" ext_auth_test.go:122: Wait for app foo/httpbin to be ready ext_auth_test.go:122: Wait for app foo/sleep to be ready ext_auth_test.go:127: ext_auth_test.go:127: STEP 3: Check if httpbin returns 200 OK when no authorization policies are in place ext_auth_test.go:128: SUCCESS: Got expected 200 OK from httpbin ext_auth_test.go:130: ext_auth_test.go:130: STEP 4: Deploy the External Authorizer and Verify the sample external authorizer is up and running ext_auth_test.go:138: ext_auth_test.go:138: STEP 5: Set envoyExtAuthzgRPC extension provider in SMCP ext_auth_test.go:159: ext_auth_test.go:159: STEP 6: Deploy the external authorization in the Authorization policy ext_auth_test.go:165: ext_auth_test.go:165: STEP 7: Verify a request to path /headers with header x-ext-authz: deny is denied by the sample ext_authz server: ext_auth_test.go:166: SUCCESS: Got the expected 403 response code ext_auth_test.go:168: ext_auth_test.go:168: STEP 8: Verify a request to path /headers with header x-ext-authz: allow is allowed by the sample ext_authz server ext_auth_test.go:169: SUCCESS: Got the expected 200 OK response for request from httpbin ext_auth_test.go:171: ext_auth_test.go:171: STEP 9: Verify a request to path /ip is allowed and does not trigger the external authorization ext_auth_test.go:172: SUCCESS: Got expected 200 OK from httpbin test.go:77: test.go:82: Test completed in 34.34s (excluding cleanup) ext_auth_test.go:160: ext_auth_test.go:160: Performing cleanup ext_auth_test.go:160: Cleanup completed in 0.27s ext_auth_test.go:152: ext_auth_test.go:152: Performing cleanup ext_auth_test.go:152: Cleanup completed in 0.41s ext_auth_test.go:132: ext_auth_test.go:132: Performing cleanup ext_auth_test.go:132: Cleanup completed in 0.44s ext_auth_test.go:123: ext_auth_test.go:123: Performing cleanup ext_auth_test.go:123: Cleanup completed in 1.13s --- PASS: TestEnvoyExtAuthzGrpcExtensionProvider (36.59s) === RUN TestAuthorizationHTTPTraffic http_test.go:42: This test validates authorization policies for HTTP traffic. http_test.go:43: Doc reference: https://istio.io/v1.14/docs/tasks/security/authorization/authz-http/ http_test.go:45: http_test.go:45: STEP 1: Apply default SMCP and SMMR manifests http_test.go:45: Wait for condition condition=Ready on smcp istio-system/basic... http_test.go:45: Wait for condition condition=Ready on smcp istio-system/basic... http_test.go:45: SUCCESS: Condition condition=Ready met by smcp istio-system/basic http_test.go:47: http_test.go:47: STEP 2: Enable Service Mesh Control Plane mTLS http_test.go:53: http_test.go:53: STEP 3: Install bookinfo with mTLS http_test.go:54: Install app "bookinfo" in namespace "bookinfo" http_test.go:54: Create Bookinfo Gateway http_test.go:54: Create Bookinfo Destination Rules (all) http_test.go:54: Create Bookinfo Deployments http_test.go:54: Wait for app bookinfo/bookinfo to be ready http_test.go:55: Wait for condition condition=Ready on smcp istio-system/basic... http_test.go:55: SUCCESS: Condition condition=Ready met by smcp istio-system/basic === RUN TestAuthorizationHTTPTraffic/deny_all_http_traffic_to_bookinfo http_test.go:63: http_test.go:63: STEP 1: Apply policy that denies all HTTP requests to bookinfo workloads http_test.go:66: http_test.go:66: STEP 2: Verify that GET request is denied http_test.go:67: SUCCESS: string 'RBAC: access denied' found in response subtest.go:23: subtest.go:28: Subtest completed in 2.80s (excluding cleanup) http_test.go:60: http_test.go:60: Performing cleanup http_test.go:60: Cleanup completed in 0.30s --- PASS: TestAuthorizationHTTPTraffic/deny_all_http_traffic_to_bookinfo (3.10s) === RUN TestAuthorizationHTTPTraffic/only_allow_HTTP_GET_request_to_the_productpage_workload http_test.go:81: http_test.go:81: STEP 1: Apply policies that allow access with GET method to the productpage workload and deny requests to other workloads http_test.go:85: http_test.go:85: STEP 2: Verify that GET request to the productpage is allowed and fetching other services is denied http_test.go:86: SUCCESS: string 'Error fetching product details' found in response http_test.go:86: SUCCESS: string 'Error fetching product reviews' found in response subtest.go:23: subtest.go:28: Subtest completed in 4.09s (excluding cleanup) http_test.go:77: http_test.go:77: Performing cleanup http_test.go:77: Cleanup completed in 0.45s --- PASS: TestAuthorizationHTTPTraffic/only_allow_HTTP_GET_request_to_the_productpage_workload (4.54s) === RUN TestAuthorizationHTTPTraffic/allow_HTTP_GET_requests_to_all_bookinfo_workloads http_test.go:104: http_test.go:104: STEP 1: Apply policies that allow HTTP GET requests to all bookinfo workloads http_test.go:111: http_test.go:111: STEP 2: Verify that GET requests are allowed to all bookinfo workloads http_test.go:112: SUCCESS: string 'RBAC: access denied' not found in response http_test.go:112: SUCCESS: string 'Error fetching product details' not found in response http_test.go:112: SUCCESS: string 'Error fetching product reviews' not found in response http_test.go:112: SUCCESS: string 'Ratings service currently unavailable' not found in response subtest.go:23: subtest.go:28: Subtest completed in 11.68s (excluding cleanup) http_test.go:97: http_test.go:97: Performing cleanup http_test.go:97: Cleanup completed in 1.18s --- PASS: TestAuthorizationHTTPTraffic/allow_HTTP_GET_requests_to_all_bookinfo_workloads (12.86s) test.go:77: test.go:82: Test completed in 48.02s (excluding cleanup) http_test.go:33: http_test.go:33: Performing cleanup http_test.go:38: Deleting namespaces: [bookinfo] http_test.go:38: Creating namespaces: [bookinfo] http_test.go:39: Wait for condition condition=Ready on smcp istio-system/basic... http_test.go:39: SUCCESS: Condition condition=Ready met by smcp istio-system/basic http_test.go:33: Cleanup completed in 19.63s --- PASS: TestAuthorizationHTTPTraffic (67.65s) === RUN TestAuthorizationJWT jwt_test.go:35: This test validates authorization policies with JWT Token jwt_test.go:37: jwt_test.go:37: STEP 1: Apply default SMCP and SMMR manifests jwt_test.go:37: Wait for condition condition=Ready on smcp istio-system/basic... jwt_test.go:37: SUCCESS: Condition condition=Ready met by smcp istio-system/basic jwt_test.go:39: jwt_test.go:39: STEP 2: Install httpbin and sleep jwt_test.go:40: Install app "httpbin" in namespace "foo" jwt_test.go:40: Install app "sleep" in namespace "foo" jwt_test.go:40: Wait for app foo/httpbin to be ready jwt_test.go:40: Wait for app foo/sleep to be ready jwt_test.go:42: jwt_test.go:42: STEP 3: Check if httpbin returns 200 OK when no authorization policies are in place jwt_test.go:43: SUCCESS: Got expected 200 OK from httpbin === RUN TestAuthorizationJWT/Allow_requests_with_valid_JWT_and_list-typed_claims jwt_test.go:57: jwt_test.go:57: STEP 1: Verify that a request with an invalid JWT is denied jwt_test.go:58: SUCCESS: Got the expected 401 response code jwt_test.go:60: jwt_test.go:60: STEP 2: Verify that a request without a JWT is allowed because there is no authorization policy jwt_test.go:61: SUCCESS: Got the expected 200 OK response for request from httpbin subtest.go:23: subtest.go:28: Subtest completed in 2.06s (excluding cleanup) --- PASS: TestAuthorizationJWT/Allow_requests_with_valid_JWT_and_list-typed_claims (2.06s) === RUN TestAuthorizationJWT/Security_authorization_allow_JWT_requestPrincipal jwt_test.go:69: jwt_test.go:69: STEP 1: Verify that a request with a valid JWT is allowed jwt_test.go:70: SUCCESS: Got the expected 200 OK response for request from httpbin jwt_test.go:72: jwt_test.go:72: STEP 2: Verify request without a JWT is denied jwt_test.go:73: SUCCESS: Got the expected 403 response code subtest.go:23: subtest.go:28: Subtest completed in 3.24s (excluding cleanup) jwt_test.go:65: jwt_test.go:65: Performing cleanup jwt_test.go:65: Cleanup completed in 0.24s --- PASS: TestAuthorizationJWT/Security_authorization_allow_JWT_requestPrincipal (3.48s) === RUN TestAuthorizationJWT/Security_authorization_allow_JWT_claims_group jwt_test.go:81: jwt_test.go:81: STEP 1: Verify that a request with the JWT that includes group1 in the groups claim is allowed jwt_test.go:82: SUCCESS: Got the expected 200 OK response for request from httpbin jwt_test.go:84: jwt_test.go:84: STEP 2: Verify that a request with a JWT, which does not have the groups claim is rejected jwt_test.go:85: SUCCESS: Got the expected 403 response code subtest.go:23: subtest.go:28: Subtest completed in 5.00s (excluding cleanup) jwt_test.go:77: jwt_test.go:77: Performing cleanup jwt_test.go:77: Cleanup completed in 0.29s --- PASS: TestAuthorizationJWT/Security_authorization_allow_JWT_claims_group (5.29s) test.go:77: test.go:82: Test completed in 32.69s (excluding cleanup) jwt_test.go:51: jwt_test.go:51: Performing cleanup jwt_test.go:51: Cleanup completed in 0.21s jwt_test.go:31: jwt_test.go:31: Performing cleanup jwt_test.go:32: Deleting namespaces: [foo] jwt_test.go:32: Creating namespaces: [foo] jwt_test.go:31: Cleanup completed in 23.16s --- PASS: TestAuthorizationJWT (56.07s) === RUN TestAuthorizationTCPTraffic tcp_test.go:38: This test validates authorization policies for TCP traffic. tcp_test.go:39: Doc reference: https://istio.io/v1.14/docs/tasks/security/authorization/authz-tcp/ tcp_test.go:41: tcp_test.go:41: STEP 1: Apply default SMCP and SMMR manifests tcp_test.go:41: Wait for condition condition=Ready on smcp istio-system/basic... tcp_test.go:41: SUCCESS: Condition condition=Ready met by smcp istio-system/basic tcp_test.go:43: tcp_test.go:43: STEP 2: Install sleep and echo tcp_test.go:44: Install app "sleep" in namespace "foo" tcp_test.go:44: Install app "echo" in namespace "foo" tcp_test.go:44: Wait for app foo/sleep to be ready tcp_test.go:44: Wait for app foo/echo to be ready tcp_test.go:47: tcp_test.go:47: STEP 3: Verify sleep to echo TCP connections tcp_test.go:48: SUCCESS: Got expected hello message on port 9000 tcp_test.go:48: SUCCESS: Got expected hello message on port 9001 tcp_test.go:53: SUCCESS: Got expected hello message on port 9002 === RUN TestAuthorizationTCPTraffic/TCP_ALLOW_policy tcp_test.go:61: tcp_test.go:61: STEP 1: Apply a policy to allow tcp requests to port 9000 and 9001 tcp_test.go:64: SUCCESS: Got expected hello message on port 9000 tcp_test.go:64: SUCCESS: Got expected hello message on port 9001 tcp_test.go:69: SUCCESS: Got expected connection rejected on port 9002 subtest.go:23: subtest.go:28: Subtest completed in 4.02s (excluding cleanup) tcp_test.go:58: tcp_test.go:58: Performing cleanup tcp_test.go:58: Cleanup completed in 0.21s --- PASS: TestAuthorizationTCPTraffic/TCP_ALLOW_policy (4.24s) === RUN TestAuthorizationTCPTraffic/TCP_invalid_policy tcp_test.go:78: tcp_test.go:78: STEP 1: Apply an invalid policy to allow requests to port 9000 and add an HTTP GET field tcp_test.go:81: SUCCESS: Got expected connection rejected on port 9000 tcp_test.go:81: SUCCESS: Got expected connection rejected on port 9001 subtest.go:23: subtest.go:28: Subtest completed in 3.09s (excluding cleanup) tcp_test.go:75: tcp_test.go:75: Performing cleanup tcp_test.go:75: Cleanup completed in 0.22s --- PASS: TestAuthorizationTCPTraffic/TCP_invalid_policy (3.31s) === RUN TestAuthorizationTCPTraffic/TCP_deny_policy tcp_test.go:91: tcp_test.go:91: STEP 1: Apply a policy to deny tcp requests to port 9000 tcp_test.go:94: SUCCESS: Got expected connection rejected on port 9000 tcp_test.go:94: SUCCESS: Got expected hello message on port 9001 subtest.go:23: subtest.go:28: Subtest completed in 3.07s (excluding cleanup) tcp_test.go:88: tcp_test.go:88: Performing cleanup tcp_test.go:88: Cleanup completed in 0.28s --- PASS: TestAuthorizationTCPTraffic/TCP_deny_policy (3.35s) test.go:77: test.go:82: Test completed in 32.90s (excluding cleanup) tcp_test.go:34: tcp_test.go:34: Performing cleanup tcp_test.go:35: Deleting namespaces: [foo] tcp_test.go:35: Creating namespaces: [foo] tcp_test.go:34: Cleanup completed in 15.95s --- PASS: TestAuthorizationTCPTraffic (48.85s) === RUN TestTrustDomainMigration trust_domain_test.go:49: trust_domain_test.go:49: STEP 1: Apply default SMCP and SMMR manifests trust_domain_test.go:49: Wait for condition condition=Ready on smcp istio-system/basic... trust_domain_test.go:49: SUCCESS: Condition condition=Ready met by smcp istio-system/basic trust_domain_test.go:96: Configure spec.security.trust.domain to "old-td" and alias "" trust_domain_test.go:112: Wait for condition condition=Ready on smcp istio-system/basic... trust_domain_test.go:112: Wait for condition condition=Ready on smcp istio-system/basic... trust_domain_test.go:112: SUCCESS: Condition condition=Ready met by smcp istio-system/basic trust_domain_test.go:53: Install app "httpbin" in namespace "foo" trust_domain_test.go:53: Install app "sleep" in namespace "foo" trust_domain_test.go:53: Install app "sleep" in namespace "bar" trust_domain_test.go:53: Wait for app foo/httpbin to be ready trust_domain_test.go:53: Wait for app foo/sleep to be ready trust_domain_test.go:53: Wait for app bar/sleep to be ready trust_domain_test.go:58: Apply deny all policy except sleep in bar namespace === RUN TestTrustDomainMigration/Case_1:_Verifying_policy_works trust_domain_test.go:85: Verifying curl output, expecting 403 trust_domain_test.go:86: SUCCESS: string '403' found in output trust_domain_test.go:85: Verifying curl output, expecting 200 trust_domain_test.go:86: SUCCESS: string '200' found in output subtest.go:23: subtest.go:28: Subtest completed in 1.71s (excluding cleanup) --- PASS: TestTrustDomainMigration/Case_1:_Verifying_policy_works (1.71s) === RUN TestTrustDomainMigration/Case_2:_Migrate_trust_domain_without_trust_domain_aliases trust_domain_test.go:96: Configure spec.security.trust.domain to "new-td" and alias "" trust_domain_test.go:112: Wait for condition condition=Ready on smcp istio-system/basic... trust_domain_test.go:112: Wait for condition condition=Ready on smcp istio-system/basic... trust_domain_test.go:112: SUCCESS: Condition condition=Ready met by smcp istio-system/basic trust_domain_test.go:85: Verifying curl output, expecting 403 trust_domain_test.go:86: SUCCESS: string '403' found in output trust_domain_test.go:85: Verifying curl output, expecting 403 trust_domain_test.go:86: SUCCESS: string '403' found in output subtest.go:23: subtest.go:28: Subtest completed in 28.06s (excluding cleanup) --- PASS: TestTrustDomainMigration/Case_2:_Migrate_trust_domain_without_trust_domain_aliases (28.06s) === RUN TestTrustDomainMigration/Case_3:_Migrate_trust_domain_with_trust_domain_aliases trust_domain_test.go:96: Configure spec.security.trust.domain to "new-td" and alias "old-td" trust_domain_test.go:112: Wait for condition condition=Ready on smcp istio-system/basic... trust_domain_test.go:112: Wait for condition condition=Ready on smcp istio-system/basic... trust_domain_test.go:112: SUCCESS: Condition condition=Ready met by smcp istio-system/basic trust_domain_test.go:85: Verifying curl output, expecting 403 trust_domain_test.go:86: SUCCESS: string '403' found in output trust_domain_test.go:85: Verifying curl output, expecting 200 trust_domain_test.go:86: SUCCESS: string '200' found in output subtest.go:23: subtest.go:28: Subtest completed in 25.20s (excluding cleanup) --- PASS: TestTrustDomainMigration/Case_3:_Migrate_trust_domain_with_trust_domain_aliases (25.20s) test.go:77: test.go:82: Test completed in 91.65s (excluding cleanup) trust_domain_test.go:39: trust_domain_test.go:39: Performing cleanup trust_domain_test.go:39: Cleanup completed in 2.02s --- PASS: TestTrustDomainMigration (93.67s) PASS ok github.com/maistra/maistra-test-tool/pkg/tests/tasks/security/authorization 391.498s test_helper_setup.go:64: Creating namespaces: [istio-system bookinfo foo bar legacy mesh-external] === RUN TestExternalCertificate external_ca_test.go:48: external_ca_test.go:48: STEP 1: Uninstall existing SMCP external_ca_test.go:49: Deleting namespaces: [istio-system] external_ca_test.go:49: Creating namespaces: [istio-system] external_ca_test.go:51: external_ca_test.go:51: STEP 2: Create cacerts secret external_ca_test.go:60: external_ca_test.go:60: STEP 3: Apply SMCP to configure certificate authority to use cacerts secret external_ca_test.go:62: Wait for condition condition=Ready on smcp istio-system/basic... external_ca_test.go:62: Wait for condition condition=Ready on smcp istio-system/basic... external_ca_test.go:62: SUCCESS: Condition condition=Ready met by smcp istio-system/basic external_ca_test.go:64: external_ca_test.go:64: STEP 4: Install bookinfo external_ca_test.go:65: Install app "bookinfo" in namespace "bookinfo" external_ca_test.go:65: Create Bookinfo Gateway external_ca_test.go:65: Create Bookinfo Destination Rules (all) external_ca_test.go:65: Create Bookinfo Deployments external_ca_test.go:65: Wait for app bookinfo/bookinfo to be ready external_ca_test.go:67: external_ca_test.go:67: STEP 5: Wait for response from productpage app external_ca_test.go:68: SUCCESS: received expected status code 200 external_ca_test.go:74: external_ca_test.go:74: STEP 6: Retrieve certificates from bookinfo details service external_ca_test.go:86: SUCCESS: The cert-chain certificates are present in the certificates sent by the tested service external_ca_test.go:90: SUCCESS: Certificate trust chain successfully verified test.go:77: test.go:82: Test completed in 119.46s (excluding cleanup) external_ca_test.go:37: external_ca_test.go:37: Performing cleanup external_ca_test.go:38: Recreate namespace bookinfo external_ca_test.go:39: Deleting namespaces: [bookinfo istio-system] external_ca_test.go:39: Creating namespaces: [bookinfo istio-system] external_ca_test.go:37: Cleanup completed in 17.69s --- PASS: TestExternalCertificate (137.14s) PASS ok github.com/maistra/maistra-test-tool/pkg/tests/tasks/security/certificate 138.494s test_helper_setup.go:64: Creating namespaces: [istio-system bookinfo foo bar legacy mesh-external] === RUN TestIstioCsr istio_csr_test.go:35: istio-csr is not supported in OCP older than v4.12 test.go:77: test.go:82: Test completed in 0.23s (excluding cleanup) --- SKIP: TestIstioCsr (0.23s) === RUN TestPluginCaCert plugin_ca_test.go:34: istio-csr is not supported in OCP older than v4.12 test.go:77: test.go:82: Test completed in 0.26s (excluding cleanup) --- SKIP: TestPluginCaCert (0.26s) PASS ok github.com/maistra/maistra-test-tool/pkg/tests/tasks/security/certmanager 1.975s test_helper_setup.go:64: Creating namespaces: [istio-system bookinfo foo bar legacy mesh-external] === RUN TestCircuitBreaking circuit_breaking_test.go:37: This test checks whether the circuit breaker functions correctly. Check documentation: https://istio.io/latest/docs/tasks/traffic-management/circuit-breaking/ circuit_breaking_test.go:44: circuit_breaking_test.go:44: STEP 1: Apply default SMCP and SMMR manifests circuit_breaking_test.go:44: Wait for condition condition=Ready on smcp istio-system/basic... circuit_breaking_test.go:44: Wait for condition condition=Ready on smcp istio-system/basic... circuit_breaking_test.go:44: Wait for condition condition=Ready on smcp istio-system/basic... circuit_breaking_test.go:44: SUCCESS: Condition condition=Ready met by smcp istio-system/basic circuit_breaking_test.go:46: circuit_breaking_test.go:46: STEP 2: Install httpbin and fortio circuit_breaking_test.go:47: Install app "httpbin" in namespace "bookinfo" circuit_breaking_test.go:47: Install app "fortio" in namespace "bookinfo" circuit_breaking_test.go:47: Wait for app bookinfo/httpbin to be ready circuit_breaking_test.go:47: Wait for app bookinfo/fortio to be ready circuit_breaking_test.go:49: circuit_breaking_test.go:49: STEP 3: Configure circuit breaker destination rule circuit_breaking_test.go:52: circuit_breaking_test.go:52: STEP 4: Verify connection with curl: expect 200 OK circuit_breaking_test.go:53: SUCCESS: Got expected 200 OK response from httpbin circuit_breaking_test.go:66: circuit_breaking_test.go:66: STEP 5: Trip the circuit breaker by sending 50 requests to httpbin with 2 connections circuit_breaking_test.go:67: We expect request with response code 503 circuit_breaking_test.go:85: circuit_breaking_test.go:85: STEP 6: Validate the circuit breaker is tripped by checking the istio-proxy log circuit_breaking_test.go:122: SUCCESS: Found Upstream_rq_pending_overflow : 16 circuit_breaking_test.go:68: Success rate 200: 68% circuit_breaking_test.go:68: Success rate 503: 32% circuit_breaking_test.go:68: Verify istio-proxy pilot-agent stats, expected upstream_rq_pending_overflow value to be more than zero test.go:77: test.go:82: Test completed in 48.90s (excluding cleanup) circuit_breaking_test.go:40: circuit_breaking_test.go:40: Performing cleanup circuit_breaking_test.go:41: Deleting namespaces: [bookinfo] circuit_breaking_test.go:41: Creating namespaces: [bookinfo] circuit_breaking_test.go:40: Cleanup completed in 14.70s --- PASS: TestCircuitBreaking (63.59s) === RUN TestFaultInjection fault_injection_test.go:47: fault_injection_test.go:47: STEP 1: Apply default SMCP and SMMR manifests fault_injection_test.go:47: Wait for condition condition=Ready on smcp istio-system/basic... fault_injection_test.go:47: SUCCESS: Condition condition=Ready met by smcp istio-system/basic fault_injection_test.go:49: fault_injection_test.go:49: STEP 2: Install Bookinfo fault_injection_test.go:50: Install app "bookinfo" in namespace "bookinfo" fault_injection_test.go:50: Create Bookinfo Gateway fault_injection_test.go:50: Create Bookinfo Destination Rules (all) fault_injection_test.go:50: Create Bookinfo Deployments fault_injection_test.go:50: Wait for app bookinfo/bookinfo to be ready fault_injection_test.go:52: Logging into bookinfo as "jason" === RUN TestFaultInjection/ratings-fault-delay fault_injection_test.go:60: fault_injection_test.go:60: STEP 1: check if productpage shows 'error fetching product reviews' due to delay injection fault_injection_test.go:61: SUCCESS: request completed in 6.172s, which is within the expected range 4s - 14s fault_injection_test.go:61: SUCCESS: productpage shows 'error fetching product reviews', which is expected subtest.go:23: subtest.go:28: Subtest completed in 8.42s (excluding cleanup) --- PASS: TestFaultInjection/ratings-fault-delay (8.42s) === RUN TestFaultInjection/ratings-fault-abort fault_injection_test.go:77: fault_injection_test.go:77: STEP 1: check if productpage shows ratings service as unavailable due to abort injection fault_injection_test.go:78: SUCCESS: productpage shows 'ratings service is currently unavailable' as expected subtest.go:23: subtest.go:28: Subtest completed in 2.05s (excluding cleanup) --- PASS: TestFaultInjection/ratings-fault-abort (2.05s) test.go:77: test.go:82: Test completed in 38.87s (excluding cleanup) fault_injection_test.go:43: fault_injection_test.go:43: Performing cleanup fault_injection_test.go:44: Deleting namespaces: [bookinfo] fault_injection_test.go:44: Creating namespaces: [bookinfo] fault_injection_test.go:43: Cleanup completed in 15.93s --- PASS: TestFaultInjection (54.80s) === RUN TestRequestRouting request_routing_test.go:37: request_routing_test.go:37: STEP 1: Apply default SMCP and SMMR manifests request_routing_test.go:37: Wait for condition condition=Ready on smcp istio-system/basic... request_routing_test.go:37: SUCCESS: Condition condition=Ready met by smcp istio-system/basic request_routing_test.go:39: request_routing_test.go:39: STEP 2: Install Bookinfo request_routing_test.go:40: Install app "bookinfo" in namespace "bookinfo" request_routing_test.go:40: Create Bookinfo Gateway request_routing_test.go:40: Create Bookinfo Destination Rules (all) request_routing_test.go:40: Create Bookinfo Deployments request_routing_test.go:40: Wait for app bookinfo/bookinfo to be ready request_routing_test.go:43: Logging into bookinfo as "jason" === RUN TestRequestRouting/not-logged-in request_routing_test.go:48: request_routing_test.go:48: STEP 1: get productpage without logging in; expect to get reviews-v1 (5x) request_routing_test.go:49: SUCCESS: productpage called reviews-v1 request_routing_test.go:49: SUCCESS: productpage called reviews-v1 request_routing_test.go:49: SUCCESS: productpage called reviews-v1 request_routing_test.go:49: SUCCESS: productpage called reviews-v1 request_routing_test.go:49: SUCCESS: productpage called reviews-v1 subtest.go:23: subtest.go:28: Subtest completed in 4.09s (excluding cleanup) --- PASS: TestRequestRouting/not-logged-in (4.09s) === RUN TestRequestRouting/logged-in request_routing_test.go:65: request_routing_test.go:65: STEP 1: get productpage as logged-in user; expect to get reviews-v2 (5x) request_routing_test.go:66: SUCCESS: productpage called reviews-v2 request_routing_test.go:66: SUCCESS: productpage called reviews-v2 request_routing_test.go:66: SUCCESS: productpage called reviews-v2 request_routing_test.go:66: SUCCESS: productpage called reviews-v2 request_routing_test.go:66: SUCCESS: productpage called reviews-v2 subtest.go:23: subtest.go:28: Subtest completed in 3.46s (excluding cleanup) --- PASS: TestRequestRouting/logged-in (3.46s) test.go:77: test.go:82: Test completed in 33.13s (excluding cleanup) request_routing_test.go:33: request_routing_test.go:33: Performing cleanup request_routing_test.go:34: Deleting namespaces: [bookinfo] request_routing_test.go:34: Creating namespaces: [bookinfo] request_routing_test.go:33: Cleanup completed in 21.38s --- PASS: TestRequestRouting (54.50s) === RUN TestRequestTimeouts request_timeouts_test.go:42: request_timeouts_test.go:42: STEP 1: Apply default SMCP and SMMR manifests request_timeouts_test.go:42: Wait for condition condition=Ready on smcp istio-system/basic... request_timeouts_test.go:42: SUCCESS: Condition condition=Ready met by smcp istio-system/basic request_timeouts_test.go:44: request_timeouts_test.go:44: STEP 2: Install Bookinfo request_timeouts_test.go:45: Install app "bookinfo" in namespace "bookinfo" request_timeouts_test.go:45: Create Bookinfo Gateway request_timeouts_test.go:45: Create Bookinfo Destination Rules (all) request_timeouts_test.go:45: Create Bookinfo Deployments request_timeouts_test.go:45: Wait for app bookinfo/bookinfo to be ready request_timeouts_test.go:51: request_timeouts_test.go:51: STEP 3: make sure there is no timeout before applying delay and timeout in VirtualServices request_timeouts_test.go:52: SUCCESS: received normal productpage response request_timeouts_test.go:62: request_timeouts_test.go:62: STEP 4: apply delay and timeout in VirtualServices request_timeouts_test.go:65: request_timeouts_test.go:65: STEP 5: check if productpage shows 'error fetching product reviews' due to delay and timeout injection request_timeouts_test.go:66: SUCCESS: productpage shows 'error fetching product reviews', which is expected request_timeouts_test.go:66: SUCCESS: productpage shows 'error fetching product reviews', which is expected request_timeouts_test.go:66: SUCCESS: productpage shows 'error fetching product reviews', which is expected request_timeouts_test.go:66: SUCCESS: productpage shows 'error fetching product reviews', which is expected request_timeouts_test.go:66: SUCCESS: productpage shows 'error fetching product reviews', which is expected request_timeouts_test.go:66: SUCCESS: productpage shows 'error fetching product reviews', which is expected test.go:77: test.go:82: Test completed in 37.07s (excluding cleanup) request_timeouts_test.go:38: request_timeouts_test.go:38: Performing cleanup request_timeouts_test.go:39: Deleting namespaces: [bookinfo] request_timeouts_test.go:39: Creating namespaces: [bookinfo] request_timeouts_test.go:38: Cleanup completed in 15.96s --- PASS: TestRequestTimeouts (53.03s) === RUN TestMirroring traffic_mirroring_test.go:38: traffic_mirroring_test.go:38: STEP 1: Apply default SMCP and SMMR manifests traffic_mirroring_test.go:38: Wait for condition condition=Ready on smcp istio-system/basic... traffic_mirroring_test.go:38: SUCCESS: Condition condition=Ready met by smcp istio-system/basic traffic_mirroring_test.go:40: traffic_mirroring_test.go:40: STEP 2: Install httpbin-v1, httpbin-v2, and sleep traffic_mirroring_test.go:41: Install app "httpbin-v1" in namespace "bookinfo" traffic_mirroring_test.go:41: Install app "httpbin-v2" in namespace "bookinfo" traffic_mirroring_test.go:41: Install app "sleep" in namespace "bookinfo" traffic_mirroring_test.go:41: Wait for app bookinfo/httpbin-v1 to be ready traffic_mirroring_test.go:41: Wait for app bookinfo/httpbin-v2 to be ready traffic_mirroring_test.go:41: Wait for app bookinfo/sleep to be ready === RUN TestMirroring/no_mirroring traffic_mirroring_test.go:49: traffic_mirroring_test.go:49: STEP 1: sending HTTP request from sleep to httpbin-v1, not expecting mirroring to v2 traffic_mirroring_test.go:50: SUCCESS: request received by httpbin-v1 traffic_mirroring_test.go:50: SUCCESS: request not mirrored to httpbin-v2 subtest.go:23: subtest.go:28: Subtest completed in 4.32s (excluding cleanup) --- PASS: TestMirroring/no_mirroring (4.32s) === RUN TestMirroring/mirroring_to_httpbin-v2 traffic_mirroring_test.go:79: traffic_mirroring_test.go:79: STEP 1: sending HTTP request from sleep to httpbin-v1, expecting mirroring to v2 traffic_mirroring_test.go:80: SUCCESS: request received by httpbin-v1 traffic_mirroring_test.go:80: SUCCESS: request mirrored to httpbin-v2 subtest.go:23: subtest.go:28: Subtest completed in 4.08s (excluding cleanup) --- PASS: TestMirroring/mirroring_to_httpbin-v2 (4.08s) test.go:77: test.go:82: Test completed in 29.07s (excluding cleanup) traffic_mirroring_test.go:34: traffic_mirroring_test.go:34: Performing cleanup traffic_mirroring_test.go:35: Deleting namespaces: [bookinfo] traffic_mirroring_test.go:35: Creating namespaces: [bookinfo] traffic_mirroring_test.go:34: Cleanup completed in 15.14s --- PASS: TestMirroring (44.20s) === RUN TestTrafficShifting traffic_shifting_test.go:41: traffic_shifting_test.go:41: STEP 1: Apply default SMCP and SMMR manifests traffic_shifting_test.go:41: Wait for condition condition=Ready on smcp istio-system/basic... traffic_shifting_test.go:41: SUCCESS: Condition condition=Ready met by smcp istio-system/basic traffic_shifting_test.go:43: traffic_shifting_test.go:43: STEP 2: Install Bookinfo traffic_shifting_test.go:44: Install app "bookinfo" in namespace "bookinfo" traffic_shifting_test.go:44: Create Bookinfo Gateway traffic_shifting_test.go:44: Create Bookinfo Destination Rules (all) traffic_shifting_test.go:44: Create Bookinfo Deployments traffic_shifting_test.go:44: Wait for app bookinfo/bookinfo to be ready === RUN TestTrafficShifting/50_percent_to_v3 traffic_shifting_test.go:50: traffic_shifting_test.go:50: STEP 1: configure VirtualService to split traffic 50% to v1 and 50% to v3 traffic_shifting_test.go:53: traffic_shifting_test.go:53: STEP 2: Make 100 requests and check if v1 and v3 get 50% of requests each (tolerance: 20%) traffic_shifting_test.go:116: SUCCESS: 56/100 responses matched productpage-normal-user-v1.html (actual rate 0.560000, expected 0.500000, tolerance 0.200000) traffic_shifting_test.go:116: SUCCESS: 44/100 responses matched productpage-normal-user-v3.html (actual rate 0.440000, expected 0.500000, tolerance 0.200000) traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 traffic_shifting_test.go:54: SUCCESS: received expected status code 200 subtest.go:23: subtest.go:28: Subtest completed in 11.06s (excluding cleanup) --- PASS: TestTrafficShifting/50_percent_to_v3 (11.06s) === RUN TestTrafficShifting/100_percent_to_v3 traffic_shifting_test.go:64: traffic_shifting_test.go:64: STEP 1: configure VirtualService to send all traffic to v3 traffic_shifting_test.go:67: traffic_shifting_test.go:67: STEP 2: Make 100 requests and check if all of them go to v3 (tolerance: 0%) traffic_shifting_test.go:116: SUCCESS: 100/100 responses matched productpage-normal-user-v3.html (actual rate 1.000000, expected 1.000000, tolerance 0.000000) traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 traffic_shifting_test.go:68: SUCCESS: received expected status code 200 subtest.go:23: subtest.go:28: Subtest completed in 16.75s (excluding cleanup) --- PASS: TestTrafficShifting/100_percent_to_v3 (16.75s) test.go:77: test.go:82: Test completed in 55.67s (excluding cleanup) traffic_shifting_test.go:37: traffic_shifting_test.go:37: Performing cleanup traffic_shifting_test.go:38: Deleting namespaces: [bookinfo] traffic_shifting_test.go:38: Creating namespaces: [bookinfo] traffic_shifting_test.go:37: Cleanup completed in 21.69s --- PASS: TestTrafficShifting (77.36s) === RUN TestTcpTrafficShifting traffic_tcp_shifting_test.go:41: This test validates traffic shifting for TCP traffic. traffic_tcp_shifting_test.go:42: Doc reference: https://istio.io/v1.14/docs/tasks/traffic-management/tcp-traffic-shifting/ traffic_tcp_shifting_test.go:44: traffic_tcp_shifting_test.go:44: STEP 1: Apply default SMCP and SMMR manifests traffic_tcp_shifting_test.go:44: Wait for condition condition=Ready on smcp istio-system/basic... traffic_tcp_shifting_test.go:44: SUCCESS: Condition condition=Ready met by smcp istio-system/basic traffic_tcp_shifting_test.go:46: traffic_tcp_shifting_test.go:46: STEP 2: Install sleep, echoV1 and echoV2 traffic_tcp_shifting_test.go:47: Install app "sleep" in namespace "foo" traffic_tcp_shifting_test.go:47: Install app "echo-v1" in namespace "foo" traffic_tcp_shifting_test.go:47: Install app "echo-v2" in namespace "foo" traffic_tcp_shifting_test.go:47: Wait for app foo/sleep to be ready traffic_tcp_shifting_test.go:47: Wait for app foo/echo-v1 to be ready traffic_tcp_shifting_test.go:47: Wait for app foo/echo-v2 to be ready === RUN TestTcpTrafficShifting/tcp_shift_100_percent_to_v1 traffic_tcp_shifting_test.go:54: traffic_tcp_shifting_test.go:54: STEP 1: Shifting all TCP traffic to v1 traffic_tcp_shifting_test.go:57: traffic_tcp_shifting_test.go:57: STEP 2: make 20 requests and checking if all of them go to v1 (tolerance: 0%) traffic_tcp_shifting_test.go:114: SUCCESS: 20/20 responses matched one (actual rate 1.000000, expected 1.000000, tolerance 0.000000) subtest.go:23: subtest.go:28: Subtest completed in 2.21s (excluding cleanup) traffic_tcp_shifting_test.go:50: traffic_tcp_shifting_test.go:50: Performing cleanup traffic_tcp_shifting_test.go:50: Cleanup completed in 0.31s --- PASS: TestTcpTrafficShifting/tcp_shift_100_percent_to_v1 (2.52s) === RUN TestTcpTrafficShifting/tcp_shift_20_percent_to_v2 traffic_tcp_shifting_test.go:72: traffic_tcp_shifting_test.go:72: STEP 1: Shifting 20 percent TCP traffic to v2 traffic_tcp_shifting_test.go:75: traffic_tcp_shifting_test.go:75: STEP 2: make 100 requests and checking if 20 percent of them go to v2 (tolerance: 10%) traffic_tcp_shifting_test.go:114: SUCCESS: 85/100 responses matched one (actual rate 0.850000, expected 0.800000, tolerance 0.100000) traffic_tcp_shifting_test.go:114: SUCCESS: 15/100 responses matched two (actual rate 0.150000, expected 0.200000, tolerance 0.100000) subtest.go:23: subtest.go:28: Subtest completed in 2.01s (excluding cleanup) traffic_tcp_shifting_test.go:68: traffic_tcp_shifting_test.go:68: Performing cleanup traffic_tcp_shifting_test.go:68: Cleanup completed in 0.23s --- PASS: TestTcpTrafficShifting/tcp_shift_20_percent_to_v2 (2.23s) test.go:77: test.go:82: Test completed in 23.40s (excluding cleanup) traffic_tcp_shifting_test.go:37: traffic_tcp_shifting_test.go:37: Performing cleanup traffic_tcp_shifting_test.go:37: Cleanup completed in 1.10s --- PASS: TestTcpTrafficShifting (24.50s) PASS ok github.com/maistra/maistra-test-tool/pkg/tests/tasks/traffic 373.382s test_helper_setup.go:64: Creating namespaces: [istio-system bookinfo foo bar legacy mesh-external] === RUN TestAccessExternalServices access_external_services_test.go:43: This test validates accesses to external services access_external_services_test.go:45: access_external_services_test.go:45: STEP 1: Apply default SMCP and SMMR manifests access_external_services_test.go:45: Wait for condition condition=Ready on smcp istio-system/basic... access_external_services_test.go:45: SUCCESS: Condition condition=Ready met by smcp istio-system/basic access_external_services_test.go:47: access_external_services_test.go:47: STEP 2: Install sleep into bookinfo access_external_services_test.go:49: Install app "sleep" in namespace "bookinfo" access_external_services_test.go:49: Wait for app bookinfo/sleep to be ready access_external_services_test.go:51: access_external_services_test.go:51: STEP 3: Install httpbin in mesh-external access_external_services_test.go:53: Install app "httpbin" in namespace "mesh-external" access_external_services_test.go:53: Wait for app mesh-external/httpbin to be ready access_external_services_test.go:55: access_external_services_test.go:55: STEP 4: Make request to external httpbin from sleep egress_common.go:24: SUCCESS: Got expected 200 OK from http://httpbin.mesh-external:8000/headers access_external_services_test.go:59: access_external_services_test.go:59: STEP 5: Make sure that external httpbin was not discovered by Istio istioctl.go:11: SUCCESS: Httpbin was not discovered access_external_services_test.go:67: access_external_services_test.go:67: STEP 6: Patch outbound traffic policy to registry only - see https://istio.io/latest/docs/tasks/traffic-management/egress/egress-control/#envoy-passthrough-to-external-services access_external_services_test.go:81: access_external_services_test.go:81: STEP 7: Make request to external httpbin from sleep again, and expect it denied egress_common.go:31: SUCCESS: Got a failure message as expected === RUN TestAccessExternalServices/allow_request_to_external_httpbin_after_applying_ServiceEntry access_external_services_test.go:89: access_external_services_test.go:89: STEP 1: Apply a ServiceEntry for external httpbin access_external_services_test.go:92: access_external_services_test.go:92: STEP 2: Send a request to external httpbin egress_common.go:24: SUCCESS: Got expected 200 OK from http://httpbin.mesh-external:8000/headers subtest.go:23: subtest.go:28: Subtest completed in 2.22s (excluding cleanup) access_external_services_test.go:85: access_external_services_test.go:85: Performing cleanup access_external_services_test.go:85: Cleanup completed in 0.26s --- PASS: TestAccessExternalServices/allow_request_to_external_httpbin_after_applying_ServiceEntry (2.48s) test.go:77: test.go:82: Test completed in 29.10s (excluding cleanup) access_external_services_test.go:35: access_external_services_test.go:35: Performing cleanup access_external_services_test.go:35: Cleanup completed in 1.00s --- PASS: TestAccessExternalServices (30.10s) === RUN TestEgressGateways egress_gateways_test.go:33: egress_gateways_test.go:33: STEP 1: Apply default SMCP and SMMR manifests egress_gateways_test.go:33: Wait for condition condition=Ready on smcp istio-system/basic... egress_gateways_test.go:33: Wait for condition condition=Ready on smcp istio-system/basic... egress_gateways_test.go:33: SUCCESS: Condition condition=Ready met by smcp istio-system/basic egress_gateways_test.go:35: egress_gateways_test.go:35: STEP 2: Install sleep pod egress_gateways_test.go:37: Install app "sleep" in namespace "bookinfo" egress_gateways_test.go:37: Wait for app bookinfo/sleep to be ready === RUN TestEgressGateways/HTTP egress_gateways_test.go:40: egress_gateways_test.go:40: STEP 1: Install external httpbin egress_gateways_test.go:42: Install app "httpbin" in namespace "mesh-external" egress_gateways_test.go:42: Wait for app mesh-external/httpbin to be ready egress_gateways_test.go:44: egress_gateways_test.go:44: STEP 2: Apply a ServiceEntry for external httpbin egress_gateways_test.go:50: egress_gateways_test.go:50: STEP 3: Apply a gateway and virtual service for external httpbin egress_common.go:24: SUCCESS: Got expected 200 OK from http://httpbin.mesh-external:8000/headers subtest.go:23: subtest.go:28: Subtest completed in 5.60s (excluding cleanup) egress_gateways_test.go:52: egress_gateways_test.go:52: Performing cleanup egress_gateways_test.go:52: Cleanup completed in 0.25s egress_gateways_test.go:46: egress_gateways_test.go:46: Performing cleanup egress_gateways_test.go:46: Cleanup completed in 0.16s --- PASS: TestEgressGateways/HTTP (6.01s) === RUN TestEgressGateways/HTTPS egress_gateways_test.go:60: egress_gateways_test.go:60: STEP 1: Install external nginx egress_gateways_test.go:61: Install app "nginx" in namespace "mesh-external" egress_gateways_test.go:61: Wait for app mesh-external/nginx to be ready egress_gateways_test.go:63: egress_gateways_test.go:63: STEP 2: Create ServiceEntry for external nginx, port 80 and 443 egress_gateways_test.go:69: egress_gateways_test.go:69: STEP 3: Create a TLS ServiceEntry to external nginx egress_gateways_test.go:75: egress_gateways_test.go:75: STEP 4: Create a https Gateway to external nginx egress_gateways_test.go:81: Send HTTPS request to external nginx egress_common.go:39: SUCCESS: Got expected 200 OK from curl -sSL --insecure -o /dev/null -w "%{http_code}" https://my-nginx.mesh-external.svc.cluster.local 2>/dev/null || echo CURL_FAILED subtest.go:23: subtest.go:28: Subtest completed in 11.72s (excluding cleanup) egress_gateways_test.go:77: egress_gateways_test.go:77: Performing cleanup egress_gateways_test.go:77: Cleanup completed in 0.25s egress_gateways_test.go:71: egress_gateways_test.go:71: Performing cleanup egress_gateways_test.go:71: Cleanup completed in 0.35s egress_gateways_test.go:65: egress_gateways_test.go:65: Performing cleanup egress_gateways_test.go:65: Cleanup completed in 0.35s --- PASS: TestEgressGateways/HTTPS (12.66s) test.go:77: test.go:82: Test completed in 39.50s (excluding cleanup) egress_gateways_test.go:29: egress_gateways_test.go:29: Performing cleanup egress_gateways_test.go:30: Deleting namespaces: [bookinfo] egress_gateways_test.go:30: Creating namespaces: [bookinfo] egress_gateways_test.go:29: Cleanup completed in 15.22s --- PASS: TestEgressGateways (54.72s) === RUN TestTLSOrigination egress_gateways_tls_file_mount_test.go:33: This test verifies that TLS origination works in 2 scenarios: egress_gateways_tls_file_mount_test.go:34: 1) Egress gateway TLS Origination egress_gateways_tls_file_mount_test.go:35: 2) MTLS Origination with file mount (certificates mounted in egress gateway pod) egress_gateways_tls_file_mount_test.go:41: egress_gateways_tls_file_mount_test.go:41: STEP 1: Apply default SMCP and SMMR manifests egress_gateways_tls_file_mount_test.go:41: Wait for condition condition=Ready on smcp istio-system/basic... egress_gateways_tls_file_mount_test.go:41: SUCCESS: Condition condition=Ready met by smcp istio-system/basic egress_gateways_tls_file_mount_test.go:43: egress_gateways_tls_file_mount_test.go:43: STEP 2: Install sleep pod egress_gateways_tls_file_mount_test.go:44: Install app "sleep" in namespace "bookinfo" egress_gateways_tls_file_mount_test.go:44: Wait for app bookinfo/sleep to be ready === RUN TestTLSOrigination/Egress_Gateway_without_file_mount egress_gateways_tls_file_mount_test.go:47: Perform TLS origination with an egress gateway egress_gateways_tls_file_mount_test.go:49: egress_gateways_tls_file_mount_test.go:49: STEP 1: Install external nginx egress_gateways_tls_file_mount_test.go:50: Install app "nginx" in namespace "mesh-external" egress_gateways_tls_file_mount_test.go:50: Wait for app mesh-external/nginx to be ready egress_gateways_tls_file_mount_test.go:52: egress_gateways_tls_file_mount_test.go:52: STEP 2: Make sure that mesh external namespace is not discovered by Istio - it would happen if mesh-external namespaces was added to the SMMR istioctl.go:11: SUCCESS: mesh-external namespace was not discovered egress_gateways_tls_file_mount_test.go:60: egress_gateways_tls_file_mount_test.go:60: STEP 3: Create ServiceEntry for external nginx, port 80 and 443 egress_gateways_tls_file_mount_test.go:66: egress_gateways_tls_file_mount_test.go:66: STEP 4: Create a Gateway, DestinationRule, and VirtualService to route requests to external nginx through the egress gateway egress_gateways_tls_file_mount_test.go:74: egress_gateways_tls_file_mount_test.go:74: STEP 5: Verify that request to external nginx is routed through the egress gateway (response 200 indicates that the TLS origination is done by the egress gateway) egress_gateways_tls_file_mount_test.go:75: SUCCESS: Get expected response: Welcome to nginx subtest.go:23: subtest.go:28: Subtest completed in 10.70s (excluding cleanup) egress_gateways_tls_file_mount_test.go:69: egress_gateways_tls_file_mount_test.go:69: Performing cleanup egress_gateways_tls_file_mount_test.go:69: Cleanup completed in 0.52s egress_gateways_tls_file_mount_test.go:62: egress_gateways_tls_file_mount_test.go:62: Performing cleanup egress_gateways_tls_file_mount_test.go:62: Cleanup completed in 0.25s --- PASS: TestTLSOrigination/Egress_Gateway_without_file_mount (11.46s) === RUN TestTLSOrigination/mTLS_with_file_mount egress_gateways_tls_file_mount_test.go:84: Perform mTLS origination with an egress gateway egress_gateways_tls_file_mount_test.go:98: egress_gateways_tls_file_mount_test.go:98: STEP 1: Deploy nginx mTLS server and create secrets in the mesh namespace egress_gateways_tls_file_mount_test.go:103: Install app "nginx" in namespace "mesh-external" egress_gateways_tls_file_mount_test.go:105: egress_gateways_tls_file_mount_test.go:105: STEP 2: Patch egress gateway with File Mount configuration egress_gateways_tls_file_mount_test.go:108: egress_gateways_tls_file_mount_test.go:108: STEP 3: Configure mTLS origination for egress traffic egress_gateways_tls_file_mount_test.go:112: egress_gateways_tls_file_mount_test.go:112: STEP 4: Wait for egress gateway and nginx to be ready egress_gateways_tls_file_mount_test.go:114: Wait for app mesh-external/nginx to be ready egress_gateways_tls_file_mount_test.go:116: egress_gateways_tls_file_mount_test.go:116: STEP 5: Verify NGINX server egress_gateways_tls_file_mount_test.go:117: SUCCESS: Get expected response: Welcome to nginx subtest.go:23: subtest.go:28: Subtest completed in 10.76s (excluding cleanup) egress_gateways_tls_file_mount_test.go:85: egress_gateways_tls_file_mount_test.go:85: Performing cleanup egress_gateways_tls_file_mount_test.go:95: SUCCESS: Pod istio-ingressgateway-659d5dd5f4-9l2tw is being deleted egress_gateways_tls_file_mount_test.go:85: Cleanup completed in 10.87s --- PASS: TestTLSOrigination/mTLS_with_file_mount (21.63s) test.go:77: test.go:82: Test completed in 51.55s (excluding cleanup) egress_gateways_tls_file_mount_test.go:37: egress_gateways_tls_file_mount_test.go:37: Performing cleanup egress_gateways_tls_file_mount_test.go:37: Cleanup completed in 0.79s --- PASS: TestTLSOrigination (52.34s) === RUN TestTLSOriginationSDS egress_gateways_tls_sds_test.go:37: Perform mTLS origination with an egress gateway egress_gateways_tls_sds_test.go:38: egress_gateways_tls_sds_test.go:38: STEP 1: Apply default SMCP and SMMR manifests egress_gateways_tls_sds_test.go:38: Wait for condition condition=Ready on smcp istio-system/basic... egress_gateways_tls_sds_test.go:38: SUCCESS: Condition condition=Ready met by smcp istio-system/basic egress_gateways_tls_sds_test.go:40: egress_gateways_tls_sds_test.go:40: STEP 2: Install sleep pod egress_gateways_tls_sds_test.go:42: Install app "sleep" in namespace "bookinfo" egress_gateways_tls_sds_test.go:42: Wait for app bookinfo/sleep to be ready egress_gateways_tls_sds_test.go:44: egress_gateways_tls_sds_test.go:44: STEP 3: Deploy nginx mTLS server and create secrets in the mesh namespace egress_gateways_tls_sds_test.go:45: Install app "nginx" in namespace "mesh-external" egress_gateways_tls_sds_test.go:45: Wait for app mesh-external/nginx to be ready egress_gateways_tls_sds_test.go:53: Send HTTP request to external nginx to verify mTLS origination egress_common.go:24: SUCCESS: Got expected 200 OK from http://my-nginx.mesh-external.svc.cluster.local test.go:77: test.go:82: Test completed in 30.69s (excluding cleanup) egress_gateways_tls_sds_test.go:29: egress_gateways_tls_sds_test.go:29: Performing cleanup egress_gateways_tls_sds_test.go:30: Deleting namespaces: [bookinfo] egress_gateways_tls_sds_test.go:30: Creating namespaces: [bookinfo] egress_gateways_tls_sds_test.go:31: Deleting namespaces: [mesh-external] egress_gateways_tls_sds_test.go:31: Creating namespaces: [mesh-external] egress_gateways_tls_sds_test.go:29: Cleanup completed in 33.15s --- PASS: TestTLSOriginationSDS (63.84s) === RUN TestEgressTLSOrigination egress_tls_origination_test.go:35: egress_tls_origination_test.go:35: STEP 1: Apply default SMCP and SMMR manifests egress_tls_origination_test.go:35: Wait for condition condition=Ready on smcp istio-system/basic... egress_tls_origination_test.go:35: SUCCESS: Condition condition=Ready met by smcp istio-system/basic egress_tls_origination_test.go:37: egress_tls_origination_test.go:37: STEP 2: Install sleep pod egress_tls_origination_test.go:38: Install app "sleep" in namespace "bookinfo" egress_tls_origination_test.go:38: Wait for app bookinfo/sleep to be ready === RUN TestEgressTLSOrigination/TrafficManagement_egress_tls_origination egress_tls_origination_test.go:41: TLS origination for egress traffic egress_tls_origination_test.go:49: Install app "nginx" in namespace "mesh-external" egress_tls_origination_test.go:49: Wait for app mesh-external/nginx to be ready egress_common.go:24: SUCCESS: Got expected 200 OK from http://my-nginx.mesh-external.svc.cluster.local subtest.go:23: subtest.go:28: Subtest completed in 12.44s (excluding cleanup) egress_tls_origination_test.go:42: egress_tls_origination_test.go:42: Performing cleanup egress_tls_origination_test.go:42: Cleanup completed in 2.61s --- PASS: TestEgressTLSOrigination/TrafficManagement_egress_tls_origination (15.05s) test.go:77: test.go:82: Test completed in 35.30s (excluding cleanup) egress_tls_origination_test.go:30: egress_tls_origination_test.go:30: Performing cleanup egress_tls_origination_test.go:31: Deleting namespaces: [mesh-external] egress_tls_origination_test.go:31: Creating namespaces: [mesh-external] egress_tls_origination_test.go:30: Cleanup completed in 8.74s --- PASS: TestEgressTLSOrigination (44.04s) === RUN TestEgressWildcard egress_wildcard_hosts_test.go:31: This test checks if the wildcard in the ServiceEntry and Gateway works as expected for Egress traffic. egress_wildcard_hosts_test.go:35: egress_wildcard_hosts_test.go:35: STEP 1: Apply default SMCP and SMMR manifests egress_wildcard_hosts_test.go:35: Wait for condition condition=Ready on smcp istio-system/basic... egress_wildcard_hosts_test.go:35: SUCCESS: Condition condition=Ready met by smcp istio-system/basic egress_wildcard_hosts_test.go:37: egress_wildcard_hosts_test.go:37: STEP 2: Install the sleep pod egress_wildcard_hosts_test.go:38: Install app "sleep" in namespace "bookinfo" egress_wildcard_hosts_test.go:38: Wait for app bookinfo/sleep to be ready === RUN TestEgressWildcard/ServiceEntry egress_wildcard_hosts_test.go:44: egress_wildcard_hosts_test.go:44: STEP 1: Configure ServiceEntry with wildcard host *.wikipedia.org egress_wildcard_hosts_test.go:66: egress_wildcard_hosts_test.go:66: STEP 2: Check external request to en.wikipedia.org and de.wikipedia.org egress_wildcard_hosts_test.go:67: SUCCESS: Received the correct response from en.wikipedia.org egress_wildcard_hosts_test.go:67: SUCCESS: Received the correct response from de.wikipedia.org subtest.go:23: subtest.go:28: Subtest completed in 4.04s (excluding cleanup) egress_wildcard_hosts_test.go:46: egress_wildcard_hosts_test.go:46: Performing cleanup egress_wildcard_hosts_test.go:46: Cleanup completed in 0.24s --- PASS: TestEgressWildcard/ServiceEntry (4.28s) === RUN TestEgressWildcard/Gateway egress_wildcard_hosts_test.go:54: egress_wildcard_hosts_test.go:54: STEP 1: Configure egress Gateway with wildcard host *.wikipedia.org egress_wildcard_hosts_test.go:66: egress_wildcard_hosts_test.go:66: STEP 2: Check external request to en.wikipedia.org and de.wikipedia.org egress_wildcard_hosts_test.go:67: SUCCESS: Received the correct response from en.wikipedia.org egress_wildcard_hosts_test.go:67: SUCCESS: Received the correct response from de.wikipedia.org subtest.go:23: subtest.go:28: Subtest completed in 3.67s (excluding cleanup) egress_wildcard_hosts_test.go:56: egress_wildcard_hosts_test.go:56: Performing cleanup egress_wildcard_hosts_test.go:56: Cleanup completed in 0.23s --- PASS: TestEgressWildcard/Gateway (3.90s) test.go:77: test.go:82: Test completed in 26.36s (excluding cleanup) egress_wildcard_hosts_test.go:39: egress_wildcard_hosts_test.go:39: Performing cleanup egress_wildcard_hosts_test.go:39: Cleanup completed in 0.60s --- PASS: TestEgressWildcard (26.96s) PASS ok github.com/maistra/maistra-test-tool/pkg/tests/tasks/traffic/egress 273.199s test_helper_setup.go:64: Creating namespaces: [istio-system bookinfo foo bar legacy mesh-external] === RUN TestGatewayApi gatewayapi_test.go:28: gatewayapi_test.go:28: STEP 1: Apply default SMCP and SMMR manifests gatewayapi_test.go:28: Wait for condition condition=Ready on smcp istio-system/basic... gatewayapi_test.go:28: SUCCESS: Condition condition=Ready met by smcp istio-system/basic gatewayapi_test.go:30: gatewayapi_test.go:30: STEP 2: Install Gateway API CRD's gatewayapi_test.go:33: Creating namespaces: [foo] === RUN TestGatewayApi/Deploy_the_Kubernetes_Gateway_API gatewayapi_test.go:42: gatewayapi_test.go:42: STEP 1: Install httpbin gatewayapi_test.go:43: Install app "httpbin" in namespace "foo" gatewayapi_test.go:43: Wait for app foo/httpbin to be ready gatewayapi_test.go:45: gatewayapi_test.go:45: STEP 2: Deploy the Gateway SMCP gatewayapi_test.go:78: gatewayapi_test.go:78: STEP 3: Deploy the Gateway API configuration including a single exposed route (i.e., /get) gatewayapi_test.go:84: gatewayapi_test.go:84: STEP 4: Wait for Gateway to be ready gatewayapi_test.go:85: Wait for condition condition=Ready on Gateway foo/gateway... gatewayapi_test.go:85: SUCCESS: Condition condition=Ready met by Gateway foo/gateway gatewayapi_test.go:87: gatewayapi_test.go:87: STEP 5: Verfiy the GatewayApi access the httpbin service using curl gatewayapi_test.go:88: SUCCESS: Access the httpbin service with GatewayApi subtest.go:23: subtest.go:28: Subtest completed in 17.29s (excluding cleanup) gatewayapi_test.go:80: gatewayapi_test.go:80: Performing cleanup gatewayapi_test.go:80: Cleanup completed in 0.24s gatewayapi_test.go:71: gatewayapi_test.go:71: Performing cleanup gatewayapi_test.go:71: Cleanup completed in 0.35s gatewayapi_test.go:37: gatewayapi_test.go:37: Performing cleanup gatewayapi_test.go:38: Deleting namespaces: [istio-system] gatewayapi_test.go:38: Creating namespaces: [istio-system] gatewayapi_test.go:39: Deleting namespaces: [foo] gatewayapi_test.go:39: Creating namespaces: [foo] gatewayapi_test.go:37: Cleanup completed in 51.22s --- PASS: TestGatewayApi/Deploy_the_Kubernetes_Gateway_API (69.10s) === RUN TestGatewayApi/Deploy_the_Gateway-Controller_Profile gatewayapi_test.go:109: gatewayapi_test.go:109: STEP 1: Install httpbin gatewayapi_test.go:110: Install app "httpbin" in namespace "foo" gatewayapi_test.go:110: Wait for app foo/httpbin to be ready gatewayapi_test.go:112: gatewayapi_test.go:112: STEP 2: Deploy SMCP with the profile gatewayapi_test.go:117: Wait for condition condition=Ready on smcp istio-system/basic... gatewayapi_test.go:117: SUCCESS: Condition condition=Ready met by smcp istio-system/basic gatewayapi_test.go:119: gatewayapi_test.go:119: STEP 3: delete default SMMR and create custom SMMR gatewayapi_test.go:124: gatewayapi_test.go:124: STEP 4: Deploy the Gateway API configuration including a single exposed route (i.e., /get) gatewayapi_test.go:130: gatewayapi_test.go:130: STEP 5: Wait for Gateway to be ready gatewayapi_test.go:131: Wait for condition condition=Ready on Gateway foo/gateway... gatewayapi_test.go:131: SUCCESS: Condition condition=Ready met by Gateway foo/gateway gatewayapi_test.go:133: gatewayapi_test.go:133: STEP 6: Verify the Gateway-Controller Profile access the httpbin service using curl gatewayapi_test.go:134: SUCCESS: Access the httpbin service with GatewayApi subtest.go:23: subtest.go:28: Subtest completed in 24.78s (excluding cleanup) gatewayapi_test.go:126: gatewayapi_test.go:126: Performing cleanup gatewayapi_test.go:126: Cleanup completed in 0.22s gatewayapi_test.go:104: gatewayapi_test.go:104: Performing cleanup gatewayapi_test.go:105: Deleting namespaces: [istio-system] gatewayapi_test.go:105: Creating namespaces: [istio-system] gatewayapi_test.go:106: Deleting namespaces: [foo] gatewayapi_test.go:106: Creating namespaces: [foo] gatewayapi_test.go:104: Cleanup completed in 24.40s --- PASS: TestGatewayApi/Deploy_the_Gateway-Controller_Profile (49.40s) test.go:77: test.go:82: Test completed in 132.50s (excluding cleanup) --- PASS: TestGatewayApi (132.50s) === RUN TestIngressGateways ingress_gateways_test.go:42: ingress_gateways_test.go:42: STEP 1: Apply default SMCP and SMMR manifests ingress_gateways_test.go:42: Wait for condition condition=Ready on smcp istio-system/basic... ingress_gateways_test.go:42: Wait for condition condition=Ready on smcp istio-system/basic... ingress_gateways_test.go:42: Wait for condition condition=Ready on smcp istio-system/basic... ingress_gateways_test.go:42: SUCCESS: Condition condition=Ready met by smcp istio-system/basic ingress_gateways_test.go:44: ingress_gateways_test.go:44: STEP 2: Install httpbin ingress_gateways_test.go:45: Install app "httpbin" in namespace "bookinfo" ingress_gateways_test.go:45: Wait for app bookinfo/httpbin to be ready === RUN TestIngressGateways/TrafficManagement_ingress_status_200_test ingress_gateways_test.go:50: ingress_gateways_test.go:50: STEP 1: Create httpbin Gateway and VirtualService with host set to httpbin.example.com ingress_gateways_test.go:57: ingress_gateways_test.go:57: STEP 2: Check if httpbin service is reachable through istio-ingressgateway ingress_gateways_test.go:58: SUCCESS: received expected status code 200 subtest.go:23: subtest.go:28: Subtest completed in 11.94s (excluding cleanup) --- PASS: TestIngressGateways/TrafficManagement_ingress_status_200_test (11.94s) === RUN TestIngressGateways/TrafficManagement_ingress_headers_test ingress_gateways_test.go:67: ingress_gateways_test.go:67: STEP 1: Create httpbin Gateway and VirtualService with host set to * ingress_gateways_test.go:70: ingress_gateways_test.go:70: STEP 2: Check if httpbin service is reachable through istio-ingressgateway ingress_gateways_test.go:71: SUCCESS: received expected status code 200 subtest.go:23: subtest.go:28: Subtest completed in 2.58s (excluding cleanup) --- PASS: TestIngressGateways/TrafficManagement_ingress_headers_test (2.58s) test.go:77: test.go:82: Test completed in 51.86s (excluding cleanup) ingress_gateways_test.go:38: ingress_gateways_test.go:38: Performing cleanup ingress_gateways_test.go:39: Deleting namespaces: [bookinfo] ingress_gateways_test.go:39: Creating namespaces: [bookinfo] ingress_gateways_test.go:38: Cleanup completed in 21.45s --- PASS: TestIngressGateways (73.30s) === RUN TestIngressWithoutTlsTermination ingress_without_tls_termination_test.go:36: This test validates configuring an Gateway with TLS PassThrough ingress_without_tls_termination_test.go:37: Doc reference: https://istio.io/v1.14/docs/tasks/traffic-management/ingress/ingress-sni-passthrough/ ingress_without_tls_termination_test.go:46: ingress_without_tls_termination_test.go:46: STEP 1: Apply default SMCP and SMMR manifests ingress_without_tls_termination_test.go:46: Wait for condition condition=Ready on smcp istio-system/basic... ingress_without_tls_termination_test.go:46: SUCCESS: Condition condition=Ready met by smcp istio-system/basic ingress_without_tls_termination_test.go:48: ingress_without_tls_termination_test.go:48: STEP 2: Create NGINX Deployment ingress_without_tls_termination_test.go:49: Install app "nginx" in namespace "bookinfo" ingress_without_tls_termination_test.go:49: Wait for app bookinfo/nginx to be ready ingress_without_tls_termination_test.go:51: ingress_without_tls_termination_test.go:51: STEP 3: Verify NGINX server is running by connecting to it via loopback ingress_without_tls_termination_test.go:52: SUCCESS: Got expected Welcome to nginx response ingress_without_tls_termination_test.go:63: ingress_without_tls_termination_test.go:63: STEP 4: Configure Gateway resource with TLS passthrough for host nginx.example.com ingress_without_tls_termination_test.go:70: ingress_without_tls_termination_test.go:70: STEP 5: Verify NGINX is reachable from outside the cluster through the ingressgateway ingress_without_tls_termination_test.go:73: SUCCESS: string 'Welcome to nginx' found in response test.go:77: test.go:82: Test completed in 27.85s (excluding cleanup) ingress_without_tls_termination_test.go:41: ingress_without_tls_termination_test.go:41: Performing cleanup ingress_without_tls_termination_test.go:41: Cleanup completed in 1.87s --- PASS: TestIngressWithoutTlsTermination (29.73s) === RUN TestSecureGateways secure_gateways_test.go:59: secure_gateways_test.go:59: STEP 1: Apply default SMCP and SMMR manifests secure_gateways_test.go:59: Wait for condition condition=Ready on smcp istio-system/basic... secure_gateways_test.go:59: SUCCESS: Condition condition=Ready met by smcp istio-system/basic secure_gateways_test.go:61: secure_gateways_test.go:61: STEP 2: Install httpbin secure_gateways_test.go:62: Install app "httpbin" in namespace "bookinfo" secure_gateways_test.go:62: Wait for app bookinfo/httpbin to be ready secure_gateways_test.go:66: secure_gateways_test.go:66: STEP 3: Create TLS secrets === RUN TestSecureGateways/tls_single_host secure_gateways_test.go:76: secure_gateways_test.go:76: STEP 1: Configure a TLS ingress gateway for a single host secure_gateways_test.go:83: SUCCESS: string '-=[ teapot ]=-' found in response subtest.go:23: subtest.go:28: Subtest completed in 12.70s (excluding cleanup) --- PASS: TestSecureGateways/tls_single_host (12.70s) === RUN TestSecureGateways/tls_multiple_hosts secure_gateways_test.go:93: secure_gateways_test.go:93: STEP 1: configure Gateway with multiple TLS hosts secure_gateways_test.go:101: secure_gateways_test.go:101: STEP 2: check if helloworld-v1 responds with 200 OK secure_gateways_test.go:102: SUCCESS: received expected status code 200 secure_gateways_test.go:109: secure_gateways_test.go:109: STEP 3: check if httpbin responds with teapot secure_gateways_test.go:110: SUCCESS: string '-=[ teapot ]=-' found in response subtest.go:23: subtest.go:28: Subtest completed in 2.98s (excluding cleanup) --- PASS: TestSecureGateways/tls_multiple_hosts (2.98s) === RUN TestSecureGateways/mutual_tls secure_gateways_test.go:119: secure_gateways_test.go:119: STEP 1: configure Gateway with tls.mode=Mutual secure_gateways_test.go:130: secure_gateways_test.go:130: STEP 2: check if SSL handshake fails when no client certificate is given secure_gateways_test.go:131: failed to get HTTP Response: Get "https://httpbin.example.com:443/status/418": remote error: tls: certificate required secure_gateways_test.go:131: SUCCESS: request failed as expected secure_gateways_test.go:140: secure_gateways_test.go:140: STEP 3: check if SSL handshake succeeds when client certificate is given secure_gateways_test.go:141: SUCCESS: string '-=[ teapot ]=-' found in response subtest.go:23: subtest.go:28: Subtest completed in 2.98s (excluding cleanup) --- PASS: TestSecureGateways/mutual_tls (2.98s) test.go:77: test.go:82: Test completed in 44.63s (excluding cleanup) secure_gateways_test.go:53: secure_gateways_test.go:53: Performing cleanup secure_gateways_test.go:56: Deleting namespaces: [bookinfo] secure_gateways_test.go:56: Creating namespaces: [bookinfo] secure_gateways_test.go:53: Cleanup completed in 16.46s --- PASS: TestSecureGateways (61.09s) PASS ok github.com/maistra/maistra-test-tool/pkg/tests/tasks/traffic/ingress 298.407s DONE 147 tests, 7 skipped, 1 failure in 4446.257s test_helper_setup.go:64: Creating namespaces: [istio-system bookinfo foo bar legacy mesh-external] === RUN TestDiscoverySelectors discovery_selectors_test.go:34: This test checks if discoverySelectors are being honored discovery_selectors_test.go:35: See https://issues.redhat.com/browse/OSSM-3802 discovery_selectors_test.go:36: Test case is based on https://istio.io/latest/blog/2021/discovery-selectors/ discovery_selectors_test.go:41: discovery_selectors_test.go:41: STEP 1: Apply cluster-wide SMCP and standard SMMR discovery_selectors_test.go:42: Deleting namespaces: [istio-system] discovery_selectors_test.go:42: Creating namespaces: [istio-system] discovery_selectors_test.go:45: Wait for condition condition=Ready on smcp istio-system/basic... discovery_selectors_test.go:45: Wait for condition condition=Ready on smcp istio-system/basic... discovery_selectors_test.go:45: SUCCESS: Condition condition=Ready met by smcp istio-system/basic discovery_selectors_test.go:48: discovery_selectors_test.go:48: STEP 2: Install httpbin and sleep pod discovery_selectors_test.go:49: Install app "sleep" in namespace "foo" discovery_selectors_test.go:49: Install app "httpbin" in namespace "mesh-external" discovery_selectors_test.go:49: Wait for app foo/sleep to be ready discovery_selectors_test.go:49: Wait for app mesh-external/httpbin to be ready discovery_selectors_test.go:54: discovery_selectors_test.go:54: STEP 3: Confirm that the httpbin and sleep services have been discovered istioctl.go:11: SUCCESS: Sleep was discovered istioctl.go:11: SUCCESS: Httpbin was discovered discovery_selectors_test.go:64: discovery_selectors_test.go:64: STEP 4: Configure discoverySelectors so that only namespace foo is discovered discovery_selectors_test.go:80: Wait for condition condition=Ready on smcp istio-system/basic... discovery_selectors_test.go:80: SUCCESS: Condition condition=Ready met by smcp istio-system/basic discovery_selectors_test.go:82: discovery_selectors_test.go:82: STEP 5: Verify that sleep service has been discovered, whereas httpbin hasn't istioctl.go:11: SUCCESS: Sleep was discovered istioctl.go:11: SUCCESS: Httpbin was not discovered test.go:77: test.go:82: Test completed in 128.60s (excluding cleanup) discovery_selectors_test.go:73: discovery_selectors_test.go:73: Performing cleanup discovery_selectors_test.go:73: Cleanup completed in 0.39s discovery_selectors_test.go:50: discovery_selectors_test.go:50: Performing cleanup discovery_selectors_test.go:50: Cleanup completed in 1.47s --- PASS: TestDiscoverySelectors (130.46s) PASS ok github.com/maistra/maistra-test-tool/pkg/tests/ossm 132.069s === Skipped === SKIP: pkg/tests/ossm TestIOR/check_IOR_off_by_default_v2.5 (0.00s) ior_test.go:77: Skipping until 2.5 subtest.go:23: subtest.go:28: Subtest completed in 0.00s (excluding cleanup) === SKIP: pkg/tests/ossm TestOperatorCanUpdatePrometheusConfigMap/[TODO]_test_under_cluster_scoped (0.00s) prometheus_scoped_scraping_test.go:181: subtest.go:23: subtest.go:28: Subtest completed in 0.00s (excluding cleanup) === SKIP: pkg/tests/ossm TestRateLimiting (0.00s) test.go:120: This test is being skipped because it doesn't support the current SMCP version v2.4 (max version is v2.2) === SKIP: pkg/tests/ossm-federation TestMultiClusterFederationFailover (0.00s) federation_failover_test.go:41: this test only runs when the KUBECONFIG2 environment variable points to the kubeconfig of the second cluster test.go:77: test.go:82: Test completed in 0.00s (excluding cleanup) === SKIP: pkg/tests/tasks/observability TestCustomPrometheus (0.20s) custom_prometheus_test.go:33: Custom Prometheus operator from red hat is not supported in OCP older than v4.11 test.go:77: test.go:82: Test completed in 0.20s (excluding cleanup) === SKIP: pkg/tests/tasks/security/certmanager TestIstioCsr (0.23s) istio_csr_test.go:35: istio-csr is not supported in OCP older than v4.12 test.go:77: test.go:82: Test completed in 0.23s (excluding cleanup) === SKIP: pkg/tests/tasks/security/certmanager TestPluginCaCert (0.26s) plugin_ca_test.go:34: istio-csr is not supported in OCP older than v4.12 test.go:77: test.go:82: Test completed in 0.26s (excluding cleanup) === Failed === FAIL: pkg/tests/ossm TestDiscoverySelectors (41.24s) discovery_selectors_test.go:34: This test checks if discoverySelectors are being honored discovery_selectors_test.go:35: See https://issues.redhat.com/browse/OSSM-3802 discovery_selectors_test.go:36: Test case is based on https://istio.io/latest/blog/2021/discovery-selectors/ discovery_selectors_test.go:41: discovery_selectors_test.go:41: STEP 1: Apply cluster-wide SMCP and standard SMMR discovery_selectors_test.go:42: Deleting namespaces: [istio-system] discovery_selectors_test.go:42: Creating namespaces: [istio-system] discovery_selectors_test.go:43: FATAL: Command failed: oc -n istio-system apply -f - Error from server (InternalError): error when creating "STDIN": Internal error occurred: failed calling webhook "smmr.mutation.maistra.io": failed to call webhook: Post "https://maistra-admission-controller.openshift-operators.svc:443/mutate-smmr?timeout=10s": no endpoints available for service "maistra-admission-controller" error: exit status 1 test.go:77: test.go:79: Test failed in 5.93s (excluding cleanup) test.go:95: Capturing cluster state using must-gather registry.redhat.io/openshift-service-mesh/istio-must-gather-rhel8:2.4 test.go:99: /home/jenkins/workspace/maistra/maistra-test-tool/maistra-test-tool/tests/result-20230714132308/v2.4/failures-must-gather/20230714133308-TestDiscoverySelectors DONE 2 runs, 148 tests, 7 skipped, 1 failure in 4581.956s ====== JUnit report file(s) v2.4: /home/jenkins/workspace/maistra/maistra-test-tool/maistra-test-tool/tests/result-20230714132308/v2.4/report.xml ====== Test summary v2.4: DONE 2 runs, 148 tests, 7 skipped, 1 failure in 4581.956s real 77m6.731s user 7m33.545s sys 2m43.558s