diff --git a/api/v1alpha/httpproxy_types.go b/api/v1alpha/httpproxy_types.go index c68aef79..a98ff693 100644 --- a/api/v1alpha/httpproxy_types.go +++ b/api/v1alpha/httpproxy_types.go @@ -32,13 +32,17 @@ type HTTPProxySpec struct { // // In addition to verifying ownership, hostnames must be unique across the // platform. If a hostname is already programmed on another resource, a - // conflict will be encountered and communicated in the `HostnamesVerified` + // conflict will be encountered and communicated in the `HostnamesInUse` // condition. // - // Hostnames which have been programmed will be listed in the - // `status.hostnames` field. Any hostname which has not been programmed will - // be listed in the `message` field of the `HostnamesVerified` condition with - // an indication as to why it was not programmed. + // Hostnames which have been accepted will be listed in the + // `status.hostnames` field. Any hostname which has not been accepted will + // be listed in the `message` field of the `HostnamesVerified` condition. + // That condition covers ownership and acceptance only. The DNS records of + // hostnames that use Datum-managed DNS are reported in the + // `DNSRecordsProgrammed` condition. Each hostname's entry in + // `status.hostnameStatuses` says why it is not verified, or why its DNS + // record is not programmed. // // The system may automatically generate and associate hostnames with the // HTTPProxy. In such cases, these will be listed in the `status.hostnames` diff --git a/config/crd/bases/networking.datumapis.com_httpproxies.yaml b/config/crd/bases/networking.datumapis.com_httpproxies.yaml index a9260823..ee7223a3 100644 --- a/config/crd/bases/networking.datumapis.com_httpproxies.yaml +++ b/config/crd/bases/networking.datumapis.com_httpproxies.yaml @@ -121,13 +121,17 @@ spec: In addition to verifying ownership, hostnames must be unique across the platform. If a hostname is already programmed on another resource, a - conflict will be encountered and communicated in the `HostnamesVerified` + conflict will be encountered and communicated in the `HostnamesInUse` condition. - Hostnames which have been programmed will be listed in the - `status.hostnames` field. Any hostname which has not been programmed will - be listed in the `message` field of the `HostnamesVerified` condition with - an indication as to why it was not programmed. + Hostnames which have been accepted will be listed in the + `status.hostnames` field. Any hostname which has not been accepted will + be listed in the `message` field of the `HostnamesVerified` condition. + That condition covers ownership and acceptance only. The DNS records of + hostnames that use Datum-managed DNS are reported in the + `DNSRecordsProgrammed` condition. Each hostname's entry in + `status.hostnameStatuses` says why it is not verified, or why its DNS + record is not programmed. The system may automatically generate and associate hostnames with the HTTPProxy. In such cases, these will be listed in the `status.hostnames` diff --git a/docs/api/httpproxies.md b/docs/api/httpproxies.md index 9564e442..c765aaad 100644 --- a/docs/api/httpproxies.md +++ b/docs/api/httpproxies.md @@ -129,13 +129,17 @@ attempts to program the HTTPProxy. In addition to verifying ownership, hostnames must be unique across the platform. If a hostname is already programmed on another resource, a -conflict will be encountered and communicated in the `HostnamesVerified` +conflict will be encountered and communicated in the `HostnamesInUse` condition. -Hostnames which have been programmed will be listed in the -`status.hostnames` field. Any hostname which has not been programmed will -be listed in the `message` field of the `HostnamesVerified` condition with -an indication as to why it was not programmed. +Hostnames which have been accepted will be listed in the +`status.hostnames` field. Any hostname which has not been accepted will +be listed in the `message` field of the `HostnamesVerified` condition. +That condition covers ownership and acceptance only. The DNS records of +hostnames that use Datum-managed DNS are reported in the +`DNSRecordsProgrammed` condition. Each hostname's entry in +`status.hostnameStatuses` says why it is not verified, or why its DNS +record is not programmed. The system may automatically generate and associate hostnames with the HTTPProxy. In such cases, these will be listed in the `status.hostnames` diff --git a/internal/controller/httpproxy_controller.go b/internal/controller/httpproxy_controller.go index 6ebf59ea..c2f8518e 100644 --- a/internal/controller/httpproxy_controller.go +++ b/internal/controller/httpproxy_controller.go @@ -653,7 +653,7 @@ func (r *HTTPProxyReconciler) reconcileHTTPProxyHostnameStatus( // not been removed by the user. hostnamesVerifiedCondition.Status = metav1.ConditionTrue hostnamesVerifiedCondition.Reason = networkingv1alpha.HTTPProxyReasonHostnamesVerified - hostnamesVerifiedCondition.Message = "All hostnames have been accepted and programmed" + hostnamesVerifiedCondition.Message = "All hostnames have been accepted" } else { hostnamesVerifiedCondition.Status = metav1.ConditionFalse hostnamesVerifiedCondition.Reason = networkingv1alpha.HTTPProxyReasonPending diff --git a/internal/controller/httpproxy_controller_test.go b/internal/controller/httpproxy_controller_test.go index 42060a78..94d07206 100644 --- a/internal/controller/httpproxy_controller_test.go +++ b/internal/controller/httpproxy_controller_test.go @@ -1784,6 +1784,7 @@ func TestHTTPProxyReconcile(t *testing.T) { hostnamesVerifiedCondition := apimeta.FindStatusCondition(updatedHttpProxy.Status.Conditions, networkingv1alpha.HTTPProxyConditionHostnamesVerified) if assert.NotNil(t, hostnamesVerifiedCondition, "did not find HostnamesVerified condition on HTTPProxy") { assert.Equal(t, networkingv1alpha.HTTPProxyReasonHostnamesVerified, hostnamesVerifiedCondition.Reason) + assert.Equal(t, "All hostnames have been accepted", hostnamesVerifiedCondition.Message) } } }