tinkerbell

package
v0.21.1 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2024 License: Apache-2.0 Imports: 56 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TinkerbellMachineTemplateKind = "TinkerbellMachineTemplate"
)

Variables

This section is empty.

Functions

func AssertAutoScalerDisabledForInPlace added in v0.19.0

func AssertAutoScalerDisabledForInPlace(spec *ClusterSpec) error

AssertAutoScalerDisabledForInPlace ensures that the autoscaler configuration is not enabled when upgrade rollout strategy is InPlace.

func AssertControlPlaneMachineRefExists added in v0.9.1

func AssertControlPlaneMachineRefExists(spec *ClusterSpec) error

AssertControlPlaneMachineRefExists ensures the control plane machine ref is referencing a known machine config.

func AssertDatacenterConfigValid added in v0.9.1

func AssertDatacenterConfigValid(spec *ClusterSpec) error

AssertDatacenterConfigValid asserts the DatacenterConfig in spec is valid.

func AssertEtcdMachineRefExists added in v0.9.1

func AssertEtcdMachineRefExists(spec *ClusterSpec) error

AssertEtcdMachineRefExists ensures that, if the etcd configuration is specified, it references a known machine config.

func AssertHookRetrievableWithoutProxy added in v0.16.0

func AssertHookRetrievableWithoutProxy(spec *ClusterSpec) error

AssertHookRetrievableWithoutProxy ensures the executing machine can retrieve Hook from the host URL without a proxy configured. It does not guarantee the target node will be able to download Hook.

func AssertK8SVersionNot120 added in v0.11.0

func AssertK8SVersionNot120(spec *ClusterSpec) error

AssertK8SVersionNot120 ensures Kubernetes version is not set to v1.20.

func AssertMachineConfigNamespaceMatchesDatacenterConfig added in v0.9.1

func AssertMachineConfigNamespaceMatchesDatacenterConfig(spec *ClusterSpec) error

AssertMachineConfigNamespaceMatchesDatacenterConfig ensures all machine configuration instances are configured with the same namespace as the provider specific data center configuration namespace.

func AssertMachineConfigsValid added in v0.9.1

func AssertMachineConfigsValid(spec *ClusterSpec) error

AssertMachineConfigsValid iterates over all machine configs in calling validateMachineConfig.

func AssertOSImageURL added in v0.18.0

func AssertOSImageURL(spec *ClusterSpec) error

AssertOSImageURL ensures that the OSImageURL value is either set at the datacenter config level or set for each machine config and not at both levels.

func AssertOsFamilyValid added in v0.11.0

func AssertOsFamilyValid(spec *ClusterSpec) error

func AssertTinkerbellIPAndControlPlaneIPNotSame added in v0.12.0

func AssertTinkerbellIPAndControlPlaneIPNotSame(spec *ClusterSpec) error

AssertTinkerbellIPAndControlPlaneIPNotSame ensures tinkerbell ip and controlplane ip are not the same.

func AssertUpgradeRolloutStrategyValid added in v0.19.0

func AssertUpgradeRolloutStrategyValid(spec *ClusterSpec) error

AssertUpgradeRolloutStrategyValid ensures that the upgrade rollout strategy is valid for both CP and worker node configurations.

func AssertWorkerNodeGroupMachineRefsExists added in v0.9.1

func AssertWorkerNodeGroupMachineRefsExists(spec *ClusterSpec) error

AssertWorkerNodeGroupMachineRefsExists ensures all worker node group machine refs are referencing a known machine config.

func GetMachineTemplate added in v0.15.0

func GetMachineTemplate(ctx context.Context, client kubernetes.Client, name, namespace string) (*tinkerbellv1.TinkerbellMachineTemplate, error)

GetMachineTemplate gets a TinkerbellMachineTemplate object using the provided client If the object doesn't exist, it returns a NotFound error.

func NewTemplateBuilder added in v0.9.2

func NewTemplateBuilder(datacenterSpec *v1alpha1.TinkerbellDatacenterConfigSpec, controlPlaneMachineSpec, etcdMachineSpec *v1alpha1.TinkerbellMachineConfigSpec, workerNodeGroupMachineSpecs map[string]v1alpha1.TinkerbellMachineConfigSpec, tinkerbellIP string, now types.NowFunc) providers.TemplateBuilder

