-
Story
-
Resolution: Unresolved
-
Undefined
-
None
-
None
-
Product / Portfolio Work
-
False
-
-
False
-
None
-
Rejected
-
NI&D Sprint 278
As a Gateway admin, I want to get a status condition that indicates whether the DNS record and LoadBalancer for my Gateway were properly provisioned.
Implementation details:
As part of this implementation, a new "gateway-status" controller should be implemented. This controller should behave as follows:
- Watch for Services owned by the Gateway. Those are provisioned by Istio once the Gateway is created.
- Watch for DNSRecords owned by the Service of this Gateway. Those are provisioned by the "gateway-service-dns" controller, and the status of a DNSRecord CR is updated by the "dns" controller when it tries to publish the DNS record.
When these objects change (that is, one of these objects is created, updated, or deleted), a new reconciliation request for the Gateway should be enqueued. The reconciliation process should behave as follows:
- Add or update a status condition to the Gateway, using patch/strategic merge, containing the operatorv1.DNSManagedIngressConditionType and operatorv1.DNSReadyIngressConditionType - see the computeDNSStatus and computeIngressAvailableCondition functions to reflect the proper status.
- Add or update a status condition to the Gateway, using patch/strategic merge, containing operatorv1.LoadBalancerManagedIngressConditionType and operatorv1.LoadBalancerReadyIngressConditionType - see the computeIngressAvailableCondition function.
The conditions addition should happen on a single run (idempotent), gathering all of the required information from DNSRecord, Services, etc to proper add conditions to the Gateway.
Add unit tests and e2e tests to guarantee that the expected conditions reflect the desired behavior.