Ich versuche, eine Ingress-Helmvorlage zu implementieren, die die aktuelle Anwendungsversion in die URL codiert. Auf diese Weise können Benutzer eine weiche Migration durchführen, indem sie verschiedene Versionen der Anwendung bereitstellen.
Beispiel:
mydomain.org/1.0/applicationpath
mydomain.org/1.1/applicationpath
mydomain.org/2.0/applicationpath
Um zu verhindern, dass dies bei jedem Update manuell im Ingress konfiguriert wird, würde ich einen regulären Ausdruck bevorzugen, der die major.minor-Version automatisch ermittelt. Die Anwendung wurde gemäß Semver 2.0.0 überarbeitet, daher sollte ein Muster wie \ d +. \ D + die Arbeit erledigen.
Ich habe so etwas versucht:
apiVersion: extensions/v1beta1
kind: Ingress
spec:
backend:
serviceName: {{ .Release.Name }}-my-srv
servicePort: 80
rules:
- host: {{ .Values.app.ingress.host }}
http:
paths:
- path: /{{ .Chart.AppVersion | regex \d+.\d+ }}
Leider konnte ich keine Funktion für reguläre Ausdrücke finden. Gibt es eine Option, um dies mit einer Helmvorlage zu erreichen?
quelle
\d
, damit dies funktioniert, und mein Vorlagen-Snippet.Capabilities.KubeVersion.Minor | regexFind "\\d+"
Musste mich heute damit befassen, werden Sie etwas wollen wie:
{{ regexFind "\\d+\\.\\d+" .Chart.AppVersion }}
Benötigt die doppelte Flucht aufgrund von Yaml.
Docs dafür
quelle