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" )