Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { AllowLegacyElectors bool `toml:"i_understand_my_election_strategy_is_unsupported_and_will_be_removed_without_warning"` Reconciliation Reconciliation `toml:"reconciliation"` Replication Replication `toml:"replication"` ListenAddr string `toml:"listen_addr"` TLSListenAddr string `toml:"tls_listen_addr"` SocketPath string `toml:"socket_path"` VirtualStorages []*VirtualStorage `toml:"virtual_storage"` Logging log.Config `toml:"logging"` Sentry sentry.Config `toml:"sentry"` PrometheusListenAddr string `toml:"prometheus_listen_addr"` Prometheus prometheus.Config `toml:"prometheus"` Auth auth.Config `toml:"auth"` TLS config.TLS `toml:"tls"` DB `toml:"database"` Failover Failover `toml:"failover"` // Keep for legacy reasons: remove after Omnibus has switched FailoverEnabled bool `toml:"failover_enabled"` MemoryQueueEnabled bool `toml:"memory_queue_enabled"` GracefulStopTimeout config.Duration `toml:"graceful_stop_timeout"` RepositoriesCleanup RepositoriesCleanup `toml:"repositories_cleanup"` // ForceCreateRepositories will enable force-creation of repositories in the // coordinator when routing repository-scoped mutators. This must never be used // outside of tests. ForceCreateRepositories bool `toml:"force_create_repositories_for_testing_purposes"` }
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"` Port int `toml:"port"` User string `toml:"user"` Password string `toml:"password"` DBName string `toml:"dbname"` SSLMode string `toml:"sslmode"` SSLCert string `toml:"sslcert"` SSLKey string `toml:"sslkey"` SSLRootCert string `toml:"sslrootcert"` SessionPooled DBConnection `toml:"session_pooled"` // The following configuration keys are deprecated and // will be removed. Use Host and Port attributes of // SessionPooled instead. HostNoProxy string `toml:"host_no_proxy"` PortNoProxy int `toml:"port_no_proxy"` }
DB holds database configuration data.
func (DB) ToPQString ¶
ToPQString returns a connection string that can be passed to github.com/lib/pq.
type DBConnection ¶
type DBConnection struct { Host string `toml:"host"` Port int `toml:"port"` User string `toml:"user"` Password string `toml:"password"` DBName string `toml:"dbname"` SSLMode string `toml:"sslmode"` SSLCert string `toml:"sslcert"` SSLKey string `toml:"sslkey"` SSLRootCert string `toml:"sslrootcert"` }
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"` // ElectionStrategy is the strategy to use for electing primaries nodes. ElectionStrategy ElectionStrategy `toml:"election_strategy"` ErrorThresholdWindow config.Duration `toml:"error_threshold_window"` WriteErrorThresholdCount uint32 `toml:"write_error_threshold_count"` ReadErrorThresholdCount uint32 `toml:"read_error_threshold_count"` // BootstrapInterval allows set a time duration that would be used on startup to make initial health check. // The default value is 1s. BootstrapInterval config.Duration `toml:"bootstrap_interval"` // MonitorInterval allows set a time duration that would be used after bootstrap is completed to execute health checks. // The default value is 3s. MonitorInterval config.Duration `toml:"monitor_interval"` }
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"` Address string `toml:"address"` Token string `toml:"token"` }
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 config.Duration `toml:"scheduling_interval"` // HistogramBuckets configures the reconciliation scheduling duration histogram's buckets. HistogramBuckets []float64 `toml:"histogram_buckets"` }
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"` // 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"` }
Replication contains replication specific configuration options.
func DefaultReplicationConfig ¶
func DefaultReplicationConfig() Replication
DefaultReplicationConfig returns the default values for replication configuration.
type RepositoriesCleanup ¶ added in v14.4.0
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 config.Duration `toml:"check_interval"` // RunInterval: the check runs if the previous operation was done at least RunInterval before. RunInterval config.Duration `toml:"run_interval"` // RepositoriesInBatch is the number of repositories to pass as a batch for processing. RepositoriesInBatch int `toml:"repositories_in_batch"` }
RepositoriesCleanup configures repository synchronisation.
func DefaultRepositoriesCleanup ¶ added in v14.4.0
func DefaultRepositoriesCleanup() RepositoriesCleanup
DefaultRepositoriesCleanup contains default configuration values for the RepositoriesCleanup.
type VirtualStorage ¶
type VirtualStorage struct { Name string `toml:"name"` Nodes []*Node `toml:"node"` // 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"` }
VirtualStorage represents a set of nodes for a storage