Kubernetes controllers configuration

4 MINUTE READ

A Calico Kubernetes controllers configuration resource (KubeControllersConfiguration) represents configuration options for the Calico Kubernetes controllers.

For calicoctl commands that specify a resource type on the CLI, the following aliases are supported (all case insensitive): kubecontrollersconfiguration, kubecontrollersconfig.

Sample YAML

apiVersion: projectcalico.org/v3
kind: KubeControllersConfiguration
metadata:
  name: default
spec:
  logSeverityScreen: Info
  healthChecks: Enabled
  etcdv3CompactionPeriod: 10m
  controllers:
    node:
      reconcilerPeriod: 5m
      syncLabels: Enabled
      hostEndpoint:
        autoCreate: Disabled
    policy:
      reconcilerPeriod: 5m
    workloadEndpoint:
      reconcilerPeriod: 5m
    serviceAccount:
      reconcilerPeriod: 5m
    namespace:
      reconcilerPeriod: 5m

Kubernetes controllers configuration definition

Metadata

Field Description Accepted Values Schema
name Unique name to describe this resource instance. Required. Must be default string
  • Calico automatically creates a resource named default containing the configuration settings, only the name default is used and only one object of this type is allowed. You can use calicoctl to view and edit these settings

Spec

Field Description Accepted Values Schema Default
logSeverityScreen The log severity above which logs are sent to the stdout. Debug, Info, Warning, Error, Fatal string Info
healthChecks Enable support for health checks Enabled, Disabled string Enabled
etcdv3CompactionPeriod The period between etcdv3 compaction requests. Only applies when using etcd as the Calico datastore. Set to 0 to disable, > 0 to enable Duration string 10m
controllers Enabled controllers and their settings   Controllers  

Controllers

Field Description Schema
node Enable and configure the node controller omit to disable, or NodeController
policy Enable and configure the network policy controller omit to disable, or PolicyController
workloadEndpoint Enable and configure the workload endpoint controller omit to disable, or WorkloadEndpointController
serviceAccout Enable and configure the service account controller omit to disable, or ServiceAccountController
namespace Enable and configure the namespace controller omit to disable, or NamespaceController

NodeController

The node controller automatically cleans up configuration for nodes that no longer exist. Optionally, it can create host endpoints for all Kubernetes nodes.

Field Description Accepted Values Schema Default
reconcilerPeriod Period to perform reconciliation with the Calico datastore   Duration string 5m
syncLabels When enabled, Kubernetes node labels will be copied to Calico node objects. Enabled, Disabled string Enabled
hostEndpoint Controls allocation of host endpoints   HostEndpoint  

HostEndpoint

Field Description Accepted Values Schema Default
autoCreate When enabled, automatically create a host endpoint for each node Enabled, Disabled string Disabled

PolicyController

The policy controller syncs Kubernetes network policies to the Calico datastore. This controller is only valid when using etcd as the Calico datastore.

Field Description Schema Default
reconcilerPeriod Period to perform reconciliation with the Calico datastore Duration string 5m

WorkloadEndpointController

The workload endpoint controller automatically syncs Kubernetes pod label changes to the Calico datastore by updating the corresponding workload endpoints appropriately. This controller is only valid when using etcd as the Calico datastore.

Field Description Schema Default
reconcilerPeriod Period to perform reconciliation with the Calico datastore Duration string 5m

ServiceAccountController

The service account controller syncs Kubernetes service account changes to the Calico datastore. This controller is only valid when using etcd as the Calico datastore.

Field Description Schema Default
reconcilerPeriod Period to perform reconciliation with the Calico datastore Duration string 5m

NamespaceController

The namespace controller syncs Kubernetes namespace label changes to the Calico datastore. This controller is only valid when using etcd as the Calico datastore.

Field Description Schema Default
reconcilerPeriod Period to perform reconciliation with the Calico datastore Duration string 5m

Supported operations

Datastore type Create Delete (Global default) Update Get/List Notes
etcdv3 Yes Yes Yes Yes  
Kubernetes API server Yes Yes Yes Yes