Esc

Pebble compatibility

What Pebble versions borescope supports, by transport.

Supported versions

borescope 1.0 is tested against Pebble 1.31.0 end-to-end (see the spread.yaml conformance suite, which pins PEBBLE_VERSION=v1.31.0). 1.31 is what currently ships in the pebble snap's latest/stable channel.

Compatibility across Pebble versions depends on which transport you're using.

ssh / exec (shimmer) path

The default Juju-relayed transports (--via ssh, --via exec) drive the remote pebble CLI through shimmer. They require Pebble ≥ 1.31 in the charm container, because shimmer relies on CLI surface and JSON output shapes that stabilised in that release.

If a Juju version you're using ships an older Pebble in its charm-container sidecar, the ssh/exec path will not work reliably — fall back to the direct socket path below, or upgrade the charm to a base that ships a current Pebble.

Direct socket path

--here and --socket PATH talk to Pebble over its HTTP-on-Unix-socket API using the real ops.pebble.Client. This path doesn't go through the CLI at all, so it isn't bound to the shimmer compatibility floor.

In principle older Pebbles work here too, going back as far as the ops.pebble.Client surface borescope relies on. In practice we currently only test against Pebble 1.31.0; older versions are unverified for 1.0. Automated multi-version coverage is tracked in issue #28 — if you hit a regression on an older Pebble, please file it with the exact version.

Checking what you have

Inside a charm container, pebble version --client reports the bundled Pebble. From a borescope session, pebble version (Pebble's own command, exposed as a built-in) prints the server version of whatever Pebble you're currently connected to.