mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 03:11:40 +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"`
|
||||
|
||||
// Versions are versions for this third party object
|
||||
// +optional
|
||||
Versions []APIVersion `json:"versions,omitempty"`
|
||||
}
|
||||
|
||||
@ -143,7 +142,6 @@ type ThirdPartyResourceList struct {
|
||||
// TODO: we should consider merge this struct with GroupVersion in unversioned.go
|
||||
type APIVersion struct {
|
||||
// Name of this version (e.g. 'v1').
|
||||
// +optional
|
||||
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"))...)
|
||||
|
||||
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 {
|
||||
version := &obj.Versions[ix]
|
||||
if len(version.Name) == 0 {
|
||||
|
@ -3245,6 +3245,7 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"name"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{},
|
||||
@ -4899,6 +4900,7 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"versions"},
|
||||
},
|
||||
},
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
if len(rsrc.Versions) == 0 {
|
||||
return fmt.Errorf("ThirdPartyResource %s has no defined versions", rsrc.Name)
|
||||
}
|
||||
plural, _ := meta.KindToResource(unversioned.GroupVersionKind{
|
||||
Group: group,
|
||||
Version: rsrc.Versions[0].Name,
|
||||
|
Loading…
Reference in New Issue
Block a user