Configuring BEL's lifecycle automation

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.

Lifecycle operator behavior is opt-in. Even with the operator running on the cluster, it will not act on Linkerd unless configured to do so.

Operator behavior is determined by two custom resources: ControlPlane and Dataplane. These work independently of each other; you may use one or both.

It’s easy to change the version of Linkerd that’s running on your cluster by changing the Linkerd version specified in the instance of the ControlPlane resource on your cluster:

kubectl edit controlplane/cp-update

Once the version has been changed, the control plane operator will upgrade the Linkerd core control plane.

The DataPlane custom resources enable automatic upgrades of Linkerd proxies running in your application workloads. This requires creating instances of the DataPlane resource in each namespace where Linkerd proxies are running on your cluster.

For instance, to opt-in all proxies in the default namespace:

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

When the control plane version changes, the data plane operator will restart each workload selected by the DataPlane resources, so that the pods will pick up a new version of the Linkerd proxy.

For more information about using these components, see the Lifecycle automation reference page.