This repository houses all of the Acorn library image definitions.
-
Use official images from the Docker library if available.
-
Use specific version tags of images, at least to the minor in semver.
-
Use automatically generated secrets, and allow the user to specify values if needed.
-
Prefer to handle the application in cuelang vs. string interpolations.
-
Do not use master - slave terminology. Use terms like leader / follower, worker / agents, replicas, etc.
-
When adding parameters:
- Use
scale
to represent number of containers running of the exact same config. - Use
replicas
to represent multiple instances with the same role.
- Use
-
Create a secret
"user-secret-data": type: "opaque"
to allow users to bind in secret data for use inside the acorn. -
For consistency and readability create Acorn cue with top level keys in the following order:
- args
- containers
- jobs
- volumes
- acorns
- secrets
- localData
-
If you are using if blocks to deploy an optional component, the if block should add/modify keys in the overall acorn key order.
-
When merging user provided structs with default structs, place the user provided struct variable first.
args.deploy.userData & {...acorn defined data}
.