awsebs

package
v0.0.1-dev.137 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 11, 2026 License: MIT Imports: 18 Imported by: 0

Documentation

Overview

Package awsebs implements the "aws-ebs" storage driver, backed by Amazon EBS (Elastic Block Store) volumes.

The driver is registered under the name "aws-ebs" (operator-facing, hyphenated) while the Go package itself is "awsebs" (Go forbids hyphens). Operators consume it by writing a StorageClass that points at it:

storageClass:
  name: ebs-gp3-euw2a
  driver: aws-ebs
  parameters:
    region: eu-west-2
    availabilityZone: eu-west-2a
    volumeType: gp3
    fsType: ext4
  reclaimPolicy: retain
  allowedTopologies:
    - matchLabels:
        rune.io/zone: eu-west-2a

Unlike DigitalOcean Block Storage (which is region-scoped), an EBS volume is pinned to a single Availability Zone and can only attach to an instance in that same AZ — hence `availabilityZone` is required at Provision time (sourced from parameters or the selected topology).

Auth uses the standard AWS credential chain: on an EC2 node with an instance profile (see terraform-aws-rune's IAM role + AmazonEC2ContainerRegistryReadOnly / EBS permissions) no credentials need to be configured at all. For cross-account or off-instance controllers, static credentials can be supplied via StorageClass `parameters.accessKeyId` / `secretAccessKey` / `sessionToken`; the controller resolves any `secret:...` reference into plaintext before the driver sees it (RUNE-200 / pkg/storage/driverparams), so rotation flows through the secrets store with no driver-level wiring.

Mirrors the do-volume reference driver (RUNE-069).

Index

Constants

View Source
const DriverName = "aws-ebs"

DriverName is the registry key.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	// VolumeNamePrefix is prepended to the Name tag of every EBS volume
	// created by this driver, so multiple Rune clusters can share one
	// AWS account without their console listings colliding. EBS volumes
	// have no unique-name constraint (identity is the volume ID), so this
	// is cosmetic plus a cheap cluster filter. Default "rune-".
	VolumeNamePrefix string
}

Config is the runefile [storage.drivers.aws-ebs] section after parsing. Only knobs that don't belong on per-StorageClass parameters live here — region, AZ, volume type and auth are all sourced from StorageClass parameters (resolved by the controller-side secret resolver) so a single driver instance serves every region/account.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL