Skip to content

0.10.0

Latest

Choose a tag to compare

@github-actions github-actions released this 18 Oct 05:22

gitd 0.10.0: workspaces as Kubernetes volumes, and gitd on macOS.

Kubernetes: a CSI driver

  • A pod asks for a workspace like any volume — an ephemeral inline volume of the driver
    gitd.dev, with its repository and branch — and gets a copy-on-write checkout from the
    gitd on its node, with no credential in the pod.
  • gitd-csi, the CSI node plugin, asks gitd for a workspace that carries its pool inside
    it, mounts the pool's objects read-only there, and binds the workspace onto the pod's
    volume; when the pod goes, it unmounts both and gitd removes the workspace.
  • charts/gitd: the Helm chart running gitd (unprivileged, credentials from a Secret only
    it mounts), the plugin and kubelet's registrar on every node.
  • On kind in CI, on every push: a pod commits in its workspace with no credential, and gitd
    publishes the commit to GitHub with the gitd-e2e App.
  • PrepareRequest.pool_inside, released in 0.9.0, is what the plugin uses: a workspace that
    names its pool from inside itself, accepted only while the pool is truly mounted there.

macOS

  • gitd-darwin-amd64 and gitd-darwin-arm64. With no overlay on macOS, gitd clones each
    template whole with APFS's clonefile(2). Ten workspaces of OCA/web on a GitHub macOS
    runner: 0.159 s and 0.7 MB each (by the volume's free space), against 1.75 s and 38.1 MB
    for a git clone --depth 1; all ten clean to git.

Guides

  • docs/guides: Docker, Kubernetes, Claude Code and Codex (with bubblewrap), remote
    sandboxes (E2B, Modal) and macOS, each pointing at what CI runs of it.

Fixes

  • A root reached through a symbolic link refused every workspace under it — every root
    under /tmp or /var on macOS. Found by the macOS job.

Upgrading

The contract did not change since 0.9.0. CI now refuses any change buf breaking finds
against the last release. Clients: pip install gitd==0.10.0,
npm install gitd-client@0.10.0.