Configuration

    Pigsty treats Infra & Database as Code. You can describe the infrastructure & database clusters through a declarative interface. All your essential work is to describe your need in the inventory, then materialize it with a simple idempotent playbook.

    Each pigsty deployment has a corresponding config inventory. It could be stored in a local git-managed file in YAML format or dynamically generated from or any ansible compatible format. Pigsty uses a monolith YAML config file as the default config inventory, which is pigsty.yml, in the pigsty home directory.

    The inventory consists of two parts: global vars & multiple group definitions. You can define new clusters with inventory groups: . And describe infra and set global default parameters for clusters with global vars: all.vars[object]. Which may look like this:

    You can also define parameters for a specific host, as known as host vars. It will override group vars and global vars. Which is usually used for assigning identities to nodes & database instances.

    Global vars, Group vars, and Host vars are dict objects consisting of a series of K-V pairs. Each pair is a named Parameter consisting of a string name as the key and a value of one of five types: boolean, string, number, array, or object. Check parameter reference for detailed syntax & semantics.

    Every parameter has a proper default value except for mandatory IDENTITY PARAMETERS; they are used as identifiers and must be set explicitly, such as pg_cluster, , and pg_seq.

    For examples:

    • Force removing existing databases with Playbook CLI Args -e pg_clean=true
    • Override a cluster name with Cluster Level Parameter pg_cluster on Group Vars.
    • Specify global NTP servers with Global Parameter node_ntp_servers on Global Vars

    Pigsty have 260+ parameters, check Parameter for details.