scope

package
v1.0.0-alpha.18 Latest Latest
Warning

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

Go to latest
Published: May 2, 2022 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Overview

Package scope defines cluster and machine scope as well as a repository for the Hetzner API

Package scope defines cluster and machine scope as well as a repository for the Hetzner API

Index

Constants

This section is empty.

Variables

View Source
var ErrBootstrapDataNotReady = errors.New("error retrieving bootstrap data: linked Machine's bootstrap.dataSecretName is nil")

ErrBootstrapDataNotReady return an error if no bootstrap data is ready.

View Source
var ErrFailureDomainNotFound = errors.New("error no failure domain available")

ErrFailureDomainNotFound returns an error if no region is found.

Functions

func IsControlPlaneReady

func IsControlPlaneReady(ctx context.Context, c clientcmd.ClientConfig) error

IsControlPlaneReady returns if a machine is a control-plane.

Types

type BareMetalHostScope

type BareMetalHostScope struct {
	*logr.Logger
	Client               client.Client
	SecretManager        *secretutil.SecretManager
	RobotClient          robotclient.Client
	SSHClientFactory     sshclient.Factory
	HetznerBareMetalHost *infrav1.HetznerBareMetalHost
	HetznerCluster       *infrav1.HetznerCluster
	OSSSHSecret          *corev1.Secret
	RescueSSHSecret      *corev1.Secret
}

BareMetalHostScope defines the basic context for an actuator to operate upon.

func NewBareMetalHostScope

func NewBareMetalHostScope(ctx context.Context, params BareMetalHostScopeParams) (*BareMetalHostScope, error)

NewBareMetalHostScope creates a new Scope from the supplied parameters. This is meant to be called for each reconcile iteration.

func (*BareMetalHostScope) GetRawBootstrapData

func (s *BareMetalHostScope) GetRawBootstrapData(ctx context.Context) ([]byte, error)

GetRawBootstrapData returns the bootstrap data from the secret in the Machine's bootstrap.dataSecretName.

func (*BareMetalHostScope) Name

func (s *BareMetalHostScope) Name() string

Name returns the HetznerCluster name.

func (*BareMetalHostScope) Namespace

func (s *BareMetalHostScope) Namespace() string

Namespace returns the namespace name.

func (*BareMetalHostScope) SetErrorCount

func (s *BareMetalHostScope) SetErrorCount(count int)

SetErrorCount sets the operational status of the HetznerBareMetalHost.

type BareMetalHostScopeParams

type BareMetalHostScopeParams struct {
	Client               client.Client
	Logger               *logr.Logger
	HetznerBareMetalHost *infrav1.HetznerBareMetalHost
	HetznerCluster       *infrav1.HetznerCluster
	RobotClient          robotclient.Client
	SSHClientFactory     sshclient.Factory
	OSSSHSecret          *corev1.Secret
	RescueSSHSecret      *corev1.Secret
	SecretManager        *secretutil.SecretManager
}

BareMetalHostScopeParams defines the input parameters used to create a new scope.

type BareMetalMachineScope

type BareMetalMachineScope struct {
	*logr.Logger
	Client client.Client

	Machine          *clusterv1.Machine
	BareMetalMachine *infrav1.HetznerBareMetalMachine
	HetznerCluster   *infrav1.HetznerCluster

	HCloudClient hcloudclient.Client
	// contains filtered or unexported fields
}

BareMetalMachineScope defines the basic context for an actuator to operate upon.

func NewBareMetalMachineScope

func NewBareMetalMachineScope(ctx context.Context, params BareMetalMachineScopeParams) (*BareMetalMachineScope, error)

NewBareMetalMachineScope creates a new Scope from the supplied parameters. This is meant to be called for each reconcile iteration.

func (*BareMetalMachineScope) Close

Close closes the current scope persisting the cluster configuration and status.

func (*BareMetalMachineScope) HasAnnotation

func (m *BareMetalMachineScope) HasAnnotation() bool

HasAnnotation makes sure the machine has an annotation that references a host.

func (*BareMetalMachineScope) IsBootstrapReady

func (m *BareMetalMachineScope) IsBootstrapReady(ctx context.Context) bool

IsBootstrapReady checks the readiness of a capi machine's bootstrap data.

func (*BareMetalMachineScope) IsControlPlane

func (m *BareMetalMachineScope) IsControlPlane() bool

IsControlPlane returns true if the machine is a control plane.

func (*BareMetalMachineScope) IsProvisioned

func (m *BareMetalMachineScope) IsProvisioned() bool

IsProvisioned checks if the bareMetalMachine is provisioned.

