Following a redeployment or upgrade of the VMware Identity Broker (VIDB), the vidb-service-gateway reports a Ready status, but the associated Virtual IP (VIP) is unreachable. Users may observe the following:
Task Details:Install components: Identity broker
Subtask:Install components using SDDC lifecycle serviceSeverity: ErrorMessage: Unable to register components with VCF Operations(with instructions to go to Control Panel > Management Tasks)
Management Tasks:Request Type: Configure ComponentRequest Status Failed
Log analysis of /storage/log/vcops/log/component-manager-plugin-*.log on the VCF Operations appliance reveals the following error:
com.vmware.vrealize.lcm.exception.AdapterTaskException: No route to hostThe issue is caused by a configuration mismatch in the HelmRelease and a lack of drift detection in the Flux controller:
To resolve this issue, perform a manual re-reconciliation and enable drift detection using the following steps:
Login to the Control Plane node via SSHssh vmware-system-user@<CONTROL_PLANE_NODE_IP>
sudo -ivmware-system-user when prompted)export KUBECONFIG=/etc/kubernetes/admin.confkubectl get nodesTrigger manual re-reconciliation of the shared gateway to repopulate HelmRelease values:
kubectl annotate <gateway-aggregation> reconcile-trigger="$(date +%s)" --overwrite
Apply a no-op spec change to the GatewayConfiguration to force the controller to refresh:
kubectl patch gatewayconfiguration vidb-service-gateway -n vidb-external --type=merge -p '{"spec":{"enable2xxAccessLogs":false}}'
Restart the Envoy-gateway controller to ensure it processes the updated objects:
kubectl rollout restart deployment envoy-gateway -n vmsp-platform
(Optional) Force full reprovisioning by deleting existing objects if the stale configuration persists:
kubectl delete gateway vmsp-gateway -n vmsp-platform
Enable drift detection on the HelmRelease and force a final reconciliation:
kubectl patch <helmrelease-name> --type=merge -p '{"spec":{"driftDetection":{"mode":"enabled"}}}'kubectl annotate <helmrelease-name> reconcile-trigger="$(date +%s)" --overwrite
Verify the fix by checking the LoadBalancer Service and Gateway objects:
# Check for the correct external IP
kubectl get svc -A | grep LoadBalancer
# Verify the Gateway object shows the expected VIP
kubectl get gateway vmsp-gateway -n vmsp-platform -o wide