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) HasWatchingOverlapWith(other Provider) bool
- 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) FilterByType(providerType ProviderType) []Provider
- func (l *ProviderList) FilterCore() []Provider
- func (l *ProviderList) FilterNonCore() []Provider
- type ProviderType
- type ReleaseSeries
- type ResourceLifecycle
Constants ¶
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" // ClusterctlResourceLifecyleLabelName describes the lifecyle for a specific resource. // // Example: resources shared between instances of the same provider: CRDs, // ValidatingWebhookConfiguration, MutatingWebhookConfiguration, and so on. ClusterctlResourceLifecyleLabelName = "clusterctl.cluster.x-k8s.io/lifecycle" // ClusterctlMoveLabelName can be set on CRDs that providers wish to move that are not part of a cluster ClusterctlMoveLabelName = "clusterctl.cluster.x-k8s.io/move" )
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") // ProviderTypeUnknown is used when the type is unknown. ProviderTypeUnknown = ProviderType("") )
const ( // multiple instances of a provider. ResourceLifecycleShared = ResourceLifecycle("shared") )
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 is watching. // if empty the provider controller is watching for objects in all namespaces. // +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) HasWatchingOverlapWith ¶
HasWatchingOverlapWith returns true if the provider has an overlapping watching namespace with another provider.
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
func (*ProviderList) FilterByProviderNameAndType ¶
func (l *ProviderList) FilterByProviderNameAndType(provider string, providerType ProviderType) []Provider
func (*ProviderList) FilterByType ¶
func (l *ProviderList) FilterByType(providerType ProviderType) []Provider
func (*ProviderList) FilterCore ¶
func (l *ProviderList) FilterCore() []Provider
func (*ProviderList) FilterNonCore ¶
func (l *ProviderList) FilterNonCore() []Provider
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.
type ResourceLifecycle ¶
type ResourceLifecycle string
ResourceLifecycle configures the lifecycle of a resource