Я использую kustomize и пытаюсь исправить некоторые параметры helm в конфигурации grafana. У меня есть следующий файл конфигурации grafana.yaml:
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: prod-k8s-grafana
labels:
environment: prod
project: k8s
role: grafana
spec:
project: prod-k8s
source:
repoURL: 'https://github.com/helm/charts.git'
path: 'stable/grafana'
targetRevision: 'ba1d08a129255167457480e29339ab5bfe75d918'
helm:
parameters:
- name: service.type
value: LoadBalancer
syncPolicy:
automated:
prune: true
destination:
namespace: prod-k8s-grafana
Затем у меня есть файл kustomization, который я использую для добавить исправленные значения, в частности, в раздел параметров руля. Когда я добавляю патч, как показано ниже, он исправляет значения, но удаляет исходное значение имени, определенное в файле grafana.yaml:
patches:
- target:
kind: Application
patch: |-
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: xxx
spec:
destination:
server: https://DSKJHDAKJSH4HDSKHDKSJ0E56C7420CCF041E9.sk1.eu-west-2.eks.amazonaws.com
- target:
kind: Application
name: prod-k8s-grafana
patch: |-
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: prod-k8s-grafana
spec:
source:
helm:
parameters:
- name: 'datasources."datasources\.yaml".datasources[0].url'
value: 'http://prod-k8s-prometheus-cluster02-server.prod-k8s-prometheus.svc.cluster.local'
- name: persistence.storageClassName
value: gp2
- name: 'datasources."datasources\.yaml".apiVersion'
value: '1'
- name: 'datasources."datasources\.yaml".datasources[0].name'
value: Prometheus
, чтобы при проверке команды run kustomize build
команда вывод, который он удаляет:
- name: service.type
value: LoadBalancer
Следовательно, исправление этих имен и значений перезаписывает параметры из grafana.yaml.
Как я могу убедиться, что в патче добавлено пропатченное имя vales, а не перезаписано?