У меня есть развертывание kubernetes с приведенным ниже параметром c, которое устанавливается через helm 3.
apiVersion: apps/v1
kind: Deployment
metadata:
name: gatekeeper
spec:
replicas: 1
template:
spec:
containers:
- name: gatekeeper
image: my-gatekeeper-image:some-sha
args:
- --listen=0.0.0.0:80
- --client-id=gk-client
- --discovery-url={{ .Values.discoveryUrl }}
Мне нужно передать значение discoveryUrl
в качестве значения helm, то есть publi c IP-адрес модуля nginx-ingress
, который я развернул с помощью другой схемы управления. Я устанавливаю приведенное выше развертывание, как показано ниже:
helm3 install my-nginx-ingress-chart
INGRESS_IP=$(kubectl get svc -lapp=nginx-ingress -o=jsonpath='{.items[].status.loadBalancer.ingress[].ip}')
helm3 install my-gatekeeper-chart --set discovery_url=${INGRESS_IP}
Это работает нормально, однако, теперь вместо этих двух helm3 install
я хочу иметь одну установку helm3, где оба - nginx -ingress и развертывание привратника должно быть создано.
Я понимаю, что в initContainer
из my-gatekeeper-image
мы можем получить IP-адрес nginx -ingress, но я не могу понять, как установить его как переменная окружения или передача в контейнер spe c.
Есть несколько вопросов, связанных со стековым потоком, в которых упоминается, что мы можем создать постоянный том или секрет для достижения этого, но я не уверен, как это будет работать, если мы должны удалить их. Я не хочу создавать какие-либо дополнительные объекты и поддерживать их жизненный цикл.