Documentation ¶
Overview ¶
Package v1alpha3 contains API Schema definitions for the clusterctl v1alpha3 API group +kubebuilder:object:generate=true +groupName=clusterctl.cluster.x-k8s.io
Index ¶
- Constants
- Variables
- func ManifestLabel(name string, providerType ProviderType) string
- type Metadata
- func (in *Metadata) DeepCopy() *Metadata
- func (in *Metadata) DeepCopyInto(out *Metadata)
- func (in *Metadata) DeepCopyObject() runtime.Object
- func (m *Metadata) GetReleaseSeriesForContract(contract string) *ReleaseSeries
- func (m *Metadata) GetReleaseSeriesForVersion(version *version.Version) *ReleaseSeries
- type Provider
- func (in *Provider) DeepCopy() *Provider
- func (in *Provider) DeepCopyInto(out *Provider)
- func (in *Provider) DeepCopyObject() runtime.Object
- func (p *Provider) Equals(other Provider) bool
- func (p *Provider) GetProviderType() ProviderType
- func (p *Provider) InstanceName() string
- func (p *Provider) ManifestLabel() string
- func (p *Provider) SameAs(other Provider) bool
- type ProviderList
- func (in *ProviderList) DeepCopy() *ProviderList
- func (in *ProviderList) DeepCopyInto(out *ProviderList)
- func (in *ProviderList) DeepCopyObject() runtime.Object
- func (l *ProviderList) FilterByNamespace(namespace string) []Provider
- func (l *ProviderList) FilterByProviderNameAndType(provider string, providerType ProviderType) []Provider
- func (l *ProviderList) FilterByProviderNameNamespaceTypeVersion(provider, namespace string, providerType ProviderType, version string) []Provider
- func (l *ProviderList) FilterByType(providerType ProviderType) []Provider
- func (l *ProviderList) FilterCore() []Provider
- func (l *ProviderList) FilterNonCore() []Provider
- type ProviderType
- type ReleaseSeries
Constants ¶
const ( // CertManagerVersionAnnotation reports the cert manager version installed by clusterctl. CertManagerVersionAnnotation = "cert-manager.clusterctl.cluster.x-k8s.io/version" // SkipCRDNamePreflightCheckAnnotation can be placed on provider CRDs, so that clusterctl doesn't emit a // warning if the CRD doesn't comply with Cluster APIs naming scheme. // Note: Only CRDs that are referenced by core Cluster API CRDs have to comply with the naming scheme. // See the following issue for more information: https://github.com/kubernetes-sigs/cluster-api/issues/5686#issuecomment-1260897278 SkipCRDNamePreflightCheckAnnotation = "clusterctl.cluster.x-k8s.io/skip-crd-name-preflight-check" )
const ( // ClusterctlLabelName is applied to all components managed by clusterctl. ClusterctlLabelName = "clusterctl.cluster.x-k8s.io" // ClusterctlCoreLabelName is applied to all the core objects managed by clusterctl. ClusterctlCoreLabelName = "clusterctl.cluster.x-k8s.io/core" // ClusterctlCoreLabelInventoryValue define the value for ClusterctlCoreLabelName to be used for inventory objects. ClusterctlCoreLabelInventoryValue = "inventory" // ClusterctlCoreLabelCertManagerValue define the value for ClusterctlCoreLabelName to be used for cert-manager objects. ClusterctlCoreLabelCertManagerValue = "cert-manager" // ClusterctlMoveLabelName can be set on CRDs that providers wish to move but that are not part of a Cluster. ClusterctlMoveLabelName = "clusterctl.cluster.x-k8s.io/move" // ClusterctlMoveHierarchyLabelName can be set on CRDs that providers wish to move with their entire hierarchy, but that are not part of a Cluster. ClusterctlMoveHierarchyLabelName = "clusterctl.cluster.x-k8s.io/move-hierarchy" )
const ( // CoreProviderType is a type reserved for Cluster API core repository. CoreProviderType = ProviderType("CoreProvider") // BootstrapProviderType is the type associated with codebases that provide // bootstrapping capabilities. BootstrapProviderType = ProviderType("BootstrapProvider") // InfrastructureProviderType is the type associated with codebases that provide // infrastructure capabilities. InfrastructureProviderType = ProviderType("InfrastructureProvider") // ControlPlaneProviderType is the type associated with codebases that provide // control-plane capabilities. ControlPlaneProviderType = ProviderType("ControlPlaneProvider") // IPAMProviderType is the type associated with codebases that provide // IPAM capabilities. IPAMProviderType = ProviderType("IPAMProvider") // RuntimeExtensionProviderType is the type associated with codebases that provide // runtime extensions. RuntimeExtensionProviderType = ProviderType("RuntimeExtensionProvider") // ProviderTypeUnknown is used when the type is unknown. ProviderTypeUnknown = ProviderType("") )
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "clusterctl.cluster.x-k8s.io", Version: "v1alpha3"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme. SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func ManifestLabel ¶
func ManifestLabel(name string, providerType ProviderType) string
ManifestLabel returns the cluster.x-k8s.io/provider label value for a provider/type.
Note: the label uniquely describes the provider type and its kind (e.g. bootstrap-kubeadm); it's not meant to be used to describe each instance of a particular provider.
Types ¶
type Metadata ¶
type Metadata struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +optional ReleaseSeries []ReleaseSeries `json:"releaseSeries"` }
Metadata for a provider repository.
func (*Metadata) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metadata.
func (*Metadata) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Metadata) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Metadata) GetReleaseSeriesForContract ¶ added in v0.3.20
func (m *Metadata) GetReleaseSeriesForContract(contract string) *ReleaseSeries
GetReleaseSeriesForContract returns the release series for a given API Version, e.g. `v1alpha4`. If more than one release series use the same contract then the latest newer release series is returned.
func (*Metadata) GetReleaseSeriesForVersion ¶
func (m *Metadata) GetReleaseSeriesForVersion(version *version.Version) *ReleaseSeries
GetReleaseSeriesForVersion returns the release series for a given version.
type Provider ¶
type Provider struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // ProviderName indicates the name of the provider. // +optional ProviderName string `json:"providerName,omitempty"` // Type indicates the type of the provider. // See ProviderType for a list of supported values // +optional Type string `json:"type,omitempty"` // Version indicates the component version. // +optional Version string `json:"version,omitempty"` // WatchedNamespace indicates the namespace where the provider controller is watching. // If empty the provider controller is watching for objects in all namespaces. // // Deprecated: in clusterctl v1alpha4 all the providers watch all the namespaces; this field will be removed in a future version of this API // +optional WatchedNamespace string `json:"watchedNamespace,omitempty"` }
Provider defines an entry in the provider inventory.
func (*Provider) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Provider.
func (*Provider) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Provider) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Provider) Equals ¶
Equals returns true if two providers are identical (same name, provider name, type, version etc.).
func (*Provider) GetProviderType ¶
func (p *Provider) GetProviderType() ProviderType
GetProviderType parse the Provider.Type string field and return the typed representation.
func (*Provider) InstanceName ¶
InstanceName return the a name that uniquely identifies an entry in the provider inventory. The instanceName is composed by the ManifestLabel and by the namespace where the provider is installed; the resulting value uniquely identify a provider instance because clusterctl does not support multiple instances of the same provider to be installed in the same namespace.
func (*Provider) ManifestLabel ¶
ManifestLabel returns the cluster.x-k8s.io/provider label value for an entry in the provider inventory. Please note that this label uniquely identifies the provider, e.g. bootstrap-kubeadm, but not the instances of the provider, e.g. namespace-1/bootstrap-kubeadm and namespace-2/bootstrap-kubeadm.
type ProviderList ¶
type ProviderList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Provider `json:"items"` }
ProviderList contains a list of Provider.
func (*ProviderList) DeepCopy ¶
func (in *ProviderList) DeepCopy() *ProviderList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderList.
func (*ProviderList) DeepCopyInto ¶
func (in *ProviderList) DeepCopyInto(out *ProviderList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProviderList) DeepCopyObject ¶
func (in *ProviderList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ProviderList) FilterByNamespace ¶
func (l *ProviderList) FilterByNamespace(namespace string) []Provider
FilterByNamespace returns a new list of providers that reside in the namespace provided.
func (*ProviderList) FilterByProviderNameAndType ¶
func (l *ProviderList) FilterByProviderNameAndType(provider string, providerType ProviderType) []Provider
FilterByProviderNameAndType returns a new list of provider that match the name and type.
func (*ProviderList) FilterByProviderNameNamespaceTypeVersion ¶ added in v1.2.0
func (l *ProviderList) FilterByProviderNameNamespaceTypeVersion(provider, namespace string, providerType ProviderType, version string) []Provider
FilterByProviderNameNamespaceTypeVersion returns a new list of provider that match the name, namespace, type and version.
func (*ProviderList) FilterByType ¶
func (l *ProviderList) FilterByType(providerType ProviderType) []Provider
FilterByType returns a new list of providers that match the given type.
func (*ProviderList) FilterCore ¶
func (l *ProviderList) FilterCore() []Provider
FilterCore returns a new list of providers that are in the core.
func (*ProviderList) FilterNonCore ¶
func (l *ProviderList) FilterNonCore() []Provider
FilterNonCore returns a new list of providers that are not in the core.
type ProviderType ¶
type ProviderType string
ProviderType is a string representation of a Provider type.
func (ProviderType) Order ¶
func (p ProviderType) Order() int
Order return an integer that can be used to sort ProviderType values.
type ReleaseSeries ¶
type ReleaseSeries struct { // Major version of the release series Major uint `json:"major,omitempty"` // Minor version of the release series Minor uint `json:"minor,omitempty"` // Contract defines the Cluster API contract supported by this series. // // The value is an API Version, e.g. `v1alpha3`. Contract string `json:"contract,omitempty"` }
ReleaseSeries maps a provider release series (major/minor) with a API Version of Cluster API (contract).
func (*ReleaseSeries) DeepCopy ¶
func (in *ReleaseSeries) DeepCopy() *ReleaseSeries
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReleaseSeries.
func (*ReleaseSeries) DeepCopyInto ¶
func (in *ReleaseSeries) DeepCopyInto(out *ReleaseSeries)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.