Documentation ¶
Index ¶
- Constants
- func GetArg(name string) interface{}
- func GetAzureCloud(url string) (string, error)
- func GetExecutableDirectory() (string, error)
- func GetHttpClient() *http.Client
- func GetInterfaceSubnetWithSpecificIP(ipAddr string) *net.IPNet
- func InitHttpClient(connectionTimeoutSec int, responseHeaderTimeoutSec int) *http.Client
- func IpToInt(ip net.IP) uint32
- func LogNetworkInterfaces()
- func ParseArgs(args *ArgumentList, usage func())
- func PostCtx(ctx context.Context, cl *http.Client, url, contentType string, body io.Reader) (*http.Response, error)
- func SaveHostMetadata(metadata Metadata, fileName string) error
- func StartProcess(path string, args []string) error
- type Argument
- type ArgumentList
- type IOShim
- type IpamApi
- type Listener
- func (l *Listener) AddEndpoint(endpoint string)
- func (l *Listener) AddHandler(path string, handler http.HandlerFunc)
- func (l *Listener) Decode(w http.ResponseWriter, r *http.Request, request interface{}) error
- func (l *Listener) Encode(w http.ResponseWriter, response interface{}) error
- func (l *Listener) GetEndpoints() []string
- func (l *Listener) GetMux() *http.ServeMux
- func (l *Listener) Start(errChan chan<- error) error
- func (l *Listener) StartTLS(errChan chan<- error, tlsConfig *tls.Config, address string) error
- func (l *Listener) Stop()
- type Metadata
- type NamedLock
- type NetApi
- type Plugin
- type PluginApi
- type PluginConfig
- type XmlDocument
Constants ¶
const ( // Operating environment. OptEnvironment = "environment" OptEnvironmentAlias = "e" OptEnvironmentAzure = "azure" OptEnvironmentMAS = "mas" OptEnvironmentFileIpam = "fileIpam" OptEnvironmentIPv6NodeIpam = "ipv6NodeIpam" // API server URL. OptAPIServerURL = "api-url" OptAPIServerURLAlias = "u" OptCnsURL = "cns-url" OptCnsURLAlias = "c" // Logging level. OptLogLevel = "log-level" OptLogLevelAlias = "l" OptLogLevelInfo = "info" OptLogLevelDebug = "debug" OptLogLevelError = "error" // Logging target. OptLogTarget = "log-target" OptLogTargetAlias = "t" OptLogTargetSyslog = "syslog" OptLogTargetStderr = "stderr" OptLogTargetFile = "logfile" OptLogStdout = "stdout" OptLogMultiWrite = "stdoutfile" // Logging location OptLogLocation = "log-location" OptLogLocationAlias = "o" // IPAM query URL. OptIpamQueryUrl = "ipam-query-url" OptIpamQueryUrlAlias = "q" // IPAM query interval. OptIpamQueryInterval = "ipam-query-interval" OptIpamQueryIntervalAlias = "i" // Start CNM OptStartAzureCNM = "start-azure-cnm" OptStartAzureCNMAlias = "startcnm" // Interval to send reports to host OptReportToHostInterval = "report-interval" OptReportToHostIntervalAlias = "hostinterval" // Periodic Interval Time OptIntervalTime = "interval" OptIntervalTimeAlias = "it" OptDefaultIntervalTime = "defaultinterval" // Version. OptVersion = "version" OptVersionAlias = "v" // Help. OptHelp = "help" OptHelpAlias = "h" // CNI binary location OptNetPluginPath = "net-plugin-path" OptNetPluginPathAlias = "np" // CNI binary location OptNetPluginConfigFile = "net-plugin-config-file" OptNetPluginConfigFileAlias = "npconfig" // Telemetry config Location OptTelemetryConfigDir = "telemetry-config-file" OptTelemetryConfigDirAlias = "d" // Create ext Hns network OptCreateDefaultExtNetworkType = "create-defaultextnetwork-type" OptCreateDefaultExtNetworkTypeAlias = "defaultextnetworktype" // Disable Telemetry OptTelemetry = "telemetry" OptTelemetryAlias = "dt" // Enable CNS to program SNAT iptables rules OptProgramSNATIPTables = "program-snat-iptables" // Enable Telemetry service OptTelemetryService = "telemetry-service" OptTelemetryServiceAlias = "ts" // HTTP connection timeout OptHttpConnectionTimeout = "http-connection-timeout" OptHttpConnectionTimeoutAlias = "httpcontimeout" // HTTP response header timeout OptHttpResponseHeaderTimeout = "http-response-header-timeout" OptHttpResponseHeaderTimeoutAlias = "httprespheadertimeout" // Enable CNS to manage endpoint state OptManageEndpointState = "manage-endpoint-state" // Store file location OptStoreFileLocation = "store-file-path" OptStoreFileLocationAlias = "storefilepath" // Private Endpoint OptPrivateEndpoint = "private-endpoint" OptPrivateEndpointAlias = "pe" // Infrastructure Network OptInfrastructureNetworkID = "infra-vnet" OptInfrastructureNetworkIDAlias = "iv" // Node ID/Name OptNodeID = "node-id" OptNodeIDAlias = "n" // Managed mode OptManaged = "managed" OptManagedAlias = "m" // Client mode, cmd OptDebugCmd = "debugcmd" OptDebugCmdAlias = "cmd" // Client mode, args for cmd OptDebugArg = "debugarg" OptDebugArgAlias = "darg" // CNS config path OptCNSConfigPath = "config-path" OptCNSConfigPathAlias = "cp" // OptCNIConflistFilepath OptCNIConflistFilepath = "cni-conflist-filepath" // OptCNIConflistFilepathAlias TODO: a "shorthand" is required for the acn args package but this isn't helpful OptCNIConflistFilepathAlias = "cniconflist" // OptCNIConflistFilepath OptCNIConflistScenario = "cni-conflist-scenario" // OptCNIConflistScenarioAlias "shorthand" for the cni conflist scenairo, see above OptCNIConflistScenarioAlias = "cniconflistscenario" )
Command line options.
const ( RegisterNodeURLFmt = "%s/networks/%s/node/%s%s" SyncNodeNetworkContainersURLFmt = "%s/networks/%s/node/%s/networkcontainers%s" FiveSeconds = 5 * time.Second JsonContent = "application/json; charset=UTF-8" ContentType = "Content-Type" )
Variables ¶
This section is empty.
Functions ¶
func GetArg ¶
func GetArg(name string) interface{}
GetArg returns the parsed value of the given argument.
func GetAzureCloud ¶
func GetExecutableDirectory ¶
func GetHttpClient ¶
GetHttpClient returns the singleton httpClient object
func InitHttpClient ¶
InitHttpClient initializes the httpClient object
func LogNetworkInterfaces ¶
func LogNetworkInterfaces()
LogNetworkInterfaces logs the host's network interfaces in the default namespace.
func ParseArgs ¶
func ParseArgs(args *ArgumentList, usage func())
ParseArgs parses and validates command line arguments based on rules in the given ArgumentList.
func SaveHostMetadata ¶
SaveHostMetadata - save metadata got from wireserver to json file
func StartProcess ¶
Types ¶
type Argument ¶
type Argument struct { Name string Shorthand string Description string Type string DefaultValue interface{} Value interface{} ValueMap map[string]interface{} // contains filtered or unexported fields }
Argument represents a command line argument.
type ArgumentList ¶
type ArgumentList []*Argument
ArgumentList represents a set of command line arguments.
type IOShim ¶
func NewMockIOShim ¶
type Listener ¶
Listener represents an HTTP listener.
func NewListener ¶
NewListener creates a new Listener.
func (*Listener) AddEndpoint ¶
AddEndpoint registers a protocol endpoint.
func (*Listener) AddHandler ¶
func (l *Listener) AddHandler(path string, handler http.HandlerFunc)
AddHandler registers a protocol handler.
func (*Listener) Encode ¶
func (l *Listener) Encode(w http.ResponseWriter, response interface{}) error
Encode encodes and sends a response as JSON payload.
func (*Listener) GetEndpoints ¶
GetEndpoints returns the list of registered protocol endpoints.
type Metadata ¶
type Metadata struct { Location string `json:"location"` VMName string `json:"name"` Offer string `json:"offer"` OsType string `json:"osType"` PlacementGroupID string `json:"placementGroupId"` PlatformFaultDomain string `json:"platformFaultDomain"` PlatformUpdateDomain string `json:"platformUpdateDomain"` Publisher string `json:"publisher"` ResourceGroupName string `json:"resourceGroupName"` Sku string `json:"sku"` SubscriptionID string `json:"subscriptionId"` Tags string `json:"tags"` OSVersion string `json:"version"` VMID string `json:"vmId"` VMSize string `json:"vmSize"` KernelVersion string }
Metadata retrieved from wireserver
func GetHostMetadata ¶
GetHostMetadata - retrieve VM metadata from wireserver
type NamedLock ¶
type NamedLock struct {
// contains filtered or unexported fields
}
NamedLock holds a mutex and a map of locks. Mutex is used to get exclusive lock on the map while initializing the lock in the map.
func InitNamedLock ¶
func InitNamedLock() *NamedLock
InitNamedLock initializes the named lock struct
func (*NamedLock) LockAcquire ¶
LockAcquire acquires the lock with specified name
func (*NamedLock) LockRelease ¶
LockRelease releases the lock with specified name
type Plugin ¶
type Plugin struct { Name string Version string Options map[string]interface{} ErrChan chan error Store store.KeyValueStore }
Plugin is the parent class that implements behavior common to all plugins.
func (*Plugin) Initialize ¶
func (plugin *Plugin) Initialize(config *PluginConfig) error
Initialize initializes the plugin.
func (*Plugin) Uninitialize ¶
func (plugin *Plugin) Uninitialize()
Uninitialize cleans up the plugin.
type PluginApi ¶
type PluginApi interface { Start(*PluginConfig) error Stop() GetOption(string) interface{} SetOption(string, interface{}) }
Plugin base interface.
type PluginConfig ¶
type PluginConfig struct { Version string NetApi NetApi IpamApi IpamApi Listener *Listener ErrChan chan error Store store.KeyValueStore }
Plugin common configuration.
type XmlDocument ¶
type XmlDocument struct { XMLName xml.Name `xml:"Interfaces"` Interface []struct { XMLName xml.Name `xml:"Interface"` MacAddress string `xml:"MacAddress,attr"` IsPrimary bool `xml:"IsPrimary,attr"` IPSubnet []struct { XMLName xml.Name `xml:"IPSubnet"` Prefix string `xml:"Prefix,attr"` IPAddress []struct { XMLName xml.Name `xml:"IPAddress"` Address string `xml:"Address,attr"` IsPrimary bool `xml:"IsPrimary,attr"` } } } }
XmlDocument - Azure host agent XML document format.