# Functions
AllProcessGroupConditionTypes returns all ProcessGroupConditionType.
ContainsProcessGroupID evaluates if the ProcessGroupStatus contains a given processGroupID.
CreateProcessCountsFromProcessGroupStatus creates a ProcessCounts struct from the current ProcessGroupStatus.
DesiredFaultTolerance returns the number of replicas we should be able to lose given a redundancy mode.
FilterByCondition returns a string slice of all ProcessGroupIDs that contains a condition with the given type.
FilterByConditions returns a string slice of all ProcessGroupIDs whose conditions match a set of rules.
FindProcessGroupByID finds a process group status for a given processGroupID.
GetFullAddressList gets the full list of public addresses we should use for a process.
GetProcessGroupConditionType returns the ProcessGroupConditionType for the matching string or an error.
GetProcessPort returns the expected port for a given process number and the tls setting.
MarkProcessGroupForRemoval sets the remove flag for the given process and ensures that the address is added.
MinimumFaultDomains returns the number of fault domains given a redundancy mode.
NewProcessAddress creates a new ProcessAddress if the provided string address is a valid IP address it will be set as IPAddress.
NewProcessGroupCondition creates a new ProcessGroupCondition of the given time with the current timestamp.
NewProcessGroupStatus returns a new GroupStatus for the given processGroupID and processClass.
ParseConnectionString parses a connection string from its string representation.
ParseFdbVersion parses a version from its string representation.
ParseProcessAddress parses a structured address from its string representation.
ParseProcessAddressesFromCmdline returns the ProcessAddress slice parsed from the commandline of the process.
ProcessAddressesString converts a slice of ProcessAddress into a string joined by the separator.
ProcessAddressesStringWithoutFlags converts a slice of ProcessAddress into a string joined by the separator without the flags.
SelectImageConfig selects image configs that apply to a version of FDB and merges them into a single config.
# Constants
AbortedFoundationDBRestoreState represents the aborted state.
BackupDeploymentLabel provides the label we use to connect backup deployments to a cluster.
BackupDeploymentPodLabel provides the label to select Pods for a specific Backup deployment.
BackupStatePaused defines the paused state.
BackupStateRunning defines the running state.
BackupStateStopped defines the stopped state.
CaFileKey defines the key name in the ConfigMap whose value contains the trusted certificate authority PEM.
ClusterFileKey defines the key name in the ConfigMap whose value is the content of the cluster file, the connection string.
CompletedFoundationDBRestoreState represents the completed state.
EnvNameAdditionalEnvFile if specified for the `foundationdb-kubernetes-sidecar` and `foundationdb-kubernetes-init` containers, its content will be sourced before any container command runs, and you can override or define there any other environment variable; this can be used for example to inject environment variables using a shared volume.
EnvNameBinaryDir specifies the path of the FDB binary's directory.
EnvNameClientThreadsPerVersion specifies the number of client threads to be spawned.
EnvNameClusterFile specifies the path to the cluster file.
EnvNameDNSName specifies the DNS locality (identifies the pod when using DNS).
EnvNameFDBExternalClientDir specifies path to search for dynamic libraries and adds them to the list of client libraries for use by the multi-version client API.
EnvNameFDBIgnoreExternalClientFailures specifies whether to ignore the failure to initialize some of the external clients TODO FDB 7.3 adds a check for loading external client library, which doesn't work with 6.3.
EnvNameFDBTraceLogDirPath enables trace logs output to a file in the given directory.
EnvNameFDBTraceLogGroup sets the 'LogGroup' attribute with the specified value for all events in the trace output files; default value is 'default'.
EnvNameInstanceID specifies the instance ID to the split-image-sidecar or unified FDB kubernetes monitor.
EnvNameMachineID specifies the Machine ID locality.
EnvNameNodeName tells the unified FDB kubernetes monitor the K8s node it is running on.
EnvNamePodIP will be used to set the listen address of the started fdbserver process.
EnvNamePodName tells the unified FDB kubernetes monitor the name of its pod.
EnvNamePodNamespace tells the unified FDB kubernetes monitor the K8s namespace it is running in.
EnvNamePublicIP will be used to set the public address of the started fdbserver process.
EnvNameTLSCaFile specifies the path to the certificate authority file for TLS connections.
EnvNameTLSCert specifies the path to the certificate file for TLS connections.
EnvNameTLSKeyFile specifies the path to the key file for TLS connections.
EnvNameTLSVerifyPeers specifies the peer verification rules for incoming TLS connections to the split-image sidecar.
EnvNameZoneID specifies Zone ID locality.
FDBClusterLabel represents the label that is used to represent the cluster of an instance.
FDBLocalityDataHallKey represents the key in the locality map that holds the data hall.
FDBLocalityDCIDKey represents the key in the locality map that holds the DC ID.
FDBLocalityDNSNameKey represents the key in the locality map that holds the DNS name for the pod.
FDBLocalityExclusionPrefix represents the exclusion prefix for locality based exclusions.
FDBLocalityInstanceIDKey represents the key in the locality map that holds the instance ID.
FDBLocalityMachineIDKey represents the key in the locality map that holds the machine ID.
FDBLocalityProcessIDKey represents the key in the locality map that holds the process ID.
FDBLocalityZoneIDKey represents the key in the locality map that holds the zone ID.
FDBProcessClassLabel represents the label that is used to represent the process class.
FDBProcessGroupIDLabel represents the label that is used to represent a instance ID.
FoundationDBBaseImage represents the default foundationdb base image used with ImageTypeSplit for the main container.
FoundationDBKubernetesBaseImage represents the default foundationdb base image used with ImageTypeUnified for the main and sidecar container.
FoundationDBSidecarBaseImage represents the default foundationdb sidecar base image used with ImageTypeSplit for the sidecar container.
ImageTypeAnnotation is an annotation key that specifies the image type of the Pod.
ImageTypeSplit defines the split image type.
ImageTypeUnified defines the unified image type.
IncorrectCommandLine represents a process group that has an incorrect commandline configuration.
IncorrectConfigMap represents a process group that has an incorrect ConfigMap.
IncorrectPodSpec represents a process group that has an incorrect Pod spec.
InitContainerName represents the container name of the init container.
IsolateProcessGroupAnnotation is the annotation that defines if the current Pod should be isolated.
LastConfigMapKey provides the annotation name we use to store the hash of the config map.
LastSpecKey provides the annotation name we use to store the hash of the pod spec.
MainContainerName represents the container name of the main FoundationDB container.
MissingPod represents a process group that doesn't have a Pod assigned.
MissingProcesses represents a process group that misses a process.
MissingPVC represents a process group that doesn't have a PVC assigned.
MissingService represents a process group that doesn't have a Service assigned.
NodeAnnotation is an annotation key that specifies where a Pod is currently running on.
NodeSelectorNoScheduleLabel is a label used when adding node selectors to block scheduling.
NodeTaintDetected represents a Pod's node is tainted but not long enough for operator to replace it.
NodeTaintReplacing represents a Pod whose node has been tainted and the operator should replace the Pod.
NoneFaultDomainKey represents the none fault domain, where every Pod is a fault domain.
PodFailing represents a process group which Pod keeps failing.
PodPending represents a process group where the pod is in a pending state.
PodUpdateModeAll deletes all process groups at once.
PodUpdateModeNone defines that the operator is not allowed to update/delete any Pods.
PodUpdateModeProcessGroup deletes one process group at a time.
PodUpdateModeZone deletes process groups in the same zone at the same time.
PodUpdateStrategyDelete delete all Pods if there is a spec change.
PodUpdateStrategyReplacement replace all Pods if there is a spec change.
PodUpdateStrategyTransactionReplacement replace all transaction system Pods if there is a spec change.
ProcessClassClusterController model for FDB class cluster_controller.
ProcessClassCommitProxy model for FDB commit_proxy processes.
ProcessClassCoordinator model for FDB class coordinator.
ProcessClassGeneral model for FDB general processes.
ProcessClassGrvProxy model for FDB grv_proxy processes.
ProcessClassLog model for FDB class log.
ProcessClassProxy model for FDB proxy processes.
ProcessClassStateless model for FDB stateless processes.
ProcessClassStorage model for FDB class storage.
ProcessClassTest model for FDB class test.
ProcessClassTransaction model for FDB class transaction.
ProcessHasIOError represents a process group that has an I/O error.
ProcessIsMarkedAsExcluded represents a process group where at least one process is excluded.
ProcessRoleClusterController model for FDB cluster_controller role.
ProcessRoleCommitProxy model for FDB commit_proxy role.
ProcessRoleCoordinator model for FDB coordinator role.
ProcessRoleDataDistributor model for FDB data_distributor role.
ProcessRoleGrvProxy model for FDB grv_proxy role.
ProcessRoleLog model for FDB log role.
ProcessRoleMaster model for FDB master role.
ProcessRoleProxy model for FDB proxy role.
ProcessRoleRatekeeper model for FDB ratekeeper role.
ProcessRoleResolver model for FDB resolver role.
ProcessRoleSequencer model for FDB sequencer role.
ProcessRoleStorage model for FDB storage role.
PublicIPAnnotation is an annotation key that specifies the current public IP for a pod.
PublicIPSourceAnnotation is an annotation key that specifies where a pod gets its public IP from.
PublicIPSourcePod specifies that a pod gets its IP from the pod IP.
PublicIPSourceService specifies that a pod gets its IP from a service.
QueuedFoundationDBRestoreState represents the queued state.
ReadyCondition is currently only used in the metrics.
RedundancyModeDouble defines the replication factor 2.
RedundancyModeOneSatelliteDouble defines the replication factor one_satellite_double.
RedundancyModeOneSatelliteSingle defines the replication factor one_satellite_single.
RedundancyModeSingle defines the replication factor 1.
RedundancyModeThreeDataHall defines the replication factor three_data_hall.
RedundancyModeTriple defines the replication factor 3.
RedundancyModeUnset defines the replication factor unset.
ResourcesTerminating represents a process group whose resources are being terminated.
RunningFoundationDBRestoreState represents the running state.
RunningVersionKey defines the key name in the ConfigMap whose value is the FDB version that the cluster is currently running.
SidecarConfKey defines the key name in the ConfigMap whose value contains the configuration for the sidecar.
SidecarContainerName represents the container name of the sidecar container.
SidecarUnreachable represents a process group where the sidecar is not reachable because of networking or TLS issues.
StartingFoundationDBRestoreState represents the starting state.
StorageEngineMemory defines the storage engine memory.
StorageEngineMemory2 defines the storage engine memory-2.
StorageEngineNone defines the storage engine none for the perpetual_storage_wiggle_engine option.
StorageEngineRedwood1 defines the storage engine ssd-redwood-1.
StorageEngineRedwood1Experimental defines the storage engine ssd-redwood-1-experimental.
StorageEngineRocksDbExperimental defines the storage engine ssd-rocksdb-experimental.
StorageEngineRocksDbV1 defines the storage engine ssd-rocksdb-v1.
StorageEngineShardedRocksDB defines the storage engine ssd-sharded-rocksdb.
StorageEngineSSD defines the storage engine ssd.
StorageEngineSSD2 defines the storage engine ssd-2.
StorageMigrationTypeAggressive defines the storage migration type aggressive.
StorageMigrationTypeDisabled defines the storage migration type disabled.
StorageMigrationTypeGradual defines the storage migration type gradual.
UninitializedFoundationDBRestoreState represents the uninitialized state.
UnknownFoundationDBRestoreState represents the unknown state.
# Variables
AddToScheme adds the types in this group-version to the given scheme.
GroupVersion is group version used to register these objects.
MaxProcessGroupIDNum is the upper limit for the process group ID numbers.
ProcessClasses provides a consistent ordered list of the supported process classes.
SchemeBuilder is used to add go types to the GroupVersionKind scheme.
Versions provides a shorthand for known versions.
# Structs
AutomaticReplacementOptions controls options for automatically replacing failed processes.
BackupGenerationStatus stores information on which generations have reached different stages in reconciliation for the backup.
BlobStoreConfiguration describes the blob store configuration.
BuggifyConfig provides options for injecting faults into a cluster for testing.
ClusterGenerationStatus stores information on which generations have reached different stages in reconciliation for the cluster.
ClusterHealth represents different views into health in the cluster status.
ConnectionString models the contents of a cluster file in a structured way.
ContainerOverrides provides options for customizing a container created by the operator.
CoordinatorSelectionSetting defines the process class and the priority of it.
CrashLoopContainerObject specifies crash-loop target for specific container.
DatabaseConfiguration represents the configuration of the database.
DataCenter represents a data center in the region configuration.
ExcludedServers represents the excluded servers in the database configuration.
FaultTolerance provides information about the fault tolerance status of the cluster.
FoundationDBBackup is the Schema for the foundationdbbackups API.
FoundationDBBackupList contains a list of FoundationDBBackup objects.
FoundationDBBackupSpec describes the desired state of the backup for a cluster.
FoundationDBBackupStatus describes the current status of the backup for a cluster.
FoundationDBBackupStatusBackupDetails provides information about the state of the backup in the cluster.
FoundationDBBounceImpact represents the bounce_impact part of the machine-readable status.
FoundationDBCluster is the Schema for the foundationdbclusters API.
FoundationDBClusterAutomationOptions provides flags for enabling or disabling operations that can be performed on a cluster.
FoundationDBClusterFaultDomain describes the fault domain that a cluster is replicated across.
FoundationDBClusterList contains a list of FoundationDBCluster objects.
FoundationDBClusterSpec defines the desired state of a cluster.
FoundationDBClusterStatus defines the observed state of FoundationDBCluster.
FoundationDBKeyRange describes a range of keys for a command.
FoundationDBLiveBackupStatus describes the live status of the backup for a cluster, as provided by the backup status command.
FoundationDBLiveBackupStatusState provides the state of a backup in the backup status.
FoundationDBRestore is the Schema for the foundationdbrestores API.
FoundationDBRestoreList contains a list of FoundationDBRestore objects.
FoundationDBRestoreSpec describes the desired state of the backup for a cluster.
FoundationDBRestoreStatus describes the current status of the restore for a cluster.
FoundationDBStatus describes the status of the cluster as provided by FoundationDB itself.
FoundationDBStatusBackupInfo provides information about backups that have been started.
FoundationDBStatusBackupTag provides information about a backup under a tag in the cluster status.
FoundationDBStatusClientDBStatus represents the databaseStatus field in the JSON database status.
FoundationDBStatusClusterClientInfo represents the connected client details in the cluster status.
FoundationDBStatusClusterInfo describes the "cluster" portion of the cluster status.
FoundationDBStatusConnectedClient provides information about a client that is connected to the database.
FoundationDBStatusCoordinator contains information about one of the coordinators.
FoundationDBStatusCoordinatorInfo contains information about the client's connection to the coordinators.
FoundationDBStatusDataState provides information about the state of data distribution.
FoundationDBStatusDataStatistics provides information about the data in the database.
FoundationDBStatusLagInfo provides information about the lag being experienced by a storage server in the cluster.
FoundationDBStatusLayerInfo provides information about layers that are running against the cluster.
FoundationDBStatusLocalClientInfo contains information about the client connection from the process getting the status.
FoundationDBStatusLogInfo provides information about the fault tolerance metrics of log processes in the cluster.
FoundationDBStatusMessage represents a message in the machine-readable status.
FoundationDBStatusMovingData provides information about the current data movement.
FoundationDBStatusProcessInfo describes the "processes" portion of the cluster status.
FoundationDBStatusProcessMessage represents an error message in the status json.
FoundationDBStatusProcessRoleInfo contains the minimal information from the process status roles.
FoundationDBStatusQosInfo provides information about various qos metrics of the cluster.
FoundationDBStatusSupportedVersion provides information about a version of FDB supported by the connected clients.
FoundationDBStatusTeamTracker provides information about the highest priority team.
FoundationDBUnreachableProcess provides information about an unreachable process.
ImageConfig provides a policy for customizing an image.
LabelConfig allows customizing labels used by the operator.
LockDenyListEntry models an entry in the deny list for the locking system.
LockOptions provides customization for locking global operations.
LockSystemStatus provides a summary of the status of the locking system.
MaintenanceModeInfo contains information regarding the zone and process groups that are put into maintenance mode by the operator.
MaintenanceModeOptions controls options for placing zones in maintenance mode.
None is a simple struct to create a set to indicate the value of the map has no meaning.
ProcessAddress provides a structured address for a process.
ProcessCounts represents the number of processes we have for each valid process class.
ProcessGroupCondition represents a degraded condition that a process group is in.
ProcessGroupStatus represents the status of a ProcessGroup.
ProcessSettings defines process-level settings.
RecoveryState represents the recovery state from the FDB cluster json.
Region represents a region in the database configuration.
RequiredAddressSet provides settings for which addresses we need to listen on.
RoleCounts represents the roles whose counts can be customized.
RoutingConfig allows configuring routing to our pods, and services that sit in front of them.
TaintReplacementOption defines the taint key and taint duration the operator will react to a tainted node Example of TaintReplacementOption - key: "example.org/maintenance" durationInSeconds: 7200 # Ensure the taint is present for at least 2 hours before replacing Pods on a node with this taint.
TimeoutError represents a timeout for either the fdb client library or fdbcli +k8s:deepcopy-gen=false.
Version represents a version of FoundationDB.
VersionFlags defines internal flags for new features in the database.
# Type aliases
BackupState defines the desired state of a backup.
FaultDomain represents the FaultDomain of a process group +kubebuilder:validation:MaxLength=512.
FoundationDBCustomParameter defines a single custom knob +kubebuilder:validation:MaxLength=100.
FoundationDBCustomParameters defines a slice of custom knobs +kubebuilder:validation:MaxItems=100.
FoundationDBRestoreState represents the states for a restore in FDB: https://github.com/apple/foundationdb/blob/fe47ce24d361a8c2d625c4d549f86ff98363de9e/fdbclient/FileBackupAgent.actor.cpp#L120-L140 +kubebuilder:validation:MaxLength=50.
ImageType defines a single kind of images used in the cluster.
LogGroup represents a LogGroup used by a FoundationDB process to log trace events.
PodUpdateMode defines the deletion mode for the cluster.
PodUpdateStrategy defines how Pod spec changes should be applied.
ProcessClass models the class of a pod.
ProcessGroupConditionType represents a concrete ProcessGroupCondition.
ProcessGroupID represents the ID of the process group +kubebuilder:validation:MaxLength=63 +kubebuilder:validation:Pattern:=^(([\w-]+)-(\d+)|\*)$.
ProcessRole models the role of a pod.
PublicIPSource models options for how a pod gets its public IP.
RedundancyMode defines the core replication factor for the database +kubebuilder:validation:MaxLength=100.
StorageEngine defines the storage engine for the database +kubebuilder:validation:MaxLength=100.
StorageMigrationType defines the storage migration type.
URLParameter defines a single URL parameter to pass to the blobstore.