config

package
v0.0.0-...-e8682ef Latest Latest
Warning

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

Go to latest
Published: Oct 3, 2024 License: MPL-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DisableIdleConnsEnv  = "BAO_PROXY_DISABLE_IDLE_CONNECTIONS"
	DisableKeepAlivesEnv = "BAO_PROXY_DISABLE_KEEP_ALIVES"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type APIProxy

type APIProxy struct {
	UseAutoAuthTokenRaw interface{} `hcl:"use_auto_auth_token"`
	UseAutoAuthToken    bool        `hcl:"-"`
	ForceAutoAuthToken  bool        `hcl:"-"`
}

APIProxy contains any configuration needed for proxy mode

type AutoAuth

type AutoAuth struct {
	Method *Method `hcl:"-"`
	Sinks  []*Sink `hcl:"sinks"`

	// NOTE: This is unsupported outside of testing and may disappear at any
	// time.
	EnableReauthOnNewCredentials bool `hcl:"enable_reauth_on_new_credentials"`
}

AutoAuth is the configured authentication method and sinks

type Cache

type Cache struct {
	Persist      *agentproxyshared.PersistConfig `hcl:"persist"`
	InProcDialer transportDialer                 `hcl:"-"`
}

Cache contains any configuration needed for Cache mode

type Config

type Config struct {
	*configutil.SharedConfig `hcl:"-"`

	AutoAuth                  *AutoAuth `hcl:"auto_auth"`
	ExitAfterAuth             bool      `hcl:"exit_after_auth"`
	Cache                     *Cache    `hcl:"cache"`
	APIProxy                  *APIProxy `hcl:"api_proxy""`
	Vault                     *Vault    `hcl:"vault"`
	DisableIdleConns          []string  `hcl:"disable_idle_connections"`
	DisableIdleConnsAPIProxy  bool      `hcl:"-"`
	DisableIdleConnsAutoAuth  bool      `hcl:"-"`
	DisableKeepAlives         []string  `hcl:"disable_keep_alives"`
	DisableKeepAlivesAPIProxy bool      `hcl:"-"`
	DisableKeepAlivesAutoAuth bool      `hcl:"-"`
}

Config is the configuration for Vault Proxy.

func LoadConfig

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

LoadConfig loads the configuration at the given path, regardless if it's a file or directory.

func LoadConfigDir

func LoadConfigDir(dir string) (*Config, error)

LoadConfigDir loads the configuration at the given path if it's a directory

func LoadConfigFile

func LoadConfigFile(path string) (*Config, error)

LoadConfigFile loads the configuration at the given path if it's a file

func NewConfig

func NewConfig() *Config

func (*Config) Merge

func (c *Config) Merge(c2 *Config) *Config

Merge merges two Proxy configurations.

func (*Config) Prune

func (c *Config) Prune()

func (*Config) ValidateConfig

func (c *Config) ValidateConfig() error

ValidateConfig validates a Vault configuration after it has been fully merged together, to ensure that required combinations of configs are there

type Method

type Method struct {
	Type          string
	MountPath     string        `hcl:"mount_path"`
	WrapTTLRaw    interface{}   `hcl:"wrap_ttl"`
	WrapTTL       time.Duration `hcl:"-"`
	MinBackoffRaw interface{}   `hcl:"min_backoff"`
	MinBackoff    time.Duration `hcl:"-"`
	MaxBackoffRaw interface{}   `hcl:"max_backoff"`
	MaxBackoff    time.Duration `hcl:"-"`
	Namespace     string        `hcl:"namespace"`
	ExitOnError   bool          `hcl:"exit_on_err"`
	Config        map[string]interface{}
}

Method represents the configuration for the authentication backend

type Retry

type Retry struct {
	NumRetries int `hcl:"num_retries"`
}

type Sink

type Sink struct {
	Type       string
	WrapTTLRaw interface{}   `hcl:"wrap_ttl"`
	WrapTTL    time.Duration `hcl:"-"`
	DHType     string        `hcl:"dh_type"`
	DeriveKey  bool          `hcl:"derive_key"`
	DHPath     string        `hcl:"dh_path"`
	AAD        string        `hcl:"aad"`
	AADEnvVar  string        `hcl:"aad_env_var"`
	Config     map[string]interface{}
}

Sink defines a location to write the authenticated token

type Vault

type Vault struct {
	Address          string      `hcl:"address"`
	CACert           string      `hcl:"ca_cert"`
	CAPath           string      `hcl:"ca_path"`
	TLSSkipVerify    bool        `hcl:"-"`
	TLSSkipVerifyRaw interface{} `hcl:"tls_skip_verify"`
	ClientCert       string      `hcl:"client_cert"`
	ClientKey        string      `hcl:"client_key"`
	TLSServerName    string      `hcl:"tls_server_name"`
	Retry            *Retry      `hcl:"retry"`
}

Vault contains configuration for connecting to Vault servers

Jump to

Keyboard shortcuts

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