Help us shape the future of Go! Take the 2026 Go Developer Survey

controllers

package
v2.37.0 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2026 License: Apache-2.0 Imports: 58 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InitCustomMetrics

func InitCustomMetrics(reconciler *FoundationDBClusterReconciler)

InitCustomMetrics initializes the metrics collectors for the operator.

Types

type FoundationDBBackupReconciler

type FoundationDBBackupReconciler struct {
	client.Client
	Recorder               record.EventRecorder
	Log                    logr.Logger
	InSimulation           bool
	DatabaseClientProvider fdbadminclient.DatabaseClientProvider
	ServerSideApply        bool
	// AllowedPodModifications defines the pod modification that are allowed for the user provided configuration. If a field
	// is unset in AllowedPodModifications, we allow everything to not break the current setups. In a new major release we could
	// change this and enforce that fields are only allowed to change if the according AllowedPodModifications is set.
	AllowedPodModifications *fdbv1beta2.AllowedPodModifications
	// MinimumAgeForTerminalPodDeletion defines the minimum age of a terminal pod before it will be deleted.
	MinimumAgeForTerminalPodDeletion time.Duration
}

FoundationDBBackupReconciler reconciles a FoundationDBCluster object

func (*FoundationDBBackupReconciler) Reconcile

func (r *FoundationDBBackupReconciler) Reconcile(
	ctx context.Context,
	request ctrl.Request,
) (ctrl.Result, error)

Reconcile runs the reconciliation logic.

func (*FoundationDBBackupReconciler) SetupWithManager

func (r *FoundationDBBackupReconciler) SetupWithManager(
	mgr ctrl.Manager,
	maxConcurrentReconciles int,
	selector metav1.LabelSelector,
) error

SetupWithManager prepares a reconciler for use.

type FoundationDBClusterReconciler

type FoundationDBClusterReconciler struct {
	client.Client
	Recorder                                    record.EventRecorder
	Log                                         logr.Logger
	EnableRestartIncompatibleProcesses          bool
	ServerSideApply                             bool
	EnableRecoveryState                         bool
	CacheDatabaseStatusForReconciliationDefault bool
	ReplaceOnSecurityContextChange              bool
	PodLifecycleManager                         podmanager.PodLifecycleManager
	PodClientProvider                           func(*fdbv1beta2.FoundationDBCluster, *corev1.Pod) (podclient.FdbPodClient, error)
	DatabaseClientProvider                      fdbadminclient.DatabaseClientProvider
	DeprecationOptions                          internal.DeprecationOptions
	GetTimeout                                  time.Duration
	PostTimeout                                 time.Duration
	MinimumRequiredUptimeCCBounce               time.Duration
	MaintenanceListStaleDuration                time.Duration
	MaintenanceListWaitDuration                 time.Duration
	// GlobalSynchronizationWaitDuration is the wait time for the operator when the synchronization mode is set to
	// global. The wait time defines the period where no updates for the according action should happen. Increasing the
	// wait time will increase the chances that all updates are part of the list but will also delay the rollout of
	// the change.
	GlobalSynchronizationWaitDuration time.Duration
	// MinimumUptimeForCoordinatorChangeWithMissingProcess defines the minimum uptime of the cluster before coordinator
	// changes because of a missing coordinator are allowed.
	MinimumUptimeForCoordinatorChangeWithMissingProcess time.Duration
	// MinimumUptimeForCoordinatorChangeWithUndesiredProcess defines the minimum uptime of the cluster before coordinator
	// changes because of an undesired coordinator are allowed.
	MinimumUptimeForCoordinatorChangeWithUndesiredProcess time.Duration
	// MinimumUptimeForConfigurationChanges defines the minimum uptime for the cluster before configuration changes
	// are allowed.
	MinimumUptimeForConfigurationChanges time.Duration

	// MinimumRecoveryTimeForInclusion defines the duration in seconds that a cluster must be up
	// before new inclusions are allowed. The operator issuing frequent inclusions in a short time window
	// could cause instability for the cluster as each inclusion will/can cause a recovery. Delaying the inclusion
	// of deleted process groups is not an issue as all the process groups that have no resources and are marked for
	// deletion and are fully excluded, will be batched together in a single inclusion call.
	MinimumRecoveryTimeForInclusion float64
	// MinimumRecoveryTimeForExclusion defines the duration in seconds that a cluster must be up
	// before new exclusions are allowed. The operator issuing frequent exclusions in a short time window
	// could cause instability for the cluster as each exclusion will/can cause a recovery.
	MinimumRecoveryTimeForExclusion float64
	// Namespace for the FoundationDBClusterReconciler, if empty the FoundationDBClusterReconciler will watch all namespaces.
	Namespace string
	// ClusterLabelKeyForNodeTrigger if set will trigger a reconciliation for all FoundationDBClusters that host a Pod
	// on the affected node.
	ClusterLabelKeyForNodeTrigger string
	SimulationOptions             SimulationOptions
	// MinimumAgeForTerminalPodDeletion defines the minimum age of a terminal pod before it will be deleted.
	MinimumAgeForTerminalPodDeletion time.Duration
	// Defines the threshold for the high run loop busy condition, the default is 1.0.
	HighRunLoopBusyThreshold float64
	// AllowedPodModifications defines the pod modification that are allowed for the user provided configuration. If a field
	// is unset in AllowedPodModifications, we allow everything to not break the current setups. In a new major release we could
	// change this and enforce that fields are only allowed to change if the according AllowedPodModifications is set.
	AllowedPodModifications *fdbv1beta2.AllowedPodModifications
}

FoundationDBClusterReconciler reconciles a FoundationDBCluster object

func NewFoundationDBClusterReconciler

func NewFoundationDBClusterReconciler(
	podLifecycleManager podmanager.PodLifecycleManager,
) *FoundationDBClusterReconciler

NewFoundationDBClusterReconciler creates a new FoundationDBClusterReconciler with defaults.

func (*FoundationDBClusterReconciler) Reconcile

func (r *FoundationDBClusterReconciler) Reconcile(
	ctx context.Context,
	request ctrl.Request,
) (ctrl.Result, error)

Reconcile runs the reconciliation logic.

func (*FoundationDBClusterReconciler) SetupWithManager

func (r *FoundationDBClusterReconciler) SetupWithManager(
	mgr ctrl.Manager,
	maxConcurrentReconciles int,
	selector metav1.LabelSelector,
	watchedObjects ...client.Object,
) error

SetupWithManager prepares the FoundationDBClusterReconciler for use.

type FoundationDBRestoreReconciler

type FoundationDBRestoreReconciler struct {
	client.Client
	Recorder               record.EventRecorder
	Log                    logr.Logger
	DatabaseClientProvider fdbadminclient.DatabaseClientProvider
	ServerSideApply        bool
}

FoundationDBRestoreReconciler reconciles a FoundationDBRestore object

func (*FoundationDBRestoreReconciler) Reconcile

func (r *FoundationDBRestoreReconciler) Reconcile(
	ctx context.Context,
	request ctrl.Request,
) (ctrl.Result, error)

Reconcile runs the reconciliation logic.

func (*FoundationDBRestoreReconciler) SetupWithManager

func (r *FoundationDBRestoreReconciler) SetupWithManager(
	mgr ctrl.Manager,
	maxConcurrentReconciles int,
	selector metav1.LabelSelector,
) error

SetupWithManager prepares a reconciler for use.

type SimulationOptions added in v2.8.0

type SimulationOptions struct {
	// SimulateZones if enabled the zone of pods will be replaced with a "simulation" zone.
	SimulateZones bool
	// SimulateTime is enabled the time checks in the exclude and update pods reconciler will be skipped.
	SimulateTime bool
}

SimulationOptions are used to define how the cluster reconciler should behave in the unit tests.

Jump to

Keyboard shortcuts

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