#argocd #jsonnet
Вопрос:
Пытаюсь понять передачу TLA в мой файл jsonnet с помощью argocd. Это часть моего приложения argocd.yaml, который компилирует манифесты kube-prometheus, прямо из моего основного файла.jsonnet. Я хочу создать 2 приложения kube-prometheus в argocd (prod и не prod), и я хочу передать TLA, чтобы изменить суффикс имени хоста входа для каждого экземпляра приложения.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: kube-prometheus-nonprod
namespace: argocd
spec:
destination:
name: ''
namespace: monitoring
server: 'https://kubernetes.default.svc'
source:
path: kube-prometheus/src
repoURL: 'https://myrepo.git'
targetRevision: branch-name
directory:
jsonnet:
tlas:
- name: npDomainSuffix
value: np.example.io
libs:
- kube-prometheus/vendor/
В моем основном файле.jsonnet у меня есть, например:
hosts: ['grafana.$(npDomainSuffix)']
Новичок в jsonnet и argocd и не может заставить его работать. Могу ли я использовать TLA таким образом?
Ответ №1:
Если вы новичок jsonnet
, я бы рекомендовал extVars
вместо этого использовать, поскольку механику TLA несколько сложнее понять, из руководства по jsonnet для раздела TLA вы обнаружите, что вашему коду jsonnet требуется функция ввода с аргументами, названными после каждого имени аргумента верхнего уровня.
В качестве альтернативы, используя extVars, вы должны быть в состоянии сделать это вместо:
extVars:
- name: npDomainSuffix
value: np.example.io
затем в любом месте вашего кода jsonnet ( extVars
являются глобальными)
hosts: ['grafana.' std.extVar('npDomainSuffix')]