Skip to content
Discussion options

You must be logged in to vote

For the shape you describe, I would separate two layers:

  1. Bake the large, stable application payload into an image or package: .deb dependencies, default templates, systemd units, validation scripts, and documentation.
  2. Use cloud-init only for the small per-instance contract: customer/site values, feature toggles, endpoints, secrets references, or a path to a config bundle.

If those per-instance keys are application-specific and need validation/rendering across several files, a custom module is the right cloud-init-native boundary. The documented out-of-tree route is:

  • create a Python module named cc_<name>.py;
  • put it beside the other cloud-init config modules, such as /usr/lib/python3/di…

Replies: 2 comments

Comment options

You must be logged in to vote
0 replies
Answer selected by jngrb
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
3 participants