BetaRide
BetaRide

Reputation: 16834

How to do logging with helm

Sometimes I d'like to log something while a helm templates is executed. In Java this would look something like this:

LOGGER.debbug("My value is {}", value);

There is Notes.txt, which could help in some situations. But it would be nice if I could add a logging statement for debugging purposes just at the right place in a template.

Upvotes: 1

Views: 5047

Answers (1)

David Maze
David Maze

Reputation: 158706

I don't believe Helm has anything directly like this: I don't think there's a way to write anything to stdout from a template while helm install is executing.

You already know about the NOTES.txt file. Depending on what exactly you're trying to debug, another option is to write a YAML comment into the output:

metadata:
  # chart={{ .Chart.Name }} release={{ .Release.Name }}
  name: {{ include "mychart.fullname" . }}

Go template comments {{/* ... */}} will be consumed by the template parser, but Helm isn't really aware of # ... YAML comments, and they'll be output with the rest of the template.

If this is a new project, I'd also consider writing a Go-based Kubernetes operator instead of a Helm chart if your installation logic is so complex that putting logging in your templates sounds like a good idea. Go's syntax is a little less weird, it's easier to find people who know Go than Helm, and the general software ecosystem is much richer (there are a couple of reasonably standard Go logging packages for example).

Upvotes: 2

Related Questions