Repository: kubernetes/kubernetes
File: staging/src/k8s.io/cloud-provider/options/nodecontroller.go (Go)

Code before:
*/

package options

import (
	"fmt"

	"github.com/spf13/pflag"

	nodeconfig "k8s.io/cloud-provider/controllers/node/config"
)

// NodeControllerOptions holds the ServiceController options.
type NodeControllerOptions struct {
	*nodeconfig.NodeControllerConfiguration
}

// AddFlags adds flags related to ServiceController for controller manager to the specified FlagSet.
func (o *NodeControllerOptions) AddFlags(fs *pflag.FlagSet) {
	if o == nil {
		return
	}

	fs.Int32Var(&o.ConcurrentNodeSyncs, "concurrent-node-syncs", o.ConcurrentNodeSyncs, "Number of workers concurrently synchronizing nodes.")
	// If concurrent-node-status-updates is not specified it will be derived from concurrent-node-syncs for backwards compatibility
	fs.Int32Var(&o.ConcurrentNodeStatusUpdates, "concurrent-node-status-updates", 0, "Number of workers concurrently updating node statuses. A value of 0 (which is the default) means the value will be derived from concurrent-node-syncs")
}

// ApplyTo fills up ServiceController config with options.
func (o *NodeControllerOptions) ApplyTo(cfg *nodeconfig.NodeControllerConfiguration) error {
	if o == nil {
		return nil
	}

	cfg.ConcurrentNodeSyncs = o.ConcurrentNodeSyncs
	// Concurrent node status updates used to be derived from the concurrent-node-syncs flag,
	// so for backwards compatibility it will default to concurrent-node-syncs if concurrent-node-status-updates is not specified
	if o.ConcurrentNodeStatusUpdates > 0 {
		cfg.ConcurrentNodeStatusUpdates = o.ConcurrentNodeStatusUpdates
	} else {
		cfg.ConcurrentNodeStatusUpdates = o.ConcurrentNodeSyncs
	}

	return nil
}

// Validate checks validation of NodeControllerOptions.
func (o *NodeControllerOptions) Validate() []error {
	if o == nil {
		return nil
	}

Review comment (suggestion):
```suggestion
	fs.Int32Var(&o.ConcurrentNodeStatusUpdates, "concurrent-node-status-updates", 0, "Number of workers concurrently updating node statuses. If unspecified or 0, --concurrent-node-syncs is used instead.")
```

Code after:
*/

package options

import (
	"fmt"

	"github.com/spf13/pflag"

	nodeconfig "k8s.io/cloud-provider/controllers/node/config"
)

// NodeControllerOptions holds the ServiceController options.
type NodeControllerOptions struct {
	*nodeconfig.NodeControllerConfiguration
}

// AddFlags adds flags related to ServiceController for controller manager to the specified FlagSet.
func (o *NodeControllerOptions) AddFlags(fs *pflag.FlagSet) {
	if o == nil {
		return
	}

	fs.Int32Var(&o.ConcurrentNodeSyncs, "concurrent-node-syncs", o.ConcurrentNodeSyncs, "Number of workers concurrently synchronizing nodes.")
	// If concurrent-node-status-updates is not specified it will be derived from concurrent-node-syncs for backwards compatibility
	fs.Int32Var(&o.ConcurrentNodeStatusUpdates, "concurrent-node-status-updates", 0, "Number of workers concurrently updating node statuses. If unspecified or 0, --concurrent-node-syncs is used instead")
}

// ApplyTo fills up ServiceController config with options.
func (o *NodeControllerOptions) ApplyTo(cfg *nodeconfig.NodeControllerConfiguration) error {
	if o == nil {
		return nil
	}

	cfg.ConcurrentNodeSyncs = o.ConcurrentNodeSyncs
	// Concurrent node status updates used to be derived from the concurrent-node-syncs flag,
	// so for backwards compatibility it will default to concurrent-node-syncs if concurrent-node-status-updates is not specified
	if o.ConcurrentNodeStatusUpdates > 0 {
		cfg.ConcurrentNodeStatusUpdates = o.ConcurrentNodeStatusUpdates
	} else {
		cfg.ConcurrentNodeStatusUpdates = o.ConcurrentNodeSyncs
	}

	return nil
}

// Validate checks validation of NodeControllerOptions.
func (o *NodeControllerOptions) Validate() []error {
	if o == nil {
		return nil
	}