Skip to content

package backends

import "github.com/cloudboss/unobin/pkg/backends"

Package backends holds the fixed set of state backends a factory can use. An operator selects one by bare name in a stack state declaration, and the resolver looks the name up here. The encrypter set lives in pkg/encrypters the same way.

Constants

const (
    LocalName = localbackend.Name
    S3Name    = "s3"
    GCSName   = "gcs"
)

Backend names, the registry keys an operator selects in stack state.

Functions

func Backends

func Backends() map[string]sdkstate.BackendType

Backends returns the state backends keyed by the bare name an operator selects in stack state. Names are unique by construction: this is one map literal, so a duplicate is a compile error.

Types

type GCSBackendConfig

type GCSBackendConfig struct {
    Bucket     string
    Prefix     *string
    KMSKeyName *string
    GCP        *gcpcfg.Configuration
    Bootstrap  *GCSBootstrapConfig
}

GCSBackendConfig is the operator-facing body under `state: gcs { ... }`.

func (*GCSBackendConfig) Validate

func (c *GCSBackendConfig) Validate() error

type GCSBootstrapConfig

type GCSBootstrapConfig struct {
    Location         *string
    Versioning       *GCSBucketVersioning
    IAMConfiguration *GCSBucketIAMConfiguration
    Labels           *map[string]string
}

type GCSBucketIAMConfiguration

type GCSBucketIAMConfiguration struct {
    PublicAccessPrevention   *string
    UniformBucketLevelAccess *GCSBucketUniformBucketLevelAccess
}

type GCSBucketUniformBucketLevelAccess

type GCSBucketUniformBucketLevelAccess struct {
    Enabled bool
}

type GCSBucketVersioning

type GCSBucketVersioning struct {
    Enabled bool
}

type LocalBackendConfig

type LocalBackendConfig = localbackend.Config

LocalBackendConfig is the operator-facing body under `state: local { ... }`.

type S3BackendConfig

type S3BackendConfig struct {
    Bucket       string
    Prefix       *string
    KMSKeyID     *string
    UsePathStyle *bool
    AWS          *awscfg.Configuration
    Bootstrap    *S3BootstrapConfig
}

S3BackendConfig is the operator-facing body under `state: s3 { ... }`. The aws object holds the shared AWS connection settings from pkg/awscfg; bucket, prefix, kms-key-id, use-path-style, and bootstrap are the backend's own.

func (*S3BackendConfig) Validate

func (c *S3BackendConfig) Validate() error

type S3BootstrapConfig

type S3BootstrapConfig struct {
    BucketNamespace   *string
    Versioning        *S3BucketVersioning
    PublicAccessBlock *S3BucketPublicAccessBlock
    OwnershipControls *S3BucketOwnershipControls
    Tags              *map[string]string
}

type S3BucketOwnershipControls

type S3BucketOwnershipControls struct {
    ObjectOwnership string
}

type S3BucketPublicAccessBlock

type S3BucketPublicAccessBlock struct {
    BlockPublicAcls       *bool
    BlockPublicPolicy     *bool
    IgnorePublicAcls      *bool
    RestrictPublicBuckets *bool
}

type S3BucketVersioning

type S3BucketVersioning struct {
    Status string
}