If you are like me, developing lots of charms and charm libs, you’ll often find yourself wondering: what version of this library is this specific charm actually using?
The only way to check that is to shell a find|grep
into the unit and find out.
Or is it?
Welcome jhack charm-info
.
This command used to be called jhack vinfo
.
Let’s deploy zinc-k8s
and run
jhack charm-info zinc-k8s
You’ll see:
But wouldn’t it be even nicer if you could see at a glance which of these libraries are out of date, out of sync, or up to date?
You’d have to charmcraft list-lib [charm owner of the lib]
…
or simply run jhack charm-info -o zinc-k8s
and enjoy the beautiful colourfulness of:
which shows that most of those libraries are several minor (or major!) versions behind.
Unit-level targeting
If you’re like me, you sometimes deploy several units of a charm and then hack on them individually, hot-swapping library versions, pushing to a unit some library code that it wasn’t packed with. If that is the case, and you want to be sure that the version information comes from a specific unit, you can simply target it explicitly. The command will work the same:
so jhack charm-info zinc-k8s/3
will gather the version information from that specific unit.
Todos and future work:
- overview of the charm lib versions in use by the whole model (or multiple apps).
- “true” workload version: container image version, etc… for all resources.
- machine charm support