настроить имя и значения параметров перезаписи патча - PullRequest
0 голосов
/ 30 января 2020

Я использую 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, а не перезаписано?

...