Documentation ¶
Index ¶
- Constants
- func BuildOwnerReference(ownerType metav1.TypeMeta, ownerMetadata metav1.ObjectMeta) []metav1.OwnerReference
- func CleanupOldCliLogs(minFileAge time.Duration)
- func CreateDefaultBackup(cluster *fdbtypes.FoundationDBCluster) *fdbtypes.FoundationDBBackup
- func CreateDefaultCluster() *fdbtypes.FoundationDBCluster
- func CreatePVCMap(cluster *fdbtypes.FoundationDBCluster, pvcs *corev1.PersistentVolumeClaimList) map[string]corev1.PersistentVolumeClaim
- func CreatePodMap(cluster *fdbtypes.FoundationDBCluster, pods []*corev1.Pod) map[string]*corev1.Pod
- func GetBackupDeployment(backup *fdbtypes.FoundationDBBackup) (*appsv1.Deployment, error)
- func GetConfigMap(cluster *v1beta1.FoundationDBCluster) (*corev1.ConfigMap, error)
- func GetConfigMapMonitorConfEntry(pClass v1beta1.ProcessClass, imageType FDBImageType, serversPerPod int) string
- func GetCoordinatorsFromStatus(status *fdbtypes.FoundationDBStatus) map[string]struct{}
- func GetDynamicConfHash(configMap *corev1.ConfigMap, pClass v1beta1.ProcessClass, ...) (string, error)
- func GetEnvVars(container v1.Container) map[string]*v1.EnvVar
- func GetHeadlessService(cluster *v1beta1.FoundationDBCluster) *v1.Service
- func GetImage(image string, configs []fdbtypes.ImageConfig, versionString string, ...) (string, error)
- func GetJSONHash(object interface{}) (string, error)
- func GetMonitorConf(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, ...) (string, error)
- func GetMonitorProcessConfiguration(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, ...) (monitorapi.ProcessConfiguration, error)
- func GetObjectMetadata(cluster *fdbtypes.FoundationDBCluster, base *metav1.ObjectMeta, ...) metav1.ObjectMeta
- func GetPod(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, ...) (*corev1.Pod, error)
- func GetPodLabels(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, ...) map[string]string
- func GetPodListOptions(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, ...) []client.ListOption
- func GetPodMatchLabels(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, ...) map[string]string
- func GetPodMetadata(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, ...) metav1.ObjectMeta
- func GetPodSpec(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, ...) (*corev1.PodSpec, error)
- func GetPodSpecHash(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, ...) (string, error)
- func GetProcessClassFromMeta(cluster *fdbtypes.FoundationDBCluster, metadata v1.ObjectMeta) fdbtypes.ProcessClass
- func GetProcessGroupID(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, ...) (string, string)
- func GetProcessGroupIDFromMeta(cluster *fdbtypes.FoundationDBCluster, metadata metav1.ObjectMeta) string
- func GetPublicIPSource(pod *corev1.Pod) (fdbtypes.PublicIPSource, error)
- func GetPublicIPsForPod(pod *corev1.Pod) []string
- func GetPvc(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, ...) (*corev1.PersistentVolumeClaim, error)
- func GetPvcMetadata(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, ...) metav1.ObjectMeta
- func GetService(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, ...) (*corev1.Service, error)
- func GetSidecarImage(cluster *fdbtypes.FoundationDBCluster, pClass fdbtypes.ProcessClass) (string, error)
- func GetSinglePodListOptions(cluster *fdbtypes.FoundationDBCluster, processGroupID string) []client.ListOption
- func GetStartCommand(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, ...) (string, error)
- func GetStorageServersPerPodForPod(pod *corev1.Pod) (int, error)
- func HasDesiredFaultTolerance(adminClient fdbadminclient.AdminClient, cluster *fdbtypes.FoundationDBCluster) (bool, error)
- func IsNetworkError(err error) bool
- func IsTimeoutError(err error) bool
- func NewFdbPodClient(cluster *fdbtypes.FoundationDBCluster, pod *corev1.Pod) (podclient.FdbPodClient, error)
- func NewMockFdbPodClient(cluster *fdbtypes.FoundationDBCluster, pod *corev1.Pod) (podclient.FdbPodClient, error)
- func NormalizeClusterSpec(cluster *fdbtypes.FoundationDBCluster, options DeprecationOptions) error
- func ParseProcessGroupID(id string) (fdbtypes.ProcessClass, int, error)
- func ProcessClassFromLabels(cluster *fdbtypes.FoundationDBCluster, labels map[string]string) fdbtypes.ProcessClass
- type DeprecationOptions
- type FDBImageType
Constants ¶
const ( // OldFDBProcessGroupIDLabel represents the label that is used to represent a instance ID // Deprecated: This label will not be applied by default in the future. OldFDBProcessGroupIDLabel = "fdb-instance-id" // OldFDBProcessClassLabel represents the label that is used to represent the process class // Deprecated: This label will not be applied by default in the future. OldFDBProcessClassLabel = "fdb-process-class" // OldFDBClusterLabel represents the label that is used to represent the cluster of an instance // Deprecated: This label will not be applied by default in the future. OldFDBClusterLabel = "fdb-cluster-name" )
const ( // MockUnreachableAnnotation defines if a Pod should be unreachable. This annotation // is currently only used for testing cases. MockUnreachableAnnotation = "foundationdb.org/mock-unreachable" // FDBImageTypeUnified indicates that a pod is using a unified image for the // main container and sidecar container. FDBImageTypeUnified FDBImageType = "unified" // FDBImageTypeSplit indicates that a pod is using a different image for the // main container and sidecar container. FDBImageTypeSplit FDBImageType = "split" // CurrentConfigurationAnnotation is the annotation we use to store the // latest configuration. CurrentConfigurationAnnotation = "foundationdb.org/launcher-current-configuration" // EnvironmentAnnotation is the annotation we use to store the environment // variables. EnvironmentAnnotation = "foundationdb.org/launcher-environment" )
const (
// ClusterFileKey defines the key name in the ConfigMap
ClusterFileKey = "cluster-file"
)
Variables ¶
This section is empty.
Functions ¶
func BuildOwnerReference ¶ added in v0.39.2
func BuildOwnerReference(ownerType metav1.TypeMeta, ownerMetadata metav1.ObjectMeta) []metav1.OwnerReference
BuildOwnerReference returns an OwnerReference for the provided input
func CleanupOldCliLogs ¶ added in v0.39.0
CleanupOldCliLogs removes old fdbcli log files.
func CreateDefaultBackup ¶ added in v0.39.2
func CreateDefaultBackup(cluster *fdbtypes.FoundationDBCluster) *fdbtypes.FoundationDBBackup
CreateDefaultBackup creates a defaultFoundationDBCluster for testing
func CreateDefaultCluster ¶ added in v0.39.2
func CreateDefaultCluster() *fdbtypes.FoundationDBCluster
CreateDefaultCluster creates a default FoundationDBCluster for testing
func CreatePVCMap ¶ added in v0.45.0
func CreatePVCMap(cluster *fdbtypes.FoundationDBCluster, pvcs *corev1.PersistentVolumeClaimList) map[string]corev1.PersistentVolumeClaim
CreatePVCMap creates a map with the process group ID as a key and the according PVC as a value
func CreatePodMap ¶ added in v0.45.0
CreatePodMap creates a map with the process group ID as a key and the according Pod as a value
func GetBackupDeployment ¶ added in v0.39.2
func GetBackupDeployment(backup *fdbtypes.FoundationDBBackup) (*appsv1.Deployment, error)
GetBackupDeployment builds a deployment for backup agents for a cluster.
func GetConfigMap ¶ added in v0.39.2
func GetConfigMap(cluster *v1beta1.FoundationDBCluster) (*corev1.ConfigMap, error)
GetConfigMap builds a config map for a cluster's dynamic config
func GetConfigMapMonitorConfEntry ¶ added in v0.39.2
func GetConfigMapMonitorConfEntry(pClass v1beta1.ProcessClass, imageType FDBImageType, serversPerPod int) string
GetConfigMapMonitorConfEntry returns the specific key for the monitor conf in the ConfigMap
func GetCoordinatorsFromStatus ¶ added in v0.37.0
func GetCoordinatorsFromStatus(status *fdbtypes.FoundationDBStatus) map[string]struct{}
GetCoordinatorsFromStatus gets the current coordinators from the status. The returning set will contain all processes by their process group ID.
func GetDynamicConfHash ¶ added in v0.39.2
func GetDynamicConfHash(configMap *corev1.ConfigMap, pClass v1beta1.ProcessClass, imageType FDBImageType, serversPerPod int) (string, error)
GetDynamicConfHash gets a hash of the data from the config map holding the cluster's dynamic conf.
This will omit keys that we do not expect the Pods to reference e.g. for storage Pods only include the storage config.
func GetEnvVars ¶ added in v0.39.2
GetEnvVars returns a HashMap of EnvVars for the container
func GetHeadlessService ¶ added in v0.39.2
func GetHeadlessService(cluster *v1beta1.FoundationDBCluster) *v1.Service
GetHeadlessService builds a headless service for a FoundationDB cluster.
func GetImage ¶ added in v0.39.2
func GetImage(image string, configs []fdbtypes.ImageConfig, versionString string, allowOverride bool) (string, error)
GetImage returns the image for container
func GetJSONHash ¶ added in v0.39.2
GetJSONHash serializes an object to JSON and takes a hash of the resulting JSON.
func GetMonitorConf ¶ added in v0.39.2
func GetMonitorConf(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, podClient podclient.FdbPodClient, serversPerPod int) (string, error)
GetMonitorConf builds the monitor conf template
func GetMonitorProcessConfiguration ¶ added in v0.49.0
func GetMonitorProcessConfiguration(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, processCount int, imageType FDBImageType, customParameterSubstitutions map[string]string) (monitorapi.ProcessConfiguration, error)
GetMonitorProcessConfiguration builds the monitor conf template for the unifed image.
func GetObjectMetadata ¶ added in v0.39.2
func GetObjectMetadata(cluster *fdbtypes.FoundationDBCluster, base *metav1.ObjectMeta, processClass fdbtypes.ProcessClass, id string) metav1.ObjectMeta
GetObjectMetadata returns the ObjectMetadata for a process
func GetPod ¶ added in v0.39.2
func GetPod(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, idNum int) (*corev1.Pod, error)
GetPod builds a pod for a new process group
func GetPodLabels ¶ added in v0.44.0
func GetPodLabels(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, id string) map[string]string
GetPodLabels creates the labels that we will apply to a Pod
func GetPodListOptions ¶ added in v0.39.2
func GetPodListOptions(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, id string) []client.ListOption
GetPodListOptions returns the listOptions to list Pods
func GetPodMatchLabels ¶ added in v0.44.0
func GetPodMatchLabels(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, id string) map[string]string
GetPodMatchLabels creates the labels that we will use when filtering for a pod.
func GetPodMetadata ¶ added in v0.39.2
func GetPodMetadata(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, id string, specHash string) metav1.ObjectMeta
GetPodMetadata returns the metadata for a specific Pod
func GetPodSpec ¶ added in v0.39.2
func GetPodSpec(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, idNum int) (*corev1.PodSpec, error)
GetPodSpec builds a pod spec for a FoundationDB pod
func GetPodSpecHash ¶ added in v0.39.2
func GetPodSpecHash(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, id int, spec *corev1.PodSpec) (string, error)
GetPodSpecHash builds the hash of the expected spec for a pod.
func GetProcessClassFromMeta ¶
func GetProcessClassFromMeta(cluster *fdbtypes.FoundationDBCluster, metadata v1.ObjectMeta) fdbtypes.ProcessClass
GetProcessClassFromMeta fetches the process class from an object's metadata.
func GetProcessGroupID ¶ added in v0.48.0
func GetProcessGroupID(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, idNum int) (string, string)
GetProcessGroupID generates an ID for a process group.
This will return the pod name and the processGroupID ID.
func GetProcessGroupIDFromMeta ¶ added in v0.44.0
func GetProcessGroupIDFromMeta(cluster *fdbtypes.FoundationDBCluster, metadata metav1.ObjectMeta) string
GetProcessGroupIDFromMeta fetches the process group ID from an object's metadata.
func GetPublicIPSource ¶ added in v0.46.0
func GetPublicIPSource(pod *corev1.Pod) (fdbtypes.PublicIPSource, error)
GetPublicIPSource determines how a Pod has gotten its public IP.
func GetPublicIPsForPod ¶ added in v0.39.2
GetPublicIPsForPod returns the public IPs for a Pod
func GetPvc ¶ added in v0.39.2
func GetPvc(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, idNum int) (*corev1.PersistentVolumeClaim, error)
GetPvc builds a persistent volume claim for a FoundationDB process group.
func GetPvcMetadata ¶ added in v0.39.2
func GetPvcMetadata(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, id string) metav1.ObjectMeta
GetPvcMetadata returns the metadata for a PVC
func GetService ¶ added in v0.39.2
func GetService(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, idNum int) (*corev1.Service, error)
GetService builds a service for a new process group
func GetSidecarImage ¶ added in v0.44.0
func GetSidecarImage(cluster *fdbtypes.FoundationDBCluster, pClass fdbtypes.ProcessClass) (string, error)
GetSidecarImage returns the expected sidecar image for a specific process class
func GetSinglePodListOptions ¶ added in v0.39.2
func GetSinglePodListOptions(cluster *fdbtypes.FoundationDBCluster, processGroupID string) []client.ListOption
GetSinglePodListOptions returns the listOptions to list a single Pod
func GetStartCommand ¶ added in v0.39.2
func GetStartCommand(cluster *fdbtypes.FoundationDBCluster, processClass fdbtypes.ProcessClass, podClient podclient.FdbPodClient, processNumber int, processCount int) (string, error)
GetStartCommand builds the expected start command for a process group.
func GetStorageServersPerPodForPod ¶ added in v0.39.2
GetStorageServersPerPodForPod returns the value of STORAGE_SERVERS_PER_POD from the sidecar or 1
func HasDesiredFaultTolerance ¶ added in v0.44.0
func HasDesiredFaultTolerance(adminClient fdbadminclient.AdminClient, cluster *fdbtypes.FoundationDBCluster) (bool, error)
HasDesiredFaultTolerance checks if the cluster has the desired fault tolerance.
func IsNetworkError ¶ added in v0.39.1
IsNetworkError returns true if the network is a network error net.Error
func IsTimeoutError ¶ added in v0.48.0
IsTimeoutError returns true if the observed error was a timeout error
func NewFdbPodClient ¶ added in v0.39.2
func NewFdbPodClient(cluster *fdbtypes.FoundationDBCluster, pod *corev1.Pod) (podclient.FdbPodClient, error)
NewFdbPodClient builds a client for working with an FDB Pod
func NewMockFdbPodClient ¶ added in v0.39.2
func NewMockFdbPodClient(cluster *fdbtypes.FoundationDBCluster, pod *corev1.Pod) (podclient.FdbPodClient, error)
NewMockFdbPodClient builds a mock client for working with an FDB pod
func NormalizeClusterSpec ¶
func NormalizeClusterSpec(cluster *fdbtypes.FoundationDBCluster, options DeprecationOptions) error
NormalizeClusterSpec converts a cluster spec into an unambiguous, future-proof form, by applying any implicit defaults and moving configuration from deprecated fields into fully-supported fields.
func ParseProcessGroupID ¶ added in v0.46.0
func ParseProcessGroupID(id string) (fdbtypes.ProcessClass, int, error)
ParseProcessGroupID extracts the components of an process group ID.
func ProcessClassFromLabels ¶
func ProcessClassFromLabels(cluster *fdbtypes.FoundationDBCluster, labels map[string]string) fdbtypes.ProcessClass
ProcessClassFromLabels extracts the ProcessClass label from the metav1.ObjectMeta.Labels map
Types ¶
type DeprecationOptions ¶
type DeprecationOptions struct { // Whether we should apply the latest defaults rather than the defaults that // were initially established for this major version. UseFutureDefaults bool // Whether we should only fill in defaults that have changes between major // versions of the operator. OnlyShowChanges bool }
DeprecationOptions controls how deprecations and changes to defaults get applied to our specs.
type FDBImageType ¶ added in v0.49.0
type FDBImageType string
FDBImageType describes a type of image a pod or cluster is using.
func GetDesiredImageType ¶ added in v0.49.0
func GetDesiredImageType(cluster *fdbtypes.FoundationDBCluster) FDBImageType
GetDesiredImageType determines whether a cluster is configured to use the unified or the split image.
func GetImageType ¶ added in v0.49.0
func GetImageType(pod *corev1.Pod) FDBImageType
GetImageType determines whether a pod is using the unified or the split image.