Documentation ¶
Index ¶
- func MergeConfig(into, from *Config) error
- func MergeConfigFromEnv(cfg *Config) error
- func MergeTeleConfig(into, from *telecfg.FileConfig) error
- func MergeTeleConfigFromEnv(cfg *telecfg.FileConfig) error
- func ReplacePublicAddrs(into, from *service.Config)
- type ChartsConfig
- type Config
- type Identity
- type Locators
- type OpsCenterConfig
- type PackageServiceConfig
- type ProfileConfig
- type User
- type Users
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MergeConfig ¶
MergeConfig merges config from one into another, note that it does not support all fields as it's not necessary yet, mostly external configuration ones
func MergeConfigFromEnv ¶
func MergeTeleConfig ¶
func MergeTeleConfig(into, from *telecfg.FileConfig) error
func MergeTeleConfigFromEnv ¶
func MergeTeleConfigFromEnv(cfg *telecfg.FileConfig) error
func ReplacePublicAddrs ¶
ReplacePublicAddrs replaces public addresses of all services in the specified config from the provided config.
Types ¶
type ChartsConfig ¶
type ChartsConfig struct { // Backend is the chart repository backend. // // Currently only cluster-local backend is supported (i.e. repository // index file and charts are stored in the cluster's database/object // storage). Other backends, such as S3, will/can be added later. Backend string `yaml:"backend"` }
ChartsConfig defines Helm charts repository configuration.
func (*ChartsConfig) CheckAndSetDefaults ¶
func (c *ChartsConfig) CheckAndSetDefaults() error
CheckAndSetDefaults validates chart repository configuration.
type Config ¶
type Config struct { Hostname string `yaml:"hostname"` // Mode specifies operation mode, either opscenter or site Mode string `yaml:"mode"` // Profile specifies performance profiling settings Profile ProfileConfig `yaml:"profile"` // Devmode defines a development mode that takes several shortcuts in favor // of simplicity. // In this mode the following things are different: // - web assets are assumed in certain static locations (and not as a package) // - SSL traffic uses self-signed certificates Devmode bool `yaml:"devmode"` // ClusterName is used in wizard mode to indicate the name of the cluster // that is being installed ClusterName string `yaml:"-"` // WebAssetsDir defines the location of the web assets. // If unspecified, defaults to: // * web/dist (relative to current directory, when Devmode == true) // * GravityWebAssetsDir WebAssetsDir string `yaml:"web_assets_dir"` // DataDir is a directory with local database and package files DataDir string `yaml:"data_dir"` // HealthAddr provides HTTP API for health and readiness checks HealthAddr teleutils.NetAddr `yaml:"health_addr"` // BackendType is a type of storage backend BackendType string `yaml:"backend_type"` // ETCD provides etcd config options ETCD keyval.ETCDConfig `yaml:"etcd"` // OpsCenter provides settings for OpsCenter OpsCenter OpsCenterConfig `yaml:"ops"` // Pack provides settings for package service Pack PackageServiceConfig `yaml:"pack"` // Charts is Helm chart repository configuration. Charts ChartsConfig `yaml:"charts"` // Users list allows to add registered users to the application // e.g. application admins, what is handy for development purposes Users Users `yaml:"users"` // InstallLogFiles is a list of install log files with user // facing diagnostic logs InstallLogFiles []string `yaml:"install_log_files"` // ImportDir specifies optional directory with bootstrap data. // // An instance of gravity working in site mode will use this location // to bootstrap itself with the data from Ops Center ImportDir string `yaml:"-"` // ServiceUser specifies the service user to use for wizard-based installation. ServiceUser *systeminfo.User `yaml:"-"` // InstallToken specifies the authentication token for the install operation InstallToken string `yaml:"-"` }
Config is a gravity specific file config
func ReadConfig ¶
func ReadConfig(configDir string) (*Config, *telecfg.FileConfig, error)
ReadConfig reads gravity OpsCenter or Site configuration directory if path is empty, it looks in default locations.
func (*Config) CheckAndSetDefaults ¶
func (Config) CreateBackend ¶
func (Config) WizardAddr ¶
WizardAddr returns the address of the wizard endpoint
type Identity ¶
type Identity struct { Email string `yaml:"email" json:"email"` ConnectorID string `yaml:"connector_id" json:"connector_id"` }
func (*Identity) Parse ¶
func (i *Identity) Parse() (*teleservices.ExternalIdentity, error)
type Locators ¶
func (*Locators) UnmarshalYAML ¶
type OpsCenterConfig ¶
type OpsCenterConfig struct { // SeedConfig defines optional configuration to apply on OpsCenter start SeedConfig *ops.SeedConfig `yaml:"seed_config"` }
OpsCenterConfig provides settings for access and installation portal
type PackageServiceConfig ¶
type PackageServiceConfig struct { // ListenAddr provides HTTP API for package service ListenAddr teleutils.NetAddr `yaml:"listen_addr"` // PublicListenAddr is the listen address for a server that serves // user traffic such as UI, will be used only if user and cluster // traffic are separated in Ops Center mode PublicListenAddr teleutils.NetAddr `yaml:"public_listen_addr"` // AdvertiseAddr is the address advertised to clients AdvertiseAddr teleutils.NetAddr `yaml:"advertise_addr" env:"ADVERTISE_ADDR"` // PublicAdvertiseAddr is the advertise address for user traffic such // as UI PublicAdvertiseAddr teleutils.NetAddr `yaml:"public_advertise_addr"` // ReadDir is an optional directory with extra packages ReadDir string `yaml:"read_dir"` }
PackageServiceConfig provides settings for package service
func (*PackageServiceConfig) GetAddr ¶
func (p *PackageServiceConfig) GetAddr() teleutils.NetAddr
func (*PackageServiceConfig) GetPublicAddr ¶
func (p *PackageServiceConfig) GetPublicAddr() teleutils.NetAddr
type ProfileConfig ¶
type ProfileConfig struct { // HTTPEndpoint is HTTP profile endpoint HTTPEndpoint string `yaml:"http_endpoint"` // OutputDir is where profiler will put samples OutputDir string `yaml:"output_dir"` }
ProfileConfig is a profile configuration
type User ¶
type User struct { Owner bool `yaml:"owner" json:"owner"` Password string `yaml:"password" json:"password"` Type string `yaml:"type" json:"type"` Org string `yaml:"org" json:"org"` Identities []Identity `yaml:"identities" json:"identities"` Email string `yaml:"email" json:"email"` Roles []string `yaml:"roles" json:"roles"` Tokens []string `yaml:"tokens" json:"tokens"` }
User provides
func (*User) ParsedIdentities ¶
func (u *User) ParsedIdentities() ([]teleservices.ExternalIdentity, error)