Documentation
¶
Index ¶
- Variables
- func GetLoadsConfigGraph() graph.Graph[string, string]
- func GetLoadsFromConfig(loadsFilter ...string) map[string]*common.Load
- func GetNodesFromConfig(nodesFilter ...string) map[string]*common.Node
- func GetVersion() string
- func Init(configFilePath *string) error
- func InitFromBuffer(buffer string) error
- func ResetConfig()
- type Config
- type DaemonConfig
- type DiscoveryConfig
- type LoadsConfig
- type NetworkConfig
- type RegistryAuth
- type RegistryConfig
Constants ¶
This section is empty.
Variables ¶
var BuildGitCommit string
Functions ¶
func GetVersion ¶
func GetVersion() string
func Init ¶
Init reads configuration from file or environment variables. If configFilePath is provided, it will be used instead of the default locations.
func InitFromBuffer ¶
func ResetConfig ¶
func ResetConfig()
Types ¶
type Config ¶
type Config struct {
// Client config
Nodes map[string]*common.NodeConfig `json:"nodes"`
Discovery DiscoveryConfig `json:"discovery"`
// Daemon config
Daemon DaemonConfig `json:"daemon"`
Loads LoadsConfig `json:"loads"`
// Autoconfigured network Config
NetworkConfig NetworkConfig `json:"-"`
}
func Get ¶
func Get() *Config
Get returns the global configuration instance.
This function should be called only after config.Init() or config.InitFromBuffer() have successfully initialized the configuration. If the configuration has not been initialized, Get will terminate the program with a fatal log message.
Returns:
- *Config: the initialized global configuration.
Panics/Fatal:
- Logs a fatal error and exits the program if the configuration has not been initialized before calling Get().
type DaemonConfig ¶
type DaemonConfig struct {
// Path to store daemon data (ID file and etcd data).
// Default: /var/lib/realm (Linux) or %ProgramData%\realm (Windows)
DataPath string `json:"data_path"`
// Path to CNI plugins.
// Default: /usr/lib/cni (Linux) or %ProgramData%\realm\cni (Windows)
CniPath string `json:"cni_path"`
// Name of the ZFS pool for container volumes.
// Default: realm_volumes
VolumesPool string `json:"volumes_pool"`
// Enable ZFS for volume management.
// When true, uses ZFS-based volume implementation.
// When false, uses directory-based volume implementation.
// Default: false
ZFS bool `json:"zfs"`
// Address to bind the daemon API.
// Default: 127.0.0.1
ListenAddress string `json:"listen_address"`
// Port to bind the daemon API.
// Default: 9000
ListenPort int `json:"listen_port"`
// Path to store daemon logs.
// Default: /var/log/realm (Linux) or %ProgramData%\realm\logs (Windows)
LogsPath common.LogsPath `json:"logs_path"`
// Log output format.
// Valid values: "text", "json"
// Default: text
LogFormat string `json:"log_format"`
// Enables or disables the reverse proxy.
// Default: false
ProxyEnabled bool `json:"proxy_enabled"`
// Local Caddy proxy URL.
// Default: localhost:2019
LocalCaddyUrl string `json:"local_caddy_url"`
// Master Caddy proxy URL.
// Default: localhost:2019
MasterCaddyUrl string `json:"master_caddy_url"`
// Registries holds authentication configuration for container registries.
// Default: empty (anonymous pulls)
Registries []RegistryConfig `json:"registries,omitempty"`
// Multicast address for herd communication.
HerdMcastAddress string `json:"herd_mcast_address"`
// Containerd socket path.
// Default: /run/containerd/containerd.sock (Linux) or npipe://./pipe/containerd-containerd (Windows)
ContainerdSock string `json:"containerd_sock"`
// Containerd namespace to use.
// Default: realm
ContainerdNamespace string `json:"containerd_namespace"`
// Etcd mode: "server" to run embedded etcd server, "client" to connect to external etcd.
// Valid values: "server", "client"
// Default: server
EtcdMode string `json:"etcd_mode"`
// Etcd endpoints to connect to when mode is "client".
// Example: ["http://node1:2379", "http://node2:2379"]
// Default: empty (uses EtcdListenClientUrl when in server mode)
EtcdEndpoints []string `json:"etcd_endpoints"`
// Etcd client URL.
// Default: http://<main-network-interface-ip>:2379 (auto-detected)
EtcdListenClientUrl string `json:"etcd_listen_client_url"`
// Etcd peer URL.
// Default: http://<main-network-interface-ip>:2380 (auto-detected)
EtcdListenPeerUrl string `json:"etcd_listen_peer_url"`
// Expected members of the cluster, and this is how to reach them via peer URLs.
// Left empty for single-node cluster
// Default: empty
EtcdInitialCluster string `json:"etcd_initial_cluster"`
}
DaemonConfig holds the configuration for the realm daemon. All fields are optional and have platform-specific or sensible defaults.
type DiscoveryConfig ¶
type DiscoveryConfig struct {
MdnsEnabled bool `json:"mdns"`
}
type LoadsConfig ¶
type LoadsConfig map[string]common.LoadConfig
type RegistryAuth ¶
type RegistryAuth struct {
Username string `json:"username,omitempty"`
Password string `json:"password,omitempty"`
Token string `json:"token,omitempty"`
}
RegistryAuth holds authentication credentials for a container registry. Token OR Username/Password should be set, not both.
type RegistryConfig ¶
type RegistryConfig struct {
Host string `json:"host"` // Registry host (e.g., "ghcr.io", "docker.io", "registry.example.com:5000")
Auth RegistryAuth `json:"auth"`
Insecure bool `json:"insecure,omitempty"` // Allow HTTP instead of HTTPS
}
RegistryConfig holds configuration for a container registry.