Helm

nicolaw 6th October 2021 at 9:52am
Kubernetes

Get the most recent Helm deployment manifest secret from a namespace:

kubectl get secrets -n NAMESPACE -l owner=helm -l status=deployed -o jsonpath='{.items[].data.release}' | base64 -d | base64 -d | gunzip | jq

My Improvements TODO

  1. ConfigMap - Remove copy-and-paste hell of STS and deployment container envionment variables, and use volume mounted or environmet injected ConfigMaps instead
  2. Use Helm hooks instead of initContainer to avoid concurrency issues and provide better lifecycle control
  3. Implement Helm test hook containers
  4. Make use of include and template snippets to make managable service, ingress, deployment, stateful set and replicaset resources (see https://github.com/helm/charts/tree/master/incubator/common for some helpful examples)
  5. Make resource names unique (inject {{ .Release.Name }} for example, or use parts of https://github.com/helm/charts/tree/master/incubator/common
  6. Use helm fetch and index to pre-pull external chart dependencies into vendored pre-build deployment image
  7. Split complexity into subcharts where feesible

https://www.arthurkoziel.com/writing-reusable-helm-charts/


Related