Documentation
¶
Overview ¶
Package dovolume implements the "do-volume" storage driver — Rune's reference cloud driver, backed by DigitalOcean Block Storage.
The driver is registered under the name "do-volume" (operator-facing, hyphenated) while the Go package itself is "dovolume" (Go forbids hyphens). Operators consume it by writing a StorageClass that points at it:
storageClass:
name: do-ssd-nyc3
driver: do-volume
parameters:
region: nyc3
fsType: ext4
apiToken: "secret:do-api-token.shared.rune/token"
reclaimPolicy: retain
allowedTopologies:
- matchLabels:
rune.io/region: nyc3
Auth uses a DigitalOcean Personal Access Token sourced from the StorageClass `parameters.apiToken` value. The controller resolves any `secret:...` reference into plaintext before the driver sees it (RUNE-200 PR 3 / pkg/storage/driverparams), so token rotation flows through the secrets store with no driver-level wiring.
Introduced in RUNE-069.
Index ¶
Constants ¶
const DriverName = "do-volume"
DriverName is the registry key.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// APIBaseURL overrides the DO API endpoint. Defaults to
// "https://api.digitalocean.com" — only set in tests against a
// httptest.Server.
APIBaseURL string
// VolumeNamePrefix is prepended to every DO volume name created by
// this driver, so multiple Rune clusters can share one DO
// account without colliding. Default "rune-".
VolumeNamePrefix string
}
Config is the runefile [storage.drivers.do-volume] section after parsing. Only knobs that don't belong on per-StorageClass parameters live here — auth is sourced from StorageClass `parameters.apiToken` (resolved by the controller-side secret resolver).