SystemD Unit file customization for a snap

Charles Butler charles.butler at
Wed Jan 11 19:31:57 UTC 2017


I'm working on an update to the etcd snap so we can make the Kubernetes
etcd2 -> etcd3 migration simple, transactional, and hopefully more bullet
proof in iterations to come. I've got a question regarding the SystemD
Daemon unitfile.

You can declare to snapcraft, that a bin should be treated as a daemon with
very straightforward syntax

    command: bin/etcd
        - network
    daemon: simple
    restart-condition: on-abnormal

This was -almost magical-. I have need of customizing this output unit file
based on conditions coming from Juju, such as TLS certificate paths will
need to be passed as ENV, as well as peer connection strings.

I can template this in Juju and overwrite the systemd unit file, but I feel
like this will be a continual issue as the snap upgrades, I can only
presume the systemd unit file is upgraded along the way. Please correct me
if my assumption is incorrect here. Is there a way I can declare ENV or
template the systemd file with the snap?

Thanks and all the best,

Charles Butler <charles.butler at> - Juju Charmer
Come see the future of modeling your datacenter:
Conjure up Kubernetes: `conjure-up kubernetes-core` on any ubuntu install
with Conjure and Juju.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Snapcraft mailing list