Kustomization
namespace: argocd
resources:
- https://github.com/argoproj/argo-cd.git/manifests/cluster-install?ref=v2.2.1
Все бы хорошо, но из коробки в деплойменте argocd-server передаётся такая команда
...
containers:
- command:
- argocd-server
...
А мне нужно, чтобы было так
...
containers:
- command:
- argocd-server
- --insecure
...
Так вот. После деплоя ArgoCD, я не могу взять и отредактировать существующий деплоймент, добавив к нему --insecure так как сам ArgoCD этого не разрешает.
Как можно в кастомизации сказать чарту https://github.com/argoproj/argo-cd.git/manifests/cluster-install?ref=v2.2.1, чтобы он добавил --insecure?
Написать Кастомизацию с патчем конкретного ключа и положить ее в отдельную репу
Не подскажешь синтаксис, чтобы кастомизация поняла, что нужно передать значение в command? Сейчас у меня так в кастомизации patchesJson6902: - target: group: apps version: v1 kind: Deployment name: argocd-server patch: |- - op: add path: /spec/template/spec/containers value: --insecure В деплойменте должно быть так: ``` ... containers: - command: - argocd-server - --insecure ... ```
command забыл, ну, и лучше не add, а replace и там все аргументы указать
command не забыл - просто не пойму правильного синтаксиса. Неужели просто - op: replace path: /spec/template/spec/containers/command value: --insecure ?
Тогда там оба надо указать - старый аргумент и новый, списком
есть онлайн форма, где можно jsonpatch проверить
тут скорее надо указать элемент массива
добавить элемент массива можно так - op: add path: /spec/template/spec/containers/command/- value: --insecure
У меня уже ошибка на 15 строке error: error parsing kustomization.yaml: error converting YAML to JSON: yaml: line 15: did not find expected key 15-я строка это - patch: |- patchesJson6902: - target: group: apps version: v1 kind: Deployment name: argocd-server patch: |- - op: replace path: /spec/template/spec/containers/command value: - argocd-server - --insecure
неверный синтаксис же jsonpatch
а если хочешь replace то будет по другому
Здесь я ивжу чистый json, но я ведь на yaml пишу
Хотя стоп, ты правильно написал, я проглядел
разницы нет, можно в ямле
а все вижу ошибку
containers - это же массив
/spec/template/spec/containers/0/command
В ямле у меня так
ну а какой там по счету контейнер?
Значит это номер контейнер. Да, тогда 0, он один там
ну структуры данных в универе были? Есть массивы, есть хеши Массивы это списки
Увы. Прошёл мимо универа
Я это понимаю. Вопрос в синтаксисе
ну не в унвиере, алгоритмы и структуры данных того же Вирта, все же знают эту классику =)
элементы массива с нуля нумеруются /spec/template/spec/containers/command - неверно, так как containers массив, ты должен указать елемент массива дальше то есть контейнер, в котором ты хочешь поменять command /spec/template/spec/containers/0/command - в твоем случае он нулевой (первый по счету)
Я немного не об этом. Я о том, что не знал, что между /containers/ и /command нужно указать еще и контейнер
ну я повторюсь, это "знание" берется из знания структуры Ты указал путь, как будто containers не массив а хеш: spec: template: spec: containers: command: А на самом деле он массив spec: template: spec: containers: - name: blabla command: ...
Вот как. Теперь понятней
Обсуждают сегодня