diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/types.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/types.go index e44ff8d71f4..55c3bfad46d 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/types.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/types.go @@ -72,10 +72,11 @@ type CustomResourceDefinitionConditionType string const ( // Established means that the resource has become active. A resource is established when all names are // accepted without a conflict for the first time. A resource stays established until deleted, even during - // a later NameConflict due to changed names. Note that not all names can be changed. + // a later NamesAccepted due to changed names. Note that not all names can be changed. Established CustomResourceDefinitionConditionType = "Established" - // NameConflict means the names chosen for this CustomResourceDefinition conflict with others in the group. - NameConflict CustomResourceDefinitionConditionType = "NameConflict" + // NamesAccepted means the names chosen for this CustomResourceDefinition do not conflict with others in + // the group and are therefore accepted. + NamesAccepted CustomResourceDefinitionConditionType = "NamesAccepted" // Terminating means that the CustomResourceDefinition has been deleted and is cleaning up. Terminating CustomResourceDefinitionConditionType = "Terminating" ) diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/types.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/types.go index 4e004aa8199..0d6fb7e027d 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/types.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/types.go @@ -72,10 +72,11 @@ type CustomResourceDefinitionConditionType string const ( // Established means that the resource has become active. A resource is established when all names are // accepted without a conflict for the first time. A resource stays established until deleted, even during - // a later NameConflict due to changed names. Note that not all names can be changed. + // a later NamesAccepted due to changed names. Note that not all names can be changed. Established CustomResourceDefinitionConditionType = "Established" - // NameConflict means the names chosen for this CustomResourceDefinition conflict with others in the group. - NameConflict CustomResourceDefinitionConditionType = "NameConflict" + // NamesAccepted means the names chosen for this CustomResourceDefinition do not conflict with others in + // the group and are therefore accepted. + NamesAccepted CustomResourceDefinitionConditionType = "NamesAccepted" // Terminating means that the CustomResourceDefinition has been deleted and is cleaning up. Terminating CustomResourceDefinitionConditionType = "Terminating" ) diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/controller/status/naming_controller.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/controller/status/naming_controller.go index b412a957da7..b788ec7b0c9 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/controller/status/naming_controller.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/controller/status/naming_controller.go @@ -123,8 +123,8 @@ func (c *NamingConditionController) calculateNamesAndConditions(in *apiextension // Get the names that have already been claimed allResources, allKinds := c.getAcceptedNamesForGroup(in.Spec.Group) - nameConflictCondition := apiextensions.CustomResourceDefinitionCondition{ - Type: apiextensions.NameConflict, + namesAcceptedCondition := apiextensions.CustomResourceDefinitionCondition{ + Type: apiextensions.NamesAccepted, Status: apiextensions.ConditionUnknown, } @@ -135,16 +135,16 @@ func (c *NamingConditionController) calculateNamesAndConditions(in *apiextension // Check each name for mismatches. If there's a mismatch between spec and status, then try to deconflict. // Continue on errors so that the status is the best match possible if err := equalToAcceptedOrFresh(requestedNames.Plural, acceptedNames.Plural, allResources); err != nil { - nameConflictCondition.Status = apiextensions.ConditionTrue - nameConflictCondition.Reason = "Plural" - nameConflictCondition.Message = err.Error() + namesAcceptedCondition.Status = apiextensions.ConditionFalse + namesAcceptedCondition.Reason = "PluralConflict" + namesAcceptedCondition.Message = err.Error() } else { newNames.Plural = requestedNames.Plural } if err := equalToAcceptedOrFresh(requestedNames.Singular, acceptedNames.Singular, allResources); err != nil { - nameConflictCondition.Status = apiextensions.ConditionTrue - nameConflictCondition.Reason = "Singular" - nameConflictCondition.Message = err.Error() + namesAcceptedCondition.Status = apiextensions.ConditionFalse + namesAcceptedCondition.Reason = "SingularConflict" + namesAcceptedCondition.Message = err.Error() } else { newNames.Singular = requestedNames.Singular } @@ -162,34 +162,34 @@ func (c *NamingConditionController) calculateNamesAndConditions(in *apiextension } if err := utilerrors.NewAggregate(errs); err != nil { - nameConflictCondition.Status = apiextensions.ConditionTrue - nameConflictCondition.Reason = "ShortNames" - nameConflictCondition.Message = err.Error() + namesAcceptedCondition.Status = apiextensions.ConditionFalse + namesAcceptedCondition.Reason = "ShortNamesConflict" + namesAcceptedCondition.Message = err.Error() } else { newNames.ShortNames = requestedNames.ShortNames } } if err := equalToAcceptedOrFresh(requestedNames.Kind, acceptedNames.Kind, allKinds); err != nil { - nameConflictCondition.Status = apiextensions.ConditionTrue - nameConflictCondition.Reason = "Kind" - nameConflictCondition.Message = err.Error() + namesAcceptedCondition.Status = apiextensions.ConditionFalse + namesAcceptedCondition.Reason = "KindConflict" + namesAcceptedCondition.Message = err.Error() } else { newNames.Kind = requestedNames.Kind } if err := equalToAcceptedOrFresh(requestedNames.ListKind, acceptedNames.ListKind, allKinds); err != nil { - nameConflictCondition.Status = apiextensions.ConditionTrue - nameConflictCondition.Reason = "ListKind" - nameConflictCondition.Message = err.Error() + namesAcceptedCondition.Status = apiextensions.ConditionFalse + namesAcceptedCondition.Reason = "ListKindConflict" + namesAcceptedCondition.Message = err.Error() } else { newNames.ListKind = requestedNames.ListKind } // if we haven't changed the condition, then our names must be good. - if nameConflictCondition.Status == apiextensions.ConditionUnknown { - nameConflictCondition.Status = apiextensions.ConditionFalse - nameConflictCondition.Reason = "NoConflicts" - nameConflictCondition.Message = "no conflicts found" + if namesAcceptedCondition.Status == apiextensions.ConditionUnknown { + namesAcceptedCondition.Status = apiextensions.ConditionTrue + namesAcceptedCondition.Reason = "NoConflicts" + namesAcceptedCondition.Message = "no conflicts found" } // set EstablishedCondition to true if all names are accepted. Never set it back to false. @@ -203,7 +203,7 @@ func (c *NamingConditionController) calculateNamesAndConditions(in *apiextension if old := apiextensions.FindCRDCondition(in, apiextensions.Established); old != nil { establishedCondition = *old } - if establishedCondition.Status != apiextensions.ConditionTrue && nameConflictCondition.Status == apiextensions.ConditionFalse { + if establishedCondition.Status != apiextensions.ConditionTrue && namesAcceptedCondition.Status == apiextensions.ConditionTrue { establishedCondition = apiextensions.CustomResourceDefinitionCondition{ Type: apiextensions.Established, Status: apiextensions.ConditionTrue, @@ -213,7 +213,7 @@ func (c *NamingConditionController) calculateNamesAndConditions(in *apiextension } } - return newNames, nameConflictCondition, establishedCondition + return newNames, namesAcceptedCondition, establishedCondition } func equalToAcceptedOrFresh(requestedName, acceptedName string, usedNames sets.String) error { @@ -238,9 +238,9 @@ func (c *NamingConditionController) sync(key string) error { acceptedNames, namingCondition, establishedCondition := c.calculateNamesAndConditions(inCustomResourceDefinition) - // nothing to do if accepted names and NameConflict condition didn't change + // nothing to do if accepted names and NamesAccepted condition didn't change if reflect.DeepEqual(inCustomResourceDefinition.Status.AcceptedNames, acceptedNames) && - apiextensions.IsCRDConditionEquivalent(&namingCondition, apiextensions.FindCRDCondition(inCustomResourceDefinition, apiextensions.NameConflict)) && + apiextensions.IsCRDConditionEquivalent(&namingCondition, apiextensions.FindCRDCondition(inCustomResourceDefinition, apiextensions.NamesAccepted)) && apiextensions.IsCRDConditionEquivalent(&establishedCondition, apiextensions.FindCRDCondition(inCustomResourceDefinition, apiextensions.Established)) { return nil } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/controller/status/naming_controller_test.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/controller/status/naming_controller_test.go index 619a20d75dd..e9a7627758f 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/controller/status/naming_controller_test.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/controller/status/naming_controller_test.go @@ -89,16 +89,16 @@ func (b *crdBuilder) NewOrDie() *apiextensions.CustomResourceDefinition { } var acceptedCondition = apiextensions.CustomResourceDefinitionCondition{ - Type: apiextensions.NameConflict, - Status: apiextensions.ConditionFalse, + Type: apiextensions.NamesAccepted, + Status: apiextensions.ConditionTrue, Reason: "NoConflicts", Message: "no conflicts found", } func nameConflictCondition(reason, message string) apiextensions.CustomResourceDefinitionCondition { return apiextensions.CustomResourceDefinitionCondition{ - Type: apiextensions.NameConflict, - Status: apiextensions.ConditionTrue, + Type: apiextensions.NamesAccepted, + Status: apiextensions.ConditionFalse, Reason: reason, Message: message, } @@ -155,7 +155,7 @@ func TestSync(t *testing.T) { newCRD("india.bravo.com").StatusNames("india", "alfa", "", "").NewOrDie(), }, expectedNames: names("", "delta-singular", "echo-kind", "foxtrot-listkind", "golf-shortname-1", "hotel-shortname-2"), - expectedNameConflictCondition: nameConflictCondition("Plural", `"alfa" is already in use`), + expectedNameConflictCondition: nameConflictCondition("PluralConflict", `"alfa" is already in use`), expectedEstablishedCondition: notEstablishedCondition, }, { @@ -165,7 +165,7 @@ func TestSync(t *testing.T) { newCRD("india.bravo.com").StatusNames("india", "indias", "", "", "delta-singular").NewOrDie(), }, expectedNames: names("alfa", "", "echo-kind", "foxtrot-listkind", "golf-shortname-1", "hotel-shortname-2"), - expectedNameConflictCondition: nameConflictCondition("Singular", `"delta-singular" is already in use`), + expectedNameConflictCondition: nameConflictCondition("SingularConflict", `"delta-singular" is already in use`), expectedEstablishedCondition: notEstablishedCondition, }, { @@ -175,7 +175,7 @@ func TestSync(t *testing.T) { newCRD("india.bravo.com").StatusNames("india", "indias", "", "", "hotel-shortname-2").NewOrDie(), }, expectedNames: names("alfa", "delta-singular", "echo-kind", "foxtrot-listkind"), - expectedNameConflictCondition: nameConflictCondition("ShortNames", `"hotel-shortname-2" is already in use`), + expectedNameConflictCondition: nameConflictCondition("ShortNamesConflict", `"hotel-shortname-2" is already in use`), expectedEstablishedCondition: notEstablishedCondition, }, { @@ -185,7 +185,7 @@ func TestSync(t *testing.T) { newCRD("india.bravo.com").StatusNames("india", "indias", "", "echo-kind").NewOrDie(), }, expectedNames: names("alfa", "delta-singular", "", "foxtrot-listkind", "golf-shortname-1", "hotel-shortname-2"), - expectedNameConflictCondition: nameConflictCondition("Kind", `"echo-kind" is already in use`), + expectedNameConflictCondition: nameConflictCondition("KindConflict", `"echo-kind" is already in use`), expectedEstablishedCondition: notEstablishedCondition, }, { @@ -195,7 +195,7 @@ func TestSync(t *testing.T) { newCRD("india.bravo.com").StatusNames("india", "indias", "foxtrot-listkind", "").NewOrDie(), }, expectedNames: names("alfa", "delta-singular", "echo-kind", "", "golf-shortname-1", "hotel-shortname-2"), - expectedNameConflictCondition: nameConflictCondition("ListKind", `"foxtrot-listkind" is already in use`), + expectedNameConflictCondition: nameConflictCondition("ListKindConflict", `"foxtrot-listkind" is already in use`), expectedEstablishedCondition: notEstablishedCondition, }, { @@ -218,7 +218,7 @@ func TestSync(t *testing.T) { newCRD("india.bravo.com").StatusNames("india", "indias", "foxtrot-listkind", "", "delta-singular").NewOrDie(), }, expectedNames: names("alfa", "yankee-singular", "echo-kind", "whiskey-listkind", "golf-shortname-1", "hotel-shortname-2"), - expectedNameConflictCondition: nameConflictCondition("ListKind", `"foxtrot-listkind" is already in use`), + expectedNameConflictCondition: nameConflictCondition("ListKindConflict", `"foxtrot-listkind" is already in use`), expectedEstablishedCondition: notEstablishedCondition, }, { @@ -231,7 +231,7 @@ func TestSync(t *testing.T) { newCRD("india.bravo.com").StatusNames("india", "indias", "foxtrot-listkind", "", "delta-singular", "golf-shortname-1").NewOrDie(), }, expectedNames: names("alfa", "yankee-singular", "echo-kind", "whiskey-listkind", "victor-shortname-1", "uniform-shortname-2"), - expectedNameConflictCondition: nameConflictCondition("ListKind", `"foxtrot-listkind" is already in use`), + expectedNameConflictCondition: nameConflictCondition("ListKindConflict", `"foxtrot-listkind" is already in use`), expectedEstablishedCondition: notEstablishedCondition, }, { @@ -295,7 +295,7 @@ func TestSync(t *testing.T) { newCRD("india.bravo.com").StatusNames("india", "alfa", "", "").NewOrDie(), }, expectedNames: names("", "delta-singular", "echo-kind", "foxtrot-listkind", "golf-shortname-1", "hotel-shortname-2"), - expectedNameConflictCondition: nameConflictCondition("Plural", `"alfa" is already in use`), + expectedNameConflictCondition: nameConflictCondition("PluralConflict", `"alfa" is already in use`), expectedEstablishedCondition: establishedCondition, }, { @@ -307,7 +307,7 @@ func TestSync(t *testing.T) { newCRD("india.bravo.com").StatusNames("india", "alfa", "", "").NewOrDie(), }, expectedNames: names("", "delta-singular", "echo-kind", "foxtrot-listkind", "golf-shortname-1", "hotel-shortname-2"), - expectedNameConflictCondition: nameConflictCondition("Plural", `"alfa" is already in use`), + expectedNameConflictCondition: nameConflictCondition("PluralConflict", `"alfa" is already in use`), expectedEstablishedCondition: notEstablishedCondition, }, }