diff --git a/FAQ.md b/FAQ.md index 83ce1152a1..07ab3cd15f 100644 --- a/FAQ.md +++ b/FAQ.md @@ -21,7 +21,7 @@ need to be made aware of it by following the instructions below. OVN CNI requires several TCP and UDP ports to be opened on each of the node that is part of the K8s cluster. - 1. The node on which ovnkube-master or ovnkube-network-controller-manager runs, open following ports: + 1. The node on which ovnkube-master or ovnkube-controller runs, open following ports: ```text TCP: port 9409 (prometheus port to export ovnkube-master metrics) diff --git a/README.md b/README.md index a12175a764..d6da611e23 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ kubectl create -f $HOME/work/src/github.com/ovn-org/ovn-kubernetes/dist/yaml/k8s kubectl create -f $HOME/work/src/github.com/ovn-org/ovn-kubernetes/dist/yaml/ovnkube-db.yaml # Run ovnkube-master deployment -# To run ovnkube-master deployment with both cluster manager and network controller manager as one container) +# To run ovnkube-master deployment with both cluster manager and ovnkube controller as one container) kubectl create -f $HOME/work/src/github.com/ovn-org/ovn-kubernetes/dist/yaml/ovnkube-master.yaml # Run ovnkube daemonset for nodes diff --git a/dist/images/ovnkube.sh b/dist/images/ovnkube.sh index 9a0fe361a0..17494f1094 100755 --- a/dist/images/ovnkube.sh +++ b/dist/images/ovnkube.sh @@ -465,7 +465,7 @@ process_healthy() { check_health() { ctl_file="" case ${1} in - "ovnkube" | "ovnkube-master" | "ovn-dbchecker" | "ovnkube-cluster-manager" | "ovnkube-network-controller-manager") + "ovnkube" | "ovnkube-master" | "ovn-dbchecker" | "ovnkube-cluster-manager" | "ovnkube-controller") # just check for presence of pid ;; "ovnnb_db" | "ovnsb_db") @@ -987,7 +987,7 @@ run-ovn-northd() { exit 8 } -# v3 - run ovnkube --master (both cluster-manager and network-controller-manager) +# v3 - run ovnkube --master (both cluster-manager and ovnkube-controller) ovn-master() { trap 'kill $(jobs -p); exit 0' TERM check_ovn_daemonset_version "3" @@ -1178,13 +1178,13 @@ ovn-master() { exit 9 } -# v3 - run ovnkube --network-controller-manager -ovn-network-controller-manager() { +# v3 - run ovnkube --ovnkube-controller +ovnkube-controller() { trap 'kill $(jobs -p); exit 0' TERM check_ovn_daemonset_version "3" - rm -f ${OVN_RUNDIR}/ovnkube-network-controller-manager.pid + rm -f ${OVN_RUNDIR}/ovnkube-controller.pid - echo "=============== ovn-network-controller-manager (wait for ready_to_start_node) ==========" + echo "=============== ovnkube-controller (wait for ready_to_start_node) ==========" wait_for_event ready_to_start_node echo "ovn_nbdb ${ovn_nbdb} ovn_sbdb ${ovn_sbdb}" @@ -1192,7 +1192,7 @@ ovn-network-controller-manager() { wait_for_event process_ready ovn-northd # wait for ovs-servers to start since ovn-master sets some fields in OVS DB - echo "=============== ovn-network-controller-manager - (wait for ovs)" + echo "=============== ovnkube-controller - (wait for ovs)" wait_for_event ovs_ready hybrid_overlay_flags= @@ -1316,7 +1316,7 @@ ovn-network-controller-manager() { echo "ovnkube_config_duration_enable_flag: ${ovnkube_config_duration_enable_flag}" ovn_zone=$(get_node_zone) - echo "ovn-network-controller-manager's configured zone is ${ovn_zone}" + echo "ovnkube-controller's configured zone is ${ovn_zone}" ovn_dbs="" if [[ $ovn_nbdb != "local" ]]; then @@ -1332,9 +1332,9 @@ ovn-network-controller-manager() { fi echo "ovnkube_enable_interconnect_flag: ${ovnkube_enable_interconnect_flag}" - echo "=============== ovn-network-controller-manager ========== MASTER ONLY" + echo "=============== ovnkube-controller ========== MASTER ONLY" /usr/bin/ovnkube \ - --init-network-controller-manager ${K8S_NODE} \ + --init-ovnkube-controller ${K8S_NODE} \ --cluster-subnets ${net_cidr} --k8s-service-cidr=${svc_cidr} \ ${ovn_dbs} \ --gateway-mode=${ovn_gateway_mode} \ @@ -1347,8 +1347,8 @@ ovn-network-controller-manager() { ${empty_lb_events_flag} \ ${ovn_v4_join_subnet_opt} \ ${ovn_v6_join_subnet_opt} \ - --pidfile ${OVN_RUNDIR}/ovnkube-network-controller-manager.pid \ - --logfile /var/log/ovn-kubernetes/ovnkube-network-controller-manager.log \ + --pidfile ${OVN_RUNDIR}/ovnkube-controller.pid \ + --logfile /var/log/ovn-kubernetes/ovnkube-controller.log \ ${ovn_master_ssl_opts} \ ${ovnkube_metrics_tls_opts} \ ${multicast_enabled_flag} \ @@ -1365,10 +1365,10 @@ ovn-network-controller-manager() { --metrics-bind-address ${ovnkube_master_metrics_bind_address} \ --host-network-namespace ${ovn_host_network_namespace} & - echo "=============== ovn-network-controller-manager ========== running" - wait_for_event attempts=3 process_ready ovnkube-network-controller-manager + echo "=============== ovnkube-controller ========== running" + wait_for_event attempts=3 process_ready ovnkube-controller - process_healthy ovnkube-network-controller-manager + process_healthy ovnkube-controller exit 9 } @@ -1876,8 +1876,8 @@ case ${cmd} in "ovn-master") # pod ovnkube-master container ovnkube-master ovn-master ;; -"ovn-network-controller-manager") # pod ovnkube-master container ovnkube-network-controller-manager - ovn-network-controller-manager +"ovnkube-controller") # pod ovnkube-master container ovnkube-controller + ovnkube-controller ;; "ovn-cluster-manager") # pod ovnkube-master container ovnkube-cluster-manager ovn-cluster-manager diff --git a/dist/templates/ovnkube-monitor.yaml.j2 b/dist/templates/ovnkube-monitor.yaml.j2 index f3411c9d2e..44e23ab1ea 100644 --- a/dist/templates/ovnkube-monitor.yaml.j2 +++ b/dist/templates/ovnkube-monitor.yaml.j2 @@ -1,5 +1,5 @@ # define ServiceMontior and Service resources for ovnkube-cluster-manager, -# ovnkube-master (or ovnkube-network-controller-manager), ovnkube-node and ovnkube-db (required for prometheus monitoring) +# ovnkube-master (or ovnkube-controller), ovnkube-node and ovnkube-db (required for prometheus monitoring) apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor diff --git a/dist/templates/ovnkube-single-node-zone.yaml.j2 b/dist/templates/ovnkube-single-node-zone.yaml.j2 index 154e229b8f..74054c0960 100644 --- a/dist/templates/ovnkube-single-node-zone.yaml.j2 +++ b/dist/templates/ovnkube-single-node-zone.yaml.j2 @@ -241,7 +241,7 @@ spec: image: "{{ ovn_image | default('docker.io/ovnkube/ovn-daemonset:latest') }}" imagePullPolicy: "{{ ovn_image_pull_policy | default('IfNotPresent') }}" - command: ["/root/ovnkube.sh", "ovn-network-controller-manager"] + command: ["/root/ovnkube.sh", "ovnkube-controller"] securityContext: runAsUser: 0 diff --git a/dist/templates/ovnkube-zone-controller.yaml.j2 b/dist/templates/ovnkube-zone-controller.yaml.j2 index c93a6e5023..c2a20825b4 100644 --- a/dist/templates/ovnkube-zone-controller.yaml.j2 +++ b/dist/templates/ovnkube-zone-controller.yaml.j2 @@ -1,7 +1,7 @@ --- # ovnkube-zone-controller # daemonset version 3 -# starts zone controller daemons - ovn dbs, ovn-northd and ovnkube-network-controller-manager containers +# starts zone controller daemons - ovn dbs, ovn-northd and ovnkube-controller containers kind: DaemonSet apiVersion: apps/v1 metadata: @@ -257,7 +257,7 @@ spec: image: "{{ ovn_image | default('docker.io/ovnkube/ovn-daemonset:latest') }}" imagePullPolicy: "{{ ovn_image_pull_policy | default('IfNotPresent') }}" - command: ["/root/ovnkube.sh", "ovn-network-controller-manager"] + command: ["/root/ovnkube.sh", "ovnkube-controller"] securityContext: runAsUser: 0 diff --git a/docs/ha.md b/docs/ha.md index 644a88f239..ee52e6c7b0 100644 --- a/docs/ha.md +++ b/docs/ha.md @@ -76,11 +76,11 @@ sudo ovs-appctl -t /var/run/openvswitch/ovnsb_db.ctl \ ## ovnkube master HA setup -ovnkube master has 2 main components - cluster-manager and network-controller-manager. +ovnkube master has 2 main components - cluster-manager and ovnkube-controller. Starting ovnkube with '-init-master', runs both the components. It is also possible to run these components individually by starting 2 ovnkube's one with '-init-cluster-manager' -and the other with '-init-network-controller-manager'. +and the other with '-init-ovnkube-controller'. On the master nodes, we can either * start ovnkube with '-init-master' @@ -105,25 +105,25 @@ nohup sudo ovnkube -k8s-kubeconfig kubeconfig.yaml \ -nb-address="${ovn_nb}" \ -sb-address="${ovn_sb}" 2>&1 & - * start 'ovnkube -init-cluster-manager' and 'ovnkube -init-network-controller-manager' + * start 'ovnkube -init-cluster-manager' and 'ovnkube -init-ovnkube-controller' This should be a deployment with these 2 as containers Eg. ovnkube master supports running in 3 modes. -init-master mode, init-cluster-manager mode or init-network-controller-manager +init-master mode, init-cluster-manager mode or init-ovnkube-controller mode. If ovnkube is run with "-init-master" mode, then there is no need to run the other modes because master mode enables both cluster-manager -and network-controller-manager. If the user desires to run cluster-manager -and network-controller-manager separately, then it is possible to do +and ovnkube-controller. If the user desires to run cluster-manager +and ovnkube-controller separately, then it is possible to do so by running nohup sudo ovnkube -k8s-kubeconfig kubeconfig.yaml \ -loglevel=4 \ -k8s-apiserver="http://$K8S_APISERVER_IP:8080" \ -logfile="/var/log/openvswitch/ovnkube.log" \ - -init-network-controller-manager="$NODENAME" -cluster-subnets="$CLUSTER_IP_SUBNET" \ + -init-ovnkube-controller="$NODENAME" -cluster-subnets="$CLUSTER_IP_SUBNET" \ -init-node="$NODENAME" \ -k8s-service-cidr="$SERVICE_IP_SUBNET" \ -k8s-token="$TOKEN" \ diff --git a/go-controller/README.md b/go-controller/README.md index 8b81b137a3..fb73a74e38 100644 --- a/go-controller/README.md +++ b/go-controller/README.md @@ -39,11 +39,11 @@ Usage: -cluster-subnets string cluster wide IP subnet to use (default: 11.11.0.0/16) -init-master string - initialize master which enables both cluster manager (allocates node subnets) and network controller manager (which watches pods/nodes/services/policies and creates OVN db resources), requires the hostname as argument + initialize master which enables both cluster manager (allocates node subnets) and ovnkube controller (which watches pods/nodes/services/policies and creates OVN db resources), requires the hostname as argument -init-cluster-manager string initialize cluster manager that watches nodes (allocates subnet for each node from the cluster-subnets), requires the hostname as argument and doesn't connect to the OVN dbs. - -init-network-controller-manager string - initialize network-controller-manager (which watches pods/nodes/services/policies and create OVN db resources), requires the hostname as argument. + -init-ovnkube-controller string + initialize ovnkube-controller (which watches pods/nodes/services/policies and create OVN db resources), requires the hostname as argument. -init-node string initialize node, requires the name that node is registered with in kubernetes cluster -cleanup-node string @@ -154,7 +154,7 @@ server-cacert=path/to/server-ca.crt ## Example -#### Initialize the master (both cluster manager and network controller manager) +#### Initialize the master (both cluster manager and ovnkube controller) ``` ovnkube --init-master \ @@ -165,14 +165,14 @@ ovnkube --init-master \ ``` The aforementioned master ovnkube controller will enable both the cluster manager (which watches nodes and allocates node subnets) -and network controller manager which initialize the central master logical router and establish the watcher loops for the following: +and ovnkube controller which initialize the central master logical router and establish the watcher loops for the following: - nodes: as new nodes are born and init-node is called, the logical switches will be created automatically by giving out IPAM for the respective nodes - pods: as new pods are born, allocate the logical port with dynamic addressing from the switch it belongs to - services/endpoints: as new endpoints of services are born, create/update the logical load balancer on all logical switches - network policies and a few other k8s resources -#### Initialize the cluster manager and network controller manager separately +#### Initialize the cluster manager and ovnkube controller separately ``` ovnkube --init-cluster-manager \ @@ -186,14 +186,14 @@ The aforementioned ovnkube cluster manager will establish the watcher loops for - nodes: as new nodes are born and init-node is called, the subnet IPAM is allocated for the respective nodes ``` -ovnkube --init-network-controller-manager \ +ovnkube --init-ovnkube-controller \ --k8s-cacert \ --k8s-token \ --k8s-apiserver \ --cluster-subnets ``` -The aforementioned ovnkube network controller manager will initialize the central master logical router and establish the watcher loops for the following: +The aforementioned ovnkube controller will initialize the central master logical router and establish the watcher loops for the following: - nodes: as new nodes are born and init-node is called, the logical switches will be created automatically by giving out IPAM for the respective nodes - pods: as new pods are born, allocate the logical port with dynamic addressing from the switch it belongs to - services/endpoints: as new endpoints of services are born, create/update the logical load balancer on all logical switches diff --git a/go-controller/cmd/ovnkube/ovnkube.go b/go-controller/cmd/ovnkube/ovnkube.go index d8662795ec..be16216fc2 100644 --- a/go-controller/cmd/ovnkube/ovnkube.go +++ b/go-controller/cmd/ovnkube/ovnkube.go @@ -178,10 +178,10 @@ func setupPIDFile(pidfile string) error { // ovnkubeRunMode object stores the run mode of the ovnkube type ovnkubeRunMode struct { - networkControllerManager bool // network controller manager (--init-network-controller-manager or --init-master) is enabled - clusterManager bool // cluster manager (--init-cluster-manager or --init-master) is enabled - node bool // node (--init-node) is enabled - cleanupNode bool // cleanup (--cleanup-node) is enabled + ovnkubeController bool // ovnkube controller (--init-ovnkube-controller or --init-master) is enabled + clusterManager bool // cluster manager (--init-cluster-manager or --init-master) is enabled + node bool // node (--init-node) is enabled + cleanupNode bool // cleanup (--cleanup-node) is enabled // Along with the run mode, an identity is provided that uniquely identifies // this instance vs other instances that might be running in the cluster. @@ -193,22 +193,22 @@ type ovnkubeRunMode struct { // determineOvnkubeRunMode determines the run modes of ovnkube // based on the init flags set. It is possible to run ovnkube in // multiple modes. Allowed multiple modes are: -// - master (controller manager + cluster manager) + node -// - network controller manager + cluster manager -// - network controller manager + node +// - master (ovnkube controller + cluster manager) + node +// - ovnkube controller + cluster manager +// - ovnkube controller + node func determineOvnkubeRunMode(ctx *cli.Context) (*ovnkubeRunMode, error) { mode := &ovnkubeRunMode{} master := ctx.String("init-master") cm := ctx.String("init-cluster-manager") - nm := ctx.String("init-network-controller-manager") + ovnkController := ctx.String("init-ovnkube-controller") node := ctx.String("init-node") cleanup := ctx.String("cleanup-node") if master != "" { - // If init-master is set, then both network controller manager and cluster manager + // If init-master is set, then both ovnkube controller and cluster manager // are enabled - mode.networkControllerManager = true + mode.ovnkubeController = true mode.clusterManager = true } @@ -216,8 +216,8 @@ func determineOvnkubeRunMode(ctx *cli.Context) (*ovnkubeRunMode, error) { mode.clusterManager = true } - if nm != "" { - mode.networkControllerManager = true + if ovnkController != "" { + mode.ovnkubeController = true } if node != "" { @@ -228,19 +228,19 @@ func determineOvnkubeRunMode(ctx *cli.Context) (*ovnkubeRunMode, error) { mode.cleanupNode = true } - if mode.cleanupNode && (mode.clusterManager || mode.networkControllerManager || mode.node) { + if mode.cleanupNode && (mode.clusterManager || mode.ovnkubeController || mode.node) { return nil, fmt.Errorf("cannot run cleanup-node mode along with any other mode") } - if !mode.clusterManager && !mode.networkControllerManager && !mode.node && !mode.cleanupNode { + if !mode.clusterManager && !mode.ovnkubeController && !mode.node && !mode.cleanupNode { return nil, fmt.Errorf("need to specify a mode for ovnkube") } - if !mode.networkControllerManager && mode.clusterManager && mode.node { + if !mode.ovnkubeController && mode.clusterManager && mode.node { return nil, fmt.Errorf("cannot run in both cluster manager and node mode") } - identities := sets.NewString(master, cm, nm, node, cleanup) + identities := sets.NewString(master, cm, ovnkController, node, cleanup) identities.Delete("") if identities.Len() != 1 { return nil, fmt.Errorf("provided no identity or different identities for different modes") @@ -297,23 +297,23 @@ func startOvnKube(ctx *cli.Context, cancel context.CancelFunc) error { } // no need for leader election in node mode - if !runMode.clusterManager && !runMode.networkControllerManager { + if !runMode.clusterManager && !runMode.ovnkubeController { return runOvnKube(ctx.Context, runMode, ovnClientset, eventRecorder) } - // Register prometheus metrics that do not depend on becoming ovnkube-master - // leader and get the proper HA config depending on the mode. For network - // manager mode or combined cluster and network manager modes (the classic + // Register prometheus metrics that do not depend on becoming ovnkube-controller + // leader and get the proper HA config depending on the mode. For ovnkube + // controller mode or combined cluster manager and ovnkube-controller modes (the classic // master mode), the master HA config applies. For cluster manager // standalone mode, the cluster manager HA config applies. var haConfig *config.HAConfig var name string switch { - case runMode.networkControllerManager && runMode.clusterManager: + case runMode.ovnkubeController && runMode.clusterManager: metrics.RegisterClusterManagerBase() fallthrough - case runMode.networkControllerManager: - metrics.RegisterMasterBase() + case runMode.ovnkubeController: + metrics.RegisterOVNKubeControllerBase() haConfig = &config.MasterHA name = networkControllerManagerLockName() case runMode.clusterManager: @@ -419,9 +419,9 @@ func runOvnKube(ctx context.Context, runMode *ovnkubeRunMode, ovnClientset *util var masterWatchFactory *factory.WatchFactory var err error - if runMode.networkControllerManager { + if runMode.ovnkubeController { // create factory and start the controllers asked for - masterWatchFactory, err = factory.NewNCMWatchFactory(ovnClientset.GetNetworkControllerManagerClientset()) + masterWatchFactory, err = factory.NewOVNKubeControllerWatchFactory(ovnClientset.GetOVNKubeControllerClientset()) if err != nil { return err } @@ -430,7 +430,7 @@ func runOvnKube(ctx context.Context, runMode *ovnkubeRunMode, ovnClientset *util if runMode.clusterManager { var clusterManagerWatchFactory *factory.WatchFactory - if runMode.networkControllerManager { + if runMode.ovnkubeController { // if CM and NCM modes are enabled, then we should call the combo mode - NewMasterWatchFactory masterWatchFactory, err = factory.NewMasterWatchFactory(ovnClientset.GetMasterClientset()) if err != nil { @@ -460,7 +460,7 @@ func runOvnKube(ctx context.Context, runMode *ovnkubeRunMode, ovnClientset *util metrics.MetricClusterManagerReadyDuration.Set(time.Since(startTime).Seconds()) } - if runMode.networkControllerManager { + if runMode.ovnkubeController { var libovsdbOvnNBClient, libovsdbOvnSBClient libovsdbclient.Client if libovsdbOvnNBClient, err = libovsdb.NewNBClient(stopChan); err != nil { @@ -478,22 +478,22 @@ func runOvnKube(ctx context.Context, runMode *ovnkubeRunMode, ovnClientset *util } err = cm.Start(ctx) if err != nil { - return fmt.Errorf("failed to start network controller manager: %w", err) + return fmt.Errorf("failed to start ovnkube controller: %w", err) } defer cm.Stop() // record delay until ready - metrics.MetricMasterReadyDuration.Set(time.Since(startTime).Seconds()) + metrics.MetricOVNKubeControllerReadyDuration.Set(time.Since(startTime).Seconds()) } if runMode.node { var nodeWatchFactory factory.NodeWatchFactory - if runMode.networkControllerManager && runMode.clusterManager { + if runMode.ovnkubeController && runMode.clusterManager { // masterWatchFactory would be initialized as NewMasterWatchFactory already, let's use that nodeWatchFactory = masterWatchFactory - } else if runMode.networkControllerManager { - // masterWatchFactory would be initialized as NewNCMWatchFactory, let's change that + } else if runMode.ovnkubeController { + // masterWatchFactory would be initialized as NewOVNKubeControllerWatchFactory, let's change that // if Node and NCM modes are enabled, then we should call the combo mode - NewMasterWatchFactory masterWatchFactory, err = factory.NewMasterWatchFactory(ovnClientset.GetMasterClientset()) if err != nil { @@ -516,7 +516,7 @@ func runOvnKube(ctx context.Context, runMode *ovnkubeRunMode, ovnClientset *util metrics.RegisterNodeMetrics() ncm, err := controllerManager.NewNodeNetworkControllerManager(ovnClientset, nodeWatchFactory, runMode.identity, eventRecorder) if err != nil { - return fmt.Errorf("failed to create ovnkube node network controller manager: %w", err) + return fmt.Errorf("failed to create ovnkube node ovnkube controller: %w", err) } err = ncm.Start(ctx) if err != nil { @@ -544,22 +544,22 @@ func runOvnKube(ctx context.Context, runMode *ovnkubeRunMode, ovnClientset *util return nil } -type ovnkubeMasterMetrics struct { +type leaderMetrics struct { runMode *ovnkubeRunMode } -func (m ovnkubeMasterMetrics) On(string) { - if m.runMode.networkControllerManager { - metrics.MetricMasterLeader.Set(1) +func (m leaderMetrics) On(string) { + if m.runMode.ovnkubeController { + metrics.MetricOVNKubeControllerLeader.Set(1) } if m.runMode.clusterManager { metrics.MetricClusterManagerLeader.Set(1) } } -func (m ovnkubeMasterMetrics) Off(string) { - if m.runMode.networkControllerManager { - metrics.MetricMasterLeader.Set(0) +func (m leaderMetrics) Off(string) { + if m.runMode.ovnkubeController { + metrics.MetricOVNKubeControllerLeader.Set(0) } if m.runMode.clusterManager { metrics.MetricClusterManagerLeader.Set(0) @@ -571,7 +571,7 @@ type ovnkubeMetricsProvider struct { } func (p ovnkubeMetricsProvider) NewLeaderMetric() leaderelection.SwitchMetric { - return &ovnkubeMasterMetrics{p.runMode} + return &leaderMetrics{p.runMode} } func networkControllerManagerLockName() string { diff --git a/go-controller/pkg/config/config.go b/go-controller/pkg/config/config.go index 6ac77b2760..d570a3e51f 100644 --- a/go-controller/pkg/config/config.go +++ b/go-controller/pkg/config/config.go @@ -239,7 +239,7 @@ type DefaultConfig struct { // the kernel network stack. This requires a new-enough kernel (5.15 or RHEL 8.5). EnableUDPAggregation bool `gcfg:"enable-udp-aggregation"` - // Zone name to which ovnkube-node/ovnkube-network-controller-manager belongs to + // Zone name to which ovnkube-node/ovnkube-controller belongs to Zone string `gcfg:"zone"` } @@ -651,15 +651,15 @@ var CommonFlags = []cli.Flag{ // Mode flags &cli.StringFlag{ Name: "init-master", - Usage: "initialize master (both cluster-manager and network-controller-manager), requires the hostname as argument", + Usage: "initialize master (both cluster-manager and ovnkube-controller), requires the hostname as argument", }, &cli.StringFlag{ Name: "init-cluster-manager", - Usage: "initialize cluster manager (but not network-controller-manager), requires the hostname as argument", + Usage: "initialize cluster manager (but not ovnkube-controller), requires the hostname as argument", }, &cli.StringFlag{ - Name: "init-network-controller-manager", - Usage: "initialize network-controller-manager (but not cluster-manager), requires the hostname as argument", + Name: "init-ovnkube-controller", + Usage: "initialize ovnkube-controller (but not cluster-manager), requires the hostname as argument", }, &cli.StringFlag{ Name: "init-node", @@ -840,7 +840,7 @@ var CommonFlags = []cli.Flag{ }, &cli.StringFlag{ Name: "zone", - Usage: "zone name to which ovnkube-node/ovnkube-network-controller-manager belongs to", + Usage: "zone name to which ovnkube-node/ovnkube-controller belongs to", Value: Default.Zone, Destination: &cliConfig.Default.Zone, }, diff --git a/go-controller/pkg/factory/factory.go b/go-controller/pkg/factory/factory.go index 7ff6183c66..dd6c09dded 100644 --- a/go-controller/pkg/factory/factory.go +++ b/go-controller/pkg/factory/factory.go @@ -155,11 +155,12 @@ var ( ) // NewMasterWatchFactory initializes a new watch factory for: -// a) network controller manager + cluster manager or -// b) network controller manager + node +// a) ovnkube controller + cluster manager or +// b) ovnkube controller + node +// c) all-in-one a.k.a ovnkube controller + cluster-manager + node // processes. func NewMasterWatchFactory(ovnClientset *util.OVNMasterClientset) (*WatchFactory, error) { - wf, err := NewNCMWatchFactory(ovnClientset.GetNetworkControllerManagerClientset()) + wf, err := NewOVNKubeControllerWatchFactory(ovnClientset.GetOVNKubeControllerClientset()) if err != nil { return nil, err } @@ -173,8 +174,8 @@ func NewMasterWatchFactory(ovnClientset *util.OVNMasterClientset) (*WatchFactory return wf, nil } -// NewNCMWatchFactory initializes a new watch factory for the network controller manager process -func NewNCMWatchFactory(ovnClientset *util.OVNNetworkControllerManagerClientset) (*WatchFactory, error) { +// NewOVNKubeControllerWatchFactory initializes a new watch factory for the ovnkube controller process +func NewOVNKubeControllerWatchFactory(ovnClientset *util.OVNKubeControllerClientset) (*WatchFactory, error) { // resync time is 12 hours, none of the resources being watched in ovn-kubernetes have // any race condition where a resync may be required e.g. cni executable on node watching for // events on pods and assuming that an 'ADD' event will contain the annotations put in by diff --git a/go-controller/pkg/metrics/cluster_manager.go b/go-controller/pkg/metrics/cluster_manager.go index dc69a50a17..7f40152d61 100644 --- a/go-controller/pkg/metrics/cluster_manager.go +++ b/go-controller/pkg/metrics/cluster_manager.go @@ -11,7 +11,7 @@ import ( var registerClusterManagerBaseMetrics sync.Once -// MetricMasterLeader identifies whether this instance of ovnkube-master is a leader or not +// MetricClusterManagerLeader identifies whether this instance of ovnkube-cluster-manager is a leader or not var MetricClusterManagerLeader = prometheus.NewGauge(prometheus.GaugeOpts{ Namespace: MetricOvnkubeNamespace, Subsystem: MetricOvnkubeSubsystemClusterManager, diff --git a/go-controller/pkg/metrics/metrics.go b/go-controller/pkg/metrics/metrics.go index a85898bf52..bcd9dc374b 100644 --- a/go-controller/pkg/metrics/metrics.go +++ b/go-controller/pkg/metrics/metrics.go @@ -26,7 +26,7 @@ import ( const ( MetricOvnkubeNamespace = "ovnkube" - MetricOvnkubeSubsystemMaster = "master" + MetricOvnkubeSubsystemController = "controller" MetricOvnkubeSubsystemClusterManager = "clustermanager" MetricOvnkubeSubsystemNode = "node" MetricOvnNamespace = "ovn" diff --git a/go-controller/pkg/metrics/master.go b/go-controller/pkg/metrics/ovnkube_controller.go similarity index 94% rename from go-controller/pkg/metrics/master.go rename to go-controller/pkg/metrics/ovnkube_controller.go index 1e562b8bb1..e649f2ee81 100644 --- a/go-controller/pkg/metrics/master.go +++ b/go-controller/pkg/metrics/ovnkube_controller.go @@ -34,7 +34,7 @@ import ( // metric on the fly when metrics are scraped. var metricNbE2eTimestamp = prometheus.NewGauge(prometheus.GaugeOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "nb_e2e_timestamp", Help: "The current e2e-timestamp value as written to the northbound database"}, ) @@ -54,7 +54,7 @@ var metricDbTimestamp = prometheus.NewGaugeVec(prometheus.GaugeOpts{ // completing its logical switch port configuration. var metricPodCreationLatency = prometheus.NewHistogram(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "pod_creation_latency_seconds", Help: "The duration between a pod being scheduled and completing its logical switch port configuration", Buckets: prometheus.ExponentialBuckets(.1, 2, 15), @@ -63,7 +63,7 @@ var metricPodCreationLatency = prometheus.NewHistogram(prometheus.HistogramOpts{ // metricOvnCliLatency is the duration to execute OVN commands using CLI tools ovn-nbctl or ovn-sbctl. var metricOvnCliLatency = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "ovn_cli_latency_seconds", Help: "The latency of various OVN commands. Currently, ovn-nbctl and ovn-sbctl", Buckets: prometheus.ExponentialBuckets(.1, 2, 15)}, @@ -74,7 +74,7 @@ var metricOvnCliLatency = prometheus.NewHistogramVec(prometheus.HistogramOpts{ // MetricResourceUpdateCount is the number of times a particular resource's UpdateFunc has been called. var MetricResourceUpdateCount = prometheus.NewCounterVec(prometheus.CounterOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "resource_update_total", Help: "The number of times a given resource event (add, update, or delete) has been handled"}, []string{ @@ -87,7 +87,7 @@ var MetricResourceUpdateCount = prometheus.NewCounterVec(prometheus.CounterOpts{ // This measures the latency for all of the handlers for a given resource. var MetricResourceAddLatency = prometheus.NewHistogram(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "resource_add_latency_seconds", Help: "The duration to process all handlers for a given resource event - add.", Buckets: prometheus.ExponentialBuckets(.1, 2, 15)}, @@ -97,7 +97,7 @@ var MetricResourceAddLatency = prometheus.NewHistogram(prometheus.HistogramOpts{ // This measures the latency for all of the handlers for a given resource. var MetricResourceUpdateLatency = prometheus.NewHistogram(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "resource_update_latency_seconds", Help: "The duration to process all handlers for a given resource event - update.", Buckets: prometheus.ExponentialBuckets(.1, 2, 15)}, @@ -107,7 +107,7 @@ var MetricResourceUpdateLatency = prometheus.NewHistogram(prometheus.HistogramOp // This measures the latency for all of the handlers for a given resource. var MetricResourceDeleteLatency = prometheus.NewHistogram(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "resource_delete_latency_seconds", Help: "The duration to process all handlers for a given resource event - delete.", Buckets: prometheus.ExponentialBuckets(.1, 2, 15)}, @@ -116,7 +116,7 @@ var MetricResourceDeleteLatency = prometheus.NewHistogram(prometheus.HistogramOp // MetricRequeueServiceCount is the number of times a particular service has been requeued. var MetricRequeueServiceCount = prometheus.NewCounter(prometheus.CounterOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "requeue_service_total", Help: "A metric that captures the number of times a service is requeued after failing to sync with OVN"}, ) @@ -124,7 +124,7 @@ var MetricRequeueServiceCount = prometheus.NewCounter(prometheus.CounterOpts{ // MetricSyncServiceCount is the number of times a particular service has been synced. var MetricSyncServiceCount = prometheus.NewCounter(prometheus.CounterOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "sync_service_total", Help: "A metric that captures the number of times a service is synced with OVN load balancers"}, ) @@ -132,41 +132,41 @@ var MetricSyncServiceCount = prometheus.NewCounter(prometheus.CounterOpts{ // MetricSyncServiceLatency is the time taken to sync a service with the OVN load balancers. var MetricSyncServiceLatency = prometheus.NewHistogram(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "sync_service_latency_seconds", Help: "The latency of syncing a service with the OVN load balancers", Buckets: prometheus.ExponentialBuckets(.1, 2, 15)}, ) -var MetricMasterReadyDuration = prometheus.NewGauge(prometheus.GaugeOpts{ +var MetricOVNKubeControllerReadyDuration = prometheus.NewGauge(prometheus.GaugeOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "ready_duration_seconds", - Help: "The duration for the master to get to ready state", + Help: "The duration for the ovnkube-controller to get to ready state", }) -// MetricMasterSyncDuration is the time taken to complete initial Watch for different resource. +// MetricOVNKubeControllerSyncDuration is the time taken to complete initial Watch for different resource. // Resource name is in the label. -var MetricMasterSyncDuration = prometheus.NewGaugeVec(prometheus.GaugeOpts{ +var MetricOVNKubeControllerSyncDuration = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "sync_duration_seconds", Help: "The duration to sync and setup all handlers for a given resource"}, []string{ "resource_name", }) -// MetricMasterLeader identifies whether this instance of ovnkube-master is a leader or not -var MetricMasterLeader = prometheus.NewGauge(prometheus.GaugeOpts{ +// MetricOVNKubeControllerLeader identifies whether this instance of ovnkube-controller is a leader or not +var MetricOVNKubeControllerLeader = prometheus.NewGauge(prometheus.GaugeOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "leader", - Help: "Identifies whether the instance of ovnkube-master is a leader(1) or not(0).", + Help: "Identifies whether the instance of ovnkube-controller is a leader(1) or not(0).", }) var metricEgressIPAssignLatency = prometheus.NewHistogram(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "egress_ips_assign_latency_seconds", Help: "The latency of egress IP assignment to ovn nb database", Buckets: prometheus.ExponentialBuckets(.001, 2, 15), @@ -174,7 +174,7 @@ var metricEgressIPAssignLatency = prometheus.NewHistogram(prometheus.HistogramOp var metricEgressIPUnassignLatency = prometheus.NewHistogram(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "egress_ips_unassign_latency_seconds", Help: "The latency of egress IP unassignment from ovn nb database", Buckets: prometheus.ExponentialBuckets(.001, 2, 15), @@ -182,7 +182,7 @@ var metricEgressIPUnassignLatency = prometheus.NewHistogram(prometheus.Histogram var metricNetpolEventLatency = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "network_policy_event_latency_seconds", Help: "The latency of full network policy event handling (create, delete)", Buckets: prometheus.ExponentialBuckets(.004, 2, 15)}, @@ -192,7 +192,7 @@ var metricNetpolEventLatency = prometheus.NewHistogramVec(prometheus.HistogramOp var metricNetpolLocalPodEventLatency = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "network_policy_local_pod_event_latency_seconds", Help: "The latency of local pod events handling (add, delete)", Buckets: prometheus.ExponentialBuckets(.002, 2, 15)}, @@ -202,7 +202,7 @@ var metricNetpolLocalPodEventLatency = prometheus.NewHistogramVec(prometheus.His var metricNetpolPeerNamespaceEventLatency = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "network_policy_peer_namespace_event_latency_seconds", Help: "The latency of peer namespace events handling (add, delete)", Buckets: prometheus.ExponentialBuckets(.002, 2, 15)}, @@ -212,7 +212,7 @@ var metricNetpolPeerNamespaceEventLatency = prometheus.NewHistogramVec(prometheu var metricPodSelectorAddrSetPodEventLatency = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "pod_selector_address_set_pod_event_latency_seconds", Help: "The latency of peer pod events handling (add, delete)", Buckets: prometheus.ExponentialBuckets(.002, 2, 15)}, @@ -222,7 +222,7 @@ var metricPodSelectorAddrSetPodEventLatency = prometheus.NewHistogramVec(prometh var metricPodSelectorAddrSetNamespaceEventLatency = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "pod_selector_address_set_namespace_event_latency_seconds", Help: "The latency of peer namespace events handling (add, delete)", Buckets: prometheus.ExponentialBuckets(.002, 2, 15)}, @@ -232,7 +232,7 @@ var metricPodSelectorAddrSetNamespaceEventLatency = prometheus.NewHistogramVec(p var metricPodEventLatency = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "pod_event_latency_seconds", Help: "The latency of pod events handling (add, update, delete)", Buckets: prometheus.ExponentialBuckets(.002, 2, 15)}, @@ -242,28 +242,28 @@ var metricPodEventLatency = prometheus.NewHistogramVec(prometheus.HistogramOpts{ var metricEgressFirewallRuleCount = prometheus.NewGauge(prometheus.GaugeOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "num_egress_firewall_rules", Help: "The number of egress firewall rules defined"}, ) var metricIPsecEnabled = prometheus.NewGauge(prometheus.GaugeOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "ipsec_enabled", Help: "Specifies whether IPSec is enabled for this cluster(1) or not enabled for this cluster(0)", }) var metricEgressRoutingViaHost = prometheus.NewGauge(prometheus.GaugeOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "egress_routing_via_host", Help: "Specifies whether egress gateway mode is via host networking stack(1) or not(0)", }) var metricEgressFirewallCount = prometheus.NewGauge(prometheus.GaugeOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "num_egress_firewalls", Help: "The number of egress firewall policies", }) @@ -271,7 +271,7 @@ var metricEgressFirewallCount = prometheus.NewGauge(prometheus.GaugeOpts{ // metricFirstSeenLSPLatency is the time between a pod first seen in OVN-Kubernetes and its Logical Switch Port is created var metricFirstSeenLSPLatency = prometheus.NewHistogram(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "pod_first_seen_lsp_created_duration_seconds", Help: "The duration between a pod first observed in OVN-Kubernetes and Logical Switch Port created", Buckets: prometheus.ExponentialBuckets(.01, 2, 15), @@ -279,7 +279,7 @@ var metricFirstSeenLSPLatency = prometheus.NewHistogram(prometheus.HistogramOpts var metricLSPPortBindingLatency = prometheus.NewHistogram(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "pod_lsp_created_port_binding_duration_seconds", Help: "The duration between a pods Logical Switch Port created and port binding observed in cache", Buckets: prometheus.ExponentialBuckets(.01, 2, 15), @@ -287,7 +287,7 @@ var metricLSPPortBindingLatency = prometheus.NewHistogram(prometheus.HistogramOp var metricPortBindingChassisLatency = prometheus.NewHistogram(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "pod_port_binding_port_binding_chassis_duration_seconds", Help: "The duration between a pods port binding observed and port binding chassis update observed in cache", Buckets: prometheus.ExponentialBuckets(.01, 2, 15), @@ -295,7 +295,7 @@ var metricPortBindingChassisLatency = prometheus.NewHistogram(prometheus.Histogr var metricPortBindingUpLatency = prometheus.NewHistogram(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "pod_port_binding_chassis_port_binding_up_duration_seconds", Help: "The duration between a pods port binding chassis update and port binding up observed in cache", Buckets: prometheus.ExponentialBuckets(.01, 2, 15), @@ -303,7 +303,7 @@ var metricPortBindingUpLatency = prometheus.NewHistogram(prometheus.HistogramOpt var metricNetworkProgramming prometheus.ObserverVec = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "network_programming_duration_seconds", Help: "The duration to apply network configuration for a kind (e.g. pod, service, networkpolicy). " + "Configuration includes add, update and delete events for each kind.", @@ -318,7 +318,7 @@ var metricNetworkProgramming prometheus.ObserverVec = prometheus.NewHistogramVec var metricNetworkProgrammingOVN = prometheus.NewHistogram(prometheus.HistogramOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "network_programming_ovn_duration_seconds", Help: "The duration for OVN to apply network configuration", Buckets: merge( @@ -333,16 +333,16 @@ const ( globalOptionsProbeIntervalField = "northd_probe_interval" ) -// RegisterMasterBase registers ovnkube master base metrics with the Prometheus registry. +// RegisterOVNKubeControllerBase registers ovnkube controller base metrics with the Prometheus registry. // This function should only be called once. -func RegisterMasterBase() { - prometheus.MustRegister(MetricMasterLeader) - prometheus.MustRegister(MetricMasterReadyDuration) - prometheus.MustRegister(MetricMasterSyncDuration) +func RegisterOVNKubeControllerBase() { + prometheus.MustRegister(MetricOVNKubeControllerLeader) + prometheus.MustRegister(MetricOVNKubeControllerReadyDuration) + prometheus.MustRegister(MetricOVNKubeControllerSyncDuration) prometheus.MustRegister(prometheus.NewGaugeFunc( prometheus.GaugeOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "build_info", Help: "A metric with a constant '1' value labeled by version, revision, branch, " + "and go version from which ovnkube was built and when and who built it", @@ -359,8 +359,8 @@ func RegisterMasterBase() { )) } -// RegisterMasterPerformance registers metrics that help us understand ovnkube-master performance. Call once after LE is won. -func RegisterMasterPerformance(nbClient libovsdbclient.Client) { +// RegisterOVNKubeControllerPerformance registers metrics that help us understand ovnkube-controller performance. Call once after LE is won. +func RegisterOVNKubeControllerPerformance(nbClient libovsdbclient.Client) { // No need to unregister because process exits when leadership is lost. prometheus.MustRegister(metricPodCreationLatency) prometheus.MustRegister(MetricResourceUpdateCount) @@ -373,7 +373,7 @@ func RegisterMasterPerformance(nbClient libovsdbclient.Client) { prometheus.MustRegister(metricOvnCliLatency) // This is set to not create circular import between metrics and util package util.MetricOvnCliLatency = metricOvnCliLatency - registerWorkqueueMetrics(MetricOvnkubeNamespace, MetricOvnkubeSubsystemMaster) + registerWorkqueueMetrics(MetricOvnkubeNamespace, MetricOvnkubeSubsystemController) prometheus.MustRegister(prometheus.NewGaugeFunc( prometheus.GaugeOpts{ Namespace: MetricOvnNamespace, @@ -387,9 +387,9 @@ func RegisterMasterPerformance(nbClient libovsdbclient.Client) { )) } -// RegisterMasterFunctional is a collection of metrics that help us understand ovnkube-master functions. Call once after +// RegisterOVNKubeControllerFunctional is a collection of metrics that help us understand ovnkube-controller functions. Call once after // LE is won. -func RegisterMasterFunctional() { +func RegisterOVNKubeControllerFunctional() { // No need to unregister because process exits when leadership is lost. if config.Metrics.EnableScaleMetrics { klog.Infof("Scale metrics are enabled") @@ -425,7 +425,7 @@ func RunTimestamp(stopChan <-chan struct{}, sbClient, nbClient libovsdbclient.Cl prometheus.MustRegister(prometheus.NewGaugeFunc( prometheus.GaugeOpts{ Namespace: MetricOvnkubeNamespace, - Subsystem: MetricOvnkubeSubsystemMaster, + Subsystem: MetricOvnkubeSubsystemController, Name: "sb_e2e_timestamp", Help: "The current e2e-timestamp value as observed in the southbound database", }, func() float64 { @@ -836,7 +836,7 @@ type ovnMeasurement struct { nbCfg int } -// measurement stores a measurement attempt through OVN-Kubernetes master and optionally OVN +// measurement stores a measurement attempt through OVN-Kubernetes controller and optionally OVN type measurement struct { // kubernetes kind e.g. pod or service kind string @@ -897,7 +897,7 @@ func (cr *ConfigDurationRecorder) Run(nbClient libovsdbclient.Client, kube kube. // ** configuration duration recorder - intro ** // We measure the duration to configure whatever k8 kind (pod, services, etc.) object and optionally its application // to all nodes. Metrics record this duration. This will give a rough upper bound of how long it takes OVN-Kubernetes - // master container (CMS) and optionally (if AddOVN is called), OVN to configure all nodes under its control. + // controller container (CMS) and optionally (if AddOVN is called), OVN to configure all nodes under its control. // Not every attempt to record will result in a measurement if argument k > 0. The measurement rate is proportional to // the number of nodes, N and argument k. 1 out of every N*k attempted measurements will succeed. @@ -1190,7 +1190,7 @@ func (cr *ConfigDurationRecorder) processMeasurements(period time.Duration, upda } ovnKDelta = m.endTimestamp.Sub(m.startTimestamp).Seconds() metricNetworkProgramming.With(prometheus.Labels{"kind": m.kind}).Observe(ovnKDelta) - klog.V(5).Infof("Config duration recorder: kind/namespace/name %s. OVN-Kubernetes master took %v"+ + klog.V(5).Infof("Config duration recorder: kind/namespace/name %s. OVN-Kubernetes controller took %v"+ " seconds. No OVN measurement.", kindNamespaceName, ovnKDelta) delete(cr.measurements, kindNamespaceName) cr.measurementsMu.Unlock() @@ -1214,7 +1214,7 @@ func (cr *ConfigDurationRecorder) processMeasurements(period time.Duration, upda if len(m.ovnMeasurements) == 0 { ovnKDelta = m.endTimestamp.Sub(m.startTimestamp).Seconds() metricNetworkProgramming.With(prometheus.Labels{"kind": m.kind}).Observe(ovnKDelta) - klog.V(5).Infof("Config duration recorder: kind/namespace/name %s. OVN-Kubernetes master"+ + klog.V(5).Infof("Config duration recorder: kind/namespace/name %s. OVN-Kubernetes controller"+ " took %v seconds. No OVN measurement.", kindNamespaceName, ovnKDelta) delete(cr.measurements, kindNamespaceName) continue @@ -1230,7 +1230,7 @@ func (cr *ConfigDurationRecorder) processMeasurements(period time.Duration, upda ovnDelta = calculateOVNDuration(m.ovnMeasurements) metricNetworkProgramming.With(prometheus.Labels{"kind": m.kind}).Observe(ovnKDelta + ovnDelta) metricNetworkProgrammingOVN.Observe(ovnDelta) - klog.V(5).Infof("Config duration recorder: kind/namespace/name %s. OVN-Kubernetes master took"+ + klog.V(5).Infof("Config duration recorder: kind/namespace/name %s. OVN-Kubernetes controller took"+ " %v seconds. OVN took %v seconds. Total took %v seconds", kindNamespaceName, ovnKDelta, ovnDelta, ovnDelta+ovnKDelta) delete(cr.measurements, kindNamespaceName) diff --git a/go-controller/pkg/metrics/master_test.go b/go-controller/pkg/metrics/ovnkube_controller_test.go similarity index 100% rename from go-controller/pkg/metrics/master_test.go rename to go-controller/pkg/metrics/ovnkube_controller_test.go diff --git a/go-controller/pkg/network-attach-def-controller/network_attach_def_controller.go b/go-controller/pkg/network-attach-def-controller/network_attach_def_controller.go index 9827f5b4ed..57bb418bd3 100644 --- a/go-controller/pkg/network-attach-def-controller/network_attach_def_controller.go +++ b/go-controller/pkg/network-attach-def-controller/network_attach_def_controller.go @@ -88,7 +88,7 @@ type NetAttachDefinitionController struct { // key is nadName, value is BasicNetInfo perNADNetInfo *syncmap.SyncMap[util.BasicNetInfo] // controller for all networks, key is netName of net-attach-def, value is networkNADInfo - // this map is updated either at the very beginning of network controller manager when initializing the + // this map is updated either at the very beginning of ovnkube controller when initializing the // default controller or when net-attach-def is added/deleted. All these are serialized by syncmap lock perNetworkNADInfo *syncmap.SyncMap[*networkNADInfo] } diff --git a/go-controller/pkg/network-controller-manager/network_controller_manager.go b/go-controller/pkg/network-controller-manager/network_controller_manager.go index ccdd15d76a..ddb01f3ca0 100644 --- a/go-controller/pkg/network-controller-manager/network_controller_manager.go +++ b/go-controller/pkg/network-controller-manager/network_controller_manager.go @@ -177,7 +177,7 @@ func (cm *networkControllerManager) CleanupDeletedNetworks(allControllers []nad. return nil } -// NewNetworkControllerManager creates a new OVN controller manager to manage all the controller for all networks +// NewNetworkControllerManager creates a new ovnkube controller manager to manage all the controller for all networks func NewNetworkControllerManager(ovnClient *util.OVNClientset, identity string, wf *factory.WatchFactory, libovsdbOvnNBClient libovsdbclient.Client, libovsdbOvnSBClient libovsdbclient.Client, recorder record.EventRecorder, wg *sync.WaitGroup) (*networkControllerManager, error) { @@ -241,8 +241,8 @@ func (cm *networkControllerManager) configureSvcTemplateSupport() { } func (cm *networkControllerManager) configureMetrics(stopChan <-chan struct{}) { - metrics.RegisterMasterPerformance(cm.nbClient) - metrics.RegisterMasterFunctional() + metrics.RegisterOVNKubeControllerPerformance(cm.nbClient) + metrics.RegisterOVNKubeControllerFunctional() metrics.RunTimestamp(stopChan, cm.sbClient, cm.nbClient) metrics.MonitorIPSec(cm.nbClient) } @@ -296,9 +296,9 @@ func (cm *networkControllerManager) initDefaultNetworkController() error { return nil } -// Start the network controller manager +// Start the ovnkube controller func (cm *networkControllerManager) Start(ctx context.Context) error { - klog.Info("Starting the network controller manager") + klog.Info("Starting the ovnkube controller") // Make sure that the NCM zone matches with the Northbound db zone. // Wait for 300s before giving up diff --git a/go-controller/pkg/network-controller-manager/network_controller_manager_suite_test.go b/go-controller/pkg/network-controller-manager/network_controller_manager_suite_test.go index 79b0e67c7b..7188f24e98 100644 --- a/go-controller/pkg/network-controller-manager/network_controller_manager_suite_test.go +++ b/go-controller/pkg/network-controller-manager/network_controller_manager_suite_test.go @@ -9,5 +9,5 @@ import ( func TestNodeSuite(t *testing.T) { RegisterFailHandler(Fail) - RunSpecs(t, "Network Controller Manager Suite") + RunSpecs(t, "ovnkube controller suite") } diff --git a/go-controller/pkg/ovn/default_network_controller.go b/go-controller/pkg/ovn/default_network_controller.go index 59d70b00f3..abeb1b1a06 100644 --- a/go-controller/pkg/ovn/default_network_controller.go +++ b/go-controller/pkg/ovn/default_network_controller.go @@ -421,7 +421,7 @@ func (oc *DefaultNetworkController) Run(ctx context.Context) error { // Services should be started after nodes to prevent LB churn err := oc.StartServiceController(oc.wg, true) endSvc := time.Since(startSvc) - metrics.MetricMasterSyncDuration.WithLabelValues("service").Set(endSvc.Seconds()) + metrics.MetricOVNKubeControllerSyncDuration.WithLabelValues("service").Set(endSvc.Seconds()) if err != nil { return err } @@ -519,7 +519,7 @@ func (oc *DefaultNetworkController) Run(ctx context.Context) error { end := time.Since(start) klog.Infof("Completing all the Watchers took %v", end) - metrics.MetricMasterSyncDuration.WithLabelValues("all watchers").Set(end.Seconds()) + metrics.MetricOVNKubeControllerSyncDuration.WithLabelValues("all watchers").Set(end.Seconds()) if config.Kubernetes.OVNEmptyLbEvents { klog.Infof("Starting unidling controllers") @@ -556,7 +556,7 @@ func WithSyncDurationMetric(resourceName string, f func() error) error { start := time.Now() defer func() { end := time.Since(start) - metrics.MetricMasterSyncDuration.WithLabelValues(resourceName).Set(end.Seconds()) + metrics.MetricOVNKubeControllerSyncDuration.WithLabelValues(resourceName).Set(end.Seconds()) }() return f() } @@ -565,7 +565,7 @@ func WithSyncDurationMetricNoError(resourceName string, f func()) { start := time.Now() defer func() { end := time.Since(start) - metrics.MetricMasterSyncDuration.WithLabelValues(resourceName).Set(end.Seconds()) + metrics.MetricOVNKubeControllerSyncDuration.WithLabelValues(resourceName).Set(end.Seconds()) }() f() } diff --git a/go-controller/pkg/util/kube.go b/go-controller/pkg/util/kube.go index d050f9cae8..f89101c129 100644 --- a/go-controller/pkg/util/kube.go +++ b/go-controller/pkg/util/kube.go @@ -65,7 +65,7 @@ type OVNMasterClientset struct { } // OVNNetworkControllerManagerClientset -type OVNNetworkControllerManagerClientset struct { +type OVNKubeControllerClientset struct { KubeClient kubernetes.Interface EgressIPClient egressipclientset.Interface EgressFirewallClient egressfirewallclientset.Interface @@ -102,8 +102,8 @@ func (cs *OVNClientset) GetMasterClientset() *OVNMasterClientset { } } -func (cs *OVNMasterClientset) GetNetworkControllerManagerClientset() *OVNNetworkControllerManagerClientset { - return &OVNNetworkControllerManagerClientset{ +func (cs *OVNMasterClientset) GetOVNKubeControllerClientset() *OVNKubeControllerClientset { + return &OVNKubeControllerClientset{ KubeClient: cs.KubeClient, EgressIPClient: cs.EgressIPClient, EgressFirewallClient: cs.EgressFirewallClient, @@ -114,8 +114,8 @@ func (cs *OVNMasterClientset) GetNetworkControllerManagerClientset() *OVNNetwork } } -func (cs *OVNClientset) GetNetworkControllerManagerClientset() *OVNNetworkControllerManagerClientset { - return &OVNNetworkControllerManagerClientset{ +func (cs *OVNClientset) GetOVNKubeControllerClientset() *OVNKubeControllerClientset { + return &OVNKubeControllerClientset{ KubeClient: cs.KubeClient, EgressIPClient: cs.EgressIPClient, EgressFirewallClient: cs.EgressFirewallClient,