Documentation
¶
Overview ¶
Package cfg is package responsible to loading and accessing the guest environment configuration.
Index ¶
- func Load(extraDefaults []byte) error
- type ACS
- type AccountManager
- type Accounts
- type AddressManager
- type Core
- type Daemons
- type Diagnostics
- type IPForwarding
- type Instance
- type InstanceSetup
- type MDS
- type MetadataScripts
- type NetworkInterfaces
- type OSLogin
- type Plugin
- type Sections
- type Snapshots
- type Unstable
- type WSFC
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ACS ¶
type ACS struct { // Endpoint is the ACS endpoint to use. Endpoint string `ini:"endpoint,omitempty"` // ChannelID is the ACS channel ID to use for connections. ChannelID string `ini:"channel_id,omitempty"` // Host is the ACS host to use. Host string `ini:"host,omitempty"` // ClientDebugLogging is the ACS client debug logging. Enabling this will // enable debug logging in the ACS client library. ClientDebugLogging bool `ini:"client_debug_logging,omitempty"` }
ACS contains the configurations of ACS section. Following options overrides the default values. These overrides should be used for testing only.
type AccountManager ¶
type AccountManager struct {
Disable bool `ini:"disable,omitempty"`
}
AccountManager contains the configurations of AccountManager section.
type Accounts ¶
type Accounts struct { DeprovisionRemove bool `ini:"deprovision_remove,omitempty"` GPasswdAddCmd string `ini:"gpasswd_add_cmd,omitempty"` GPasswdRemoveCmd string `ini:"gpasswd_remove_cmd,omitempty"` GroupAddCmd string `ini:"groupadd_cmd,omitempty"` Groups string `ini:"groups,omitempty"` ReuseHomedir bool `ini:"reuse_homedir,omitempty"` UserAddCmd string `ini:"useradd_cmd,omitempty"` UserDelCmd string `ini:"userdel_cmd,omitempty"` }
Accounts contains the configurations of Accounts section.
type AddressManager ¶
type AddressManager struct {
Disable bool `ini:"disable,omitempty"`
}
AddressManager contains the configuration of addressManager section.
type Core ¶
type Core struct { // LogLevel defines the log level of the guest-agent. The CLI's flag takes // precedence over this configuration. LogLevel int `ini:"log_level,omitempty"` // LogVerbosity defines the log verbosity of the guest-agent. The CLI's flag // takes precedence over this configuration. LogVerbosity int `ini:"log_verbosity,omitempty"` // LogFile defines the log file of the guest-agent. The CLI's flag takes // precedence over this configuration. Note that this file applies to both // guest-agent and core plugin. Since core plugin and guest agent are using // the same file, log prefix can be used to differentiate their entries in // the logs. Core Plugin use "core_plugin" as prefix and guest-agent uses // none. LogFile string `ini:"log_file,omitempty"` // OnDemandPlugins defines whether the on-demand plugins support should be // enabled. By disabling this configuration the support of on-demand plugins // is turned off entirely. OnDemandPlugins bool `ini:"on_demand_plugins,omitempty"` // ACSClient defines whether the ACS client should be enabled. // By disabling this configuration the ACS client related features including // on-demand plugins, metric collection and plugin events are turned off entirely. ACSClient bool `ini:"acs_client,omitempty"` // Version defines the version of the running binary. Its for internal use // only. Value is set dynamically when config is loaded in main. Any values // provided via config file or anything will be overridden. Version string `ini:"-"` }
Core contains the core configuration entries of guest agent, all configurations not tied/specific to a subsystem are defined in here.
type Daemons ¶
type Daemons struct { AccountsDaemon bool `ini:"accounts_daemon,omitempty"` ClockSkewDaemon bool `ini:"clock_skew_daemon,omitempty"` NetworkDaemon bool `ini:"network_daemon,omitempty"` }
Daemons contains the configurations of Daemons section.
type Diagnostics ¶
type Diagnostics struct {
Enable bool `ini:"enable,omitempty"`
}
Diagnostics contains the configurations of Diagnostics section.
type IPForwarding ¶
type IPForwarding struct { EthernetProtoID string `ini:"ethernet_proto_id,omitempty"` IPAliases bool `ini:"ip_aliases,omitempty"` TargetInstanceIPs bool `ini:"target_instance_ips,omitempty"` }
IPForwarding contains the configurations of IPForwarding section.
type Instance ¶
type Instance struct { // InstanceID is a backward compatible key. In the past the instance id was only // supported/setup via config file, if we can't read the instance_id file then // try honoring this configuration key. InstanceID string `ini:"instance_id,omitempty"` // InstanceIDDir defines where the instance id file should be read from. InstanceIDDir string `ini:"instance_id_dir,omitempty"` }
Instance contains the configurations of Instance section.
type InstanceSetup ¶
type InstanceSetup struct { HostKeyDir string `ini:"host_key_dir,omitempty"` HostKeyTypes string `ini:"host_key_types,omitempty"` NetworkEnabled bool `ini:"network_enabled,omitempty"` OptimizeLocalSSD bool `ini:"optimize_local_ssd,omitempty"` SetBotoConfig bool `ini:"set_boto_config,omitempty"` SetHostKeys bool `ini:"set_host_keys,omitempty"` SetMultiqueue bool `ini:"set_multiqueue,omitempty"` }
InstanceSetup contains the configurations of InstanceSetup section.
type MDS ¶
type MDS struct { // MTLSBootstrappingEnabled enables/disables the mTLS credential refresher. MTLSBootstrappingEnabled bool `ini:"mtls_bootstrapping_enabled,omitempty"` // UpdateCACertificatesEnabled enables/disables any updates to the CA // certificates. These updates are done using tools like // update-ca-certificates or similar. UpdateCACertificatesEnabled bool `ini:"cacertificates_update_enabled,omitempty"` }
MDS contains the configurations for MDS section.
type MetadataScripts ¶
type MetadataScripts struct { DefaultShell string `ini:"default_shell,omitempty"` RunDir string `ini:"run_dir,omitempty"` Shutdown bool `ini:"shutdown,omitempty"` ShutdownWindows bool `ini:"shutdown-windows,omitempty"` Startup bool `ini:"startup,omitempty"` StartupWindows bool `ini:"startup-windows,omitempty"` SysprepSpecialize bool `ini:"sysprep_specialize,omitempty"` }
MetadataScripts contains the configurations of MetadataScripts section.
type NetworkInterfaces ¶
type NetworkInterfaces struct { DHCPCommand string `ini:"dhcp_command,omitempty"` IPForwarding bool `ini:"ip_forwarding,omitempty"` Setup bool `ini:"setup,omitempty"` }
NetworkInterfaces contains the configurations of NetworkInterfaces section.
type OSLogin ¶
type OSLogin struct {
CertAuthentication bool `ini:"cert_authentication,omitempty"`
}
OSLogin contains the configurations of OSLogin section.
type Plugin ¶
type Plugin struct { // SocketConnectionsDir defines the directory path where plugin socket // connections file should be stored. SocketConnectionsDir string `ini:"socket_connections_dir,omitempty"` // StateDir defines the directory path where all state files should be stored. StateDir string `ini:"state_dir,omitempty"` }
Plugin contains the configurations of Plugin section.
type Sections ¶
type Sections struct { // Core defines the core guest-agent's configuration entries/keys. Core *Core `ini:"Core,omitempty"` // AccountManager defines the address management configurations. It takes // precedence over instance's and project's metadata configuration. The // default configuration doesn't define values to it, if the user has defined // it then we shouldn't even consider metadata values. Users must check if // this pointer is nil or not. AccountManager *AccountManager `ini:"accountManager,omitempty"` // Accounts defines the non windows account management options, behaviors and // commands. Accounts *Accounts `ini:"Accounts,omitempty"` // AddressManager defines the address management configurations. It takes // precedence over instance's and project's metadata configuration. The // default configuration doesn't define values to it, if the user has defined // it then we shouldn't even consider metadata values. Users must check if // this pointer is nil or not. AddressManager *AddressManager `ini:"addressManager,omitempty"` // Daemons defines the availability of clock skew, network and account managers. Daemons *Daemons `ini:"Daemons,omitempty"` // Diagnostics defines the diagnostics configurations. It takes precedence // over instance's and project's metadata configuration. The default // configuration doesn't define values to it, if the user has defined it then // we shouldn't even consider metadata values. Users must check if this // pointer is nil or not. Diagnostics *Diagnostics `ini:"diagnostics,omitempty"` // IPForwarding defines the ip forwarding configuration options. IPForwarding *IPForwarding `ini:"IpForwarding,omitempty"` // Instance defines the instance ID handling behaviors, i.e. where to read the // ID from etc. Instance *Instance `ini:"Instance,omitempty"` // InstanceSetup defines options to basic instance setup options i.e. optimize // local ssd, network, // host keys etc. InstanceSetup *InstanceSetup `ini:"InstanceSetup,omitempty"` // MetadataScripts contains the configurations of the metadata-scripts service. MetadataScripts *MetadataScripts `ini:"MetadataScripts,omitempty"` // NetworkInterfaces defines if the network interfaces should be managed or // configured by guest-agent as well as the commands definitions for network // configuration. NetworkInterfaces *NetworkInterfaces `ini:"NetworkInterfaces,omitempty"` // OSLogin defines the OS Login configuration options. OSLogin *OSLogin `ini:"OSLogin,omitempty"` // MDS defines the MDS configuration options. MDS *MDS `ini:"MDS,omitempty"` // Snapshots defines the snapshot listener configuration and behavior i.e. the // server address and port. Snapshots *Snapshots `ini:"Snapshots,omitempty"` // Unstable is a "under development feature flags" section. No stability or // long term support is guaranteed for any keys under this section. No // application, script or utility should rely on it. Unstable *Unstable `ini:"Unstable,omitempty"` // WSFC defines the wsfc configurations. It takes precedence over instance's // and project's metadata configuration. The default configuration doesn't // define values to it, if the user has defined it then we shouldn't even // consider metadata values. Users must check if this pointer is nil or not. WSFC *WSFC `ini:"wsfc,omitempty"` // Plugin defines the plugin configurations. Plugin *Plugin `ini:"PluginConfig,omitempty"` // ACS defines the ACS configuration options. These options are overrides // for creating client connection. ACS *ACS `ini:"ACS,omitempty"` }
Sections encapsulates all the configuration sections.
type Snapshots ¶
type Snapshots struct { Enabled bool `ini:"enabled,omitempty"` SnapshotServiceIP string `ini:"snapshot_service_ip,omitempty"` SnapshotServicePort int `ini:"snapshot_service_port,omitempty"` TimeoutInSeconds int `ini:"timeout_in_seconds,omitempty"` }
Snapshots contains the configurations of Snapshots section.
type Unstable ¶
type Unstable struct { CommandMonitorEnabled bool `ini:"command_monitor_enabled,omitempty"` // CommandPipePath defines where command monitor pipe lives. On Linux this is // a path to a directory under which every Guest Agent user will create a // socket whereas on windows its a prefix which gets appended by each user's // unique identifier. CommandPipePath string `ini:"command_pipe_path,omitempty"` CommandRequestTimeout string `ini:"command_request_timeout,omitempty"` // Note that CommandPipeMode and CommandPipeGroup are ignored on Windows. // On Windows, members of Administrators can access the pipe using [ggactl]. CommandPipeMode string `ini:"command_pipe_mode,omitempty"` CommandPipeGroup string `ini:"command_pipe_group,omitempty"` VlanSetupEnabled bool `ini:"vlan_setup_enabled,omitempty"` SystemdConfigDir string `ini:"systemd_config_dir,omitempty"` SetHostname bool `ini:"set_hostname,omitempty"` SetFQDN bool `ini:"set_fqdn,omitempty"` FQDNAsHostname bool `ini:"fqdn_as_hostname,omitempty"` AdditionalAliases string `ini:"additional_aliases,omitempty"` FQDNAddressInterfaceIndex int `ini:"fqdn_address_interface_index,omitempty"` }
Unstable contains the configurations of Unstable section. No long term stability or support is guaranteed for configurations defined in the Unstable section. By default all flags defined in this section is disabled and is intended to isolate under development features.