Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
---
Expand Down
53 changes: 25 additions & 28 deletions tests/templates/kuttl/logging/test_log_aggregation.py
Original file line number Diff line number Diff line change
@@ -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")
Expand All @@ -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}".'
)

Expand Down
Loading