У меня была та же проблема.
Решение, которое я наконец-то придумал, состояло в том, чтобы создать диаграмму external-hosts
, которая будет включать в себя все мои ссылки на внешние IP-адреса (абстрагированные как clusterIP-сервисы) и включать эту диаграммув requirements.yaml
каждого графика
requirements.yaml
каждого графика:
dependencies:
- name: external-hosts
version: "0.1.*"
repository: "file://../external-hosts"
сама диаграмма external-hosts
содержит:
values.yaml
: список хостов + необходимые порты:
headless:
- host: test-test.com
ip: "13.21.219.253"
ports:
- 80
- 443
- host: test-test.net
ip: "13.71.225.255"
ports:
- 3306
templates/headless.yaml
- это создает для каждого хоста сервис clusterIP с одной конечной точкой. немного подавляющим, но это просто работает.
{{ range .Values.headless }}
---
kind: Service
apiVersion: v1
metadata:
name: {{ .host }}
labels:
{{ include "external-hosts.labels" $ | indent 4 }}
spec:
ports:
{{ range .ports }}
- name: {{ . | quote }}
port: {{ . }}
targetPort: {{ . }}
{{ end }}
{{ end }}
---
{{ range .Values.headless }}
---
kind: Endpoints
apiVersion: v1
metadata:
name: {{ .host }}
labels:
{{ include "external-hosts.labels" $ | indent 4 }}
subsets:
- addresses:
- ip: {{ .ip }}
ports:
{{ range .ports }}
- name: {{ . | quote}}
port: {{ . }}
{{ end }}
{{ end }}