Documentation
¶
Index ¶
- Variables
- func InitConfig(ctx *cli.Context, exec kexec.Interface, defaults *Defaults) (string, error)
- func InitConfigWithPath(ctx *cli.Context, exec kexec.Interface, configFile string, defaults *Defaults) (string, error)
- func ReadCNIConfig(bytes []byte) (*types.NetConf, error)
- func RestoreDefaultConfig()
- func UpdateOvnNodeAuth(masterIP string) error
- func WriteCNIConfig() error
- type CNIConfig
- type DefaultConfig
- type Defaults
- type KubernetesConfig
- type LoggingConfig
- type OvnAuthConfig
- type OvnDBAuth
- type OvnDBScheme
Constants ¶
This section is empty.
Variables ¶
var ( // ovn-kubernetes version, to be changed with every release Version = "0.3.0" // Default holds parsed config file parameters and command-line overrides Default = DefaultConfig{ MTU: 1400, ConntrackZone: 64000, EncapType: "geneve", EncapIP: "", } // Logging holds logging-related parsed config file parameters and command-line overrides Logging = LoggingConfig{ File: "", Level: 4, } // CNI holds CNI-related parsed config file parameters and command-line overrides CNI = CNIConfig{ ConfDir: "/etc/cni/net.d", Plugin: "ovn-k8s-cni-overlay", WinHNSNetworkID: "", } // Kubernetes holds Kubernetes-related parsed config file parameters and command-line overrides Kubernetes = KubernetesConfig{ APIServer: "http://localhost:8080", } // OvnNorth holds northbound OVN database client and server authentication and location details OvnNorth OvnAuthConfig // OvnSouth holds southbound OVN database client and server authentication and location details OvnSouth OvnAuthConfig )
The following are global config parameters that other modules may access directly
var Flags = []cli.Flag{ cli.StringFlag{ Name: "config-file", Usage: "configuration file path (default: /etc/openvswitch/ovn_k8s.conf)", }, cli.IntFlag{ Name: "mtu", Usage: "MTU value used for the overlay networks (default: 1400)", Destination: &cliConfig.Default.MTU, }, cli.IntFlag{ Name: "conntrack-zone", Usage: "For gateway nodes, the conntrack zone used for conntrack flow rules (default: 64000)", Destination: &cliConfig.Default.ConntrackZone, }, cli.StringFlag{ Name: "encap-type", Usage: "The encapsulation protocol to use to transmit packets between hypervisors (default: geneve)", Destination: &cliConfig.Default.EncapType, }, cli.StringFlag{ Name: "encap-ip", Usage: "The IP address of the encapsulation endpoint (default: Node IP address resolved from Node hostname)", Destination: &cliConfig.Default.EncapIP, }, cli.IntFlag{ Name: "loglevel", Usage: "log verbosity and level: 5=debug, 4=info, 3=warn, 2=error, 1=fatal (default: 4)", Destination: &cliConfig.Logging.Level, }, cli.StringFlag{ Name: "logfile", Usage: "path of a file to direct log output to", Destination: &cliConfig.Logging.File, }, cli.StringFlag{ Name: "cni-conf-dir", Usage: "the CNI config directory in which to write the overlay CNI config file (default: /etc/cni/net.d)", Destination: &cliConfig.CNI.ConfDir, }, cli.StringFlag{ Name: "cni-plugin", Usage: "the name of the CNI plugin (default: ovn-k8s-cni-overlay)", Destination: &cliConfig.CNI.Plugin, }, cli.StringFlag{ Name: "win-hnsnetwork-id", Usage: "the ID of the HNS network to which containers will be attached (default: not set)", Destination: &cliConfig.CNI.WinHNSNetworkID, }, cli.StringFlag{ Name: "k8s-kubeconfig", Usage: "absolute path to the Kubernetes kubeconfig file (not required if the --k8s-apiserver, --k8s-ca-cert, and --k8s-token are given)", Destination: &cliConfig.Kubernetes.Kubeconfig, }, cli.StringFlag{ Name: "k8s-apiserver", Usage: "URL of the Kubernetes API server (not required if --k8s-kubeconfig is given) (default: http://localhost:8443)", Destination: &cliConfig.Kubernetes.APIServer, }, cli.StringFlag{ Name: "k8s-cacert", Usage: "the absolute path to the Kubernetes API CA certificate (not required if --k8s-kubeconfig is given)", Destination: &cliConfig.Kubernetes.CACert, }, cli.StringFlag{ Name: "k8s-token", Usage: "the Kubernetes API authentication token (not required if --k8s-kubeconfig is given)", Destination: &cliConfig.Kubernetes.Token, }, cli.StringFlag{ Name: "nb-address", Usage: "IP address and port of the OVN northbound API " + "(eg, ssl://1.2.3.4:6641,ssl://1.2.3.5:6642). Leave empty to " + "use a local unix socket.", Destination: &cliConfig.OvnNorth.Address, }, cli.StringFlag{ Name: "nb-server-privkey", Usage: "Private key that the OVN northbound API should use for securing the API. Leave empty to use local unix socket. (default: /etc/openvswitch/ovnnb-privkey.pem)", Destination: &cliConfig.OvnNorth.ServerPrivKey, }, cli.StringFlag{ Name: "nb-server-cert", Usage: "Server certificate that the OVN northbound API should use for securing the API. Leave empty to use local unix socket. (default: /etc/openvswitch/ovnnb-cert.pem)", Destination: &cliConfig.OvnNorth.ServerCert, }, cli.StringFlag{ Name: "nb-server-cacert", Usage: "CA certificate that the OVN northbound API should use for securing the API. Leave empty to use local unix socket. (default: /etc/openvswitch/ovnnb-ca.cert)", Destination: &cliConfig.OvnNorth.ServerCACert, }, cli.StringFlag{ Name: "nb-client-privkey", Usage: "Private key that the client should use for talking to the OVN database. Leave empty to use local unix socket. (default: /etc/openvswitch/ovnnb-privkey.pem)", Destination: &cliConfig.OvnNorth.ClientPrivKey, }, cli.StringFlag{ Name: "nb-client-cert", Usage: "Client certificate that the client should use for talking to the OVN database. Leave empty to use local unix socket. (default: /etc/openvswitch/ovnnb-cert.pem)", Destination: &cliConfig.OvnNorth.ClientCert, }, cli.StringFlag{ Name: "nb-client-cacert", Usage: "CA certificate that the client should use for talking to the OVN database. Leave empty to use local unix socket. (default: /etc/openvswitch/ovnnb-ca.cert)", Destination: &cliConfig.OvnNorth.ClientCACert, }, cli.StringFlag{ Name: "sb-address", Usage: "IP address and port of the OVN southbound API " + "(eg, ssl://1.2.3.4:6642,ssl://1.2.3.5:6642). " + "Leave empty to use a local unix socket.", Destination: &cliConfig.OvnSouth.Address, }, cli.StringFlag{ Name: "sb-server-privkey", Usage: "Private key that the OVN southbound API should use for securing the API. Leave empty to use local unix socket. (default: /etc/openvswitch/ovnsb-privkey.pem)", Destination: &cliConfig.OvnSouth.ServerPrivKey, }, cli.StringFlag{ Name: "sb-server-cert", Usage: "Server certificate that the OVN southbound API should use for securing the API. Leave empty to use local unix socket. (default: /etc/openvswitch/ovnsb-cert.pem)", Destination: &cliConfig.OvnSouth.ServerCert, }, cli.StringFlag{ Name: "sb-server-cacert", Usage: "CA certificate that the OVN southbound API should use for securing the API. Leave empty to use local unix socket. (default: /etc/openvswitch/ovnsb-ca.cert)", Destination: &cliConfig.OvnSouth.ServerCACert, }, cli.StringFlag{ Name: "sb-client-privkey", Usage: "Private key that the client should use for talking to the OVN database. Leave empty to use local unix socket. (default: /etc/openvswitch/ovnsb-privkey.pem)", Destination: &cliConfig.OvnSouth.ClientPrivKey, }, cli.StringFlag{ Name: "sb-client-cert", Usage: "Client certificate that the client should use for talking to the OVN database. Leave empty to use local unix socket. (default: /etc/openvswitch/ovnsb-cert.pem)", Destination: &cliConfig.OvnSouth.ClientCert, }, cli.StringFlag{ Name: "sb-client-cacert", Usage: "CA certificate that the client should use for talking to the OVN database. Leave empty to use local unix socket. (default: /etc/openvswitch/ovnsb-ca.cert)", Destination: &cliConfig.OvnSouth.ClientCACert, }, }
Flags are general command-line flags. Apps should add these flags to their own urfave/cli flags and call InitConfig() early in the application.
Functions ¶
func InitConfig ¶ added in v0.2.0
InitConfig reads the config file and common command-line options and constructs the global config object from them. It returns the config file path (if explicitly specified) or an error
func InitConfigWithPath ¶ added in v0.3.11
func InitConfigWithPath(ctx *cli.Context, exec kexec.Interface, configFile string, defaults *Defaults) (string, error)
InitConfigWithPath reads the given config file (or if empty, reads the config file specified by command-line arguments, or empty, the default config file) and common command-line options and constructs the global config object from them. It returns the config file path (if explicitly specified) or an error
func ReadCNIConfig ¶ added in v0.3.11
ReadCNIConfig unmarshals a CNI JSON config into an NetConf structure
func RestoreDefaultConfig ¶ added in v0.3.11
func RestoreDefaultConfig()
RestoreDefaultConfig restores default config values. Used by testcases to provide a pristine environment between tests.
func UpdateOvnNodeAuth ¶ added in v0.3.0
UpdateOvnNodeAuth updates the host and URL in ClientAuth and ServerAuth for both OvnNorth and OvnSouth. It updates them with the new masterIP.
func WriteCNIConfig ¶ added in v0.3.11
func WriteCNIConfig() error
WriteCNIConfig writes a CNI JSON config file to directory given by global config
Types ¶
type CNIConfig ¶ added in v0.2.0
type CNIConfig struct {
// ConfDir specifies the CNI config directory in which to write the overlay CNI config file
ConfDir string `gcfg:"conf-dir"`
// Plugin specifies the name of the CNI plugin
Plugin string `gcfg:"plugin"`
// Windows ONLY, specifies the ID of the HNS Network to which the containers will be attached
WinHNSNetworkID string `gcfg:"win-hnsnetwork-id"`
}
CNIConfig holds CNI-related parsed config file parameters and command-line overrides
type DefaultConfig ¶ added in v0.2.0
type DefaultConfig struct {
// MTU value used for the overlay networks.
MTU int `gcfg:"mtu"`
// ConntrackZone affects only the gateway nodes, This value is used to track connections
// that are initiated from the pods so that the reverse connections go back to the pods.
// This represents the conntrack zone used for the conntrack flow rules.
ConntrackZone int `gcfg:"conntrack-zone"`
// EncapType value defines the encapsulation protocol to use to transmit packets between
// hypervisors. By default the value is 'geneve'
EncapType string `gcfg:"encap-type"`
// The IP address of the encapsulation endpoint. If not specified, the IP address the
// NodeName resolves to will be used
EncapIP string `gcfg:"encap-ip"`
}
DefaultConfig holds parsed config file parameters and command-line overrides
type Defaults ¶ added in v0.2.0
Defaults are a set of flags to indicate which options should be read from ovs-vsctl and used as default values if option is not found via the config file or command-line
type KubernetesConfig ¶ added in v0.2.0
type KubernetesConfig struct {
Kubeconfig string `gcfg:"kubeconfig"`
CACert string `gcfg:"cacert"`
APIServer string `gcfg:"apiserver"`
Token string `gcfg:"token"`
}
KubernetesConfig holds Kubernetes-related parsed config file parameters and command-line overrides
type LoggingConfig ¶ added in v0.2.0
type LoggingConfig struct {
// File is the path of the file to log to
File string `gcfg:"logfile"`
// Level is the logging verbosity level
Level int `gcfg:"loglevel"`
}
LoggingConfig holds logging-related parsed config file parameters and command-line overrides
type OvnAuthConfig ¶ added in v0.2.0
OvnAuthConfig holds client and server authentication and location details for an OVN database (either northbound or southbound)
type OvnDBAuth ¶ added in v0.2.0
type OvnDBAuth struct {
OvnAddressForClient string // e.g: "ssl:192.168.1.2:6641,ssl:192.168.1.2:6642"
OvnAddressForServer string // e.g: "pssl:6641"
PrivKey string
Cert string
CACert string
Scheme OvnDBScheme
// contains filtered or unexported fields
}
OvnDBAuth describes an OVN database location and authentication method
type OvnDBScheme ¶ added in v0.2.0
type OvnDBScheme string
OvnDBScheme describes the OVN database connection transport method
const ( // OvnDBSchemeSSL specifies SSL as the OVN database transport method OvnDBSchemeSSL OvnDBScheme = "ssl" // OvnDBSchemeTCP specifies TCP as the OVN database transport method OvnDBSchemeTCP OvnDBScheme = "tcp" // OvnDBSchemeUnix specifies Unix domains sockets as the OVN database transport method OvnDBSchemeUnix OvnDBScheme = "unix" )