diff --git a/test/framework/functional/framework.go b/test/framework/functional/framework.go index 58cdd0d74..b3cb73605 100644 --- a/test/framework/functional/framework.go +++ b/test/framework/functional/framework.go @@ -49,6 +49,13 @@ var TestAPIAdapterConfigVisitor = func(conf string) string { return conf } +const ( + // UtilContainerName is the name of the util container in functional tests + UtilContainerName = "util" + // imageUbi is the image used for the util container in functional tests + imageUbi = "registry.access.redhat.com/ubi9/ubi" +) + type CollectorFramework interface { DeployConfigMapForConfig(name, config, clfName, clfYaml string) error BuildCollectorContainer(*runtime.ContainerBuilder, string) *runtime.ContainerBuilder @@ -316,6 +323,13 @@ func (f *CollectorFunctionalFramework) DeployWithVisitors(visitors []runtime.Pod AddEnvVarFromFieldRef("POD_IPS", "status.podIPs"). WithImagePullPolicy(corev1.PullAlways).ResourceRequirements(resources), FunctionalNodeName). End() + + // Add util container for testing (needed when vector moves to ubi-micro) + b.AddContainer(UtilContainerName, imageUbi). + WithCmd([]string{"/bin/sh", "-c", "sleep infinity"}). + WithImagePullPolicy(corev1.PullIfNotPresent). + End() + for _, visit := range visitors { if visit != nil { if err = visit(b); err != nil { diff --git a/test/framework/functional/metrics.go b/test/framework/functional/metrics.go index 1b1af99ee..9a24558ee 100644 --- a/test/framework/functional/metrics.go +++ b/test/framework/functional/metrics.go @@ -9,7 +9,6 @@ import ( rbacv1 "k8s.io/api/rbac/v1" "k8s.io/apimachinery/pkg/util/wait" - "github.com/openshift/cluster-logging-operator/internal/constants" "github.com/openshift/cluster-logging-operator/internal/runtime" ) @@ -58,7 +57,7 @@ func (f *CollectorFunctionalFramework) CollectMetricLines(metricName, waitFor st var matched []string var lastErr error err := wait.PollUntilContextTimeout(context.TODO(), 3*time.Second, timeout, true, func(ctx context.Context) (bool, error) { - raw, err := f.RunCommand(constants.CollectorName, "bash", "-c", + raw, err := f.RunCommand(UtilContainerName, "bash", "-c", fmt.Sprintf("curl -ks --max-time 10 -H \"Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)\" https://%s.%s:24231/metrics", f.Name, f.Namespace)) if err != nil { lastErr = err diff --git a/test/framework/functional/write.go b/test/framework/functional/write.go index 720d1d939..aa21815eb 100644 --- a/test/framework/functional/write.go +++ b/test/framework/functional/write.go @@ -227,7 +227,7 @@ func (f *CollectorFunctionalFramework) WriteAsJsonToHttpInput(inputName string, func (f *CollectorFunctionalFramework) WriteToHttpInput(inputName, buf string) error { for _, input := range f.Forwarder.Spec.Inputs { if input.Receiver != nil && input.Receiver.HTTP != nil && input.Name == inputName { - _, err := f.RunCommand(constants.CollectorName, "curl", "-ksv", fmt.Sprintf("http://localhost:%d", input.Receiver.Port), "-d", string(buf)) + _, err := f.RunCommand(UtilContainerName, "curl", "-ksv", fmt.Sprintf("http://localhost:%d", input.Receiver.Port), "-d", string(buf)) return err } } diff --git a/test/functional/metrics/discarded_metrics_test.go b/test/functional/metrics/discarded_metrics_test.go index 1babb6ed3..2d3c357e4 100644 --- a/test/functional/metrics/discarded_metrics_test.go +++ b/test/functional/metrics/discarded_metrics_test.go @@ -94,7 +94,7 @@ var _ = Describe("[Functional][Metrics] Discarded source logs metrics", func() { grepDiscardCmd := fmt.Sprintf(`%s | grep -i discard`, curlCmd) Eventually(func() string { - metrics, _ := framework.RunCommand(constants.CollectorName, "sh", "-c", grepDiscardCmd) + metrics, _ := framework.RunCommand(functional.UtilContainerName, "sh", "-c", grepDiscardCmd) return metrics }, 60*time.Second, 10*time.Second).Should( And( diff --git a/test/functional/metrics/metrics_test.go b/test/functional/metrics/metrics_test.go index 553f53ce8..085f092cd 100644 --- a/test/functional/metrics/metrics_test.go +++ b/test/functional/metrics/metrics_test.go @@ -6,7 +6,6 @@ import ( . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" obs "github.com/openshift/cluster-logging-operator/api/observability/v1" - "github.com/openshift/cluster-logging-operator/internal/constants" "github.com/openshift/cluster-logging-operator/internal/runtime" "github.com/openshift/cluster-logging-operator/test/framework/functional" testruntime "github.com/openshift/cluster-logging-operator/test/runtime/observability" @@ -75,7 +74,7 @@ var _ = Describe("[Functional][Metrics]Function testing of collector metrics", f Expect(framework.Deploy()).To(BeNil()) metricsURL := fmt.Sprintf("https://%s.%s:24231/metrics", framework.Name, framework.Namespace) curlCmd := fmt.Sprintf(`curl -ksv -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" %s`, metricsURL) - metrics, _ := framework.RunCommand(constants.CollectorName, "sh", "-c", curlCmd) + metrics, _ := framework.RunCommand(functional.UtilContainerName, "sh", "-c", curlCmd) Expect(metrics).To(ContainSubstring(sampleMetric)) }) @@ -83,7 +82,7 @@ var _ = Describe("[Functional][Metrics]Function testing of collector metrics", f Expect(framework.DeployWithVisitor(func(builder *runtime.PodBuilder) error { return nil })).To(BeNil()) metricsURL := fmt.Sprintf("https://%s.%s:24231/metrics", framework.Name, framework.Namespace) curlCmd := fmt.Sprintf(`curl -ksv -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" %s`, metricsURL) - metrics, _ := framework.RunCommand(constants.CollectorName, "sh", "-c", curlCmd) + metrics, _ := framework.RunCommand(functional.UtilContainerName, "sh", "-c", curlCmd) Expect(metrics).To(ContainSubstring(sampleMetric)) }) diff --git a/test/functional/misc/vector_api_cli_test.go b/test/functional/misc/vector_api_cli_test.go index 9b44da2f9..8cb2b022c 100644 --- a/test/functional/misc/vector_api_cli_test.go +++ b/test/functional/misc/vector_api_cli_test.go @@ -4,7 +4,6 @@ import ( . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" obs "github.com/openshift/cluster-logging-operator/api/observability/v1" - "github.com/openshift/cluster-logging-operator/internal/constants" "github.com/openshift/cluster-logging-operator/test/framework/functional" testruntime "github.com/openshift/cluster-logging-operator/test/runtime/observability" ) @@ -25,7 +24,7 @@ var _ = Describe("[Functional][Misc][API_CLI] Functional test", func() { Context("invoking vector CLI commands that talk to the vector API", func() { It("should work", func() { Expect(framework.Deploy()).To(BeNil()) - out, _ := framework.RunCommand(constants.CollectorName, `curl`, `-sv`, `-m`, `5`, `--connect-timeout`, `3`, `http://127.0.0.1:8686/health`) + out, _ := framework.RunCommand(functional.UtilContainerName, `curl`, `-sv`, `-m`, `5`, `--connect-timeout`, `3`, `http://127.0.0.1:8686/health`) Expect(out).To(ContainSubstring(`{"ok":true}`)) }) }) diff --git a/test/functional/outputs/splunk/403_forbidden_test.go b/test/functional/outputs/splunk/403_forbidden_test.go index d866d90d5..23a968e04 100644 --- a/test/functional/outputs/splunk/403_forbidden_test.go +++ b/test/functional/outputs/splunk/403_forbidden_test.go @@ -120,7 +120,7 @@ var _ = Describe("Forwarding to Splunk with authorization failures", func() { // Query metrics from the collector (no auth required since we removed it) metricsURL := fmt.Sprintf("https://%s.%s:24231/metrics", framework.Name, framework.Namespace) curlCmd := fmt.Sprintf(`curl -ksv %s`, metricsURL) - metrics, err := framework.RunCommand(constants.CollectorName, "sh", "-c", curlCmd) + metrics, err := framework.RunCommand(functional.UtilContainerName, "sh", "-c", curlCmd) Expect(err).To(BeNil(), "Expected no errors querying metrics") Expect(metrics).ToNot(BeEmpty(), "Expected metrics to not be empty")