Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Uppdatering av de gemensamma Helm charts som finns följer samma principer och kan appliceras på samma sätt.

Table of Contents
minLevel1
maxLevel7

Uppdatera 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.

...

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

...

Väljer man att inte sätta parameterName faller man tillbaka på spring-boot-pipeline subchartens 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.

...

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.

...

Det finns en mängd olika sätt man kan styra hur data ska genereras. För mera komplexa varianter se https://helm.sh/docs/

Pusha chart till nexus

När man är klar med sin ändring är det viktigt att uppdatera version.

Major = Icke bakåtkompatibel ändring
Minor = Ny funktionalitet
Micro = Rättning av befintlig funktionalitet

När man är klar med sina ändringar:

  1. Skapa en Merge request och få den granskad

  2. Pusha chart till nexus

    1. $ helm package .

    2. $ curl -u <username>:<password> https://nexus.sundsvall.se/repository/sundsvall-helm/ --upload-file <filename>.tgz -v

  3. Merge till master

Test av chart innan release

Om man har behov att testa en gemensam chart innan den pushas ut till alla tjänster kan man göra en temporär release under annat namn.

  1. Byt namn i Chart.yaml

  2. Pusha till nexus

  3. Byt dependency i service chart till temporär release och testa för enskild tjänst.

  4. Ta bort temporär chart från nexus

...

  1. och gör en riktig release.

Man ska kunna göra snapshot releaser, men det finns problem i hur ArgoCD hanterar versioner när man blandar in snapshot. Detta är inte verifierat utan något som snappats upp i ArgoCD issue tracker på github. För att inte krångla till det är det enklast att bara göra en temporär release under annat namn.