mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 19:31:44 +00:00
Require at least one version in ThirdPartyResource objects
This commit is contained in:
parent
0f95b262dc
commit
7a5461a17c
@ -124,7 +124,6 @@ type ThirdPartyResource struct {
|
|||||||
Description string `json:"description,omitempty"`
|
Description string `json:"description,omitempty"`
|
||||||
|
|
||||||
// Versions are versions for this third party object
|
// Versions are versions for this third party object
|
||||||
// +optional
|
|
||||||
Versions []APIVersion `json:"versions,omitempty"`
|
Versions []APIVersion `json:"versions,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -143,7 +142,6 @@ type ThirdPartyResourceList struct {
|
|||||||
// TODO: we should consider merge this struct with GroupVersion in unversioned.go
|
// TODO: we should consider merge this struct with GroupVersion in unversioned.go
|
||||||
type APIVersion struct {
|
type APIVersion struct {
|
||||||
// Name of this version (e.g. 'v1').
|
// Name of this version (e.g. 'v1').
|
||||||
// +optional
|
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,6 +68,9 @@ func ValidateThirdPartyResource(obj *extensions.ThirdPartyResource) field.ErrorL
|
|||||||
allErrs = append(allErrs, apivalidation.ValidateObjectMeta(&obj.ObjectMeta, false, ValidateThirdPartyResourceName, field.NewPath("metadata"))...)
|
allErrs = append(allErrs, apivalidation.ValidateObjectMeta(&obj.ObjectMeta, false, ValidateThirdPartyResourceName, field.NewPath("metadata"))...)
|
||||||
|
|
||||||
versions := sets.String{}
|
versions := sets.String{}
|
||||||
|
if len(obj.Versions) == 0 {
|
||||||
|
allErrs = append(allErrs, field.Required(field.NewPath("versions"), "must specify at least one version"))
|
||||||
|
}
|
||||||
for ix := range obj.Versions {
|
for ix := range obj.Versions {
|
||||||
version := &obj.Versions[ix]
|
version := &obj.Versions[ix]
|
||||||
if len(version.Name) == 0 {
|
if len(version.Name) == 0 {
|
||||||
|
@ -3245,6 +3245,7 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Required: []string{"name"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Dependencies: []string{},
|
Dependencies: []string{},
|
||||||
@ -4899,6 +4900,7 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Required: []string{"versions"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Dependencies: []string{
|
Dependencies: []string{
|
||||||
|
3
pkg/master/thirdparty/thirdparty.go
vendored
3
pkg/master/thirdparty/thirdparty.go
vendored
@ -246,6 +246,9 @@ func (m *ThirdPartyResourceServer) InstallThirdPartyResource(rsrc *extensions.Th
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if len(rsrc.Versions) == 0 {
|
||||||
|
return fmt.Errorf("ThirdPartyResource %s has no defined versions", rsrc.Name)
|
||||||
|
}
|
||||||
plural, _ := meta.KindToResource(unversioned.GroupVersionKind{
|
plural, _ := meta.KindToResource(unversioned.GroupVersionKind{
|
||||||
Group: group,
|
Group: group,
|
||||||
Version: rsrc.Versions[0].Name,
|
Version: rsrc.Versions[0].Name,
|
||||||
|
Loading…
Reference in New Issue
Block a user