[TT-15595] temporarily remove upstream target from load balancing #7524
probelabs / Visor: dependency
failed
Nov 7, 2025 in 3m 38s
🚨 Check Failed
dependency check failed because fail_if condition was met.
Details
📊 Summary
- Total Issues: 4
- Critical Issues: 2
- Error Issues: 2
🔍 Failure Condition Results
❌ Failed Conditions
- global_fail_if: Global failure condition met
⚠️ Severity: Error
🐛 Issues by Category
🏗️ Architecture (3)
- 🚨 apidef/validator.go:61 - The introduction of
RuleLoadBalancingTargetsmakes previously acceptableApiDefinitioncustom resources invalid if they configure load balancing with all target weights set to zero. Whentyk-operatorattempts to reconcile such a resource, the gateway will reject it, causing the operator's reconciliation loop to fail and preventing any further updates. - 🚨 apidef/validator.go:61 - Multi-Data Centre Bridge (MDCB) will fail to synchronize any existing API definition that uses the now-invalid all-zero-weight load balancing configuration. When
tyk-sinkattempts to propagate this API definition to a replica gateway, the replica will reject it, leading to configuration drift and potential outages. - ❌ apidef/validator.go:61 - The Tyk Developer Portal's UI may permit a user to configure load balancing targets where all weights are zero. An attempt to save such a configuration will now fail with an HTTP 400 error from the gateway, resulting in a poor user experience as the cause of the failure may not be clear from the UI.
🧠 Logic (1)
- ❌ system:0 - Global failure condition met
Powered by Visor from Probelabs
💡 TIP: You can chat with Visor using /visor ask <your question>
Annotations
Check failure on line 61 in apidef/validator.go
probelabs / Visor: dependency
architecture Issue
The introduction of `RuleLoadBalancingTargets` makes previously acceptable `ApiDefinition` custom resources invalid if they configure load balancing with all target weights set to zero. When `tyk-operator` attempts to reconcile such a resource, the gateway will reject it, causing the operator's reconciliation loop to fail and preventing any further updates.
Raw output
Update `tyk-operator` to incorporate the same validation logic, ideally in a validating admission webhook, to reject invalid `ApiDefinition` custom resources at the time of submission (`kubectl apply`). A corresponding `tyk-operator` issue or PR should be created and linked.
Check failure on line 61 in apidef/validator.go
probelabs / Visor: dependency
architecture Issue
Multi-Data Centre Bridge (MDCB) will fail to synchronize any existing API definition that uses the now-invalid all-zero-weight load balancing configuration. When `tyk-sink` attempts to propagate this API definition to a replica gateway, the replica will reject it, leading to configuration drift and potential outages.
Raw output
Provide a migration path or clear release notes instructing users to identify and correct any existing invalid API definitions in their primary data store before upgrading gateways in replica data centers. The component managing the source-of-truth definitions (e.g., Tyk Dashboard) must be updated first.
Check failure on line 61 in apidef/validator.go
probelabs / Visor: dependency
architecture Issue
The Tyk Developer Portal's UI may permit a user to configure load balancing targets where all weights are zero. An attempt to save such a configuration will now fail with an HTTP 400 error from the gateway, resulting in a poor user experience as the cause of the failure may not be clear from the UI.
Raw output
Update the portal's frontend and backend validation to prevent users from creating this invalid configuration. The UI should provide immediate and clear feedback, ensuring at least one target has a weight greater than zero when load balancing is enabled.
Loading