crd

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2021 License: MIT Imports: 10 Imported by: 3

Documentation

Index

Constants

View Source
const (
	CRDPlural          string = "databases"
	CRDGroup           string = "k8s.io"
	CRDVersion         string = "v1"
	FullCRDName        string = "databases." + CRDGroup
	StorageTypePattern string = `gp2|io1`
	DBNamePattern      string = "^[A-Za-z]\\w+$"
	DBUsernamePattern  string = "^[A-Za-z]\\w+$"
)

Variables

View Source
var SchemeGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion}

Functions

func CreateCRD

func CreateCRD(clientset apiextcs.Interface) error

CreateCRD creates the CRD resource, ignore error if it already exists

func NewClient

func NewClient(cfg *rest.Config) (*rest.RESTClient, *runtime.Scheme, error)

NewClient Creates a Rest client with the new CRD Schema

Types

type Database

type Database struct {
	meta_v1.TypeMeta   `json:",inline"`
	meta_v1.ObjectMeta `json:"metadata"`
	Spec               DatabaseSpec   `json:"spec"`
	Status             DatabaseStatus `json:"status,omitempty"`
}

Database is the definition of our CRD Database

func (*Database) DeepCopyObject

func (d *Database) DeepCopyObject() runtime.Object

type DatabaseList

type DatabaseList struct {
	meta_v1.TypeMeta `json:",inline"`
	meta_v1.ListMeta `json:"metadata"`
	Items            []Database `json:"items"`
}

func (*DatabaseList) DeepCopyObject

func (d *DatabaseList) DeepCopyObject() runtime.Object

type DatabaseSpec

type DatabaseSpec struct {
	Username              string               `json:"username"`
	Password              v1.SecretKeySelector `json:"password"`
	DBName                string               `json:"dbname"`
	Engine                string               `json:"engine"`           // "postgres"
	Version               string               `json:"version"`          // version of the engine / database
	Class                 string               `json:"class"`            // like "db.t2.micro"
	Size                  int64                `json:"size"`             // size in gb
	MaxAllocatedSize      int64                `json:"MaxAllocatedSize"` // size in gb
	MultiAZ               bool                 `json:"multiaz,omitempty"`
	PubliclyAccessible    bool                 `json:"publicaccess,omitempty"`
	StorageEncrypted      bool                 `json:"encrypted,omitempty"`
	StorageType           string               `json:"storagetype,omitempty"`
	Iops                  int64                `json:"iops,omitempty"`
	BackupRetentionPeriod int64                `json:"backupretentionperiod,omitempty"` // between 0 and 35, zero means disable
	DeleteProtection      bool                 `json:"deleteprotection,omitempty"`
	Tags                  string               `json:"tags,omitempty"`     // key=value,key1=value1
	Provider              string               `json:"provider,omitempty"` // local or aws

}

DatabaseSpec main structure describing the database instance

type DatabaseStatus

type DatabaseStatus struct {
	State   string `json:"state,omitempty" description:"State of the deploy"`
	Message string `json:"message,omitempty" description:"Detailed message around the state"`
}

Jump to

Keyboard shortcuts

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