diff --git a/CHANGELOG.md b/CHANGELOG.md index f95577a0..3341edfc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ All notable changes to this project will be documented in this file. availability gaps during rolling updates ([#819]). - Document Helm deployed RBAC permissions and remove unnecessary permissions ([#820]). - Internal operator refactoring: introduce dereference() and validate() steps in the reconciler ([#836]). +- test: Bump vector-aggregator to 0.55.0, replace /graphql call with gRPC call ([#840]). ### Removed @@ -29,6 +30,7 @@ All notable changes to this project will be documented in this file. [#831]: https://github.com/stackabletech/opa-operator/pull/831 [#836]: https://github.com/stackabletech/opa-operator/pull/836 [#838]: https://github.com/stackabletech/opa-operator/pull/838 +[#840]: https://github.com/stackabletech/opa-operator/pull/840 ## [26.3.0] - 2026-03-16 diff --git a/tests/templates/kuttl/logging/01-install-opa-vector-aggregator.yaml b/tests/templates/kuttl/logging/01-install-opa-vector-aggregator.yaml index c3dbb409..132d0d71 100644 --- a/tests/templates/kuttl/logging/01-install-opa-vector-aggregator.yaml +++ b/tests/templates/kuttl/logging/01-install-opa-vector-aggregator.yaml @@ -5,7 +5,7 @@ commands: - script: >- helm install opa-vector-aggregator vector --namespace $NAMESPACE - --version 0.49.0 + --version 0.52.0 `# app version 0.55.0` --repo https://helm.vector.dev --values opa-vector-aggregator-values.yaml --- diff --git a/tests/templates/kuttl/logging/test_log_aggregation.py b/tests/templates/kuttl/logging/test_log_aggregation.py index 8ba52855..cc4134bd 100755 --- a/tests/templates/kuttl/logging/test_log_aggregation.py +++ b/tests/templates/kuttl/logging/test_log_aggregation.py @@ -1,7 +1,9 @@ -#!/usr/bin/env python3 -import requests +import json +import subprocess import time +import requests + def send_opa_decision_request(): response = requests.post("http://test-opa-server:8081/v1/data/test/world") @@ -10,43 +12,38 @@ def send_opa_decision_request(): def check_sent_events(): - response = requests.post( - "http://opa-vector-aggregator:8686/graphql", - json={ - "query": """ - { - transforms(first:100) { - nodes { - componentId - metrics { - sentEventsTotal { - sentEventsTotal - } - } - } - } - } - """ - }, - ) - - assert response.status_code == 200, ( - "Cannot access the API of the vector aggregator." + response = subprocess.run( + [ + "grpcurl", + "-plaintext", + "-d", + '{"limit": 100}', + "opa-vector-aggregator:8686", + "vector.observability.v1.ObservabilityService/GetComponents", + ], + capture_output=True, + text=True, + check=True, # Raise a CalledProcessError if non-zero return + timeout=20, # seconds ) + result = json.loads(response.stdout) + components = result.get("components", []) + transforms = [ + c for c in components if c.get("componentType") == "COMPONENT_TYPE_TRANSFORM" + ] - result = response.json() + assert len(transforms) > 0, "No transform components found" - transforms = result["data"]["transforms"]["nodes"] for transform in transforms: sentEvents = transform["metrics"]["sentEventsTotal"] componentId = transform["componentId"] if componentId == "filteredInvalidEvents": - assert sentEvents is None or sentEvents["sentEventsTotal"] == 0, ( + assert sentEvents is None or int(sentEvents) == 0, ( "Invalid log events were sent." ) else: - assert sentEvents is not None and sentEvents["sentEventsTotal"] > 0, ( + assert sentEvents is not None and int(sentEvents) > 0, ( f'No events were sent in "{componentId}".' )