Skip to content

Peering

Daniel Carbone edited this page Nov 6, 2026 · 1 revision

Peering

$consul->Peering wraps Consul's Cluster Peering API (Consul 1.13+). Peering connects two clusters through their gRPC TLS ports, so both must have gRPC TLS enabled.

Establishing a peering

On the accepting cluster, generate a token:

use DCarbone\PHPConsulAPI\Peering\PeeringGenerateTokenRequest;

[$token, $wm, $err] = $accepting->Peering->GenerateToken(
    request: new PeeringGenerateTokenRequest(PeerName: 'cluster-b'),
);

On the dialing cluster, use that token:

use DCarbone\PHPConsulAPI\Peering\PeeringEstablishRequest;

[$wm, $err] = $dialing->Peering->Establish(
    request: new PeeringEstablishRequest(PeerName: 'cluster-a', PeeringToken: $token),
);

Reading and deleting

[$peering, $qm, $err] = $consul->Peering->Read(name: 'cluster-a');
if (null === $peering) {
    // no such peer; this is not reported as an error
}

[$peerings, $qm, $err] = $consul->Peering->List();
foreach ($peerings as $p) {
    echo "{$p->Name}: {$p->State}\n";
}

[$wm, $err] = $consul->Peering->Delete(name: 'cluster-a');

See Responses and Errors and Query and Write Options.

Clone this wiki locally