【发布时间】:2020-01-11 23:48:41
【问题描述】:
目前,我们正在为我们正在部署的 3rd 方 helm 图表添加功能(例如 - 在 prometheus 中,我们在使用 nginx 入口控制器时添加了身份验证支持)。
显然,当我们想要升级这些 helm 图表时,这会让我们头疼,我们需要对我们的更改执行“差异”。
向现有 3rd 方舵图添加功能的推荐方法是什么?我应该使用伞形图并使用 prometheus 作为依赖项吗?然后从图表中导入值? (https://github.com/helm/helm/blob/master/docs/charts.md#importing-child-values-via-requirementsyaml)
或者有其他推荐的方式吗?
-- 编辑--
示例 - 如您所见,我添加了 3 个 nginx.ingress.* 注释以支持 prometheus 入口资源上的基本身份验证 - 当然,如果我要升级,我需要再次手动添加,会出问题
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
{{- if .Values.prometheus.ingress.annotations }}
annotations:
{{ toYaml .Values.prometheus.ingress.annotations | indent 4 }}
{{- end }}
{{- if .Values.alertmanager.ingress.nginxBasicAuthEnabled }}
nginx.ingress.kubernetes.io/auth-realm: "Authentication Required - ok"
nginx.ingress.kubernetes.io/auth-secret: {{ template "prometheus-operator.fullname" . }}-prometheus-basicauth
nginx.ingress.kubernetes.io/auth-type: "basic"
{{- end }}
name: {{ $serviceName }}
labels:
app: {{ template "prometheus-operator.name" . }}-prometheus
{{ include "prometheus-operator.labels" . | indent 4 }}
{{- if .Values.prometheus.ingress.labels }}
{{ toYaml .Values.prometheus.ingress.labels | indent 4 }}
{{- end }}
spec:
rules:
{{- range $host := .Values.prometheus.ingress.hosts }}
- host: {{ . }}
http:
paths:
- path: "{{ $routePrefix }}"
backend:
serviceName: {{ $serviceName }}
servicePort: 9090
{{- end }}
{{- if .Values.prometheus.ingress.tls }}
tls:
{{ toYaml .Values.prometheus.ingress.tls | indent 4 }}
{{- end }}
{{- end }}
【问题讨论】:
标签: kubernetes kubernetes-helm