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