prometheus-community / helm-charts

Prometheus community Helm charts
Apache License 2.0
5.01k stars 5k forks source link

[alertmanager] Add apiVersion and kind to StatefulSet volumeClaimTemplates #4865

Open schedin opened 1 week ago

schedin commented 1 week ago

Background

ArgoCD may take Helm charts as inputs, but does not install the Helm charts directly, instead it uses the helm template command that produces YAML file resources and then injects them directly. The result will look almost like a helm install command, but the deployment will not show up using helm list.

By using this mechanism ArgoCD can perform its own “diffing” and warn when the desired state does not match the cluster (for example if a person modified the resources after the deployment). It has the drawback that if some mechanism modifies the deployed resource(s) in an automatic way, ArgoCD will show the sync status as “OutOfSync” with a yellow arrow up icon.

What this PR does / why we need it

The Alertmanager StatefulSet has a volumeClaimTemplates: with one volume claim template. This template is missing the fields apiVersion and kind. When installed by Helm, Kubernetes will automatically add these missing fields (by a mechanism I have not digged deeper into).

This pull request will make the StatefulSet look more similar when comparing helm template with how the resource looks like in the cluster. This will make ArgoCD happy (with a green checkmark icon).

This pull request is analogous to what #4610 fixed.

Which issue this PR fixes

Special notes for your reviewer

Checklist

schedin commented 3 days ago

I'm not affiliated with ArgoCD. It is correct that this issue could be resolved in the realm of ArgoCD, without contributing to the Prometheus Community charts.

I submitted this pull request because of the similar pull request #4610 that was already merged, but code reviewed by others (@zeritti) in this case.