Reference for the Portworx config.json configuration file


This is the schema definition for a valid Portworx configuration file. This file is expected to be available at /etc/pwx/config.json.

{
  "description": "Validate PWX config json",
  "type": "object",
  "properties": {
    "mode": {
      "type": "string"
    },
    "version": {
      "type": "string"
    },
    "created": {
      "type": "string"
    },
    "clusterid": {
      "type": "string"
    },
    "mgtiface": {
      "type": "string"
    },
    "dataiface": {
      "type": "string"
    },
    "kvdb": {
      "type": "array",
      "minItems": 1,
      "items": {"type": "string", "format": "uri" },
      "uniqueItems": true
    },
    "username": {
      "type": "string"
    },
    "password": {
      "type": "string"
    },
    "cafile": {
      "type": "string"
    },
    "certfile": {
      "type": "string"
    },
    "certkey": {
      "type": "string"
    },
    "trustedcafile": {
      "type": "string"
    },
    "clientcertauth": {
      "type": "string"
    },
    "acltoken": {
      "type": "string"
    },
    "alertingurl": {
      "type": "string"
    },
    "scheduler": {
      "type": "string"
    },
    "multi-container": {
      "type": "boolean"
    },
    "nolh": {
      "type": "boolean"
    },
    "callhome": {
      "type": "boolean"
    },
    "bootstrap": {
      "type": "boolean"
    },
    "tunnelendpoint": {
      "type": "string"
    },
    "tunnelcerts": {
      "type": "array",
      "minItems": 2,
      "items": {"type": "string"},
      "uniqueItems": true
    },
    "secret": {
      "type": "object",
      "secret_type": "string",
      "cluster_secret_key": "string",
      "vault": {
        "type": "object",
        "VAULT_TOKEN": "string",
        "VAULT_ADDR": "string"
      },
      "aws": {
        "type": "object",
        "AWS_ACCESS_KEY_ID": "string",
        "AWS_SECRET_ACCESS_KEY": "string",
        "AWS_SECRET_TOKEN_KEY": "string",
        "AWS_CMK": "string",
        "AWS_REGION": "string"
      }
    },
    "storage": {
      "type": "object",
      "properties": {
        "devices_md": {
          "type": "array",
          "items": { "type": "string" },
          "uniqueItems": true
        },
        "max_count": {
          "type": "number"
        },
        "devices": {
          "type": "array",
          "items": { "type": "string" },
          "uniqueItems": true
        },
        "raidlevel": {
          "type": "string"
        },
        "raidlevelmd": {
          "type": "string"
        },
        "async_io": {
          "type": "boolean"
        },
        "num_threads": {
          "type": "number"
        }
      }
    },
    "driver": {
      "type": "string"
    },
    "debug_level": {
      "type": "string"
    },
    "domain": {
      "type": "string"
    },
    "mgmtip": {
      "type": "string"
    },
    "dataip": {
      "type": "string"
    }
  }
}

Definitions

clusterid: Globally unique cluster ID. Ex: "07ea5dc0-4e9a-11e6-b2fd-0242ac110003". Must be either assigned by Portworx Enterprise or guaranteed to be unique.

mgtiface: Host ethernet interface used for Management traffic. Primarily used for statistics, configuration and control-path. Ex: "enp5s0f0"

dataiface: Host ethernet interface used for backend activity, such as replication and resync. Ex: "enp5s0f1"

kvdb: Array of endpoints used for the key-value database. Must be reachable and refer to etcd or consul. For ‘etcd’, an example would be:

"kvdb": [
  "etcd:http://etcd0.yourdomain.com:4001",
  "etcd:http://etcd1.yourdomain.com:4001",
  "etcd:http://etcd2.yourdomain.com:4001"
]

storage: Array of devices to be used as part of the Portworx Storage Fabric. Includes optional debug_level flag (low, medium, high [default]) in the clause.

"storage": {
    "devices": [
        "/dev/nvme0n1",
        "/dev/sdc",
        "/dev/sdd"
    ],


Last edited: Wednesday, Feb 22, 2023