Documentation ¶
Index ¶
- Constants
- type Argument
- type ArgumentType
- type ProcessConfiguration
- type Version
- func (version Version) Compact() string
- func (version Version) Equal(other Version) bool
- func (version Version) GetBinaryVersion() string
- func (version Version) IsAtLeast(other Version) bool
- func (version Version) IsProtocolCompatible(other Version) bool
- func (version *Version) MarshalJSON() ([]byte, error)
- func (version Version) NextMajorVersion() Version
- func (version Version) NextMinorVersion() Version
- func (version Version) NextPatchVersion() Version
- func (version Version) String() string
- func (version *Version) UnmarshalJSON(data []byte) error
Constants ¶
const ( // 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" // OutdatedConfigMapAnnotation is the annotation we read to get notified of // outdated configuration. OutdatedConfigMapAnnotation = "foundationdb.org/outdated-config-map-seen" // DelayShutdownAnnotation defines how long the FDB Kubernetes monitor process should sleep before shutting itself down. // The FDB Kubernetes monitor will always shutdown all fdbserver processes, independent of this setting. // The value of this annotation must be a duration like "60s". DelayShutdownAnnotation = "foundationdb.org/delay-shutdown" // ClusterFileChangeDetectedAnnotation is the annotation that will be updated if the fdb.cluster file is updated. ClusterFileChangeDetectedAnnotation = "foundationdb.org/cluster-file-change" // IsolateProcessGroupAnnotation is the annotation that defines if the current Pod should be isolated. Isolated // process groups will shutdown the fdbserver instance but keep the Pod and other Kubernetes resources running // for debugging purpose. IsolateProcessGroupAnnotation = "foundationdb.org/isolate-process-group" )
const ( // LiteralArgumentType defines an argument with a literal string value. LiteralArgumentType ArgumentType = "Literal" // ConcatenateArgumentType defines an argument composed of other arguments. ConcatenateArgumentType = "Concatenate" // EnvironmentArgumentType defines an argument that is pulled from an // environment variable. EnvironmentArgumentType = "Environment" // ProcessNumberArgumentType defines an argument that is calculated using // the number of the process in the process list. ProcessNumberArgumentType = "ProcessNumber" // IPListArgumentType defines an argument that is a comma-separated list of // IP addresses, provided through an environment variable. IPListArgumentType = "IPList" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Argument ¶
type Argument struct { // ArgumentType determines how the value is generated. ArgumentType ArgumentType `json:"type,omitempty"` // Value provides the value for a Literal type argument. Value string `json:"value,omitempty"` // Values provides the sub-values for a Concatenate type argument. Values []Argument `json:"values,omitempty"` // Source provides the name of the environment variable to use for an // Environment type argument. Source string `json:"source,omitempty"` // Multiplier provides a multiplier for the process number for ProcessNumber // type arguments. Multiplier int `json:"multiplier,omitempty"` // Offset provides an offset to add to the process number for ProcessNumber // type arguments. Offset int `json:"offset,omitempty"` // IPFamily provides the family to use for IPList type arguments. IPFamily int `json:"ipFamily,omitempty"` }
Argument defines an argument to the process.
func (Argument) GenerateArgument ¶
GenerateArgument processes an argument and generates its string representation.
type ProcessConfiguration ¶
type ProcessConfiguration struct { // Version provides the version of FoundationDB the process should run. Version *Version `json:"version"` // RunServers defines whether we should run the server processes. // This defaults to true, but you can set it to false to prevent starting // new fdbserver processes. RunServers *bool `json:"runServers,omitempty"` // BinaryPath provides the path to the binary to launch. BinaryPath string `json:"-"` // Arguments provides the arguments to the process. Arguments []Argument `json:"arguments,omitempty"` }
ProcessConfiguration models the configuration for starting a FoundationDB process.
func (*ProcessConfiguration) GenerateArguments ¶
func (configuration *ProcessConfiguration) GenerateArguments(processNumber int, env map[string]string) ([]string, error)
GenerateArguments interprets the arguments in the process configuration and generates a command invocation.
func (*ProcessConfiguration) ShouldRunServers ¶
func (configuration *ProcessConfiguration) ShouldRunServers() bool
ShouldRunServers returns true if RunServers is unset or set to true.
type Version ¶
type Version struct { // Major is the major version Major int // Minor is the minor version Minor int // Patch is the patch version Patch int // ReleaseCandidate is the number from the `-rc\d+` suffix version // of the version if it exists ReleaseCandidate int }
Version represents a version of FoundationDB.
This provides convenience methods for checking features available in different versions.
func ParseFdbVersion ¶
ParseFdbVersion parses a version from its string representation.
func (Version) GetBinaryVersion ¶
GetBinaryVersion Returns a version string compatible with the log implemented in the sidecars
func (Version) IsAtLeast ¶
IsAtLeast determines if a version is greater than or equal to another version.
func (Version) IsProtocolCompatible ¶
IsProtocolCompatible determines whether two versions of FDB are protocol compatible.
func (*Version) MarshalJSON ¶
MarshalJSON custom implementation of MarshalJSON
func (Version) NextMajorVersion ¶
NextMajorVersion returns the next major version of FoundationDB.
func (Version) NextMinorVersion ¶
NextMinorVersion returns the next minor version of FoundationDB.
func (Version) NextPatchVersion ¶
NextPatchVersion returns the next patch version of FoundationDB.
func (*Version) UnmarshalJSON ¶
UnmarshalJSON custom implementation of UnmarshalJSON