vectordotdev / helm-charts

Helm charts for Vector.
https://vector.dev
Mozilla Public License 2.0
103 stars 89 forks source link

selectorLabels is same for different releases #282

Closed nthienan closed 1 year ago

nthienan commented 1 year ago

I install two different releases using the same helm chart version. Here are results:

Deployment 1:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: release-1
  labels:
    app.kubernetes.io/component: Stateless-Aggregator
    app.kubernetes.io/instance: vector
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: vector
    app.kubernetes.io/version: 0.27.0-distroless-libc
    helm.sh/chart: vector-0.19.0
  namespace: vector
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/component: Stateless-Aggregator
      app.kubernetes.io/instance: vector
      app.kubernetes.io/name: vector
  template:
    metadata:
      labels:
        app.kubernetes.io/component: Stateless-Aggregator
        app.kubernetes.io/instance: vector
        app.kubernetes.io/name: vector
...

Service 1:

apiVersion: v1
kind: Service
metadata:
  name: release-1
  labels:
    app.kubernetes.io/component: Stateless-Aggregator
    app.kubernetes.io/instance: vector
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: vector
    app.kubernetes.io/version: 0.27.0-distroless-libc
    helm.sh/chart: vector-0.19.0
  namespace: vector
spec:
  selector:
    app.kubernetes.io/component: Stateless-Aggregator
    app.kubernetes.io/instance: vector
    app.kubernetes.io/name: vector
...

Deployment 2:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: release-2
  labels:
    app.kubernetes.io/component: Stateless-Aggregator
    app.kubernetes.io/instance: vector
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: vector
    app.kubernetes.io/version: 0.27.0-distroless-libc
    helm.sh/chart: vector-0.19.0
  namespace: vector
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/component: Stateless-Aggregator
      app.kubernetes.io/instance: vector
      app.kubernetes.io/name: vector
  template:
    metadata:
      annotations:
        checksum/config: ed025195ece807be01d17aca69cacefc2e4aa428ca7abfab79fff0619074620d
      labels:
        app.kubernetes.io/component: Stateless-Aggregator
        app.kubernetes.io/instance: vector
        app.kubernetes.io/name: vector
...

Service 2:

apiVersion: v1
kind: Service
metadata:
  name: release-2
  labels:
    app.kubernetes.io/component: Stateless-Aggregator
    app.kubernetes.io/instance: vector
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: vector
    app.kubernetes.io/version: 0.27.0-distroless-libc
    helm.sh/chart: vector-0.19.0
  namespace: vector
spec:
  selector:
    app.kubernetes.io/component: Stateless-Aggregator
    app.kubernetes.io/instance: vector
    app.kubernetes.io/name: vector
...

selector is same for both releases. This causes many problems

nthienan commented 1 year ago

Usually, label app.kubernetes.io/instance's value is the release name, not a static value.

spencergilbert commented 1 year ago

Hi @nthienan - that label isn't static for the chart:

app.kubernetes.io/instance: {{ .Release.Name }}

Can you share the commands you ran to install the two releases?

nthienan commented 1 year ago

hi @spencergilbert,

Sorry, it's my fault. I used ArgoCD to install them with the same release name. I thought ArgoCD shouldn't allow that. Anyway, it's not vector helm chart issue.