CRD versioning - types change
This commit is contained in:
		@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user