Lifecycle automation reference

BEL provides lifecycle automation for Linkerd in the form of a Kubernetes operator that runs on the cluster and allows for automated installation and upgrades of Linkerd, across both control plane and data plane.

Operator behavior is determined by two custom resources: ControlPlane and DataPlane, both in the linkerd.buoyant.io namespace. You may use one or both CRs to configure operator behavior.

Control plane configuration

The ControlPlane custom resource determines how the operator handles Linkerd’s control plane.

ControlPlane spec

FieldDescription
componentsTop-level key for all Linkerd components.

spec.components

FieldDescription
linkerdLinkerd Control Plane configuration.

spec.components.linkerd

FieldDescription
versionDesired version of the Linkerd Control Plane (e.g. enterprise-2.16.2).
crdsConfigDesired state of the linkerd-crds component.
controlPlaneConfigDesired state of the linkerd-control-plane component.

spec.components.linkerd.controlPlaneConfig

FieldDescription
licenseLicense obtained via the Buoyant Portal. Exactly one of license or licenseSecret must be set.
licenseSecretName of the secret containing the BEL license. Default is buoyant-license, at key license. Exactly one of license or licenseSecret must be set.

Example

apiVersion: linkerd.buoyant.io/v1alpha1
kind: ControlPlane
metadata:
  name: linkerd-control-plane
spec:
  components:
    linkerd:
      crdsConfig: ...
      controlPlaneConfig: ...

(See the Production-grade BEL installation guide for a more complete example.)

Data plane configuration

The DataPlane custom resources enable automatic upgrades of Linkerd proxies running in your application workloads.

DataPlane spec

FieldDescription
workloadSelectorA Kubernetes LabelSelector that matches the workloads to be managed by the operator.

Example

apiVersion: linkerd.buoyant.io/v1alpha1
kind: DataPlane
metadata:
  name: dp-update
  namespace: default
spec:
  workloadSelector:
    matchLabels: {}