CRD versioning - types change
This commit is contained in:
parent
10b8665a1c
commit
10c48ae510
@ -25,6 +25,9 @@ type CustomResourceDefinitionSpec struct {
|
|||||||
// Group is the group this resource belongs in
|
// Group is the group this resource belongs in
|
||||||
Group string
|
Group string
|
||||||
// Version is the version this resource belongs in
|
// Version is the version this resource belongs in
|
||||||
|
// Should be always first item in Versions field if provided.
|
||||||
|
// Optional, but at least one of Version or Versions must be set.
|
||||||
|
// Deprecated: Please use `Versions`.
|
||||||
Version string
|
Version string
|
||||||
// Names are the names used to describe this custom resource
|
// Names are the names used to describe this custom resource
|
||||||
Names CustomResourceDefinitionNames
|
Names CustomResourceDefinitionNames
|
||||||
@ -34,6 +37,27 @@ type CustomResourceDefinitionSpec struct {
|
|||||||
Validation *CustomResourceValidation
|
Validation *CustomResourceValidation
|
||||||
// Subresources describes the subresources for CustomResources
|
// Subresources describes the subresources for CustomResources
|
||||||
Subresources *CustomResourceSubresources
|
Subresources *CustomResourceSubresources
|
||||||
|
// Versions is the list of all supported versions for this resource.
|
||||||
|
// If Version field is provided, this field is optional.
|
||||||
|
// Validation: All versions must use the same validation schema for now. i.e., top
|
||||||
|
// level Validation field is applied to all of these versions.
|
||||||
|
// Order: The version name will be used to compute the order.
|
||||||
|
// If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
|
||||||
|
// lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
|
||||||
|
// then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
|
||||||
|
// by GA > beta > alpha, and then by comparing major version, then minor version. An example sorted list of
|
||||||
|
// versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
|
||||||
|
Versions []CustomResourceDefinitionVersion
|
||||||
|
}
|
||||||
|
|
||||||
|
type CustomResourceDefinitionVersion struct {
|
||||||
|
// Name is the version name, e.g. “v1”, “v2beta1”, etc.
|
||||||
|
Name string
|
||||||
|
// Served is a flag enabling/disabling this version from being served via REST APIs
|
||||||
|
Served bool
|
||||||
|
// Storage flags the version as storage version. There must be exactly one flagged
|
||||||
|
// as storage version.
|
||||||
|
Storage bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition
|
// CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition
|
||||||
@ -115,6 +139,14 @@ type CustomResourceDefinitionStatus struct {
|
|||||||
// AcceptedNames are the names that are actually being used to serve discovery
|
// AcceptedNames are the names that are actually being used to serve discovery
|
||||||
// They may be different than the names in spec.
|
// They may be different than the names in spec.
|
||||||
AcceptedNames CustomResourceDefinitionNames
|
AcceptedNames CustomResourceDefinitionNames
|
||||||
|
|
||||||
|
// StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
|
||||||
|
// versions allows a migration path for stored versions in etcd. The field is mutable
|
||||||
|
// so the migration controller can first finish a migration to another version (i.e.
|
||||||
|
// that no old objects are left in the storage), and then remove the rest of the
|
||||||
|
// versions from this list.
|
||||||
|
// None of the versions in this list can be removed from the spec.Versions field.
|
||||||
|
StoredVersions []string
|
||||||
}
|
}
|
||||||
|
|
||||||
// CustomResourceCleanupFinalizer is the name of the finalizer which will delete instances of
|
// CustomResourceCleanupFinalizer is the name of the finalizer which will delete instances of
|
||||||
|
@ -25,7 +25,11 @@ type CustomResourceDefinitionSpec struct {
|
|||||||
// Group is the group this resource belongs in
|
// Group is the group this resource belongs in
|
||||||
Group string `json:"group" protobuf:"bytes,1,opt,name=group"`
|
Group string `json:"group" protobuf:"bytes,1,opt,name=group"`
|
||||||
// Version is the version this resource belongs in
|
// Version is the version this resource belongs in
|
||||||
Version string `json:"version" protobuf:"bytes,2,opt,name=version"`
|
// Should be always first item in Versions field if provided.
|
||||||
|
// Optional, but at least one of Version or Versions must be set.
|
||||||
|
// Deprecated: Please use `Versions`.
|
||||||
|
// +optional
|
||||||
|
Version string `json:"version,omitempty" protobuf:"bytes,2,opt,name=version"`
|
||||||
// Names are the names used to describe this custom resource
|
// Names are the names used to describe this custom resource
|
||||||
Names CustomResourceDefinitionNames `json:"names" protobuf:"bytes,3,opt,name=names"`
|
Names CustomResourceDefinitionNames `json:"names" protobuf:"bytes,3,opt,name=names"`
|
||||||
// Scope indicates whether this resource is cluster or namespace scoped. Default is namespaced
|
// Scope indicates whether this resource is cluster or namespace scoped. Default is namespaced
|
||||||
@ -36,6 +40,27 @@ type CustomResourceDefinitionSpec struct {
|
|||||||
// Subresources describes the subresources for CustomResources
|
// Subresources describes the subresources for CustomResources
|
||||||
// +optional
|
// +optional
|
||||||
Subresources *CustomResourceSubresources `json:"subresources,omitempty" protobuf:"bytes,6,opt,name=subresources"`
|
Subresources *CustomResourceSubresources `json:"subresources,omitempty" protobuf:"bytes,6,opt,name=subresources"`
|
||||||
|
// Versions is the list of all supported versions for this resource.
|
||||||
|
// If Version field is provided, this field is optional.
|
||||||
|
// Validation: All versions must use the same validation schema for now. i.e., top
|
||||||
|
// level Validation field is applied to all of these versions.
|
||||||
|
// Order: The version name will be used to compute the order.
|
||||||
|
// If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
|
||||||
|
// lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
|
||||||
|
// then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
|
||||||
|
// by GA > beta > alpha, and then by comparing major version, then minor version. An example sorted list of
|
||||||
|
// versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
|
||||||
|
Versions []CustomResourceDefinitionVersion `json:"versions,omitempty" protobuf:"bytes,7,rep,name=versions"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type CustomResourceDefinitionVersion struct {
|
||||||
|
// Name is the version name, e.g. “v1”, “v2beta1”, etc.
|
||||||
|
Name string `json:"name" protobuf:"bytes,1,opt,name=name"`
|
||||||
|
// Served is a flag enabling/disabling this version from being served via REST APIs
|
||||||
|
Served bool `json:"served" protobuf:"varint,2,opt,name=served"`
|
||||||
|
// Storage flags the version as storage version. There must be exactly one
|
||||||
|
// flagged as storage version.
|
||||||
|
Storage bool `json:"storage" protobuf:"varint,3,opt,name=storage"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition
|
// CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition
|
||||||
@ -117,6 +142,14 @@ type CustomResourceDefinitionStatus struct {
|
|||||||
// AcceptedNames are the names that are actually being used to serve discovery
|
// AcceptedNames are the names that are actually being used to serve discovery
|
||||||
// They may be different than the names in spec.
|
// They may be different than the names in spec.
|
||||||
AcceptedNames CustomResourceDefinitionNames `json:"acceptedNames" protobuf:"bytes,2,opt,name=acceptedNames"`
|
AcceptedNames CustomResourceDefinitionNames `json:"acceptedNames" protobuf:"bytes,2,opt,name=acceptedNames"`
|
||||||
|
|
||||||
|
// StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
|
||||||
|
// versions allows a migration path for stored versions in etcd. The field is mutable
|
||||||
|
// so the migration controller can first finish a migration to another version (i.e.
|
||||||
|
// that no old objects are left in the storage), and then remove the rest of the
|
||||||
|
// versions from this list.
|
||||||
|
// None of the versions in this list can be removed from the spec.Versions field.
|
||||||
|
StoredVersions []string `json:"storedVersions" protobuf:"bytes,3,rep,name=storedVersions"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// CustomResourceCleanupFinalizer is the name of the finalizer which will delete instances of
|
// CustomResourceCleanupFinalizer is the name of the finalizer which will delete instances of
|
||||||
|
Loading…
Reference in New Issue
Block a user