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 ResetLoadsConfig()
- func ResetNodesConfig()
- type Config
- type DaemonConfig
- type DiscoveryConfig
- type LoadsConfig
- type NetworkConfig
- type RegistryAuth
- type RegistryConfig
Constants ¶
This section is empty.
Variables ¶
View Source
var ( BuildGitCommit string Version = "dev" )
Functions ¶
func GetVersion ¶
func GetVersion() string
func ResetLoadsConfig ¶ added in v0.1.2
func ResetLoadsConfig()
func ResetNodesConfig ¶ added in v0.1.2
func ResetNodesConfig()
Types ¶
type Config ¶
type Config struct {
// Path to store realm data (ID file, etcd data, logs, mesh configs...).
// Default: /var/lib/realm (Linux) or %ProgramData%\realm (Windows)
DataPath string `json:"data_path"`
// 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:"-"`
// contains filtered or unexported fields
}
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 (*Config) GetLoadsGraph ¶ added in v0.1.2
func (Config) NeedsCloudInit ¶ added in v0.1.8
type DaemonConfig ¶
type DaemonConfig struct {
// 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"`
// Log output format.
// Valid values: "text", "json"
// Default: text
LogFormat string `json:"log_format"`
// Enables containers support.
// Default: true
Containers bool `json:"containers"`
// 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.
Click to show internal directories.
Click to hide internal directories.