We don't call klog.InitFlags yet, because that will cause a flag
redefinition error until we get everyone to stop using glog. That
will happen when we update to k8s 1.13.
Previously the hook system would only allow extensions of ".service"
and ".timer". Any other name would have ".service" appended.
Now the hook system allows any suffix listed at
https://www.freedesktop.org/software/systemd/man/systemd.unit.html.
If no suffix is found, ".service" is still added to preserve backwards-
compatibility.
Note that backwards-compatibility may still break for users relying on
the previous behavior in odd ways. For example, a hook with name
"my-hook.slice" would previously have been installed as
"my-hook.slice.service", but it will now be installed as "my-hook.slice",
since ".slice" is a valid systemd unit file extension.
The present implementation of hooks only perform for docker exec, which isn't that flexible. This PR permits the user to greater customize systemd units on the instances
- cleaned up the manifest code, added tests and permit setting a section raw
- added the ability to filter hooks via master and node roles
- updated the documentation to reflect the changes
- cleaned up some of the vetting issues