...
Uppdatera spring-boot-pipeline chart
Beroende på vad man vill kunna göra override på och vad som ska vara default i charten finns olika sätt att utöka den.
Ny config i template fil
Om man utökar template fil direkt och “hård kodar” in något nytt blir det inte möjligt att ändra från service charten.
Exempel template/somefile.yaml:
Code Block | ||
---|---|---|
| ||
metadata:
myMetadata: "fixed value" |
Här blir myMetadata alltid satt till samma värde och går inte att ändra.
Beroende på vad man lägger till får man tänka på hur man ska stega version.
Parametrisera värde från template fil
Om vi vill kunna göra override på värdet i förra exemplet behöver vi lyfta ut “fixed value” till values.yaml
Exempel template/somefile.yaml:
Code Block |
---|
metadata:
myMetadata: {{ .Values.parameterName }} |
Exempel values.yaml:
Code Block |
---|
parameterName: "fixed value" |
Denna ändring blir bakåt kompatibel då myMetadata
kommer att sättas till “fixed value” i alla fall. Men nu har man möjlighet i service charten att göra en override på detta värde.
Exempel på override från service chart value.yaml:
Code Block |
---|
spring-boot-pipeline:
parameterName: "new value" |
Väljer man att inte sätta parameterName faller man tillbaka på spring-boot-pipeline value fil och har då den den som default.
Gör parameter mandatory
Vill man tvinga att ett värde måste sättas i service charten kan man nyttja “required” och utelämna värdet ur values.yaml.
Exempel template/somefile.yaml:
Code Block |
---|
metadata:
myMetadata: {{ required "parametername must be set!" .Values.parameterName }} |
Exempel values.yaml:
Code Block |
---|
# parameterName: "" |
Här sätts aldrig något värde eftersom parameterName
är bort kommenterad. När en service chart försöker genereras kommer “parameterName must be set!” skrivas ut om man inte sätter värdet.
Denna typ av ändring resulterar i en ny major version.
Skapa optional generering
Vill man lägga något som inte ska genereras som default utan bara när något är specificerat i service charten kan man använde if-block.
Exempel template/somefile.yaml:
Code Block |
---|
metadata:
{{- if .Values.parameterName }}
myMetadata: {{ .Values.parameterName }}
{{- end}} |