config

package
v0.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 24, 2025 License: PostgreSQL Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func LoadStruct

func LoadStruct(k *koanf.Koanf, config Config) error

func Provide

func Provide(i *do.Injector, sources ...*Source)

func UpdateInjectedConfig

func UpdateInjectedConfig(i *do.Injector)

Types

type Config

type Config struct {
	TenantID               string       `koanf:"tenant_id" json:"tenant_id,omitempty"`
	HostID                 string       `koanf:"host_id" json:"host_id,omitempty"`
	Orchestrator           Orchestrator `koanf:"orchestrator" json:"orchestrator,omitempty"`
	DataDir                string       `koanf:"data_dir" json:"data_dir,omitempty"`
	IPv4Address            string       `koanf:"ipv4_address" json:"ipv4_address,omitempty"`
	Hostname               string       `koanf:"hostname" json:"hostname,omitempty"`
	StopGracePeriodSeconds int64        `koanf:"stop_grace_period_seconds" json:"stop_grace_period_seconds,omitempty"`
	MQTT                   MQTT         `koanf:"mqtt" json:"mqtt,omitzero"`
	HTTP                   HTTP         `koanf:"http" json:"http,omitzero"`
	Logging                Logging      `koanf:"logging" json:"logging,omitzero"`
	EtcdMode               EtcdMode     `koanf:"etcd_mode" json:"etcd_mode,omitempty"`
	EtcdUsername           string       `koanf:"etcd_username" json:"etcd_username,omitempty"`
	EtcdPassword           string       `koanf:"etcd_password" json:"etcd_password,omitempty"`
	EtcdKeyRoot            string       `koanf:"etcd_key_root" json:"etcd_key_root,omitempty"`
	EtcdServer             EtcdServer   `koanf:"etcd_server" json:"etcd_server,omitzero"`
	EtcdClient             EtcdClient   `koanf:"etcd_client" json:"etcd_client,omitzero"`
	TraefikEnabled         bool         `koanf:"traefik_enabled" json:"traefik_enabled,omitempty"`
	VectorEnabled          bool         `koanf:"vector_enabled" json:"vector_enabled,omitempty"`
	DockerSwarm            DockerSwarm  `koanf:"docker_swarm" json:"docker_swarm,omitzero"`
	DatabaseOwnerUID       int          `koanf:"database_owner_uid" json:"database_owner_uid,omitempty"`
	ProfilingEnabled       bool         `koanf:"profiling_enabled" json:"profiling_enabled,omitempty"`
}

func DefaultConfig

func DefaultConfig() (Config, error)

func (Config) Validate

func (c Config) Validate() error

type DockerSwarm

type DockerSwarm struct {
	ImageRepositoryHost        string `koanf:"image_repository_host" json:"image_repository_host,omitempty"`
	BridgeNetworksCIDR         string `koanf:"bridge_networks_cidr" json:"bridge_networks_cidr,omitempty"`
	BridgeNetworksSubnetBits   int    `koanf:"bridge_networks_subnet_bits" json:"bridge_networks_subnet_bits,omitempty"`
	DatabaseNetworksCIDR       string `koanf:"database_networks_cidr" json:"database_networks_cidr,omitempty"`
	DatabaseNetworksSubnetBits int    `koanf:"database_networks_subnet_bits" json:"database_networks_subnet_bits,omitempty"`
}

type EtcdClient

type EtcdClient struct {
	LogLevel  string   `koanf:"log_level" json:"log_level,omitempty"`
	Endpoints []string `koanf:"endpoints" json:"endpoints,omitempty"`
}

type EtcdMode

type EtcdMode string
const (
	EtcdModeServer EtcdMode = "server"
	EtcdModeClient EtcdMode = "client"
)

type EtcdServer

type EtcdServer struct {
	LogLevel   string `koanf:"log_level" json:"log_level,omitempty"`
	PeerPort   int    `koanf:"peer_port" json:"peer_port,omitempty"`
	ClientPort int    `koanf:"client_port" json:"client_port,omitempty"`
}

type HTTP

type HTTP struct {
	Enabled    bool   `koanf:"enabled" json:"enabled,omitempty"`
	BindAddr   string `koanf:"bind_addr" json:"bind_addr,omitempty"`
	Port       int    `koanf:"port" json:"port,omitempty"`
	CACert     string `koanf:"ca_cert" json:"ca_cert,omitempty"`
	ServerCert string `koanf:"server_cert" json:"server_cert,omitempty"`
	ServerKey  string `koanf:"server_key" json:"server_key,omitempty"`
	ClientCert string `koanf:"client_cert" json:"client_cert,omitempty"`
	ClientKey  string `koanf:"client_key" json:"client_key,omitempty"`
}

type Logging

type Logging struct {
	Level  string `koanf:"level" json:"level,omitempty"`
	Pretty bool   `koanf:"pretty" json:"pretty,omitempty"`
}

type MQTT

type MQTT struct {
	Enabled   bool   `koanf:"enabled" json:"enabled,omitempty"`
	BrokerURL string `koanf:"broker_url" json:"broker_url,omitempty"`
	Topic     string `koanf:"topic" json:"topic,omitempty"`
	ClientID  string `koanf:"client_id" json:"client_id,omitempty"`
	Username  string `koanf:"username" json:"username,omitempty"`
	Password  string `koanf:"password" json:"password,omitempty"`
}

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

func NewManager

func NewManager(sources ...*Source) *Manager

func (*Manager) Config

func (m *Manager) Config() Config

func (*Manager) GeneratedConfig

func (m *Manager) GeneratedConfig() Config

func (*Manager) Load

func (m *Manager) Load() error

func (*Manager) UpdateGeneratedConfig

func (m *Manager) UpdateGeneratedConfig(config Config) error

type Orchestrator

type Orchestrator string
const (
	OrchestratorSwarm Orchestrator = "swarm"
)

type Source

type Source struct {
	Provider func(k *koanf.Koanf) koanf.Provider
	Parser   koanf.Parser
	Options  []koanf.Option
}

func NewEnvVarSource

func NewEnvVarSource() *Source

func NewJsonFileSource

func NewJsonFileSource(path string) *Source

func NewPFlagSource

func NewPFlagSource(flagSet *pflag.FlagSet) *Source

func NewStructSource

func NewStructSource(config Config) (*Source, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL