Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MutatorNames ¶
func MutatorNames() []string
MutatorNames are the names of known configuration mutators
func RegisterMutator ¶
RegisterMutator registers a new configuration mutator
Types ¶
type BuildInfoProvider ¶
type BuildInfoProvider interface {
HasTLS() bool
}
BuildInfoProvider provides build time information
type ChoriaPluginConfig ¶
type ChoriaPluginConfig struct { PuppetServerHost string `confkey:"plugin.choria.puppetserver_host" default:"puppet"` PuppetServerPort int `confkey:"plugin.choria.puppetserver_port" default:"8140"` PuppetCAHost string `confkey:"plugin.choria.puppetca_host" default:"puppet"` PuppetCAPort int `confkey:"plugin.choria.puppetca_port" default:"8140"` PuppetDBHost string `confkey:"plugin.choria.puppetdb_host" default:"puppet"` PuppetDBPort int `confkey:"plugin.choria.puppetdb_port" default:"8081"` SSLDir string `confkey:"plugin.choria.ssldir" type:"path_string"` UseSRVRecords bool `confkey:"plugin.choria.use_srv" default:"true"` SRVDomain string `confkey:"plugin.choria.srv_domain"` Provision bool `confkey:"plugin.choria.server.provision" default:"false"` // discovery proxy DiscoveryHost string `confkey:"plugin.choria.discovery_host" default:"puppet"` DiscoveryPort int `confkey:"plugin.choria.discovery_port" default:"8085"` DiscoveryProxy bool `confkey:"plugin.choria.discovery_proxy" default:"false"` // federation FederationCollectives []string `confkey:"plugin.choria.federation.collectives" type:"comma_split" environment:"CHORIA_FED_COLLECTIVE"` FederationMiddlewareHosts []string `confkey:"plugin.choria.federation_middleware_hosts" type:"comma_split"` FederationCluster string `confkey:"plugin.choria.federation.cluster" default:"mcollective"` StatsListenAddress string `confkey:"plugin.choria.stats_address" default:"127.0.0.1"` StatsPort int `confkey:"plugin.choria.stats_port" default:"0"` LegacyLifeCycleFormat bool `confkey:"plugin.choria.legacy_lifecycle_format" default:"0"` // nats connector NatsUser string `confkey:"plugin.nats.user" environment:"MCOLLECTIVE_NATS_USERNAME"` NatsPass string `confkey:"plugin.nats.pass" environment:"MCOLLECTIVE_NATS_PASSWORD"` NatsCredentials string `confkey:"plugin.nats.credentials" environment:"MCOLLECTIVE_NATS_CREDENTIALS"` NatsNGS bool `confkey:"plugin.nats.ngs" environment:"MCOLLECTIVE_NATS_NGS"` MiddlewareHosts []string `confkey:"plugin.choria.middleware_hosts" type:"comma_split"` RandomizeMiddlewareHosts bool `confkey:"plugin.choria.randomize_middleware_hosts" default:"true"` // network broker NetworkListenAddress string `confkey:"plugin.choria.network.listen_address" default:"::"` NetworkClientPort int `confkey:"plugin.choria.network.client_port" default:"4222"` NetworkClientTLSForce bool `confkey:"plugin.choria.network.client_tls_force_required"` NetworkPeerPort int `confkey:"plugin.choria.network.peer_port" default:"5222"` NetworkPeerUser string `confkey:"plugin.choria.network.peer_user"` NetworkPeerPassword string `confkey:"plugin.choria.network.peer_password"` NetworkPeers []string `confkey:"plugin.choria.network.peers" type:"comma_split"` NetworkLeafPort int `confkey:"plugin.choria.network.leafnode_port" default:"0"` NetworkLeafRemotes []string `confkey:"plugin.choria.network.leafnode_remotes" type:"comma_split"` NetworkGatewayPort int `confkey:"plugin.choria.network.gateway_port" default:"0"` NetworkGatewayName string `confkey:"plugin.choria.network.gateway_name" default:"CHORIA"` NetworkGatewayRemotes []string `confkey:"plugin.choria.network.gateway_remotes" type:"comma_split"` NetworkWriteDeadline time.Duration `confkey:"plugin.choria.network.write_deadline" type:"duration" default:"5s"` NetworkAllowedClientHosts []string `confkey:"plugin.choria.network.client_hosts" type:"comma_split"` NetworkAccountOperator string `confkey:"plugin.choria.network.operator_account"` NetworkSystemAccount string `confkey:"plugin.choria.network.system_account"` NetworkTLSTimeout int `confkey:"plugin.choria.network.tls_timeout" default:"2"` // broker features BrokerNetwork bool `confkey:"plugin.choria.broker_network" default:"false"` BrokerDiscovery bool `confkey:"plugin.choria.broker_discovery" default:"false"` BrokerFederation bool `confkey:"plugin.choria.broker_federation" default:"false"` // registration FileContentRegistrationData string `confkey:"plugin.choria.registration.file_content.data" default:""` FileContentRegistrationTarget string `confkey:"plugin.choria.registration.file_content.target" default:""` FileContentCompression bool `confkey:"plugin.choria.registration.file_content.compression" default:"true"` // ruby compatibility RubyAgentShim string `confkey:"plugin.choria.agent_provider.mcorpc.agent_shim"` RubyAgentConfig string `confkey:"plugin.choria.agent_provider.mcorpc.config"` RubyLibdir []string `confkey:"plugin.choria.agent_provider.mcorpc.libdir" type:"path_split"` // security plugin PrivilegedUsers []string `` /* 127-byte string literal not displayed */ CertnameWhitelist []string `confkey:"plugin.choria.security.certname_whitelist" type:"comma_split" default:"\\.mcollective$,\\.choria$"` Serializer string `confkey:"plugin.choria.security.serializer" validate:"enum=json,yaml"` SecurityProvider string `confkey:"plugin.security.provider" default:"puppet" validate:"enum=puppet,file,pkcs11"` SecurityAlwaysOverwriteCache bool `confkey:"plugin.security.always_overwrite_cache" default:"false"` RemoteSignerTokenFile string `confkey:"plugin.choria.security.request_signer.token_file" type:"path_string"` RemoteSignerTokenEnvironment string `confkey:"plugin.choria.security.request_signer.token_environment"` RemoteSignerURL string `confkey:"plugin.choria.security.request_signer.url"` // file security FileSecurityCertificate string `confkey:"plugin.security.file.certificate" type:"path_string"` FileSecurityKey string `confkey:"plugin.security.file.key" type:"path_string"` FileSecurityCA string `confkey:"plugin.security.file.ca" type:"path_string"` FileSecurityCache string `confkey:"plugin.security.file.cache" type:"path_string"` // pkcs11 security PKCS11DriverFile string `confkey:"plugin.security.pkcs11.driver_file" type:"path_string"` PKCS11Slot int `confkey:"plugin.security.pkcs11.slot"` // adapters Adapters []string `confkey:"plugin.choria.adapters" type:"comma_split"` // status file StatusFilePath string `confkey:"plugin.choria.status_file_path" type:"path_string"` StatusUpdateSeconds int `confkey:"plugin.choria.status_update_interval" default:"30"` // machine MachineSourceDir string `confkey:"plugin.choria.machine.store"` }
ChoriaPluginConfig settings
type Config ¶
type Config struct { Registration []string `confkey:"registration" type:"comma_split" default:""` RegistrationCollective string `confkey:"registration_collective"` RegisterInterval int `confkey:"registerinterval" default:"300"` RegistrationSplay bool `confkey:"registration_splay" default:"false"` Collectives []string `confkey:"collectives" type:"comma_split" default:"mcollective"` MainCollective string `confkey:"main_collective"` LogFile string `confkey:"logfile" type:"path_string"` KeepLogs int `confkey:"keeplogs" default:"5"` MaxLogSize int `confkey:"max_log_size" default:"2097152"` LogLevel string `confkey:"loglevel" default:"info" validate:"enum=debug,info,warn,error,fatal"` LogFacility string `confkey:"logfacility" default:"user"` LibDir []string `confkey:"libdir" type:"path_split"` Identity string `confkey:"identity"` DirectAddressing bool `confkey:"direct_addressing" default:"true"` DirectAddressingThreshold int `confkey:"direct_addressing_threshold" default:"10"` Color bool `confkey:"color" default:"true"` Daemonize bool `confkey:"daemonize" default:"false"` SecurityProvider string `confkey:"securityprovider" default:"psk" type:"title_string"` FactSource string `confkey:"factsource" default:"yaml"` Connector string `confkey:"connector" default:"nats" type:"title_string"` ClassesFile string `confkey:"classesfile" default:"/opt/puppetlabs/puppet/cache/state/classes.txt" type:"path_string"` DiscoveryTimeout int `confkey:"discovery_timeout" default:"2"` PublishTimeout int `confkey:"publish_timeout" default:"2"` ConnectionTimeout int `confkey:"connection_timeout"` RPCAudit bool `confkey:"rpcaudit" default:"false"` RPCAuditProvider string `confkey:"rpcauditprovider" type:"title_string"` RPCAuthorization bool `confkey:"rpcauthorization" default:"false"` RPCAuthorizationProvider string `confkey:"rpcauthprovider" type:"title_string" default:"action_policy"` RPCLimitMethod string `confkey:"rpclimitmethod" default:"first" validate:"enum=first,random"` LoggerType string `confkey:"logger_type" default:"file"` FactCacheTime int `confkey:"fact_cache_time" default:"300"` SSLCipher string `confkey:"ssl_cipher" default:"aes-256-cbc"` Threaded bool `confkey:"threaded" default:"false"` TTL int `confkey:"ttl" default:"60"` DefaultDiscoveryOptions []string `confkey:"default_discovery_options"` DefaultDiscoveryMethod string `confkey:"default_discovery_method" default:"mc"` SoftShutdown bool `confkey:"soft_shutdown" default:"true"` SoftShutdownTimeout int `confkey:"soft_shutdown_timeout" default:"2"` ActivateAgents bool `confkey:"activate_agents" default:"true"` FactSourceFile string `confkey:"plugin.yaml" default:"/etc/puppetlabs/mcollective/generated-facts.yaml" type:"path_string"` RequireClientFilter bool `confkey:"require_client_filter" default:"false"` ConfigFile string Choria *ChoriaPluginConfig // DisableSecurityProviderVerify skips calling security provider Validate() DisableSecurityProviderVerify bool // DisableTLS turns off TLS and skips calling security provider Validate() DisableTLS bool // DisableTLSVerify turns off CA validation etc in TLS connections DisableTLSVerify bool // OverrideCertname sets a arbitrary certname and short circuits calling Puppet etc // this is mainly used by tests to adjust the certname on the fly OverrideCertname string // InitiatedByServer indicates to the framework that certain server specific // initialization steps - like Provisioning mode - should be performed. InitiatedByServer bool // Puppet provides access to puppet config data, settings and facts Puppet *puppet.PuppetWrapper // contains filtered or unexported fields }
Config represents Choria configuration
func NewConfigForTests ¶
func NewConfigForTests() *Config
NewConfigForTests creates a configuration for use in testing tools
func NewDefaultConfig ¶
NewDefaultConfig creates a empty configuration
func (*Config) ApplyBuildSettings ¶
func (c *Config) ApplyBuildSettings(b BuildInfoProvider)
ApplyBuildSettings applies build time overrides to the configuration
func (*Config) HasOption ¶
HasOption determines if a specific option was set from a config key. The option given would be something like `plugin.choria.use_srv` and true would indicate that it was set by config vs using defaults
func (*Config) Option ¶
Option retrieves the raw string representation of a given option from that was loaded from the configuration