Documentation
¶
Overview ¶
nolint
Command rqlited is the rqlite server.
Index ¶
- Constants
- Variables
- type BuildInfo
- type Config
- type Rqlite
- func (r *Rqlite) Close() error
- func (r *Rqlite) Dsn() string
- func (r *Rqlite) InternalClientCredential() *client.BasicAuth
- func (r *Rqlite) IsLeader() bool
- func (r *Rqlite) LocalHttpAddr() string
- func (r *Rqlite) Run(ctx context.Context) error
- func (r *Rqlite) SqlDB() (*sql.DB, error)
- func (r *Rqlite) WaitForLeader(timeout time.Duration) error
- type StringSliceValue
Constants ¶
const ( DiscoModeNone = "" DiscoModeConsulKV = "consul-kv" DiscoModeEtcdKV = "etcd-kv" DiscoModeDNS = "dns" DiscoModeDNSSRV = "dns-srv" HTTPAddrFlag = "http-addr" HTTPAdvAddrFlag = "http-adv-addr" RaftAddrFlag = "raft-addr" RaftAdvAddrFlag = "raft-adv-addr" HTTPx509CertFlag = "http-cert" HTTPx509KeyFlag = "http-key" NodeX509CertFlag = "node-cert" NodeX509KeyFlag = "node-key" )
Variables ¶
var (
ErrNotRun = errors.New("rqlite runner is not initialized")
)
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// DataPath is path to node data. Always set.
DataPath string
// ExtensionPaths is a comma-delimited list of path to SQLite extensions to be loaded.
// Each element may be a directory path, zipfile, or tar.gz file. May not be set.
ExtensionPaths StringSliceValue
// HTTPAddr is the bind network address for the HTTP Server.
// It never includes a trailing HTTP or HTTPS.
HTTPAddr string
// HTTPAdv is the advertised HTTP server network.
HTTPAdv string
// HTTPAllowOrigin is the value to set for Access-Control-Allow-Origin HTTP header.
HTTPAllowOrigin string
// AuthFile is the path to the authentication file. May not be set.
AuthFile string `filepath:"true"`
// AutoBackupFile is the path to the auto-backup file. May not be set.
AutoBackupFile string `filepath:"true"`
// AutoRestoreFile is the path to the auto-restore file. May not be set.
AutoRestoreFile string `filepath:"true"`
// HTTPx509CACert is the path to the CA certificate file for when this node verifies
// other certificates for any HTTP communications. May not be set.
HTTPx509CACert string `filepath:"true"`
// HTTPx509Cert is the path to the X509 cert for the HTTP server. May not be set.
HTTPx509Cert string `filepath:"true"`
// HTTPx509Key is the path to the private key for the HTTP server. May not be set.
HTTPx509Key string `filepath:"true"`
// HTTPVerifyClient indicates whether the HTTP server should verify client certificates.
HTTPVerifyClient bool
// NodeX509CACert is the path to the CA certificate file for when this node verifies
// other certificates for any inter-node communications. May not be set.
NodeX509CACert string `filepath:"true"`
// NodeX509Cert is the path to the X509 cert for the Raft server. May not be set.
NodeX509Cert string `filepath:"true"`
// NodeX509Key is the path to the X509 key for the Raft server. May not be set.
NodeX509Key string `filepath:"true"`
// NoNodeVerify disables checking other nodes' Node X509 certs for validity.
NoNodeVerify bool
// NodeVerifyClient enable mutual TLS for node-to-node communication.
NodeVerifyClient bool
// NodeVerifyServerName is the hostname to verify on the certificates returned by nodes.
// If NoNodeVerify is true this field is ignored.
NodeVerifyServerName string
// NodeID is the Raft ID for the node.
NodeID string
// RaftAddr is the bind network address for the Raft server.
RaftAddr string
// RaftAdv is the advertised Raft server address.
RaftAdv string
// JoinAddrs is the list of Raft addresses to use for a join attempt.
JoinAddrs string
// JoinAttempts is the number of times a node should attempt to join using a
// given address.
JoinAttempts int
// JoinInterval is the time between retrying failed join operations.
JoinInterval time.Duration
// JoinAs sets the user join attempts should be performed as. May not be set.
JoinAs string
// BootstrapExpect is the minimum number of nodes required for a bootstrap.
BootstrapExpect int
// BootstrapExpectTimeout is the maximum time a bootstrap operation can take.
BootstrapExpectTimeout time.Duration
// DiscoMode sets the discovery mode. May not be set.
DiscoMode string
// DiscoKey sets the discovery prefix key.
DiscoKey string
// DiscoConfig sets the path to any discovery configuration file. May not be set.
DiscoConfig string
// OnDiskPath sets the path to the SQLite file. May not be set.
OnDiskPath string
// FKConstraints enables SQLite foreign key constraints.
FKConstraints bool
// AutoVacInterval sets the automatic VACUUM interval. Use 0s to disable.
AutoVacInterval time.Duration
// AutoOptimizeInterval sets the automatic optimization interval. Use 0s to disable.
AutoOptimizeInterval time.Duration
// RaftLogLevel sets the minimum logging level for the Raft subsystem.
RaftLogLevel string
// RaftNonVoter controls whether this node is a voting, read-only node.
RaftNonVoter bool
// RaftSnapThreshold is the number of outstanding log entries that trigger snapshot.
RaftSnapThreshold uint64
// RaftSnapThreshold is the size of a SQLite WAL file which will trigger a snapshot.
RaftSnapThresholdWALSize uint64
// RaftSnapInterval sets the threshold check interval.
RaftSnapInterval time.Duration
// RaftLeaderLeaseTimeout sets the leader lease timeout.
RaftLeaderLeaseTimeout time.Duration
// RaftHeartbeatTimeout specifies the time in follower state without contact
// from a Leader before the node attempts an election.
RaftHeartbeatTimeout time.Duration
// RaftElectionTimeout specifies the time in candidate state without contact
// from a Leader before the node attempts an election.
RaftElectionTimeout time.Duration
// RaftApplyTimeout sets the Log-apply timeout.
RaftApplyTimeout time.Duration
// RaftShutdownOnRemove sets whether Raft should be shutdown if the node is removed
RaftShutdownOnRemove bool
// RaftClusterRemoveOnShutdown sets whether the node should remove itself from the cluster on shutdown
RaftClusterRemoveOnShutdown bool
// RaftStepdownOnShutdown sets whether Leadership should be relinquished on shutdown
RaftStepdownOnShutdown bool
// RaftReapNodeTimeout sets the duration after which a non-reachable voting node is
// reaped i.e. removed from the cluster.
RaftReapNodeTimeout time.Duration
// RaftReapReadOnlyNodeTimeout sets the duration after which a non-reachable non-voting node is
// reaped i.e. removed from the cluster.
RaftReapReadOnlyNodeTimeout time.Duration
// ClusterConnectTimeout sets the timeout when initially connecting to another node in
// the cluster, for non-Raft communications.
ClusterConnectTimeout time.Duration
// WriteQueueCap is the default capacity of Execute queues
WriteQueueCap int
// WriteQueueBatchSz is the default batch size for Execute queues
WriteQueueBatchSz int
// WriteQueueTimeout is the default time after which any data will be sent on
// Execute queues, if a batch size has not been reached.
WriteQueueTimeout time.Duration
// WriteQueueTx controls whether writes from the queue are done within a transaction.
WriteQueueTx bool
// CPUProfile enables CPU profiling.
CPUProfile string
// MemProfile enables memory profiling.
MemProfile string
// TraceProfile enables trace profiling.
TraceProfile string
}
Config represents the configuration as set by command-line flags. All variables will be set, unless explicit noted.
func ParseFlags ¶
ParseFlags parses the command line, and returns the configuration.
func (*Config) CheckDirPaths ¶
CheckDirPaths checks that all directory paths in the config exist and are directories. Empty directory paths are ignored.
func (*Config) CheckFilePaths ¶
CheckFilePaths checks that all file paths in the config exist. Empty filepaths are ignored.
func (*Config) DiscoConfigReader ¶
func (c *Config) DiscoConfigReader() io.ReadCloser
DiscoConfigReader returns a ReadCloser providing access to the Disco config. The caller must call close on the ReadCloser when finished with it. If no config was supplied, it returns nil.
func (*Config) HTTPURL ¶
HTTPURL returns the fully-formed, advertised HTTP API address for this config, including protocol, host and port.
func (*Config) JoinAddresses ¶
JoinAddresses returns the join addresses set at the command line. Returns nil if no join addresses were set.
type Rqlite ¶
type Rqlite struct {
// contains filtered or unexported fields
}
func (*Rqlite) InternalClientCredential ¶
func (*Rqlite) LocalHttpAddr ¶
type StringSliceValue ¶
type StringSliceValue []string
StringSlice is a slice of strings which implments the flag.Value interface.
func (*StringSliceValue) Set ¶
func (s *StringSliceValue) Set(value string) error
Set sets the value of the slice.
func (*StringSliceValue) String ¶
func (s *StringSliceValue) String() string
String returns a string representation of the slice.