Documentation ¶
Index ¶
- func GetMachineTemplate(ctx context.Context, client kubernetes.Client, name, namespace string) (*dockerv1.DockerMachineTemplate, error)
- func MachineTemplateEqual(new, old *dockerv1.DockerMachineTemplate) bool
- func NeedsNewControlPlaneTemplate(oldSpec, newSpec *cluster.Spec) bool
- func NeedsNewEtcdTemplate(oldSpec, newSpec *cluster.Spec) bool
- func NeedsNewKubeadmConfigTemplate(newWorkerNodeGroup *v1alpha1.WorkerNodeGroupConfiguration, ...) bool
- func NeedsNewWorkloadTemplate(oldSpec, newSpec *cluster.Spec, ...) bool
- func ValidateControlPlaneEndpoint(clusterSpec *cluster.Spec) error
- type ControlPlane
- type DockerTemplateBuilder
- func (d *DockerTemplateBuilder) CAPIWorkersSpecWithInitialNames(spec *cluster.Spec) (content []byte, err error)
- func (d *DockerTemplateBuilder) GenerateCAPISpecControlPlane(clusterSpec *cluster.Spec, buildOptions ...providers.BuildMapOption) (content []byte, err error)
- func (d *DockerTemplateBuilder) GenerateCAPISpecWorkers(clusterSpec *cluster.Spec, ...) (content []byte, err error)
- type KubeconfigReader
- type KubeconfigWriter
- type Provider
- func (p *Provider) BootstrapClusterOpts(_ *cluster.Spec) ([]bootstrapper.BootstrapClusterOption, error)
- func (p *Provider) ChangeDiff(currentComponents, newComponents *cluster.ManagementComponents) *types.ComponentChangeDiff
- func (p *Provider) DatacenterConfig(_ *cluster.Spec) providers.DatacenterConfig
- func (p *Provider) DatacenterResourceType() string
- func (p *Provider) DeleteResources(_ context.Context, _ *cluster.Spec) error
- func (p *Provider) EnvMap(_ *cluster.ManagementComponents, _ *cluster.Spec) (map[string]string, error)
- func (p *Provider) GenerateCAPISpecForCreate(ctx context.Context, _ *types.Cluster, clusterSpec *cluster.Spec) (controlPlaneSpec, workersSpec []byte, err error)
- func (p *Provider) GenerateCAPISpecForUpgrade(ctx context.Context, bootstrapCluster, workloadCluster *types.Cluster, ...) (controlPlaneSpec, workersSpec []byte, err error)
- func (p *Provider) GetDeployments() map[string][]string
- func (p *Provider) GetInfrastructureBundle(components *cluster.ManagementComponents) *types.InfrastructureBundle
- func (p *Provider) InstallCustomProviderComponents(ctx context.Context, kubeconfigFile string) error
- func (p *Provider) MachineConfigs(_ *cluster.Spec) []providers.MachineConfig
- func (p *Provider) MachineResourceType() string
- func (p *Provider) Name() string
- func (p *Provider) PostBootstrapDeleteForUpgrade(ctx context.Context, cluster *types.Cluster) error
- func (p *Provider) PostBootstrapSetup(ctx context.Context, clusterConfig *v1alpha1.Cluster, cluster *types.Cluster) error
- func (p *Provider) PostBootstrapSetupUpgrade(ctx context.Context, clusterConfig *v1alpha1.Cluster, cluster *types.Cluster) error
- func (p *Provider) PostClusterDeleteValidate(_ context.Context, _ *types.Cluster) error
- func (p *Provider) PostMoveManagementToBootstrap(_ context.Context, _ *types.Cluster) error
- func (p *Provider) PostWorkloadInit(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) error
- func (p *Provider) PreCAPIInstallOnBootstrap(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) error
- func (p *Provider) PreCoreComponentsUpgrade(ctx context.Context, cluster *types.Cluster, ...) error
- func (p *Provider) RunPostControlPlaneCreation(ctx context.Context, clusterSpec *cluster.Spec, cluster *types.Cluster) error
- func (p *Provider) RunPostControlPlaneUpgrade(ctx context.Context, oldClusterSpec *cluster.Spec, clusterSpec *cluster.Spec, ...) error
- func (p *Provider) SetupAndValidateCreateCluster(ctx context.Context, clusterSpec *cluster.Spec) error
- func (p *Provider) SetupAndValidateDeleteCluster(ctx context.Context, _ *types.Cluster, _ *cluster.Spec) error
- func (p *Provider) SetupAndValidateUpgradeCluster(ctx context.Context, _ *types.Cluster, _ *cluster.Spec, _ *cluster.Spec) error
- func (p *Provider) SetupAndValidateUpgradeManagementComponents(_ context.Context, _ *cluster.Spec) error
- func (p *Provider) UpdateKubeConfig(content *[]byte, clusterName string) error
- func (p *Provider) UpdateSecrets(ctx context.Context, cluster *types.Cluster, _ *cluster.Spec) error
- func (p *Provider) UpgradeNeeded(_ context.Context, _, _ *cluster.Spec, _ *types.Cluster) (bool, error)
- func (p *Provider) ValidateNewSpec(_ context.Context, _ *types.Cluster, _ *cluster.Spec) error
- func (p *Provider) Version(components *cluster.ManagementComponents) string
- type ProviderClient
- type ProviderKubectlClient
- type Workers
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetMachineTemplate ¶ added in v0.13.0
func GetMachineTemplate(ctx context.Context, client kubernetes.Client, name, namespace string) (*dockerv1.DockerMachineTemplate, error)
GetMachineTemplate gets a DockerMachineTemplate object using the provided client If the object doesn't exist, it returns a NotFound error.
func MachineTemplateEqual ¶ added in v0.13.0
func MachineTemplateEqual(new, old *dockerv1.DockerMachineTemplate) bool
MachineTemplateEqual returns a boolean indicating whether or not the provided DockerMachineTemplates are equal.
func NeedsNewControlPlaneTemplate ¶
NeedsNewControlPlaneTemplate determines if a new control plane template is needed.
func NeedsNewEtcdTemplate ¶
NeedsNewEtcdTemplate determines if a new etcd template is needed.
func NeedsNewKubeadmConfigTemplate ¶ added in v0.9.0
func NeedsNewKubeadmConfigTemplate(newWorkerNodeGroup *v1alpha1.WorkerNodeGroupConfiguration, oldWorkerNodeGroup *v1alpha1.WorkerNodeGroupConfiguration) bool
NeedsNewKubeadmConfigTemplate determines if a new kubeadm config template is needed.
func NeedsNewWorkloadTemplate ¶
func NeedsNewWorkloadTemplate(oldSpec, newSpec *cluster.Spec, oldWorker, newWorker v1alpha1.WorkerNodeGroupConfiguration) bool
NeedsNewWorkloadTemplate determines if a new workload template is needed.
func ValidateControlPlaneEndpoint ¶ added in v0.13.0
ValidateControlPlaneEndpoint - checks to see if endpoint host configuration is specified for docker cluster and returns an error if true.
Types ¶
type ControlPlane ¶ added in v0.13.0
type ControlPlane = clusterapi.ControlPlane[*dockerv1.DockerCluster, *dockerv1.DockerMachineTemplate]
ControlPlane represents a CAPI Docker control plane.
func ControlPlaneSpec ¶ added in v0.13.0
func ControlPlaneSpec(ctx context.Context, logger logr.Logger, client kubernetes.Client, spec *cluster.Spec) (*ControlPlane, error)
ControlPlaneSpec builds a docker ControlPlane definition based on an eks-a cluster spec.
type DockerTemplateBuilder ¶
type DockerTemplateBuilder struct {
// contains filtered or unexported fields
}
DockerTemplateBuilder builds the docker templates.
func NewDockerTemplateBuilder ¶
func NewDockerTemplateBuilder(now types.NowFunc) *DockerTemplateBuilder
NewDockerTemplateBuilder returns a docker template builder object.
func (*DockerTemplateBuilder) CAPIWorkersSpecWithInitialNames ¶ added in v0.13.0
func (d *DockerTemplateBuilder) CAPIWorkersSpecWithInitialNames(spec *cluster.Spec) (content []byte, err error)
CAPIWorkersSpecWithInitialNames generates a yaml spec with the CAPI objects representing the worker nodes for a particular eks-a cluster. It uses default initial names (ended in '-1') for the docker machine templates and kubeadm config templates.
func (*DockerTemplateBuilder) GenerateCAPISpecControlPlane ¶ added in v0.6.0
func (d *DockerTemplateBuilder) GenerateCAPISpecControlPlane(clusterSpec *cluster.Spec, buildOptions ...providers.BuildMapOption) (content []byte, err error)
GenerateCAPISpecControlPlane generates a yaml spec with the CAPI objects representing the control plane.
func (*DockerTemplateBuilder) GenerateCAPISpecWorkers ¶ added in v0.6.0
func (d *DockerTemplateBuilder) GenerateCAPISpecWorkers(clusterSpec *cluster.Spec, workloadTemplateNames, kubeadmconfigTemplateNames map[string]string) (content []byte, err error)
GenerateCAPISpecWorkers generates a yaml spec with the CAPI objects representing the worker nodes for a particular eks-a cluster.
type KubeconfigReader ¶ added in v0.19.0
type KubeconfigReader interface {
GetClusterKubeconfig(ctx context.Context, clusterName, kubeconfigPath string) ([]byte, error)
}
KubeconfigReader reads the kubeconfig secret from the cluster.
type KubeconfigWriter ¶ added in v0.19.0
type KubeconfigWriter struct {
// contains filtered or unexported fields
}
KubeconfigWriter reads the kubeconfig secret on a docker cluster and copies the contents to a writer.
func NewKubeconfigWriter ¶ added in v0.19.0
func NewKubeconfigWriter(docker ProviderClient, reader KubeconfigReader) KubeconfigWriter
NewKubeconfigWriter creates a KubeconfigWriter.
func (KubeconfigWriter) WriteKubeconfig ¶ added in v0.19.0
func (kr KubeconfigWriter) WriteKubeconfig(ctx context.Context, clusterName, kubeconfigPath string, w io.Writer) error
WriteKubeconfig retrieves the contents of the specified cluster's kubeconfig from a secret and copies it to an io.Writer.
func (KubeconfigWriter) WriteKubeconfigContent ¶ added in v0.19.0
func (kr KubeconfigWriter) WriteKubeconfigContent(ctx context.Context, clusterName string, content []byte, w io.Writer) error
WriteKubeconfigContent retrieves the contents of the specified cluster's kubeconfig from a secret and copies it to an io.Writer.
type Provider ¶ added in v0.19.0
type Provider struct {
// contains filtered or unexported fields
}
Provider implements providers.Provider for the docker cluster-api provider.
func NewProvider ¶
func NewProvider(providerConfig *v1alpha1.DockerDatacenterConfig, docker ProviderClient, providerKubectlClient ProviderKubectlClient, now types.NowFunc) *Provider
NewProvider returns a new Provider.
func (*Provider) BootstrapClusterOpts ¶ added in v0.19.0
func (p *Provider) BootstrapClusterOpts(_ *cluster.Spec) ([]bootstrapper.BootstrapClusterOption, error)
BootstrapClusterOpts returns a list of options to be used when creating the bootstrap cluster.
func (*Provider) ChangeDiff ¶ added in v0.19.0
func (p *Provider) ChangeDiff(currentComponents, newComponents *cluster.ManagementComponents) *types.ComponentChangeDiff
ChangeDiff returns the component change diff for the provider.
func (*Provider) DatacenterConfig ¶ added in v0.19.0
func (p *Provider) DatacenterConfig(_ *cluster.Spec) providers.DatacenterConfig
DatacenterConfig returns the datacenter config for the provider.
func (*Provider) DatacenterResourceType ¶ added in v0.19.0
DatacenterResourceType returns the resource type for the dockerdatacenterconfigs.
func (*Provider) DeleteResources ¶ added in v0.19.0
DeleteResources is a no-op. It implements providers.Provider.
func (*Provider) EnvMap ¶ added in v0.19.0
func (p *Provider) EnvMap(_ *cluster.ManagementComponents, _ *cluster.Spec) (map[string]string, error)
EnvMap returns a map of environment variables to be set when running the docker clusterctl command.
func (*Provider) GenerateCAPISpecForCreate ¶ added in v0.19.0
func (p *Provider) GenerateCAPISpecForCreate(ctx context.Context, _ *types.Cluster, clusterSpec *cluster.Spec) (controlPlaneSpec, workersSpec []byte, err error)
GenerateCAPISpecForCreate generates a yaml spec with the CAPI objects representing the control plane and worker nodes for a particular eks-a cluster.
func (*Provider) GenerateCAPISpecForUpgrade ¶ added in v0.19.0
func (p *Provider) GenerateCAPISpecForUpgrade(ctx context.Context, bootstrapCluster, workloadCluster *types.Cluster, currentSpec, newClusterSpec *cluster.Spec) (controlPlaneSpec, workersSpec []byte, err error)
GenerateCAPISpecForUpgrade generates a yaml spec with the CAPI objects representing the control plane and worker nodes for a particular eks-a cluster.
func (*Provider) GetDeployments ¶ added in v0.19.0
GetDeployments returns a map of namespaces to deployments that should be running for the provider.
func (*Provider) GetInfrastructureBundle ¶ added in v0.19.0
func (p *Provider) GetInfrastructureBundle(components *cluster.ManagementComponents) *types.InfrastructureBundle
GetInfrastructureBundle returns the infrastructure bundle for the provider.
func (*Provider) InstallCustomProviderComponents ¶ added in v0.19.0
func (p *Provider) InstallCustomProviderComponents(ctx context.Context, kubeconfigFile string) error
InstallCustomProviderComponents is a no-op. It implements providers.Provider.
func (*Provider) MachineConfigs ¶ added in v0.19.0
func (p *Provider) MachineConfigs(_ *cluster.Spec) []providers.MachineConfig
MachineConfigs is a no-op. It implements providers.Provider.
func (*Provider) MachineResourceType ¶ added in v0.19.0
MachineResourceType returns nothing because docker has no machines. It implements providers.Provider.
func (*Provider) PostBootstrapDeleteForUpgrade ¶ added in v0.19.0
PostBootstrapDeleteForUpgrade is a no-op. It implements providers.Provider.
func (*Provider) PostBootstrapSetup ¶ added in v0.19.0
func (p *Provider) PostBootstrapSetup(ctx context.Context, clusterConfig *v1alpha1.Cluster, cluster *types.Cluster) error
PostBootstrapSetup is a no-op. It implements providers.Provider.
func (*Provider) PostBootstrapSetupUpgrade ¶ added in v0.19.0
func (p *Provider) PostBootstrapSetupUpgrade(ctx context.Context, clusterConfig *v1alpha1.Cluster, cluster *types.Cluster) error
PostBootstrapSetupUpgrade is a no-op. It implements providers.Provider.
func (*Provider) PostClusterDeleteValidate ¶ added in v0.19.0
PostClusterDeleteValidate is a no-op. It implements providers.Provider.
func (*Provider) PostMoveManagementToBootstrap ¶ added in v0.19.0
PostMoveManagementToBootstrap is a no-op. It implements providers.Provider.
func (*Provider) PostWorkloadInit ¶ added in v0.19.0
func (p *Provider) PostWorkloadInit(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) error
PostWorkloadInit is a no-op. It implements providers.Provider.
func (*Provider) PreCAPIInstallOnBootstrap ¶ added in v0.19.0
func (p *Provider) PreCAPIInstallOnBootstrap(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) error
PreCAPIInstallOnBootstrap is a no-op. It implements providers.Provider.
func (*Provider) PreCoreComponentsUpgrade ¶ added in v0.19.0
func (p *Provider) PreCoreComponentsUpgrade( ctx context.Context, cluster *types.Cluster, managementComponents *cluster.ManagementComponents, clusterSpec *cluster.Spec, ) error
PreCoreComponentsUpgrade staisfies the Provider interface.
func (*Provider) RunPostControlPlaneCreation ¶ added in v0.19.0
func (p *Provider) RunPostControlPlaneCreation(ctx context.Context, clusterSpec *cluster.Spec, cluster *types.Cluster) error
RunPostControlPlaneCreation is a no-op. It implements providers.Provider.
func (*Provider) RunPostControlPlaneUpgrade ¶ added in v0.19.0
func (p *Provider) RunPostControlPlaneUpgrade(ctx context.Context, oldClusterSpec *cluster.Spec, clusterSpec *cluster.Spec, workloadCluster *types.Cluster, managementCluster *types.Cluster) error
RunPostControlPlaneUpgrade is a no-op. It implements providers.Provider.
func (*Provider) SetupAndValidateCreateCluster ¶ added in v0.19.0
func (p *Provider) SetupAndValidateCreateCluster(ctx context.Context, clusterSpec *cluster.Spec) error
SetupAndValidateCreateCluster validates the cluster spec and sets up any provider-specific resources.
func (*Provider) SetupAndValidateDeleteCluster ¶ added in v0.19.0
func (p *Provider) SetupAndValidateDeleteCluster(ctx context.Context, _ *types.Cluster, _ *cluster.Spec) error
SetupAndValidateDeleteCluster is a no-op. It implements providers.Provider.
func (*Provider) SetupAndValidateUpgradeCluster ¶ added in v0.19.0
func (p *Provider) SetupAndValidateUpgradeCluster(ctx context.Context, _ *types.Cluster, _ *cluster.Spec, _ *cluster.Spec) error
SetupAndValidateUpgradeCluster is a no-op. It implements providers.Provider.
func (*Provider) SetupAndValidateUpgradeManagementComponents ¶ added in v0.19.0
func (p *Provider) SetupAndValidateUpgradeManagementComponents(_ context.Context, _ *cluster.Spec) error
SetupAndValidateUpgradeManagementComponents performs necessary setup for upgrade management components operation.
func (*Provider) UpdateKubeConfig ¶ added in v0.19.0
UpdateKubeConfig updates the kubeconfig secret on a docker cluster.
func (*Provider) UpdateSecrets ¶ added in v0.19.0
func (p *Provider) UpdateSecrets(ctx context.Context, cluster *types.Cluster, _ *cluster.Spec) error
UpdateSecrets is a no-op. It implements providers.Provider.
func (*Provider) UpgradeNeeded ¶ added in v0.19.0
func (p *Provider) UpgradeNeeded(_ context.Context, _, _ *cluster.Spec, _ *types.Cluster) (bool, error)
UpgradeNeeded is a no-op. It implements providers.Provider.
func (*Provider) ValidateNewSpec ¶ added in v0.19.0
ValidateNewSpec is a no-op. It implements providers.Provider.
type ProviderClient ¶
type ProviderKubectlClient ¶
type ProviderKubectlClient interface { GetEksaCluster(ctx context.Context, cluster *types.Cluster, clusterName string) (*v1alpha1.Cluster, error) GetMachineDeployment(ctx context.Context, machineDeploymentName string, opts ...executables.KubectlOpt) (*clusterv1.MachineDeployment, error) GetKubeadmControlPlane(ctx context.Context, cluster *types.Cluster, clusterName string, opts ...executables.KubectlOpt) (*controlplanev1.KubeadmControlPlane, error) GetEtcdadmCluster(ctx context.Context, cluster *types.Cluster, clusterName string, opts ...executables.KubectlOpt) (*etcdv1.EtcdadmCluster, error) UpdateAnnotation(ctx context.Context, resourceType, objectName string, annotations map[string]string, opts ...executables.KubectlOpt) error }
type Workers ¶ added in v0.13.0
type Workers = clusterapi.Workers[*dockerv1.DockerMachineTemplate]
Workers represents the docker specific CAPI spec for worker nodes.
func WorkersSpec ¶ added in v0.13.0
func WorkersSpec(ctx context.Context, logger logr.Logger, client kubernetes.Client, spec *cluster.Spec) (*Workers, error)
WorkersSpec generates a Docker specific CAPI spec for an eks-a cluster worker nodes. It talks to the cluster with a client to detect changes in immutable objects and generates new names for them.