pangea
Configuration
Configuration Locations
Configuration behavior is merge behavior of directories in top/down order listed.
- /opt/share/pangea.
- /etc/pangea/pangea.
- /etc/pangea/conf.d/*.
- $XDG_CONFIG_HOME/pangea/pangea.
- $XDG_CONFIG_HOME/pangea/conf.d/*.
- pangea.
- pangea/config.d/*.
- .pangea.
- .pangea/config.d/*.
- StitchFile
obs.
is enum rb|json|yml|yaml|toml|nix
Configuration Notes
Top level structure is a namespace
namespaces can receive terraform commands
namespaces have multiple projects within them
projects represent a single instance of state
projects can have multiple modules.
modules pack ruby code together to be run on a single projects
a module may be used in multiple projects but a project has a direct association to a namespace
a project cannot be present in multiple namespaces.
modules can be nested indefinitely.
its modules all the way down.
you can have modules provide only ruby functions.
you can have modules provide resources.
you can have modules call other modules.
if something is runnable then it can receive terraform commands
the smallest runnable item is a project
namespaces are also runnable
flows are groups of runnable terraform commands in a DAG
whose nodes are either namespace or namespace.project
Namespace
namespace is a DAG with fixed nodes
namespace -> site -> project
a project is the smallest component which can receive tf commands
called like namespace.site.project