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