config

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const DAEMON_DB_PATH = "/var/lib/ravel/daemon.db"
View Source
const LOGS_DIRECTORY = "/var/log/ravel"

Variables

This section is empty.

Functions

func SetDefaults

func SetDefaults(config *RavelConfig)

Types

type AgentConfig

type AgentConfig struct {
	NodeId        string        `json:"node_id" toml:"node_id"`
	Region        string        `json:"region" toml:"region"`
	Address       string        `json:"address" toml:"address"`
	Port          int           `json:"port" toml:"port"`
	HttpProxyPort int           `json:"http_proxy_port" toml:"http_proxy_port"`
	Resources     api.Resources `json:"resources" toml:"resources"`
	TLS           *TLSConfig    `json:"tls" toml:"tls"`
}

type CorrosionConfig

type CorrosionConfig struct {
	URL    string `json:"url" toml:"url"`
	Bearer string `json:"bearer" toml:"bearer"`
}

func (CorrosionConfig) Config

func (cc CorrosionConfig) Config() corroclient.Config

type DaemonConfig

type DaemonConfig struct {
	Socket       string         `json:"socket" toml:"socket"`
	DatabasePath string         `json:"database_path" toml:"database_path"`
	Agent        *AgentConfig   `json:"agent" toml:"agent"`
	Runtime      *RuntimeConfig `json:"runtime" toml:"runtime"`
}

type MachineResourcesTemplates

type MachineResourcesTemplates struct {
	VCPUFrequency int           `json:"vcpu_frequency" toml:"vcpu_frequency"`
	Combinations  []VCpusMemory `json:"combinations" toml:"combinations"`
}

type NatsConfig

type NatsConfig struct {
	Url      string `json:"url" toml:"url"`
	CredFile string `json:"cred_file" toml:"cred_file"`
}

func (NatsConfig) Connect

func (n NatsConfig) Connect() (*nats.Conn, error)

func (NatsConfig) Validate

func (n NatsConfig) Validate() error

type RavelConfig

type RavelConfig struct {
	Daemon     DaemonConfig              `json:"daemon" toml:"daemon"`
	Server     ServerConfig              `json:"server" toml:"server"`
	Corrosion  *CorrosionConfig          `json:"corrosion" toml:"corrosion"`
	Nats       *NatsConfig               `json:"nats" toml:"nats"`
	Registries registry.RegistriesConfig `json:"registries" toml:"registries"`
}

func ReadFile

func ReadFile(path string) (RavelConfig, error)

type RuntimeConfig

type RuntimeConfig struct {
	CloudHypervisorBinary string `json:"cloud_hypervisor_binary" toml:"cloud_hypervisor_binary"`
	JailerBinary          string `json:"jailer_binary" toml:"jailer_binary"`
	InitBinary            string `json:"init_binary" toml:"init_binary"`
	LinuxKernel           string `json:"linux_kernel" toml:"linux_kernel"`
}

type ServerAPIConfig

type ServerAPIConfig struct {
	Address     string     `json:"address" toml:"address"`
	BearerToken string     `json:"bearer_token" toml:"bearer_token"`
	TLS         *TLSConfig `json:"tls" toml:"tls"` // used to protect the API with (m)TLS
}

type ServerConfig

type ServerConfig struct {
	PostgresURL        string                               `json:"postgres_url" toml:"postgres_url"`
	MachineTemplates   map[string]MachineResourcesTemplates `json:"machine_templates" toml:"machine_templates"`
	TLS                *TLSConfig                           `json:"tls" toml:"tls"` // used for client auth against agents internal API
	API                ServerAPIConfig                      `json:"api" toml:"api"`
	MainRegistry       string                               `json:"main_registry" toml:"main_registry"`
	NamespacedRegistry bool                                 `json:"namespaced_registry" toml:"namespaced_registry"` // if true, ravel doesnt pull images from main registry if the repository name is different from the namespace
}

type TLSConfig

type TLSConfig struct {
	CaFile           string `json:"ca_file" toml:"ca_file"`
	CertFile         string `json:"cert_file" toml:"cert_file"`
	KeyFile          string `json:"key_file" toml:"key_file"`
	SkipVerifyServer bool   `json:"skip_verify_server" toml:"skip_verify_server"`
	SkipVerifyClient bool   `json:"skip_verify_client" toml:"skip_verify_client"`
}

func (*TLSConfig) LoadCA

func (c *TLSConfig) LoadCA() (*x509.CertPool, error)

func (*TLSConfig) LoadCert

func (c *TLSConfig) LoadCert() (tls.Certificate, error)

type VCpusMemory

type VCpusMemory struct {
	VCpus         int   `json:"vcpus" toml:"vcpus"`
	MemoryConfigs []int `json:"memory_configs" toml:"memory_configs"`
}

Jump to

Keyboard shortcuts

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