NewTemplateBuilder creates a new TemplateBuilder instance.

func WorkerNodeGroupWithK8sVersion added in v0.18.0

func WorkerNodeGroupWithK8sVersion(spec *cluster.Spec) map[string]v1alpha1.KubernetesVersion

WorkerNodeGroupWithK8sVersion maps each worker node group configurations in s to its K8s version.

Types

type BaseControlPlane added in v0.15.0

BaseControlPlane represents a CAPI Tinkerbell control plane.

type ClusterSpec added in v0.9.1

type ClusterSpec struct {
	*cluster.Spec

	// DatacenterConfig configured in the cluster configuration YAML.
	DatacenterConfig *v1alpha1.TinkerbellDatacenterConfig

	// MachineConfigs configured in the cluster configuration YAML whether they're used or not.
	MachineConfigs map[string]*v1alpha1.TinkerbellMachineConfig
}

ClusterSpec represents a cluster configuration for Tinkerbell provisioning.

func NewClusterSpec added in v0.9.1

func NewClusterSpec(
	clusterSpec *cluster.Spec,
	machineConfigs map[string]*v1alpha1.TinkerbellMachineConfig,
	datacenterConfig *v1alpha1.TinkerbellDatacenterConfig,
) *ClusterSpec

NewClusterSpec creates a ClusterSpec instance.

func (*ClusterSpec) ControlPlaneConfiguration added in v0.9.2

func (s *ClusterSpec) ControlPlaneConfiguration() *v1alpha1.ControlPlaneConfiguration

ControlPlaneConfiguration retrieves the control plane configuration from s.

func (*ClusterSpec) ControlPlaneMachineConfig added in v0.9.1

func (s *ClusterSpec) ControlPlaneMachineConfig() *v1alpha1.TinkerbellMachineConfig

ControlPlaneMachineConfig retrieves the TinkerbellMachineConfig referenced by the cluster control plane machine reference.

func (*ClusterSpec) ExternalEtcdConfiguration added in v0.9.2

func (s *ClusterSpec) ExternalEtcdConfiguration() *v1alpha1.ExternalEtcdConfiguration

ExternalEtcdConfiguration returns the etcd configuration. The configuration may be nil. Consumers should check if external etcd configuration is present using HasExternalEtcd().

func (*ClusterSpec) ExternalEtcdMachineConfig added in v0.9.2

func (s *ClusterSpec) ExternalEtcdMachineConfig() *v1alpha1.TinkerbellMachineConfig

ExternalEtcdMachineConfig retrieves the TinkerbellMachineConfig referenced by the cluster etcd machine reference.

func (*ClusterSpec) HasExternalEtcd added in v0.9.1

func (s *ClusterSpec) HasExternalEtcd() bool

HasExternalEtcd returns true if there is an external etcd configuration.

func (*ClusterSpec) WorkerNodeGroupConfigurations added in v0.9.2

func (s *ClusterSpec) WorkerNodeGroupConfigurations() []v1alpha1.WorkerNodeGroupConfiguration

WorkerNodeGroupConfigurations retrieves all worker node group configurations in s.

func (*ClusterSpec) WorkerNodeGroupMachineConfig added in v0.9.2

func (s *ClusterSpec) WorkerNodeGroupMachineConfig(conf v1alpha1.WorkerNodeGroupConfiguration) *v1alpha1.TinkerbellMachineConfig

WorkerNodeGroupMachineConfig retrieves the machine group associated with conf.

type ClusterSpecAssertion added in v0.9.1

type ClusterSpecAssertion func(spec *ClusterSpec) error

ClusterSpecAssertion makes an assertion on spec.

func AssertPortsNotInUse added in v0.12.0

func AssertPortsNotInUse(client networkutils.NetClient) ClusterSpecAssertion

AssertPortsNotInUse ensures that ports 80, 42113, and 50061 are available.

func AssertTinkerbellIPNotInUse added in v0.12.0

func AssertTinkerbellIPNotInUse(client networkutils.NetClient) ClusterSpecAssertion

AssertTinkerbellIPNotInUse ensures tinkerbell ip isn't in use.

func AssertionsForScaleUpDown added in v0.11.0

func AssertionsForScaleUpDown(catalogue *hardware.Catalogue, current ValidatableCluster, rollingUpgrade bool) ClusterSpecAssertion

AssertionsForScaleUpDown asserts that catalogue has sufficient hardware to support the scaling up/down from current ClusterSpec to desired ValidatableCluster. nolint:gocyclo // TODO: Reduce cyclomatic complexity https://github.com/aws/eks-anywhere-internal/issues/1186

func ExtraHardwareAvailableAssertionForNodeRollOut added in v0.20.5

func ExtraHardwareAvailableAssertionForNodeRollOut(catalogue *hardware.Catalogue, hwReq MinimumHardwareRequirements) ClusterSpecAssertion

ExtraHardwareAvailableAssertionForNodeRollOut asserts catalogue has sufficient hardware to meet minimum requirement and is component agnostic between Control Plane and worker nodes.

func ExtraHardwareAvailableAssertionForRollingUpgrade added in v0.11.0

func ExtraHardwareAvailableAssertionForRollingUpgrade(catalogue *hardware.Catalogue, current ValidatableCluster, eksaVersionUpgrade bool) ClusterSpecAssertion

ExtraHardwareAvailableAssertionForRollingUpgrade asserts that catalogue has sufficient hardware to support the ClusterSpec during an rolling upgrade workflow.

func HardwareSatisfiesOnlyOneSelectorAssertion added in v0.9.2

func HardwareSatisfiesOnlyOneSelectorAssertion(catalogue *hardware.Catalogue) ClusterSpecAssertion

HardwareSatisfiesOnlyOneSelectorAssertion ensures hardware in catalogue only satisfies 1 of the MachineConfig's HardwareSelector's from the spec.

func MinimumHardwareAvailableAssertionForCreate added in v0.9.2

func MinimumHardwareAvailableAssertionForCreate(catalogue *hardware.Catalogue) ClusterSpecAssertion

MinimumHardwareAvailableAssertionForCreate asserts that catalogue has sufficient hardware to support the ClusterSpec during a create workflow.

It does not protect against intersections or subsets so consumers should ensure a 1-2-1 mapping between catalogue hardware and selectors.

func NewIPNotInUseAssertion added in v0.9.1

func NewIPNotInUseAssertion(client networkutils.NetClient) ClusterSpecAssertion

AssertcontrolPlaneIPNotInUse ensures the endpoint host for the control plane isn't in use. The check may be unreliable due to its implementation.

type ClusterSpecValidator added in v0.9.1

type ClusterSpecValidator []ClusterSpecAssertion

ClusterSpecValidator is composed of a set of ClusterSpecAssertions to be run on a ClusterSpec instance.

func NewClusterSpecValidator added in v0.9.1

func NewClusterSpecValidator(assertions ...ClusterSpecAssertion) *ClusterSpecValidator

NewClusterSpecValidator creates a ClusterSpecValidator instance with a set of default assertions. Any assertions passed will be registered in addition to the default assertions.

func (*ClusterSpecValidator) Register added in v0.9.1

func (v *ClusterSpecValidator) Register(assertions ...ClusterSpecAssertion)

Register registers assertions with v.

func (*ClusterSpecValidator) Validate added in v0.9.1

func (v *ClusterSpecValidator) Validate(spec *ClusterSpec) error

Validate validates spec with all assertions registered on v.

type ControlPlane added in v0.15.0

type ControlPlane struct {
	BaseControlPlane
	Secrets *corev1.Secret
}

ControlPlane holds the Tinkerbell specific objects for a CAPI Tinkerbell control plane.

func ControlPlaneSpec added in v0.15.0

func ControlPlaneSpec(ctx context.Context, logger logr.Logger, client kubernetes.Client, clusterSpec *cluster.Spec) (*ControlPlane, error)

ControlPlaneSpec builds a Tinkerbell ControlPlane definition based on an eks-a cluster spec.

func (ControlPlane) Objects added in v0.15.0

func (p ControlPlane) Objects() []kubernetes.Object

Objects returns the control plane objects associated with the Tinkerbell cluster.

type MinimumHardwareRequirements added in v0.20.5

type MinimumHardwareRequirements map[string]*minimumHardwareRequirement

MinimumHardwareRequirements is a collection of minimumHardwareRequirement instances. it stores requirements in a map where the key is derived from selectors. This ensures selectors specifying the same key-value pairs are combined.

func (*MinimumHardwareRequirements) Add added in v0.20.5

Add a minimumHardwareRequirement to r.

type Provider added in v0.9.0

type Provider struct {

	// BMCOptions are Rufio BMC options that are used when creating Rufio machine CRDs.
	BMCOptions *hardware.BMCOptions
	// contains filtered or unexported fields
}

func NewProvider

func NewProvider(
	datacenterConfig *v1alpha1.TinkerbellDatacenterConfig,
	machineConfigs map[string]*v1alpha1.TinkerbellMachineConfig,
	clusterConfig *v1alpha1.Cluster,
	hardwareCSVPath string,
	writer filewriter.FileWriter,
	docker stack.Docker,
	helm stack.Helm,
	providerKubectlClient ProviderKubectlClient,
	tinkerbellIP string,
	now types.NowFunc,
	forceCleanup bool,
	skipIpCheck bool,
) (*Provider, error)

func (*Provider) BootstrapClusterOpts added in v0.9.0

func (p *Provider) BootstrapClusterOpts(_ *cluster.Spec) ([]bootstrapper.BootstrapClusterOption, error)

func (*Provider) ChangeDiff added in v0.9.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.9.0

func (p *Provider) DatacenterConfig(_ *cluster.Spec) providers.DatacenterConfig

func (*Provider) DatacenterResourceType added in v0.9.0

func (p *Provider) DatacenterResourceType() string

func (*Provider) DeleteResources added in v0.9.0

func (p *Provider) DeleteResources(ctx context.Context, clusterSpec *cluster.Spec) error

func (*Provider) EnvMap added in v0.9.0

EnvMap returns a map of environment variables for the tinkerbell provider.

func (*Provider) GenerateCAPISpecForCreate added in v0.9.0

func (p *Provider) GenerateCAPISpecForCreate(ctx context.Context, _ *types.Cluster, clusterSpec *cluster.Spec) (controlPlaneSpec, workersSpec []byte, err error)

func (*Provider) GenerateCAPISpecForUpgrade added in v0.9.0

func (p *Provider) GenerateCAPISpecForUpgrade(ctx context.Context, bootstrapCluster, workloadCluster *types.Cluster, currentSpec, clusterSpec *cluster.Spec) (controlPlaneSpec, workersSpec []byte, err error)

func (*Provider) GetDeployments added in v0.9.0

func (p *Provider) GetDeployments() map[string][]string

func (*Provider) GetInfrastructureBundle added in v0.9.0

func (p *Provider) GetInfrastructureBundle(components *cluster.ManagementComponents) *types.InfrastructureBundle

GetInfrastructureBundle returns the infrastructure bundle for the provider.

func (*Provider) InstallCustomProviderComponents added in v0.9.0

func (p *Provider) InstallCustomProviderComponents(ctx context.Context, kubeconfigFile string) error

func (*Provider) MachineConfigs added in v0.9.0

func (p *Provider) MachineConfigs(_ *cluster.Spec) []providers.MachineConfig

func (*Provider) MachineResourceType added in v0.9.0

func (p *Provider) MachineResourceType() string

func (*Provider) Name added in v0.9.0

func (p *Provider) Name() string

func (*Provider) PostBootstrapDeleteForUpgrade added in v0.11.0

func (p *Provider) PostBootstrapDeleteForUpgrade(ctx context.Context, cluster *types.Cluster) error

PostBootstrapDeleteForUpgrade runs any provider-specific operations after bootstrap cluster has been deleted.

func (*Provider) PostBootstrapSetup added in v0.9.0

func (p *Provider) PostBootstrapSetup(ctx context.Context, clusterConfig *v1alpha1.Cluster, cluster *types.Cluster) error

func (*Provider) PostBootstrapSetupUpgrade added in v0.9.2

func (p *Provider) PostBootstrapSetupUpgrade(ctx context.Context, clusterConfig *v1alpha1.Cluster, cluster *types.Cluster) error

func (*Provider) PostClusterDeleteValidate added in v0.9.0

func (p *Provider) PostClusterDeleteValidate(ctx context.Context, managementCluster *types.Cluster) error

func (*Provider) PostMoveManagementToBootstrap added in v0.12.0

func (p *Provider) PostMoveManagementToBootstrap(ctx context.Context, bootstrapCluster *types.Cluster) error

func (*Provider) PostWorkloadInit added in v0.9.2

func (p *Provider) PostWorkloadInit(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) error

func (*Provider) PreCAPIInstallOnBootstrap added in v0.9.0

func (p *Provider) PreCAPIInstallOnBootstrap(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) error

func (*Provider) PreCoreComponentsUpgrade added in v0.15.0

func (p *Provider) PreCoreComponentsUpgrade(
	ctx context.Context,
	cluster *types.Cluster,
	managementComponents *cluster.ManagementComponents,
	clusterSpec *cluster.Spec,
) error

PreCoreComponentsUpgrade satisfies the Provider interface.

func (*Provider) RunPostControlPlaneUpgrade added in v0.9.0

func (p *Provider) RunPostControlPlaneUpgrade(ctx context.Context, oldClusterSpec *cluster.Spec, clusterSpec *cluster.Spec, workloadCluster *types.Cluster, managementCluster *types.Cluster) error

func (*Provider) SetStackInstaller added in v0.16.0

func (p *Provider) SetStackInstaller(installer stack.StackInstaller)

SetStackInstaller configures p to use installer for Tinkerbell stack install and upgrade.

func (*Provider) SetupAndValidateCreateCluster added in v0.9.0

func (p *Provider) SetupAndValidateCreateCluster(ctx context.Context, clusterSpec *cluster.Spec) error

func (*Provider) SetupAndValidateDeleteCluster added in v0.9.0

func (p *Provider) SetupAndValidateDeleteCluster(ctx context.Context, cluster *types.Cluster, _ *cluster.Spec) error

func (*Provider) SetupAndValidateUpgradeCluster added in v0.9.0

func (p *Provider) SetupAndValidateUpgradeCluster(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec, currentClusterSpec *cluster.Spec) error

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.9.0

func (p *Provider) UpdateKubeConfig(content *[]byte, clusterName string) error

func (*Provider) UpdateSecrets added in v0.9.0

func (p *Provider) UpdateSecrets(ctx context.Context, cluster *types.Cluster, _ *cluster.Spec) error

func (*Provider) UpgradeNeeded added in v0.9.0

func (p *Provider) UpgradeNeeded(_ context.Context, _, _ *cluster.Spec, _ *types.Cluster) (bool, error)

func (*Provider) ValidateNewSpec added in v0.9.0

func (p *Provider) ValidateNewSpec(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) error

ValidateNewSpec satisfies the Provider interface.

func (*Provider) Version added in v0.9.0

func (p *Provider) Version(components *cluster.ManagementComponents) string

Version returns the version of the provider.

type ProviderKubectlClient

type ProviderKubectlClient interface {
	ApplyKubeSpecFromBytesForce(ctx context.Context, cluster *types.Cluster, data []byte) error
	ApplyKubeSpecFromBytesWithNamespace(ctx context.Context, cluster *types.Cluster, data []byte, namespace string) error
	DeleteEksaDatacenterConfig(ctx context.Context, eksaTinkerbellDatacenterResourceType string, tinkerbellDatacenterConfigName string, kubeconfigFile string, namespace string) error
	DeleteEksaMachineConfig(ctx context.Context, eksaTinkerbellMachineResourceType string, tinkerbellMachineConfigName string, kubeconfigFile string, namespace string) error
	GetMachineDeployment(ctx context.Context, machineDeploymentName string, opts ...executables.KubectlOpt) (*clusterv1.MachineDeployment, error)
	GetEksaCluster(ctx context.Context, cluster *types.Cluster, clusterName string) (*v1alpha1.Cluster, error)
	GetEksaTinkerbellDatacenterConfig(ctx context.Context, tinkerbellDatacenterConfigName string, kubeconfigFile string, namespace string) (*v1alpha1.TinkerbellDatacenterConfig, error)
	GetEksaTinkerbellMachineConfig(ctx context.Context, tinkerbellMachineConfigName string, kubeconfigFile string, namespace string) (*v1alpha1.TinkerbellMachineConfig, 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)
	GetSecret(ctx context.Context, secretObjectName string, opts ...executables.KubectlOpt) (*corev1.Secret, error)
	UpdateAnnotation(ctx context.Context, resourceType, objectName string, annotations map[string]string, opts ...executables.KubectlOpt) error
	WaitForDeployment(ctx context.Context, cluster *types.Cluster, timeout string, condition string, target string, namespace string) error
	GetUnprovisionedTinkerbellHardware(_ context.Context, kubeconfig, namespace string) ([]tinkv1alpha1.Hardware, error)
	GetProvisionedTinkerbellHardware(_ context.Context, kubeconfig, namespace string) ([]tinkv1alpha1.Hardware, error)
	WaitForRufioMachines(ctx context.Context, cluster *types.Cluster, timeout string, condition string, namespace string) error
	SearchTinkerbellMachineConfig(ctx context.Context, name string, kubeconfigFile string, namespace string) ([]*v1alpha1.TinkerbellMachineConfig, error)
	SearchTinkerbellDatacenterConfig(ctx context.Context, name string, kubeconfigFile string, namespace string) ([]*v1alpha1.TinkerbellDatacenterConfig, error)
	AllTinkerbellHardware(ctx context.Context, kuebconfig string) ([]tinkv1alpha1.Hardware, error)
	AllBaseboardManagements(ctx context.Context, kubeconfig string) ([]rufiounreleased.BaseboardManagement, error)
	HasCRD(ctx context.Context, kubeconfig, crd string) (bool, error)
	DeleteCRD(ctx context.Context, kubeconfig, crd string) error
}

type SSHAuthKeyGenerator added in v0.8.0

type SSHAuthKeyGenerator interface {
	GenerateSSHAuthKey(filewriter.FileWriter) (string, error)
}

KeyGenerator generates ssh keys and writes them to a FileWriter.

type TemplateBuilder added in v0.9.2

type TemplateBuilder struct {
	WorkerNodeGroupMachineSpecs map[string]v1alpha1.TinkerbellMachineConfigSpec
	// contains filtered or unexported fields
}

func (*TemplateBuilder) GenerateCAPISpecControlPlane added in v0.9.2

func (tb *TemplateBuilder) GenerateCAPISpecControlPlane(clusterSpec *cluster.Spec, buildOptions ...providers.BuildMapOption) (content []byte, err error)

func (*TemplateBuilder) GenerateCAPISpecWorkers added in v0.9.2

func (tb *TemplateBuilder) GenerateCAPISpecWorkers(clusterSpec *cluster.Spec, workloadTemplateNames, kubeadmconfigTemplateNames map[string]string) (content []byte, err error)

type ValidatableCluster added in v0.15.0

type ValidatableCluster interface {
	// WorkerNodeHardwareGroups retrieves a list of WorkerNodeHardwares containing MachineDeployment name,
	// replica count and hardware selector for each worker node of a ValidatableCluster.
	WorkerNodeHardwareGroups() []WorkerNodeHardware

	// ControlPlaneReplicaCount retrieves the control plane replica count of the ValidatableCluster.
	ControlPlaneReplicaCount() int

	// ClusterK8sVersion retreives the Cluster level Kubernetes version
	ClusterK8sVersion() v1alpha1.KubernetesVersion

	// WorkerGroupK8sVersion maps each worker group with its Kubernetes version.
	WorkerNodeGroupK8sVersion() map[string]v1alpha1.KubernetesVersion
}

ValidatableCluster allows assertions to pull worker node and control plane information.

type ValidatableTinkerbellCAPI added in v0.15.0

type ValidatableTinkerbellCAPI struct {
	KubeadmControlPlane *controlplanev1.KubeadmControlPlane
	WorkerGroups        []*clusterapi.WorkerGroup[*tinkerbellv1.TinkerbellMachineTemplate]
}

ValidatableTinkerbellCAPI wraps around the Tinkerbell control plane and worker CAPI obects as a ValidatableCluster.

func (*ValidatableTinkerbellCAPI) ClusterK8sVersion added in v0.18.0

func (v *ValidatableTinkerbellCAPI) ClusterK8sVersion() v1alpha1.KubernetesVersion

ClusterK8sVersion returns the Kubernetes version in major.minor format for a ValidatableTinkerbellCAPI.

func (*ValidatableTinkerbellCAPI) ControlPlaneReplicaCount added in v0.15.0

func (v *ValidatableTinkerbellCAPI) ControlPlaneReplicaCount() int

ControlPlaneReplicaCount retrieves the ValidatableTinkerbellCAPI control plane replica count.

func (*ValidatableTinkerbellCAPI) WorkerNodeGroupK8sVersion added in v0.18.0

func (v *ValidatableTinkerbellCAPI) WorkerNodeGroupK8sVersion() map[string]v1alpha1.KubernetesVersion

WorkerNodeGroupK8sVersion returns each worker node group mapped to Kubernetes version in major.minor format for a ValidatableTinkerbellCAPI.

func (*ValidatableTinkerbellCAPI) WorkerNodeHardwareGroups added in v0.15.0

func (v *ValidatableTinkerbellCAPI) WorkerNodeHardwareGroups() []WorkerNodeHardware

WorkerNodeHardwareGroups retrieves a list of WorkerNodeHardwares for a ValidatableTinkerbellCAPI.

type ValidatableTinkerbellClusterSpec added in v0.15.0

type ValidatableTinkerbellClusterSpec struct {
	*ClusterSpec
}

ValidatableTinkerbellClusterSpec wraps around the Tinkerbell ClusterSpec as a ValidatableCluster.

func (*ValidatableTinkerbellClusterSpec) ClusterK8sVersion added in v0.18.0

ClusterK8sVersion retrieves the Kubernetes version set at the cluster level.

func (*ValidatableTinkerbellClusterSpec) ControlPlaneReplicaCount added in v0.15.0

func (v *ValidatableTinkerbellClusterSpec) ControlPlaneReplicaCount() int

ControlPlaneReplicaCount retrieves the ValidatableTinkerbellClusterSpec control plane replica count.

func (*ValidatableTinkerbellClusterSpec) WorkerNodeGroupK8sVersion added in v0.18.0

func (v *ValidatableTinkerbellClusterSpec) WorkerNodeGroupK8sVersion() map[string]v1alpha1.KubernetesVersion

WorkerNodeGroupK8sVersion returns each worker node group with its associated Kubernetes version.

func (*ValidatableTinkerbellClusterSpec) WorkerNodeHardwareGroups added in v0.15.0

func (v *ValidatableTinkerbellClusterSpec) WorkerNodeHardwareGroups() []WorkerNodeHardware

WorkerNodeHardwareGroups retrieves a list of WorkerNodeHardwares for a ValidatableTinkerbellClusterSpec.

type WorkerNodeHardware added in v0.15.0

type WorkerNodeHardware struct {
	MachineDeploymentName string
	Replicas              int
}

WorkerNodeHardware holds machine deployment name, replica count and hardware selector for a Tinkerbell worker node.

type Workers added in v0.15.0

Workers represents the Tinkerbell specific CAPI spec for worker nodes.

func WorkersSpec added in v0.15.0

func WorkersSpec(ctx context.Context, logger logr.Logger, client kubernetes.Client, spec *cluster.Spec) (*Workers, error)

WorkersSpec generates a Tinkerbell 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.

Directories

Path Synopsis
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
Package rufiounreleased contains types that never became a formal release but were included in EKSA releases.
Package rufiounreleased contains types that never became a formal release but were included in EKSA releases.
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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