Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BackgroundVerification ¶
type BackgroundVerification struct { // VerificationInterval determines the duration after a replica due for reverification. // The feature is disabled if verification interval is 0 or below. VerificationInterval duration.Duration `toml:"verification_interval,omitempty"` // DeleteInvalidRecords controls whether the background verifier will actually delete the metadata // records that point to non-existent replicas. DeleteInvalidRecords bool `toml:"delete_invalid_records"` }
BackgroundVerification contains configuration options for the repository background verification.
func DefaultBackgroundVerificationConfig ¶
func DefaultBackgroundVerificationConfig() BackgroundVerification
DefaultBackgroundVerificationConfig returns the default background verification configuration.
type Config ¶
type Config struct { AllowLegacyElectors bool `toml:"i_understand_my_election_strategy_is_unsupported_and_will_be_removed_without_warning,omitempty"` BackgroundVerification BackgroundVerification `toml:"background_verification,omitempty"` Reconciliation Reconciliation `toml:"reconciliation,omitempty"` Replication Replication `toml:"replication,omitempty"` ListenAddr string `toml:"listen_addr,omitempty"` TLSListenAddr string `toml:"tls_listen_addr,omitempty"` SocketPath string `toml:"socket_path,omitempty"` VirtualStorages []*VirtualStorage `toml:"virtual_storage,omitempty"` Logging log.Config `toml:"logging,omitempty"` Sentry sentry.Config `toml:"sentry,omitempty"` PrometheusListenAddr string `toml:"prometheus_listen_addr,omitempty"` Prometheus prometheus.Config `toml:"prometheus,omitempty"` // PrometheusExcludeDatabaseFromDefaultMetrics excludes database-related metrics from the // default metrics. If set to `false`, then database metrics will be available both via // `/metrics` and `/db_metrics`. Otherwise, they will only be accessible via `/db_metrics`. // Defaults to `true`. This is used as a transitory configuration key: eventually, database // metrics will always be removed from the standard metrics endpoint. PrometheusExcludeDatabaseFromDefaultMetrics bool `toml:"prometheus_exclude_database_from_default_metrics,omitempty"` Auth auth.Config `toml:"auth,omitempty"` TLS config.TLS `toml:"tls,omitempty"` DB `toml:"database,omitempty"` Failover Failover `toml:"failover,omitempty"` // Keep for legacy reasons: remove after Omnibus has switched FailoverEnabled bool `toml:"failover_enabled,omitempty"` MemoryQueueEnabled bool `toml:"memory_queue_enabled,omitempty"` GracefulStopTimeout duration.Duration `toml:"graceful_stop_timeout,omitempty"` RepositoriesCleanup RepositoriesCleanup `toml:"repositories_cleanup,omitempty"` }
Config is a container for everything found in the TOML config file
func (Config) ConfigureLogger ¶
ConfigureLogger applies the settings from the configuration file to the logger, setting the log level and format.
func (Config) DefaultReplicationFactors ¶
DefaultReplicationFactors returns a map with the default replication factors of the virtual storages.
func (*Config) StorageNames ¶
StorageNames returns storage names by virtual storage.
func (*Config) VirtualStorageNames ¶
VirtualStorageNames returns names of all virtual storages configured.
type DB ¶
type DB struct { Host string `toml:"host,omitempty"` Port int `toml:"port,omitempty"` User string `toml:"user,omitempty"` Password string `toml:"password,omitempty"` DBName string `toml:"dbname,omitempty"` SSLMode string `toml:"sslmode,omitempty"` SSLCert string `toml:"sslcert,omitempty"` SSLKey string `toml:"sslkey,omitempty"` SSLRootCert string `toml:"sslrootcert,omitempty"` SessionPooled DBConnection `toml:"session_pooled,omitempty"` // The following configuration keys are deprecated and // will be removed. Use Host and Port attributes of // SessionPooled instead. HostNoProxy string `toml:"host_no_proxy,omitempty"` PortNoProxy int `toml:"port_no_proxy,omitempty"` }
DB holds database configuration data.
type DBConnection ¶
type DBConnection struct { Host string `toml:"host,omitempty"` Port int `toml:"port,omitempty"` User string `toml:"user,omitempty"` Password string `toml:"password,omitempty"` DBName string `toml:"dbname,omitempty"` SSLMode string `toml:"sslmode,omitempty"` SSLCert string `toml:"sslcert,omitempty"` SSLKey string `toml:"sslkey,omitempty"` SSLRootCert string `toml:"sslrootcert,omitempty"` }
DBConnection holds Postgres client configuration data.
type ElectionStrategy ¶
type ElectionStrategy string
ElectionStrategy is a Praefect primary election strategy.
const ( // ElectionStrategyLocal configures a single node, in-memory election strategy. ElectionStrategyLocal ElectionStrategy = "local" // ElectionStrategySQL configures an SQL based strategy that elects a primary for a virtual storage. ElectionStrategySQL ElectionStrategy = "sql" // ElectionStrategyPerRepository configures an SQL based strategy that elects different primaries per repository. ElectionStrategyPerRepository ElectionStrategy = "per_repository" )
type Failover ¶
type Failover struct { Enabled bool `toml:"enabled,omitempty"` // ElectionStrategy is the strategy to use for electing primaries nodes. ElectionStrategy ElectionStrategy `toml:"election_strategy,omitempty"` ErrorThresholdWindow duration.Duration `toml:"error_threshold_window,omitempty"` WriteErrorThresholdCount uint32 `toml:"write_error_threshold_count,omitempty"` ReadErrorThresholdCount uint32 `toml:"read_error_threshold_count,omitempty"` // BootstrapInterval allows set a time duration that would be used on startup to make initial health check. // The default value is 1s. BootstrapInterval duration.Duration `toml:"bootstrap_interval,omitempty"` // MonitorInterval allows set a time duration that would be used after bootstrap is completed to execute health checks. // The default value is 3s. MonitorInterval duration.Duration `toml:"monitor_interval,omitempty"` }
func (Failover) ErrorThresholdsConfigured ¶
ErrorThresholdsConfigured checks whether returns whether the errors thresholds are configured. If they are configured but in an invalid way, an error is returned.
type Node ¶
type Node struct { Storage string `toml:"storage,omitempty"` Address string `toml:"address,omitempty"` Token string `toml:"token,omitempty"` }
Node describes an address that serves a storage
func (Node) MarshalJSON ¶
type Reconciliation ¶
type Reconciliation struct { // SchedulingInterval the interval between each automatic reconciliation run. If set to 0, // automatic reconciliation is disabled. SchedulingInterval duration.Duration `toml:"scheduling_interval,omitempty"` // HistogramBuckets configures the reconciliation scheduling duration histogram's buckets. HistogramBuckets []float64 `toml:"histogram_buckets,omitempty"` }
Reconciliation contains reconciliation specific configuration options.
func DefaultReconciliationConfig ¶
func DefaultReconciliationConfig() Reconciliation
DefaultReconciliationConfig returns the default values for reconciliation configuration.
type Replication ¶
type Replication struct { // BatchSize controls how many replication jobs to dequeue and lock // in a single call to the database. BatchSize uint `toml:"batch_size,omitempty"` // ParallelStorageProcessingWorkers is a number of workers used to process replication // events per virtual storage (how many storages would be processed in parallel). ParallelStorageProcessingWorkers uint `toml:"parallel_storage_processing_workers,omitempty"` }
Replication contains replication specific configuration options.
func DefaultReplicationConfig ¶
func DefaultReplicationConfig() Replication
DefaultReplicationConfig returns the default values for replication configuration.
type RepositoriesCleanup ¶
type RepositoriesCleanup struct { // CheckInterval is a time period used to check if operation should be executed. // It is recommended to keep it less than run_interval configuration as some // nodes may be out of service, so they can be stale for too long. CheckInterval duration.Duration `toml:"check_interval,omitempty"` // RunInterval: the check runs if the previous operation was done at least RunInterval before. RunInterval duration.Duration `toml:"run_interval,omitempty"` // RepositoriesInBatch is the number of repositories to pass as a batch for processing. RepositoriesInBatch int `toml:"repositories_in_batch,omitempty"` }
RepositoriesCleanup configures repository synchronisation.
func DefaultRepositoriesCleanup ¶
func DefaultRepositoriesCleanup() RepositoriesCleanup
DefaultRepositoriesCleanup contains default configuration values for the RepositoriesCleanup.
type VirtualStorage ¶
type VirtualStorage struct { Name string `toml:"name,omitempty"` Nodes []*Node `toml:"node,omitempty"` // DefaultReplicationFactor is the replication factor set for new repositories. // A valid value is inclusive between 1 and the number of configured storages in the // virtual storage. Setting the value to 0 or below causes Praefect to not store any // host assignments, falling back to the behavior of replicating to every configured // storage DefaultReplicationFactor int `toml:"default_replication_factor,omitempty"` }
VirtualStorage represents a set of nodes for a storage