Documentation
¶
Index ¶
- Constants
- type ApplyUpgradeOptions
- type Client
- type ClusterClientFactory
- type Components
- type ConfigMapSourceOptions
- type DeleteOptions
- type GetClusterTemplateOptions
- type InitOptions
- type MoveOptions
- type Option
- type PlanUpgradeOptions
- type Provider
- type ProviderRepositorySourceOptions
- type RepositoryClientFactory
- type Template
- type URLSourceOptions
- type UpgradePlan
Constants ¶
const DefaultCustomTemplateConfigMapKey = "template"
DefaultCustomTemplateConfigMapKey where the workload cluster template is hosted.
const NoopProvider = "-"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ApplyUpgradeOptions ¶
type ApplyUpgradeOptions struct {
// Kubeconfig file to use for accessing the management cluster. If empty, default discovery rules apply.
Kubeconfig string
// ManagementGroup that should be upgraded.
ManagementGroup string
// Contract defines the API Version of Cluster API (contract) the management group should upgrade to.
Contract string
}
ApplyUpgradeOptions carries the options supported by upgrade apply.
type Client ¶
type Client interface {
// GetProvidersConfig returns the list of providers configured for this instance of clusterctl.
GetProvidersConfig() ([]Provider, error)
// GetProviderComponents returns the provider components for a given provider, targetNamespace, watchingNamespace.
GetProviderComponents(provider string, providerType clusterctlv1.ProviderType, targetNameSpace, watchingNamespace string) (Components, error)
// Init initializes a management cluster by adding the requested list of providers.
Init(options InitOptions) ([]Components, error)
// InitImages returns the list of images required for executing the init command.
InitImages(options InitOptions) ([]string, error)
// GetClusterTemplate returns a workload cluster template.
GetClusterTemplate(options GetClusterTemplateOptions) (Template, error)
// Delete deletes providers from a management cluster.
Delete(options DeleteOptions) error
// Move moves all the Cluster API objects existing in a namespace (or from all the namespaces if empty) to a target management cluster.
Move(options MoveOptions) error
// PlanUpgrade returns a set of suggested Upgrade plans for the cluster, and more specifically:
// - Each management group gets separated upgrade plans.
// - For each management group, an upgrade plan is generated for each API Version of Cluster API (contract) available, e.g.
// - Upgrade to the latest version in the the v1alpha2 series: ....
// - Upgrade to the latest version in the the v1alpha3 series: ....
PlanUpgrade(options PlanUpgradeOptions) ([]UpgradePlan, error)
// ApplyUpgrade executes an upgrade plan.
ApplyUpgrade(options ApplyUpgradeOptions) error
}
Client is exposes the clusterctl high-level client library.
type Components ¶
type Components repository.Components
Components wraps a YAML file that defines the provider's components (CRDs, controller, RBAC rules etc.).
type ConfigMapSourceOptions ¶
type ConfigMapSourceOptions struct {
// Namespace where the ConfigMap exists. If unspecified, the current namespace will be used.
Namespace string
// Name to read the workload cluster template from.
Name string
// DataKey where the workload cluster template is hosted. If unspecified, the
// DefaultCustomTemplateConfigMapKey will be used.
DataKey string
}
ConfigMapSourceOptions defines the options to be used when reading a workload cluster template from a ConfigMap.
type DeleteOptions ¶
type DeleteOptions struct {
// Kubeconfig file to use for accessing the management cluster. If empty, default discovery rules apply.
Kubeconfig string
// Namespace where the provider to be deleted lives. If unspecified, the namespace name will be inferred
// from the current configuration.
Namespace string
// CoreProvider version (e.g. cluster-api:v0.3.0) to add to the management cluster. If unspecified, the
// cluster-api core provider's latest release is used.
CoreProvider string
// BootstrapProviders and versions (e.g. kubeadm:v0.3.0) to add to the management cluster.
// If unspecified, the kubeadm bootstrap provider's latest release is used.
BootstrapProviders []string
// InfrastructureProviders and versions (e.g. aws:v0.5.0) to add to the management cluster.
InfrastructureProviders []string
// ControlPlaneProviders and versions (e.g. kubeadm:v0.3.0) to add to the management cluster.
// If unspecified, the kubeadm control plane provider latest release is used.
ControlPlaneProviders []string
// DeleteAll set for deletion of all the providers.
DeleteAll bool
// IncludeNamespace forces the deletion of the namespace where the providers are hosted
// (and of all the contained objects).
IncludeNamespace bool
// IncludeCRDs forces the deletion of the provider's CRDs (and of all the related objects).
// By Extension, this forces the deletion of all the resources shared among provider instances, like e.g. web-hooks.
IncludeCRDs bool
}
DeleteOptions carries the options supported by Delete.
type GetClusterTemplateOptions ¶
type GetClusterTemplateOptions struct {
// Kubeconfig file to use for accessing the management cluster. If empty, default discovery rules apply.
Kubeconfig string
// ProviderRepositorySource to be used for reading the workload cluster template from a provider repository;
// only one template source can be used at time; if not other source will be set, a ProviderRepositorySource
// will be generated inferring values from the cluster.
ProviderRepositorySource *ProviderRepositorySourceOptions
// URLSource to be used for reading the workload cluster template; only one template source can be used at time.
URLSource *URLSourceOptions
// ConfigMapSource to be used for reading the workload cluster template; only one template source can be used at time.
ConfigMapSource *ConfigMapSourceOptions
// TargetNamespace where the objects describing the workload cluster should be deployed. If unspecified,
// the current namespace will be used.
TargetNamespace string
// ClusterName to be used for the workload cluster.
ClusterName string
// KubernetesVersion to use for the workload cluster. If unspecified, the value from os env variables
// or the .cluster-api/clusterctl.yaml config file will be used.
KubernetesVersion string
// ControlPlaneMachineCount defines the number of control plane machines to be added to the workload cluster.
ControlPlaneMachineCount int
// WorkerMachineCount defines number of worker machines to be added to the workload cluster.
WorkerMachineCount int
// listVariablesOnly sets the GetClusterTemplate method to return the list of variables expected by the template
// without executing any further processing.
ListVariablesOnly bool
}
GetClusterTemplateOptions carries the options supported by GetClusterTemplate.
type InitOptions ¶
type InitOptions struct {
// Kubeconfig file to use for accessing the management cluster. If empty, default discovery rules apply.
Kubeconfig string
// CoreProvider version (e.g. cluster-api:v0.3.0) to add to the management cluster. If unspecified, the
// cluster-api core provider's latest release is used.
CoreProvider string
// BootstrapProviders and versions (e.g. kubeadm:v0.3.0) to add to the management cluster.
// If unspecified, the kubeadm bootstrap provider's latest release is used.
BootstrapProviders []string
// InfrastructureProviders and versions (e.g. aws:v0.5.0) to add to the management cluster.
InfrastructureProviders []string
// ControlPlaneProviders and versions (e.g. kubeadm:v0.3.0) to add to the management cluster.
// If unspecified, the kubeadm control plane provider latest release is used.
ControlPlaneProviders []string
// TargetNamespace defines the namespace where the providers should be deployed. If unspecified, each provider
// will be installed in a provider's default namespace.
TargetNamespace string
// WatchingNamespace defines the namespace the providers should watch to reconcile Cluster API objects.
// If unspecified, the providers watches for Cluster API objects across all namespaces.
WatchingNamespace string
// LogUsageInstructions instructs the init command to print the usage instructions in case of first run.
LogUsageInstructions bool
}
InitOptions carries the options supported by Init.
type MoveOptions ¶
type MoveOptions struct {
// FromKubeconfig defines the kubeconfig file to use for accessing the source management cluster. If empty,
// default rules for kubeconfig discovery will be used.
FromKubeconfig string
// ToKubeconfig defines the path to the kubeconfig file to use for accessing the target management cluster.
ToKubeconfig string
// Namespace where the objects describing the workload cluster exists. If unspecified, the current
// namespace will be used.
Namespace string
}
MoveOptions carries the options supported by move.
type Option ¶
type Option func(*clusterctlClient)
Option is a configuration option supplied to New
func InjectClusterClientFactory ¶
func InjectClusterClientFactory(factory ClusterClientFactory) Option
InjectClusterClientFactory allows to override the default factory used for creating ClusterClient objects.
func InjectConfig ¶
InjectConfig allows to override the default configuration client used by clusterctl.
func InjectRepositoryFactory ¶
func InjectRepositoryFactory(factory RepositoryClientFactory) Option
InjectRepositoryFactory allows to override the default factory used for creating RepositoryClient objects.
type PlanUpgradeOptions ¶
type PlanUpgradeOptions struct {
// Kubeconfig file to use for accessing the management cluster. If empty, default discovery rules apply.
Kubeconfig string
}
PlanUpgradeOptions carries the options supported by upgrade plan.
type ProviderRepositorySourceOptions ¶
type ProviderRepositorySourceOptions struct {
// InfrastructureProvider to read the workload cluster template from. If unspecified, the default
// infrastructure provider will be used if no other sources are specified.
InfrastructureProvider string
// Flavor defines The workload cluster template variant to be used when reading from the infrastructure
// provider repository. If unspecified, the default cluster template will be used.
Flavor string
}
ProviderRepositorySourceOptions defines the options to be used when reading a workload cluster template from a provider repository.
type RepositoryClientFactory ¶
type RepositoryClientFactory func(config.Provider) (repository.Client, error)
type Template ¶
type Template repository.Template
Template wraps a YAML file that defines the cluster objects (Cluster, Machines etc.).
type URLSourceOptions ¶
type URLSourceOptions struct {
// URL to read the workload cluster template from.
URL string
}
URLSourceOptions defines the options to be used when reading a workload cluster template from an URL.
type UpgradePlan ¶
type UpgradePlan cluster.UpgradePlan
Template wraps a YAML file that defines the cluster objects (Cluster, Machines etc.).