-
Bug
-
Resolution: Done
-
Undefined
-
None
-
None
-
None
-
Quality / Stability / Reliability
-
False
-
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Description:
Summary:
The ObservabilityInstaller CRD allows creation of resources with tracing.enabled: true but without storage configuration, which causes guaranteed reconciliation failures when the controller attempts to create a TempoStack instance.
Steps to Reproduce:
1. Create an ObservabilityInstaller with minimal configuration:
apiVersion: observability.openshift.io/v1alpha1
kind: ObservabilityInstaller
metadata:
name: test-minimal
spec:
capabilities:
tracing:
enabled: true
2. Apply the resource to the cluster
3. Check the operator logs
Expected Behavior:
Resource creation should fail with a validation error indicating that storage configuration is required when tracing is enabled.
Actual Behavior:
- Resource is created successfully
- Controller reconciliation fails with error: TempoStack.tempo.grafana.com "test-minimal" is invalid:
spec.storage.secret.type: Unsupported value: "": supported values: "azure", "gcs", "s3"
- User gets runtime error instead of clear validation failure
Root Cause:{}
The toTempoStorageType() function in tempo_components.go:288 returns an empty string when no storage backend is configured, but TempoStack CRD validation only accepts "azure", "gcs", or "s3".