func (*BareMetalMachineScope) Name

func (m *BareMetalMachineScope) Name() string

Name returns the BareMetalMachine name.

func (*BareMetalMachineScope) Namespace

func (m *BareMetalMachineScope) Namespace() string

Namespace returns the namespace name.

func (*BareMetalMachineScope) PatchObject

func (m *BareMetalMachineScope) PatchObject(ctx context.Context) error

PatchObject persists the machine spec and status.

func (*BareMetalMachineScope) SetError

func (m *BareMetalMachineScope) SetError(message string, reason capierrors.MachineStatusError)

SetError sets the ErrorMessage and ErrorReason fields on the machine and logs the message. It assumes the reason is invalid configuration, since that is currently the only relevant MachineStatusError choice.

type BareMetalMachineScopeParams

type BareMetalMachineScopeParams struct {
	Logger           *logr.Logger
	Client           client.Client
	Machine          *clusterv1.Machine
	BareMetalMachine *infrav1.HetznerBareMetalMachine
	HetznerCluster   *infrav1.HetznerCluster
	HCloudClient     hcloudclient.Client
}

BareMetalMachineScopeParams defines the input parameters used to create a new Scope.

type BareMetalRemediationScope

type BareMetalRemediationScope struct {
	*logr.Logger
	Client client.Client

	Machine              *clusterv1.Machine
	BareMetalMachine     *infrav1.HetznerBareMetalMachine
	BareMetalRemediation *infrav1.HetznerBareMetalRemediation
	// contains filtered or unexported fields
}

BareMetalRemediationScope defines the basic context for an actuator to operate upon.

func NewBareMetalRemediationScope

func NewBareMetalRemediationScope(ctx context.Context, params BareMetalRemediationScopeParams) (*BareMetalRemediationScope, error)

NewBareMetalRemediationScope creates a new Scope from the supplied parameters. This is meant to be called for each reconcile iteration.

func (*BareMetalRemediationScope) Close

func (m *BareMetalRemediationScope) Close(ctx context.Context, opts ...patch.Option) error

Close closes the current scope persisting the cluster configuration and status.

func (*BareMetalRemediationScope) Name

Name returns the BareMetalMachine name.

func (*BareMetalRemediationScope) Namespace

func (m *BareMetalRemediationScope) Namespace() string

Namespace returns the namespace name.

func (*BareMetalRemediationScope) PatchObject

func (m *BareMetalRemediationScope) PatchObject(ctx context.Context, opts ...patch.Option) error

PatchObject persists the machine spec and status.

type BareMetalRemediationScopeParams

type BareMetalRemediationScopeParams struct {
	Logger               *logr.Logger
	Client               client.Client
	Machine              *clusterv1.Machine
	BareMetalMachine     *infrav1.HetznerBareMetalMachine
	HetznerCluster       *infrav1.HetznerCluster
	BareMetalRemediation *infrav1.HetznerBareMetalRemediation
}

BareMetalRemediationScopeParams defines the input parameters used to create a new Scope.

type ClusterScope

type ClusterScope struct {
	*logr.Logger
	Client    client.Client
	APIReader client.Reader

	HCloudClient hcloudclient.Client

	Cluster        *clusterv1.Cluster
	HetznerCluster *infrav1.HetznerCluster
	// contains filtered or unexported fields
}

ClusterScope defines the basic context for an actuator to operate upon.

func NewClusterScope

func NewClusterScope(ctx context.Context, params ClusterScopeParams) (*ClusterScope, error)

NewClusterScope creates a new Scope from the supplied parameters. This is meant to be called for each reconcile iteration.

func (*ClusterScope) ClientConfig

func (s *ClusterScope) ClientConfig(ctx context.Context) (clientcmd.ClientConfig, error)

ClientConfig return a kubernetes client config for the cluster context.

func (*ClusterScope) ClientConfigWithAPIEndpoint

func (s *ClusterScope) ClientConfigWithAPIEndpoint(ctx context.Context, endpoint clusterv1.APIEndpoint) (clientcmd.ClientConfig, error)

ClientConfigWithAPIEndpoint returns a client config.

func (*ClusterScope) Close

func (s *ClusterScope) Close(ctx context.Context) error

Close closes the current scope persisting the cluster configuration and status.

func (*ClusterScope) ControlPlaneAPIEndpointPort

func (s *ClusterScope) ControlPlaneAPIEndpointPort() int32

ControlPlaneAPIEndpointPort returns the Port of the Kube-api server.

func (*ClusterScope) GetSpecRegion

func (s *ClusterScope) GetSpecRegion() []infrav1.Region

GetSpecRegion returns a region.

func (*ClusterScope) HetznerSecret

func (s *ClusterScope) HetznerSecret() *corev1.Secret

HetznerSecret returns the hetzner secret.

func (*ClusterScope) ListMachines

func (s *ClusterScope) ListMachines(ctx context.Context) ([]*clusterv1.Machine, []*infrav1.HCloudMachine, error)

ListMachines returns HCloudMachines.

func (*ClusterScope) Name

func (s *ClusterScope) Name() string

Name returns the HetznerCluster name.

func (*ClusterScope) Namespace

func (s *ClusterScope) Namespace() string

Namespace returns the namespace name.

func (*ClusterScope) PatchObject

func (s *ClusterScope) PatchObject(ctx context.Context) error

PatchObject persists the machine spec and status.

func (*ClusterScope) SetStatusFailureDomain

func (s *ClusterScope) SetStatusFailureDomain(regions []infrav1.Region)

SetStatusFailureDomain sets the region for the status.

type ClusterScopeParams

type ClusterScopeParams struct {
	Client         client.Client
	APIReader      client.Reader
	Logger         *logr.Logger
	HetznerSecret  *corev1.Secret
	HCloudClient   hcloudclient.Client
	Cluster        *clusterv1.Cluster
	HetznerCluster *infrav1.HetznerCluster
}

ClusterScopeParams defines the input parameters used to create a new scope.

type HasRequeueAfterError

type HasRequeueAfterError interface {
	// GetRequeueAfter gets the duration to wait until the managed object is
	// requeued for further processing.
	GetRequeueAfter() time.Duration
}

HasRequeueAfterError represents that an actuator managed object should be requeued for further processing after the given RequeueAfter time has passed.

type MachineScope

type MachineScope struct {
	ClusterScope
	Machine       *clusterv1.Machine
	HCloudMachine *infrav1.HCloudMachine
}

MachineScope defines the basic context for an actuator to operate upon.

func NewMachineScope

func NewMachineScope(ctx context.Context, params MachineScopeParams) (*MachineScope, error)

NewMachineScope creates a new Scope from the supplied parameters. This is meant to be called for each reconcile iteration.

func (*MachineScope) Close

func (m *MachineScope) Close(ctx context.Context) error

Close closes the current scope persisting the cluster configuration and status.

func (*MachineScope) GetFailureDomain

func (m *MachineScope) GetFailureDomain() (string, error)

GetFailureDomain returns the machine's failure domain or a default one based on a hash.

func (*MachineScope) GetRawBootstrapData

func (m *MachineScope) GetRawBootstrapData(ctx context.Context) ([]byte, error)

GetRawBootstrapData returns the bootstrap data from the secret in the Machine's bootstrap.dataSecretName.

func (*MachineScope) IsBootstrapDataReady

func (m *MachineScope) IsBootstrapDataReady(ctx context.Context) bool

IsBootstrapDataReady checks the readiness of a capi machine's bootstrap data.

func (*MachineScope) IsControlPlane

func (m *MachineScope) IsControlPlane() bool

IsControlPlane returns true if the machine is a control plane.

func (*MachineScope) Name

func (m *MachineScope) Name() string

Name returns the HCloudMachine name.

func (*MachineScope) Namespace

func (m *MachineScope) Namespace() string

Namespace returns the namespace name.

func (*MachineScope) PatchObject

func (m *MachineScope) PatchObject(ctx context.Context) error

PatchObject persists the machine spec and status.

func (*MachineScope) SetError

func (m *MachineScope) SetError(message string, reason capierrors.MachineStatusError)

SetError sets the ErrorMessage and ErrorReason fields on the machine and logs the message. It assumes the reason is invalid configuration, since that is currently the only relevant MachineStatusError choice.

type MachineScopeParams

type MachineScopeParams struct {
	ClusterScopeParams
	Machine       *clusterv1.Machine
	HCloudMachine *infrav1.HCloudMachine
}

MachineScopeParams defines the input parameters used to create a new Scope.

type RequeueAfterError

type RequeueAfterError struct {
	RequeueAfter time.Duration
}

RequeueAfterError represents that an actuator managed object should be requeued for further processing after the given RequeueAfter time has passed.

func (*RequeueAfterError) Error

func (e *RequeueAfterError) Error() string

Error implements the error interface.

func (*RequeueAfterError) GetRequeueAfter

func (e *RequeueAfterError) GetRequeueAfter() time.Duration

GetRequeueAfter gets the duration to wait until the managed object is requeued for further processing.

Jump to

Keyboard shortcuts

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