2.16.0 Helm chart producing null value for new deployment "linkerd-enterprise"

Hi All

We recently tried to move to 2.16 but are having an issue with the helm chart producing a null value for the new deployment “linkerd-enterprise”. The null value comes when trying to add tolerations to the values file under Linkerd-control-plane.tolerations. The other deployments are fine and get the tolerations.

How to reproduce

Values.yaml

license: mylicense
linkerd-control-plane:
  tolerations:
    - key: "linkerd.io/control-plane"
      operator: "Equal"
      value: "zzzz"
      effect: "NoSchedule"
  identity:
    issuer:
      tls:
        crtPEM: "a"
        keyPEM: "b"

helm template enterprise . —values values.yaml > output.yaml

cat output.yaml | grep -B40 null

kind: Deployment
metadata:
  annotations:
    linkerd.io/created-by: linkerd/helm enterprise-2.16.0
  labels:
    app.kubernetes.io/name: enterprise
    app.kubernetes.io/part-of: Linkerd
    app.kubernetes.io/version: enterprise-2.16.0
    linkerd.io/control-plane-component: enterprise
    linkerd.io/control-plane-ns: linkerd
  name: linkerd-enterprise
  namespace: linkerd
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      linkerd.io/control-plane-component: enterprise
      linkerd.io/control-plane-ns: linkerd
      linkerd.io/proxy-deployment: linkerd-enterprise
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
  template:
    metadata:
      annotations:
        checksum/config: 602fdcc85585f598f94d973e907a11cb3dde24e43bf6f8f101d770f9768acfbf
        linkerd.io/created-by: linkerd/helm enterprise-2.16.0
        linkerd.io/proxy-version: enterprise-2.16.0
        cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
        linkerd.io/trust-root-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
        config.linkerd.io/default-inbound-policy: "all-unauthenticated"
      labels:
        linkerd.io/control-plane-component: enterprise
        linkerd.io/control-plane-ns: linkerd
        linkerd.io/workload-ns: linkerd
        linkerd.io/proxy-deployment: linkerd-enterprise
    spec:
      tolerations:
        null

Confirm other deployments received the tolerations without issue:
cat output.yaml | grep -B5 zzzz

    runtimeClassName: ""
    tolerations:
    - effect: NoSchedule
      key: mykey
      operator: Equal
      value: zzzz
--
    spec:
      tolerations:
        - effect: NoSchedule
          key: mykey
          operator: Equal
          value: zzzz
--
    spec:
      tolerations:
        - effect: NoSchedule
          key: mykey
          operator: Equal
          value: zzzz
--
    spec:
      tolerations:
        - effect: NoSchedule
          key: mykey
          operator: Equal
          value: zzzz
--
        spec:
          tolerations:
            - effect: NoSchedule
              key: mykey
              operator: Equal
              value: zzzz

@linkerdguy55 Did you ever get this working?

Hi @William . I re-wrote part of the helm chart and now it’s working as expected.I would gladly submit a PR but GitHub - BuoyantIO/linkerd-buoyant: Linkerd Buoyant releases doesn’t contain the chart. If you’d like my solution then let me know and I can post it :slightly_smiling_face:

I think we are rolling out a fix in this week’s Linkerd 2.16.1 release … but if we miss the mark we may ask you for your solution :slight_smile: