kubernetesminikubeargocdargoproj

Unable to add `linkerd.io/inject: enabled` to ArgoCD manifest - invalid type for io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta.annotations


I can install bitnami/redis with this helm command:

helm upgrade --install "my-release" bitnami/redis \
     --set auth.existingSecret=redis-key \
     --set metrics.enabled=true \
     --set metrics.podAnnotations.release=prom \
     --set master.podAnnotations."linkerd\.io/inject"=enabled \
     --set replica.podAnnotations."linkerd\.io/inject"=enabled

Now I want to install it using ArgoCD Manifest.

project: default
source:
  repoURL: 'https://charts.bitnami.com/bitnami'
  targetRevision: 14.1.1
  helm:
    valueFiles:
      - values.yaml
    parameters:
      - name: metrics.enabled
        value: 'true'
      - name: metrics.podAnnotations.release
        value: 'prom'
      - name: master.podAnnotations.linkerd.io/inject
        value: enabled
      - name: replica.podAnnotations.linkerd.io/inject
        value: enabled
      - name: auth.existingSecret
        value: redis-key
  chart: redis
destination:
  server: 'https://kubernetes.default.svc'
  namespace: default
syncPolicy: {}

But I'm getting validation error because of master.podAnnotations.linkerd.io/inject and replica.podAnnotations.linkerd.io/inject

error validating data: ValidationError(StatefulSet.spec.template.metadata.annotations."linkerd): invalid type for io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta.annotations: got "map", expected "string"

error validating data: ValidationError(StatefulSet.spec.template.metadata.annotations."linkerd): invalid type for io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta.annotations: got "map", expected "string"


If I remove these two annotation settings the app can be installed. I've tried master.podAnnotations."linkerd.io\/inject", but it doesn't work. I guess it has something to do with the "." or "/". Can anyone help me solve this issue?


Solution

  • Look at this example, parameters containing dots need to be escaped.