Documentation ¶
Index ¶
- Variables
- func DetermineRaftNode(ctx context.Context, tx *db.NodeTx) (*db.RaftNode, error)
- type Config
- func (c *Config) BGPAddress() string
- func (c *Config) BGPRouterID() string
- func (c *Config) ClusterAddress() string
- func (c *Config) DNSAddress() string
- func (c *Config) DebugAddress() string
- func (c *Config) Dump() map[string]any
- func (c *Config) HTTPSAddress() string
- func (c *Config) MAASMachine() string
- func (c *Config) MetricsAddress() string
- func (c *Config) Patch(patch map[string]any) (map[string]string, error)
- func (c *Config) Replace(values map[string]any) (map[string]string, error)
- func (c *Config) StorageBackupsVolume() string
- func (c *Config) StorageBucketsAddress() string
- func (c *Config) StorageImagesVolume() string
Constants ¶
This section is empty.
Variables ¶
var ConfigSchema = config.Schema{ "core.https_address": {Validator: validate.Optional(validate.IsListenAddress(true, true, false))}, "cluster.https_address": {Validator: validate.Optional(validate.IsListenAddress(true, false, false))}, "core.bgp_address": {Validator: validate.Optional(validate.IsListenAddress(true, true, false))}, "core.bgp_routerid": {Validator: validate.Optional(validate.IsNetworkAddressV4)}, "core.debug_address": {Validator: validate.Optional(validate.IsListenAddress(true, true, false))}, "core.dns_address": {Validator: validate.Optional(validate.IsListenAddress(true, true, false))}, "core.metrics_address": {Validator: validate.Optional(validate.IsListenAddress(true, true, false))}, "core.storage_buckets_address": {Validator: validate.Optional(validate.IsListenAddress(true, true, false))}, "maas.machine": {}, "storage.backups_volume": {}, "storage.images_volume": {}, }
ConfigSchema defines available server configuration keys.
Functions ¶
func DetermineRaftNode ¶
DetermineRaftNode figures out what raft node ID and address we have, if any.
This decision is based on the value of the cluster.https_address config key and on the rows in the raft_nodes table, both stored in the node-level SQLite database.
The following rules are applied:
If no cluster.https_address config key is set, this is a non-clustered node and the returned RaftNode will have ID 1 but no address, to signal that the node should setup an in-memory raft cluster where the node itself is the only member and leader.
If cluster.https_address config key is set, but there is no row in the raft_nodes table, this is a brand new clustered node that is joining a cluster, and same behavior as the previous case applies.
If cluster.https_address config key is set and there is at least one row in the raft_nodes table, then this node is considered a raft node if cluster.https_address matches one of the rows in raft_nodes. In that case, the matching db.RaftNode row is returned, otherwise nil.
Types ¶
type Config ¶
type Config struct {
// contains filtered or unexported fields
}
Config holds node-local configuration values for a certain LXD instance.
func ConfigLoad ¶
ConfigLoad loads a new Config object with the current node-local configuration values fetched from the database. An optional list of config value triggers can be passed, each config key must have at most one trigger.
func (*Config) BGPAddress ¶
BGPAddress returns the address and port to setup the BGP listener on.
func (*Config) BGPRouterID ¶
BGPRouterID returns the address to use as a router ID.
func (*Config) ClusterAddress ¶
ClusterAddress returns the address and port this LXD node should use for cluster communication.
func (*Config) DNSAddress ¶
DNSAddress returns the address and port to setup the DNS listener on.
func (*Config) DebugAddress ¶
DebugAddress returns the address and port to setup the pprof listener on.
func (*Config) Dump ¶
Dump current configuration keys and their values. Keys with values matching their defaults are omitted.
func (*Config) HTTPSAddress ¶
HTTPSAddress returns the address and port this LXD node should expose its API to, if any.
func (*Config) MAASMachine ¶
MAASMachine returns the MAAS machine this instance is associated with, if any.
func (*Config) MetricsAddress ¶
MetricsAddress returns the address and port to setup the metrics listener on.
func (*Config) StorageBackupsVolume ¶
StorageBackupsVolume returns the name of the pool/volume to use for storing backup tarballs.
func (*Config) StorageBucketsAddress ¶
StorageBucketsAddress returns the address and port to setup the storage buckets listener on.
func (*Config) StorageImagesVolume ¶
StorageImagesVolume returns the name of the pool/volume to use for storing image tarballs.