@softvisio/core
Version:
Softisio core
100 lines (84 loc) • 2.92 kB
YAML
- $id: env
type: object
properties:
POSTGRESQL_VERSION: { type: integer }
required: [POSTGRESQL_VERSION]
- $id: public-config
type: object
properties: {}
- $id: config
type: object
properties:
mode: { enum: [primary, standby-sync, standby-async, backup] }
clusterName: { type: string }
dataDir: { type: ["null", string] }
access:
type: array
items:
type: object
properties:
host: { enum: [local, host, hostssl, hostnossl, hostgssenc, hostnogssenc] }
database: { type: string }
user: { type: string }
address: { type: ["null", string] }
auth-method: { enum: [trust, reject, scram-sha-256, md5, password, gss, sspi, ident, peer, ldap, radius, cert, pam, bsd] }
auth-options: { type: ["null", string] }
additionalProperties: false
required: [host, database, user, address, auth-method, auth-options]
backup:
type: object
properties:
enabled: { type: boolean }
pitrEnabled: { type: boolean }
hostname: { type: string }
maxAge: { type: string, format: interval }
incrementalBackupInterval: { type: string, format: interval }
additionalProperties: false
required: [enabled, pitrEnabled, hostname, maxAge, incrementalBackupInterval]
replication:
type: object
properties:
port: { type: integer, format: ip-port }
username: { type: string }
password: { type: ["null", string] }
primary:
type: object
properties:
hostname: { type: string }
additionalProperties: false
required: [hostname]
sync:
type: object
properties:
hostname: { type: string }
numberOfStandbys:
anyOf:
- type: "null"
- { type: integer, minimum: 0 }
additionalProperties: false
required: [hostname, numberOfStandbys]
async:
type: object
properties:
replicateFrom: { enum: [primary, sync] }
additionalProperties: false
required: [replicateFrom]
additionalProperties: false
required: [port, username, password]
settings:
type: ["null", object]
nginx:
type: object
properties:
enabled: { type: boolean }
port: { type: integer, format: ip-port }
serverNames:
anyOf:
- type: "null"
- { type: string, format: nginx-server-name }
- { type: array, items: { type: string, format: nginx-server-name }, minItems: 1, uniqueItems: true }
defaultServer: { type: boolean }
additionalProperties: false
required: [enabled, port, serverNames, defaultServer]
additionalProperties: false
required: [mode, clusterName, dataDir, access, backup, nginx]