Skip to content

Modify cluster configuration and failover settings

Request

Security
JWTAuthorizer
Path
clusterFQDNstringrequired

Cluster FQDN

Bodyapplication/jsonrequired
configobject

Cluster-wide configuration. Mirrors the subset of node configuration sections that are shared across cluster members. Use the /cluster/{clusterFQDN}/config/* endpoints to modify individual sections rather than editing this object directly.

domainstring

Cluster domain

fqdnstring

Cluster FQDN

healthstring

Cluster health

Enum:"healthy""unhealthy""offline""unknown"
modestring

Cluster Failback Mode

Enum:"autoFailback""manualFailback"
namestring

Cluster name

orgstring

Organization ID (UUID) that owns this cluster

tagsobject

User-defined tags for organizing and filtering clusters

tgTagsobject

System-managed tags assigned by the Trustgrid platform (read-only)

tgrnstring

Trustgrid Resource Name for this cluster. Format: tgrn:tg::nodes:cluster/{fqdn}

Example:"tgrn:tg::nodes:cluster/mycluster.myorg.trustgrid.io"
created_atinteger

Unix timestamp (seconds) when the cluster was created

lifecycleStatestring

Operational lifecycle state of the cluster

Enum:"pre-production""production""maintenance""decommissioned"
curl -i -X PUT \
  'https://apidocs.trustgrid.io/_mock/cluster/{clusterFQDN}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "config": {
      "exec": {
        "commands": [
          {
            "capabilities": {
              "addCaps": [
                "string"
              ],
              "dropCaps": [
                "string"
              ]
            },
            "healthCheck": {
              "command": "/bin/sh -c '\''exit 0'\''",
              "interval": 10,
              "retries": 10,
              "startPeriod": 10,
              "timeout": 10
            },
            "interfaces": [
              {
                "dest": "10.10.14.0/24",
                "name": "eth0",
                "uid": "7da978ea-3d64-470a-8494-20ca4981e184"
              }
            ],
            "limits": {
              "cpuMax": 80,
              "ioRbps": 80,
              "ioRiops": 80,
              "ioWbps": 80,
              "ioWiops": 80,
              "legacyMemHigh": 80,
              "legacyMemMax": 80,
              "limits": [
                {}
              ],
              "memHigh": 80,
              "memMax": 80
            },
            "logging": {
              "maxFileSize": 10,
              "numFiles": 10
            },
            "mounts": [
              {
                "dest": "/myvolume",
                "encrypted": true,
                "mountType": "volume",
                "source": "myvolume",
                "uid": "3ae09040-396e-4a7a-a3b7-dfb99a241685"
              }
            ],
            "portMappings": [
              {
                "containerPort": "8080",
                "hostPort": "8080",
                "iface": "eth0",
                "protocol": "tcp",
                "uid": "d0522f1b-cc1a-4aad-bb46-99304a5e152d"
              }
            ],
            "variables": [
              {
                "name": "myvar",
                "value": "myvalue"
              }
            ],
            "virtualNetworks": [
              {
                "allowOutbound": true,
                "ip": "10.10.10.14",
                "network": "mynetwork",
                "uid": "59349874-2e2a-4c51-b864-2782a3a489af"
              }
            ],
            "vrf": {
              "name": "myvrf"
            }
          }
        ],
        "volumes": [
          {
            "name": "string",
            "encrypted": true,
            "location": "string"
          }
        ],
        "limits": {
          "cpuMax": 0,
          "memMax": 0,
          "memHigh": 0,
          "ioRbps": 0,
          "ioWbps": 0,
          "ioRiops": 0,
          "ioWiops": 0
        }
      },
      "vpn": {
        "networks": [
          {
            "id": 0,
            "name": "string",
            "ip": "string",
            "interfaces": [
              {
                "name": "string",
                "inDefaultRoute": true,
                "outDefaultRoute": true,
                "insideNats": [
                  {}
                ],
                "outsideNats": [
                  {}
                ]
              }
            ],
            "routes": [
              {
                "node": "string",
                "networkCidr": "string",
                "metric": 0,
                "path": "string",
                "description": "string"
              }
            ],
            "services": [
              {
                "name": "string",
                "ip": "string",
                "port": 0
              }
            ],
            "dns": {
              "enabled": true,
              "upstream": [
                "string"
              ]
            }
          }
        ]
      },
      "network": {
        "interfaces": [
          {
            "nic": "string",
            "vrf": "string",
            "virtual": true,
            "dhcp": true,
            "ip": "string",
            "subnet": "string",
            "gateway": "string",
            "dns": [
              "string"
            ],
            "mtu": 0,
            "duplex": "string",
            "speed": 0,
            "mode": "auto",
            "description": "string",
            "subInterfaces": [
              {
                "vlanID": 0,
                "vrf": "string",
                "ip": "string",
                "description": "string"
              }
            ],
            "routes": [
              {
                "route": "string",
                "next": "string",
                "description": "string"
              }
            ]
          }
        ],
        "tunnels": [
          {
            "type": "ipsec",
            "name": "string",
            "enabled": true,
            "description": "string",
            "ip": "string",
            "vrf": "string",
            "mtu": 0,
            "destination": "string",
            "networkId": 0,
            "publicKey": "string",
            "presharedKey": "string",
            "ike": 0,
            "ikeCipher": "string",
            "ikeGroup": 0,
            "ipsecCipher": "string",
            "psk": "string",
            "localId": "string",
            "remoteId": "string",
            "localSubnet": "string",
            "remoteSubnet": "string",
            "pfs": 0,
            "dpdInterval": 0,
            "dpdRetries": 0,
            "rekeyInterval": 0,
            "replayWindow": 0,
            "auto": "add"
          }
        ],
        "routes": [
          {
            "uid": "string",
            "dest": "string",
            "via": "string",
            "dev": "string",
            "metric": 0,
            "description": "string"
          }
        ],
        "nats": [
          {
            "uid": "string",
            "source": "string",
            "dest": "string",
            "toSource": "string",
            "toDest": "string",
            "masquerade": true,
            "description": "string"
          }
        ],
        "acls": [
          {
            "uid": "string",
            "line": 0,
            "protocol": "string",
            "source": "string",
            "dest": "string",
            "ports": "string",
            "action": "string",
            "description": "string"
          }
        ],
        "rules": [
          {
            "uid": "string",
            "line": 0,
            "in": "string",
            "iface": "string",
            "vrf": "string",
            "protocol": "string",
            "source": "string",
            "dest": "string",
            "ports": "string",
            "action": "string",
            "snat": true,
            "dnat": "string",
            "dmac": "string",
            "description": "string"
          }
        ],
        "vrfs": [
          {
            "name": "string",
            "description": "string",
            "forwarding": true,
            "routes": [
              {}
            ],
            "nats": [
              {}
            ],
            "acls": [
              {}
            ],
            "rules": [
              {}
            ]
          }
        ],
        "darkMode": true,
        "forwarding": true,
        "bridgeCIDR": "string"
      },
      "services": {
        "enabled": true,
        "version": 2,
        "items": {
          "property1": {
            "name": "gw-http",
            "protocol": "tcp",
            "port": 5000,
            "host": "192.168.200.62",
            "enabled": true,
            "sourceInterface": "ens192",
            "sourceFromClusterIP": true
          },
          "property2": {
            "name": "gw-http",
            "protocol": "tcp",
            "port": 5000,
            "host": "192.168.200.62",
            "enabled": true,
            "sourceInterface": "ens192",
            "sourceFromClusterIP": true
          }
        },
        "services": [
          {
            "name": "gw-http",
            "protocol": "tcp",
            "port": 5000,
            "host": "192.168.200.62",
            "enabled": true,
            "sourceInterface": "ens192",
            "sourceFromClusterIP": true
          }
        ]
      },
      "connectors": {
        "enabled": true,
        "version": 2,
        "items": {
          "property1": {
            "description": "My connector",
            "enabled": true,
            "localIp": "100.100.64.1",
            "maxmbps": 100,
            "nic": "eth0",
            "node": "node1",
            "port": 1234,
            "index": 1,
            "protocol": "tcp",
            "service": "ssh"
          },
          "property2": {
            "description": "My connector",
            "enabled": true,
            "localIp": "100.100.64.1",
            "maxmbps": 100,
            "nic": "eth0",
            "node": "node1",
            "port": 1234,
            "index": 1,
            "protocol": "tcp",
            "service": "ssh"
          }
        },
        "connectors": [
          {
            "description": "My connector",
            "enabled": true,
            "localIp": "100.100.64.1",
            "maxmbps": 100,
            "nic": "eth0",
            "node": "node1",
            "port": 1234,
            "index": 1,
            "protocol": "tcp",
            "service": "ssh"
          }
        ]
      },
      "apigw": {},
      "core": {}
    },
    "domain": "string",
    "fqdn": "string",
    "health": "healthy",
    "mode": "autoFailback",
    "name": "string",
    "org": "string",
    "tags": {
      "property1": "string",
      "property2": "string"
    },
    "tgTags": {
      "property1": "string",
      "property2": "string"
    },
    "tgrn": "tgrn:tg::nodes:cluster/mycluster.myorg.trustgrid.io",
    "created_at": 0,
    "lifecycleState": "pre-production"
  }'

Responses

OK

Response
No content