v1alpha3

package
v0.3.0-rc.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 20, 2020 License: Apache-2.0 Imports: 7 Imported by: 45

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

View Source
const (
	// ClusterctlLabelName defines the label that is applied to all the components managed by clusterctl.
	ClusterctlLabelName = "clusterctl.cluster.x-k8s.io"

	// ClusterctlCoreLabelName defines the label that is applied to all the core objects managed by clusterctl.
	ClusterctlCoreLabelName = "clusterctl.cluster.x-k8s.io/core"

	// ClusterctlResourceLifecyleLabelName defines the label that documents the lifecyle for a specific resource.
	// e.g. resources shared between instances of the same provider. e.g. CRDs, ValidatingWebhookConfiguration, MutatingWebhookConfiguration etc.
	// are marked as shared
	ClusterctlResourceLifecyleLabelName = "clusterctl.cluster.x-k8s.io/lifecycle"
)
View Source
const (
	// CoreProviderType
	CoreProviderType = ProviderType("CoreProvider")

	// BootstrapProviderType
	BootstrapProviderType = ProviderType("BootstrapProvider")

	// InfrastructureProviderType
	InfrastructureProviderType = ProviderType("InfrastructureProvider")

	// ControlPlaneProviderType
	ControlPlaneProviderType = ProviderType("ControlPlaneProvider")

	// ProviderTypeUnknown
	ProviderTypeUnknown = ProviderType("")
)
View Source
const (
	// ResourceLifecycleShared is the value we use when tagging resources to indicate
	// that the resource is shared between multiple instance of a provider, and should not be deleted
	// if an instance of the provider is deleted.
	ResourceLifecycleShared = ResourceLifecycle("shared")
)

Variables

View Source
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. 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.

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

func (in *Metadata) DeepCopy() *Metadata

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metadata.

func (*Metadata) DeepCopyInto

func (in *Metadata) DeepCopyInto(out *Metadata)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Metadata) DeepCopyObject

func (in *Metadata) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Metadata) GetReleaseSeriesForVersion

func (m *Metadata) GetReleaseSeriesForVersion(version *version.Version) *ReleaseSeries

GetReleaseSeriesForVersion return the release series for a given version.

type Provider

type Provider struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Provider indicates the name of the provider.
	// +optional
	Provider string `json:"provider,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

func (in *Provider) DeepCopy() *Provider

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Provider.

func (*Provider) DeepCopyInto

func (in *Provider) DeepCopyInto(out *Provider)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Provider) DeepCopyObject

func (in *Provider) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Provider) Equals

func (p *Provider) Equals(other Provider) bool

Equals returns true if two providers are identical (same 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

func (p *Provider) HasWatchingOverlapWith(other Provider) bool

HasWatchingOverlapWith returns true if the provider has an overlapping watching namespace with another provider.

func (*Provider) InstanceName

func (p *Provider) InstanceName() string

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

func (p *Provider) ManifestLabel() string

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

func (*Provider) SameAs

func (p *Provider) SameAs(other Provider) bool

SameAs returns true if two providers have the same Provider and type. Please note that there could be many instances of the same provider.

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) FilterByProviderAndType

func (l *ProviderList) FilterByProviderAndType(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 API Version of Cluster API (contract) supported by the ReleaseSeries.
	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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL