Documentation ¶
Index ¶
- Constants
- func AnyImmutableFieldChanged(oldVdc, newVdc *v1alpha1.TinkerbellDatacenterConfig, ...) bool
- func AssertControlPlaneMachineRefExists(spec *ClusterSpec) error
- func AssertDatacenterConfigValid(spec *ClusterSpec) error
- func AssertEtcdMachineRefExists(spec *ClusterSpec) error
- func AssertMachineConfigNamespaceMatchesDatacenterConfig(spec *ClusterSpec) error
- func AssertMachineConfigsValid(spec *ClusterSpec) error
- func AssertWorkerNodeGroupMachineRefsExists(spec *ClusterSpec) error
- 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 NewTinkerbellTemplateBuilder(datacenterSpec *v1alpha1.TinkerbellDatacenterConfigSpec, ...) providers.TemplateBuilder
- type ClusterSpec
- type ClusterSpecAssertion
- type ClusterSpecValidator
- type Provider
- func (p *Provider) BootstrapClusterOpts() ([]bootstrapper.BootstrapClusterOption, error)
- func (p *Provider) ChangeDiff(currentSpec, newSpec *cluster.Spec) *types.ComponentChangeDiff
- func (p *Provider) DatacenterConfig(_ *cluster.Spec) providers.DatacenterConfig
- func (p *Provider) DatacenterResourceType() string
- func (p *Provider) DeleteResources(ctx context.Context, clusterSpec *cluster.Spec) error
- func (p *Provider) EnvMap(_ *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) GenerateMHC() ([]byte, error)
- func (p *Provider) GenerateStorageClass() []byte
- func (p *Provider) GetDeployments() map[string][]string
- func (p *Provider) GetInfrastructureBundle(clusterSpec *cluster.Spec) *types.InfrastructureBundle
- func (p *Provider) InstallCustomProviderComponents(ctx context.Context, kubeconfigFile string) error
- func (p *Provider) InstallTinkerbellStack(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) error
- func (p *Provider) MachineConfigs(_ *cluster.Spec) []providers.MachineConfig
- func (p *Provider) MachineDeploymentsToDelete(workloadCluster *types.Cluster, currentSpec, newSpec *cluster.Spec) []string
- func (p *Provider) MachineResourceType() string
- func (p *Provider) Name() string
- func (p *Provider) PostBootstrapSetup(ctx context.Context, clusterConfig *v1alpha1.Cluster, cluster *types.Cluster) error
- func (p *Provider) PostClusterDeleteValidate(ctx context.Context, managementCluster *types.Cluster) error
- func (p *Provider) PreCAPIInstallOnBootstrap(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) 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, cluster *types.Cluster) error
- func (p *Provider) SetupAndValidateUpgradeCluster(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) error
- func (p *Provider) UpdateKubeConfig(content *[]byte, clusterName string) error
- func (p *Provider) UpdateSecrets(ctx context.Context, cluster *types.Cluster) 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(clusterSpec *cluster.Spec) string
- type ProviderKubectlClient
- type SSHAuthKeyGenerator
- type TinkerbellTemplateBuilder
Constants ¶
const (
Provisioning = "provisioning"
)
Variables ¶
This section is empty.
Functions ¶
func AnyImmutableFieldChanged ¶ added in v0.9.0
func AnyImmutableFieldChanged(oldVdc, newVdc *v1alpha1.TinkerbellDatacenterConfig, oldTmc, newTmc *v1alpha1.TinkerbellMachineConfig) bool
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 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 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 NeedsNewControlPlaneTemplate ¶ added in v0.9.0
func NeedsNewControlPlaneTemplate(oldSpec, newSpec *cluster.Spec, oldVdc, newVdc *v1alpha1.TinkerbellDatacenterConfig, oldTmc, newTmc *v1alpha1.TinkerbellMachineConfig) bool
func NeedsNewEtcdTemplate ¶ added in v0.9.0
func NeedsNewEtcdTemplate(oldSpec, newSpec *cluster.Spec, oldVdc, newVdc *v1alpha1.TinkerbellDatacenterConfig, oldTmc, newTmc *v1alpha1.TinkerbellMachineConfig) bool
func NeedsNewKubeadmConfigTemplate ¶ added in v0.9.0
func NeedsNewKubeadmConfigTemplate(newWorkerNodeGroup *v1alpha1.WorkerNodeGroupConfiguration, oldWorkerNodeGroup *v1alpha1.WorkerNodeGroupConfiguration) bool
func NeedsNewWorkloadTemplate ¶ added in v0.9.0
func NeedsNewWorkloadTemplate(oldSpec, newSpec *cluster.Spec, oldVdc, newVdc *v1alpha1.TinkerbellDatacenterConfig, oldTmc, newTmc *v1alpha1.TinkerbellMachineConfig) bool
func NewTinkerbellTemplateBuilder ¶
func NewTinkerbellTemplateBuilder(datacenterSpec *v1alpha1.TinkerbellDatacenterConfigSpec, controlPlaneMachineSpec, etcdMachineSpec *v1alpha1.TinkerbellMachineConfigSpec, workerNodeGroupMachineSpecs map[string]v1alpha1.TinkerbellMachineConfigSpec, now types.NowFunc) providers.TemplateBuilder
Types ¶
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) 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) EtcdMachineConfig ¶ added in v0.9.1
func (s *ClusterSpec) EtcdMachineConfig() *v1alpha1.TinkerbellMachineConfig
EtcdMachineConfig retrieves the TinkerbellMachineConfig referenced by the cluster etcd machine reference.
func (*ClusterSpec) FirstWorkerMachineConfig ¶ added in v0.9.1
func (s *ClusterSpec) FirstWorkerMachineConfig() *v1alpha1.TinkerbellMachineConfig
FirstWorkerMachineConfig retrieves the TinkerbellMachineConfig referenced by the first node group 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.
type ClusterSpecAssertion ¶ added in v0.9.1
type ClusterSpecAssertion func(spec *ClusterSpec) error
ClusterSpecAssertion makes an assertion on spec.
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.
func NewMinimumHardwareAvailableAssertion ¶ added in v0.9.1
func NewMinimumHardwareAvailableAssertion(catalogue *hardware.Catalogue) ClusterSpecAssertion
NewMinHardwareAvailableAssertion creates a ClusterSpecAssertion that ensures there is sufficient hardware in catalogue for creating the ClusterSpec. The minimum expeced hardware is the sum sum of requested control plane, etcd and worker node counts. The system requires hardware >= to requested provisioning.
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 asseritons. 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 Provider ¶ added in v0.9.0
func NewProvider ¶
func NewProvider( datacenterConfig *v1alpha1.TinkerbellDatacenterConfig, machineConfigs map[string]*v1alpha1.TinkerbellMachineConfig, clusterConfig *v1alpha1.Cluster, writer filewriter.FileWriter, providerKubectlClient ProviderKubectlClient, now types.NowFunc, skipIpCheck bool, hardwareManifestPath string, skipPowerActions bool, setupTinkerbell bool, force bool, ) *Provider
func NewProviderCustomDep ¶ added in v0.8.0
func NewProviderCustomDep( datacenterConfig *v1alpha1.TinkerbellDatacenterConfig, machineConfigs map[string]*v1alpha1.TinkerbellMachineConfig, clusterConfig *v1alpha1.Cluster, writer filewriter.FileWriter, providerKubectlClient ProviderKubectlClient, netClient networkutils.NetClient, now types.NowFunc, skipIpCheck bool, hardwareManifestPath string, skipPowerActions bool, setupTinkerbell bool, force bool, ) *Provider
func (*Provider) BootstrapClusterOpts ¶ added in v0.9.0
func (p *Provider) BootstrapClusterOpts() ([]bootstrapper.BootstrapClusterOption, error)
func (*Provider) ChangeDiff ¶ added in v0.9.0
func (p *Provider) ChangeDiff(currentSpec, newSpec *cluster.Spec) *types.ComponentChangeDiff
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 (*Provider) DeleteResources ¶ added in v0.9.0
func (*Provider) GenerateCAPISpecForCreate ¶ added in v0.9.0
func (*Provider) GenerateCAPISpecForUpgrade ¶ added in v0.9.0
func (*Provider) GenerateMHC ¶ added in v0.9.0
func (*Provider) GenerateStorageClass ¶ added in v0.9.0
func (*Provider) GetDeployments ¶ added in v0.9.0
func (*Provider) GetInfrastructureBundle ¶ added in v0.9.0
func (p *Provider) GetInfrastructureBundle(clusterSpec *cluster.Spec) *types.InfrastructureBundle
func (*Provider) InstallCustomProviderComponents ¶ added in v0.9.0
func (*Provider) InstallTinkerbellStack ¶ added in v0.9.0
func (*Provider) MachineConfigs ¶ added in v0.9.0
func (p *Provider) MachineConfigs(_ *cluster.Spec) []providers.MachineConfig
func (*Provider) MachineDeploymentsToDelete ¶ added in v0.9.0
func (*Provider) MachineResourceType ¶ added in v0.9.0
func (*Provider) PostBootstrapSetup ¶ added in v0.9.0
func (*Provider) PostClusterDeleteValidate ¶ added in v0.9.0
func (*Provider) PreCAPIInstallOnBootstrap ¶ added in v0.9.0
func (*Provider) RunPostControlPlaneUpgrade ¶ added in v0.9.0
func (*Provider) SetupAndValidateCreateCluster ¶ added in v0.9.0
func (*Provider) SetupAndValidateDeleteCluster ¶ added in v0.9.0
func (*Provider) SetupAndValidateUpgradeCluster ¶ added in v0.9.0
func (*Provider) UpdateKubeConfig ¶ added in v0.9.0
func (*Provider) UpdateSecrets ¶ added in v0.9.0
func (*Provider) UpgradeNeeded ¶ added in v0.9.0
func (*Provider) ValidateNewSpec ¶ added in v0.9.0
type ProviderKubectlClient ¶
type ProviderKubectlClient interface { ApplyKubeSpec(ctx context.Context, cluster *types.Cluster, spec string) error ApplyKubeSpecFromBytesForce(ctx context.Context, cluster *types.Cluster, data []byte) 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) GetHardwareWithLabel(ctx context.Context, label, kubeconfigFile, namespace string) ([]tinkv1alpha1.Hardware, error) GetBmcsPowerState(ctx context.Context, bmcNames []string, kubeconfigFile, namespace string) ([]string, 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 }
TODO: Add necessary kubectl functions here
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 TinkerbellTemplateBuilder ¶
type TinkerbellTemplateBuilder struct { WorkerNodeGroupMachineSpecs map[string]v1alpha1.TinkerbellMachineConfigSpec // contains filtered or unexported fields }
func (*TinkerbellTemplateBuilder) GenerateCAPISpecControlPlane ¶
func (tb *TinkerbellTemplateBuilder) GenerateCAPISpecControlPlane(clusterSpec *cluster.Spec, buildOptions ...providers.BuildMapOption) (content []byte, err error)