Kubernetes i łączenie zmiennych w nową w manifeście

Jak złączyć ze sobą zmienne środowiskowe pochodzące z fieldRef w manifeście w Kubernetes? Bardzo prosto i zarazem trudno.

W teorii możemy sobie w K8s ładnie połączyć zmienne w env na przykład tak:

- name: FULL
  value: "$(MY_NODE_NAME)_$(MY_POD_NAME)-$(MY_POD_NAMESPACE).$(MY_POD_IP).$(MY_POD_SERVICE_ACCOUNT)"

Teraz zróbmy z tego cały manifest o taki:

Sprawdźmy teraz, co zobaczymy w logach:

~/temp on 🐳 v19.03.8 at ☸️  docker-desktop
➜ kubectl logs busybox
$(MY_NODE_NAME)_$(MY_POD_NAME)-$(MY_POD_NAMESPACE).$(MY_POD_IP).$(MY_POD_SERVICE_ACCOUNT)

O i nie działa… Kubernetes jest prosty jak budowa cepa, w tym wypadku nawet za prosty. Jeśli umieścimy zmienna z łączeniem jako ostatnią o tak:

i sprawdzimy, czy działa to będzie lepiej…

~/temp on 🐳 v19.03.8 at ☸️  docker-desktop
➜ kubectl logs busybox
docker-desktop_busybox-default.10.1.0.218.default

Jeśli interesujesz się Kubernetes, to zerknij tu i tu :-)