config

package
v0.32.4 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2023 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AgentConfig

type AgentConfig struct {
	Executions []AgentExecution `yaml:"executions"`
}

AgentConfig is the agent configuration.

type AgentExecution

type AgentExecution struct {
	// Args is the command arguments to pass for execution.
	Args []string `yaml:"args"`

	// Command is the name of the command to execute.
	Command string `yaml:"command"`

	Dir         string            `yaml:"dir"`
	Environment map[string]string `yaml:"environment"`

	// Events is the slice of names upon which to execute the given executions.
	Events []string `yaml:"events"`

	Filter map[string]interface{} `yaml:"filter"`
}

AgentExecution is a single execution instruction.

type BuilderConfig

type BuilderConfig struct {
	CacheDir   string `yaml:"cache_dir"`
	SSHKeyPath string `yaml:"ssh_key_path"`
}

type Config

type Config struct {
	Agent   *AgentConfig   `yaml:"agent,omitempty"`
	Builder *BuilderConfig `yaml:"builder,omitempty"`
	// Environments *[]EnvironmentConfig `yaml:"environments,omitempty"`
	GitWatch *GitWatchConfig `yaml:"gitwatch,omitempty"`
	HTTP     *HTTPConfig     `yaml:"http,omitempty"`
	// LDAP     *LDAPConfig     `yaml:"ldap,omitempty"`
	// Lights  *LightsConfig  `yaml:"lights,omitempty"`
	// MQTT    *MQTTConfig    `yaml:"mqtt,omitempty"`
	Network *NetworkConfig `yaml:"network,omitempty"`

	TLS *TLSConfig `yaml:"tls,omitempty"`

	RPC   *RPCConfig   `yaml:"rpc,omitempty"`
	Vault *VaultConfig `yaml:"vault,omitempty"`
}

Config stores the items that are required to configure this project.

func LoadConfig

func LoadConfig(file string) (*Config, error)

LoadConfig receives a file path for a configuration to load.

type EnvironmentConfig

type EnvironmentConfig struct {
	Name         string   `yaml:"name,omitempty"`
	SecretValues []string `yaml:"secret_values,omitempty"`
}

EnvironmentConfig is the environment configuration.

type GitWatchCollection

type GitWatchCollection struct {
	Name     string
	Repos    []GitWatchRepo `yaml:"repos"`
	Interval int            `yaml:"interval"`
}

type GitWatchConfig

type GitWatchConfig struct {
	CacheDir    string               `yaml:"cache_dir"`
	Repos       []GitWatchRepo       `yaml:"repos"`
	Interval    int                  `yaml:"interval"`
	SSHKeyPath  string               `yaml:"ssh_key_path"`
	Collections []GitWatchCollection `yaml:"collections"`
}

type GitWatchRepo

type GitWatchRepo struct {
	URL  string `yaml:"url"`
	Name string `yaml:"name"`
}

type HTTPConfig

type HTTPConfig struct {
	ListenAddress string `yaml:"listen_address,omitempty"`
}

HTTPConfig is the configuration for the listening HTTP server.

type JunosConfig

type JunosConfig struct {
	Hosts      []string `yaml:"hosts,omitempty"`
	Username   string   `yaml:"username,omitempty"`
	PrivateKey string   `yaml:"private_key,omitempty"`
}

JunosConfig is the configuration for Junos devices.

type NetworkConfig

type NetworkConfig struct {
	ScrapeInterval int         `yaml:"scrape_interval,omitempty"`
	Junos          JunosConfig `yaml:"junos,omitempty"`
}

NetworkConfig are the details needed for the network package.

type RPCConfig

type RPCConfig struct {
	AgentListenAddress string `yaml:"agent_listen_address,omitempty"`
	ListenAddress      string `yaml:"listen_address,omitempty"`
	ServerAddress      string `yaml:"server_address,omitempty"`
}

RPCConfig is the configuration for the RPC client and server.

type RepoConfig

type RepoConfig struct {
	OnTag    []string `yaml:"on_tag"`
	OnCommit []string `yaml:"on_commit"`
	Branches []string `yaml:"branches"`
}

type TLSConfig

type TLSConfig struct {
	// CN is the common name to use when issuing a new certificate.
	CN string `yaml:"cn"`

	// CAFile is the file path of the CA for vault HTTPs certificate.
	CAFile string `yaml:"ca_file"`

	// CacheDir is the directory to cache the TLS files in.
	CacheDir string `yaml:"cache_dir"`
}

TLSConfig is the configuration for an RPC TLS client and server.

type VaultConfig

type VaultConfig struct {
	Host       string `yaml:"host,omitempty"`
	TokenPath  string `yaml:"token_path,omitempty"`
	SecretRoot string `yaml:"secret_root,omitempty"`

	ClientKey  string `yaml:"client_key,omitempty"`
	ClientCert string `yaml:"client_cert,omitempty"`
	CACert     string `yaml:"ca_cert,omitempty"`
	LoginName  string `yaml:"login_name,omitempty"`
}

VaultConfig is the client configuration for Vault.

Jump to

Keyboard shortcuts

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