fi

package
v0.0.0-...-7a4df5e Latest Latest
Warning

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

Go to latest
Published: Dec 1, 2017 License: Apache-2.0 Imports: 42 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SecretTypeSSHPublicKey = "SSHPublicKey"
	SecretTypeKeypair      = "Keypair"
	SecretTypeSecret       = "Secret"

	// Name for the primary SSH key
	SecretNameSSHPrimary = "admin"
)
View Source
const CertificateId_CA = "ca"

Variables

This section is empty.

Functions

func Bool

func Bool(v bool) *bool

func BoolValue

func BoolValue(v *bool) bool

func BuildCAX509Template

func BuildCAX509Template() *x509.Certificate

func BuildChanges

func BuildChanges(a, e, changes interface{}) bool

BuildChanges compares the values of a & e, and populates differences into changes, except that if a value is nil in e, the corresponding value in a is ignored. a, e and changes must all be of the same type a is the actual object found, e is the expected value Note that the ignore-nil-in-e logic therefore implements the idea that nil value in e means "don't care" If a is nil, all the non-nil values in e will be copied over to changes, because every field in e must be applied

func BuildTimestampString

func BuildTimestampString() string

func CannotChangeField

func CannotChangeField(key string) error

func CopyResource

func CopyResource(dest io.Writer, r Resource) (int64, error)

func DebugAsJsonString

func DebugAsJsonString(v interface{}) string

func DebugAsJsonStringIndent

func DebugAsJsonStringIndent(v interface{}) string

func DebugPrint

func DebugPrint(o interface{}) string

func DefaultDeltaRunMethod

func DefaultDeltaRunMethod(e Task, c *Context) error

DefaultDeltaRunMethod implements the standard change-based run procedure: find the existing item; compare properties; call render with (actual, expected, changes)

func DeleteKeysetItem

func DeleteKeysetItem(client kopsinternalversion.KeysetInterface, name string, keysetType kops.KeysetType, id string) error

DeleteKeysetItem deletes the specified key from the registry; deleting the whole keyset if it was the last one

func DownloadURL

func DownloadURL(url string, dest string, hash *hashing.Hash) (*hashing.Hash, error)

func EnsureFileMode

func EnsureFileMode(destPath string, fileMode os.FileMode) (bool, error)

func EnsureFileOwner

func EnsureFileOwner(destPath string, owner string, groupName string) (bool, error)

func FieldIsImmutable

func FieldIsImmutable(newVal, oldVal interface{}, fldPath *field.Path) *field.Error

func FileModeToString

func FileModeToString(mode os.FileMode) string

func FindPrimary

func FindPrimary(keyset *kops.Keyset) *kops.KeysetItem

FindPrimary returns the primary KeysetItem in the Keyset

func FindTaskDependencies

func FindTaskDependencies(tasks map[string]Task) map[string][]string

FindTaskDependencies returns a map from each task's key to the discovered list of dependencies

func GuessCloudForZone

func GuessCloudForZone(zone string) (kops.CloudProviderID, bool)

GuessCloudForZone tries to infer the cloudprovider from the zone name

func Int32

func Int32(v int32) *int32

func Int32Value

func Int32Value(v *int32) int32

func Int64

func Int64(v int64) *int64

Int64 is a helper that builds a *int64 from an int64 value This is similar to aws.Int64, except that we use it for non-AWS values

func Int64Value

func Int64Value(v *int64) int64

func IsNilOrEmpty

func IsNilOrEmpty(s *string) bool

func ParseFileMode

func ParseFileMode(s string, defaultMode os.FileMode) (os.FileMode, error)

func RequiredField

func RequiredField(key string) error

func ResourceAsBytes

func ResourceAsBytes(r Resource) ([]byte, error)

func ResourceAsString

func ResourceAsString(r Resource) (string, error)

func ResourcesMatch

func ResourcesMatch(a, b Resource) (bool, error)

func SafeClose

func SafeClose(r io.Reader)

func String

func String(s string) *string

String is a helper that builds a *string from a string value This is similar to aws.String, except that we use it for non-AWS values

func StringValue

func StringValue(s *string) string

func TaskAsString

func TaskAsString(t Task) string

TaskAsString renders the task for debug output TODO: Use reflection to make this cleaner: don't recurse into tasks - print their names instead also print resources in a cleaner way (use the resource source information?)

func TypeNameForTask

func TypeNameForTask(task interface{}) string

func Uint64Value

func Uint64Value(v *uint64) uint64

func ValueAsString

func ValueAsString(value reflect.Value) string

ValueAsString returns a human-readable string representation of the passed value

func WriteFile

func WriteFile(destPath string, contents Resource, fileMode os.FileMode, dirMode os.FileMode) error

Types

type AssetStore

type AssetStore struct {
	// contains filtered or unexported fields
}

func NewAssetStore

func NewAssetStore(cacheDir string) *AssetStore

func (*AssetStore) Add

func (a *AssetStore) Add(id string) error

Add an asset into the store, in one of the recognized formats (see Assets in types package)

func (*AssetStore) Find

func (a *AssetStore) Find(key string, assetPath string) (Resource, error)

type ByTaskKey

type ByTaskKey []*render

ByTaskKey sorts []*render by TaskKey (type/name)

func (ByTaskKey) Len

func (a ByTaskKey) Len() int

func (ByTaskKey) Less

func (a ByTaskKey) Less(i, j int) bool

func (ByTaskKey) Swap

func (a ByTaskKey) Swap(i, j int)

type BytesResource

type BytesResource struct {
	// contains filtered or unexported fields
}

func NewBytesResource

func NewBytesResource(data []byte) *BytesResource

func (*BytesResource) Open

func (r *BytesResource) Open() (io.Reader, error)

type CAStore

type CAStore interface {
	Keystore

	// Cert returns the primary specified certificate
	// For createIfMissing=false, using FindCert is preferred
	Cert(name string, createIfMissing bool) (*pki.Certificate, error)
	// CertificatePool returns all active certificates with the specified id
	CertificatePool(name string, createIfMissing bool) (*CertificatePool, error)
	PrivateKey(name string, createIfMissing bool) (*pki.PrivateKey, error)

	// FindCert returns the specified certificate, if it exists, or nil if not found
	FindCert(name string) (*pki.Certificate, error)
	FindPrivateKey(name string) (*pki.PrivateKey, error)

	// List will list all the items, but will not fetch the data
	List() ([]*KeystoreItem, error)

	// AddCert adds an alternative certificate to the pool (primarily useful for CAs)
	AddCert(name string, cert *pki.Certificate) error

	// AddSSHPublicKey adds an SSH public key
	AddSSHPublicKey(name string, data []byte) error

	// FindSSHPublicKeys retrieves the SSH public keys with the specific name
	FindSSHPublicKeys(name string) ([]*KeystoreItem, error)

	// DeleteSecret will delete the specified item
	DeleteSecret(item *KeystoreItem) error
}

func NewClientsetCAStore

func NewClientsetCAStore(cluster *kops.Cluster, clientset kopsinternalversion.KopsInterface, namespace string) CAStore

NewClientsetCAStore is the constructor for ClientsetCAStore

func NewVFSCAStore

func NewVFSCAStore(cluster *kops.Cluster, basedir vfs.Path) CAStore

type CertificatePool

type CertificatePool struct {
	Secondary []*pki.Certificate
	Primary   *pki.Certificate
}

func (*CertificatePool) AsString

func (c *CertificatePool) AsString() (string, error)

type ClientsetCAStore

type ClientsetCAStore struct {
	// contains filtered or unexported fields
}

ClientsetCAStore is a CAStore implementation that stores keypairs in Keyset on a API server

func (*ClientsetCAStore) AddCert

func (c *ClientsetCAStore) AddCert(name string, cert *pki.Certificate) error

AddCert implements CAStore::AddCert

func (*ClientsetCAStore) AddSSHPublicKey

func (c *ClientsetCAStore) AddSSHPublicKey(name string, pubkey []byte) error

AddSSHPublicKey implements CAStore::AddSSHPublicKey

func (*ClientsetCAStore) Cert

func (c *ClientsetCAStore) Cert(name string, createIfMissing bool) (*pki.Certificate, error)

Cert implements CAStore::Cert

func (*ClientsetCAStore) CertificatePool

func (c *ClientsetCAStore) CertificatePool(id string, createIfMissing bool) (*CertificatePool, error)

CertificatePool implements CAStore::CertificatePool

func (*ClientsetCAStore) CreateKeypair

func (c *ClientsetCAStore) CreateKeypair(signer string, id string, template *x509.Certificate, privateKey *pki.PrivateKey) (*pki.Certificate, error)

CreateKeypair implements CAStore::CreateKeypair

func (*ClientsetCAStore) DeleteSecret

func (c *ClientsetCAStore) DeleteSecret(item *KeystoreItem) error

DeleteSecret implements CAStore::DeleteSecret

func (*ClientsetCAStore) FindCert

func (c *ClientsetCAStore) FindCert(name string) (*pki.Certificate, error)

FindCert implements CAStore::FindCert

func (*ClientsetCAStore) FindCertificatePool

func (c *ClientsetCAStore) FindCertificatePool(name string) (*CertificatePool, error)

FindCertificatePool implements CAStore::FindCertificatePool

func (*ClientsetCAStore) FindKeypair

func (c *ClientsetCAStore) FindKeypair(name string) (*pki.Certificate, *pki.PrivateKey, error)

FindKeypair implements CAStore::FindKeypair

func (*ClientsetCAStore) FindPrivateKey

func (c *ClientsetCAStore) FindPrivateKey(name string) (*pki.PrivateKey, error)

FindPrivateKey implements CAStore::FindPrivateKey

func (*ClientsetCAStore) FindSSHPublicKeys

func (c *ClientsetCAStore) FindSSHPublicKeys(name string) ([]*KeystoreItem, error)

FindSSHPublicKeys implements CAStore::FindSSHPublicKeys

func (*ClientsetCAStore) IssueCert

func (c *ClientsetCAStore) IssueCert(signer string, name string, serial *big.Int, privateKey *pki.PrivateKey, template *x509.Certificate) (*pki.Certificate, error)

IssueCert implements CAStore::IssueCert

func (*ClientsetCAStore) List

func (c *ClientsetCAStore) List() ([]*KeystoreItem, error)

List implements CAStore::List

func (*ClientsetCAStore) MirrorTo

func (c *ClientsetCAStore) MirrorTo(basedir vfs.Path) error

func (*ClientsetCAStore) PrivateKey

func (c *ClientsetCAStore) PrivateKey(name string, createIfMissing bool) (*pki.PrivateKey, error)

PrivateKey implements CAStore::PrivateKey

func (*ClientsetCAStore) StoreKeypair

func (c *ClientsetCAStore) StoreKeypair(name string, cert *pki.Certificate, privateKey *pki.PrivateKey) error

StoreKeypair implements CAStore::StoreKeypair

type Cloud

type Cloud interface {
	ProviderID() kops.CloudProviderID

	DNS() (dnsprovider.Interface, error)

	// FindVPCInfo looks up the specified VPC by id, returning info if found, otherwise (nil, nil)
	FindVPCInfo(id string) (*VPCInfo, error)

	// DeleteInstance deletes a cloud instance
	DeleteInstance(instance *cloudinstances.CloudInstanceGroupMember) error

	// DeleteGroup deletes the cloud resources that make up a CloudInstanceGroup, including the instances
	DeleteGroup(group *cloudinstances.CloudInstanceGroup) error

	// GetCloudGroups returns a map of cloud instances that back a kops cluster
	GetCloudGroups(cluster *kops.Cluster, instancegroups []*kops.InstanceGroup, warnUnmatched bool, nodes []v1.Node) (map[string]*cloudinstances.CloudInstanceGroup, error)
}

type CompareWithID

type CompareWithID interface {
	CompareWithID() *string
}

CompareWithID indicates that the value should be compared by the returned ID value (instead of a deep comparison) Most Tasks implement this, because typically when a Task references another task, it only is concerned with being linked to that task, not the values of the task. For example, when an instance is linked to a disk, it cares that the disk is attached to that instance, not the size or speed of the disk.

type Context

type Context struct {
	Tmpdir string

	Target            Target
	DNS               dnsprovider.Interface
	Cloud             Cloud
	Cluster           *kops.Cluster
	Keystore          Keystore
	SecretStore       SecretStore
	ClusterConfigBase vfs.Path

	CheckExisting bool
	// contains filtered or unexported fields
}

func NewContext

func NewContext(target Target, cluster *kops.Cluster, cloud Cloud, keystore Keystore, secretStore SecretStore, clusterConfigBase vfs.Path, checkExisting bool, tasks map[string]Task) (*Context, error)

func (*Context) AddWarning

func (c *Context) AddWarning(task Task, message string)

AddWarning records a warning encountered during validation / creation. Typically this will be an error that we choose to ignore because of Lifecycle.

func (*Context) AllTasks

func (c *Context) AllTasks() map[string]Task

func (*Context) Close

func (c *Context) Close()

func (*Context) NewTempDir

func (c *Context) NewTempDir(prefix string) (string, error)

func (*Context) Render

func (c *Context) Render(a, e, changes Task) error

Render dispatches the creation of an object to the appropriate handler defined on the Task, it is typically called after we have checked the existing state of the Task and determined that is different from the desired state.

func (*Context) RunTasks

func (c *Context) RunTasks(maxTaskDuration time.Duration) error

type Deletion

type Deletion interface {
	Delete(target Target) error

	TaskName() string
	Item() string
}

type DeletionByTaskName

type DeletionByTaskName []Deletion

DeletionByTaskName sorts []Deletion by TaskName

func (DeletionByTaskName) Len

func (a DeletionByTaskName) Len() int

func (DeletionByTaskName) Less

func (a DeletionByTaskName) Less(i, j int) bool

func (DeletionByTaskName) Swap

func (a DeletionByTaskName) Swap(i, j int)

type DryRunTarget

type DryRunTarget struct {
	// contains filtered or unexported fields
}

DryRunTarget is a special Target that does not execute anything, but instead tracks all changes. By running against a DryRunTarget, a list of changes that would be made can be easily collected, without any special support from the Tasks.

func NewDryRunTarget

func NewDryRunTarget(assetBuilder *assets.AssetBuilder, out io.Writer) *DryRunTarget

func (*DryRunTarget) Delete

func (t *DryRunTarget) Delete(deletion Deletion) error

func (*DryRunTarget) Finish

func (t *DryRunTarget) Finish(taskMap map[string]Task) error

Finish is called at the end of a run, and prints a list of changes to the configured Writer

func (*DryRunTarget) HasChanges

func (t *DryRunTarget) HasChanges() bool

HasChanges returns true iff any changes would have been made

func (*DryRunTarget) PrintReport

func (t *DryRunTarget) PrintReport(taskMap map[string]Task, out io.Writer) error

func (*DryRunTarget) ProcessDeletions

func (t *DryRunTarget) ProcessDeletions() bool

func (*DryRunTarget) Render

func (t *DryRunTarget) Render(a, e, changes Task) error

type FileResource

type FileResource struct {
	Path string
}

func NewFileResource

func NewFileResource(path string) *FileResource

func (*FileResource) Open

func (r *FileResource) Open() (io.Reader, error)

type Group

type Group struct {
	Name string
	Gid  int
}

func LookupGroup

func LookupGroup(name string) (*Group, error)

func LookupGroupById

func LookupGroupById(gid int) (*Group, error)

type HasAddress

type HasAddress interface {
	// FindIPAddress returns the address associated with the implementor.  If there is no address, returns (nil, nil)
	FindIPAddress(context *Context) (*string, error)
}

HasAddress is implemented by elastic/floating IP addresses, to expose the address For example, this is used so that the master SSL certificate can be configured with the dynamically allocated IP

type HasCheckExisting

type HasCheckExisting interface {
	CheckExisting(c *Context) bool
}

type HasDependencies

type HasDependencies interface {
	GetDependencies(tasks map[string]Task) []Task
}

type HasLifecycle

type HasLifecycle interface {
	GetLifecycle() *Lifecycle
}

HasLifecycle indicates that the task has a Lifecycle

type HasName

type HasName interface {
	GetName() *string
	SetName(name string)
}

HasName indicates that the task has a Name

type HasSource

type HasSource interface {
	GetSource() *Source
}

type HasVFSPath

type HasVFSPath interface {
	VFSPath() vfs.Path
}

HasVFSPath is implemented by keystore & other stores that use a VFS path as their backing store

type Keystore

type Keystore interface {
	// FindKeypair finds a cert & private key, returning nil where either is not found
	// (if the certificate is found but not keypair, that is not an error: only the cert will be returned)
	FindKeypair(name string) (*pki.Certificate, *pki.PrivateKey, error)

	CreateKeypair(signer string, name string, template *x509.Certificate, privateKey *pki.PrivateKey) (*pki.Certificate, error)

	// StoreKeypair writes the keypair to the store
	StoreKeypair(id string, cert *pki.Certificate, privateKey *pki.PrivateKey) error

	// MirrorTo will copy secrets to a vfs.Path, which is often easier for a machine to read
	MirrorTo(basedir vfs.Path) error
}

Keystore contains just the functions we need to issue keypairs, not to list / manage them

type KeystoreItem

type KeystoreItem struct {
	Type string
	Name string
	Id   string
	Data []byte
}

type Lifecycle

type Lifecycle string
const (
	// LifecycleSync should do the normal synchronization
	LifecycleSync Lifecycle = "Sync"

	// LifecycleIgnore will skip the task
	LifecycleIgnore Lifecycle = "Ignore"

	// LifecycleWarnIfInsufficientAccess will warn but ignore the task if there is an error during the find
	LifecycleWarnIfInsufficientAccess Lifecycle = "WarnIfInsufficientAccess"

	// LifecycleExistsAndValidates will check that the task exists and is the same
	LifecycleExistsAndValidates Lifecycle = "ExistsAndValidates"

	// LifecycleExistsAndWarnIfChanges will check that the task exists and will warn on changes, but then ignore them
	LifecycleExistsAndWarnIfChanges Lifecycle = "ExistsAndWarnIfChanges"
)

type ModelBuilder

type ModelBuilder interface {
	Build(context *ModelBuilderContext) error
}

ModelBuilder allows for plugins that configure an aspect of the model, based on the configuration

type ModelBuilderContext

type ModelBuilderContext struct {
	Tasks map[string]Task
}

ModelBuilderContext is a context object that holds state we want to pass to ModelBuilder

func (*ModelBuilderContext) AddTask

func (c *ModelBuilderContext) AddTask(task Task)

func (*ModelBuilderContext) EnsureTask

func (c *ModelBuilderContext) EnsureTask(task Task) error

EnsureTask ensures that the specified task is configured. It adds the task if it does not already exist. If it does exist, it verifies that the existing task reflect.DeepEqual the new task, if they are different an error is returned.

type ProducesDeletions

type ProducesDeletions interface {
	FindDeletions(*Context) ([]Deletion, error)
}

type Resource

type Resource interface {
	Open() (io.Reader, error)
}

type ResourceHolder

type ResourceHolder struct {
	Name     string
	Resource Resource
}

ResourceHolder is used in JSON/YAML models; it holds a resource but renders to/from a string After unmarshalling, the resource should be found by Name, and set on Resource

func WrapResource

func WrapResource(r Resource) *ResourceHolder

WrapResource creates a ResourceHolder for the specified resource

func (*ResourceHolder) AsBytes

func (o *ResourceHolder) AsBytes() ([]byte, error)

AsString returns the value of the resource as a byte-slice

func (*ResourceHolder) AsString

func (o *ResourceHolder) AsString() (string, error)

AsString returns the value of the resource as a string

func (*ResourceHolder) Open

func (o *ResourceHolder) Open() (io.Reader, error)

Open implements the Open method of the Resource interface

func (*ResourceHolder) UnmarshalJSON

func (o *ResourceHolder) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the special JSON marshalling for the resource, rendering the name

func (*ResourceHolder) Unwrap

func (o *ResourceHolder) Unwrap() Resource

Unwrap returns the underlying resource

type Secret

type Secret struct {
	Data []byte
}

func CreateSecret

func CreateSecret() (*Secret, error)

func (*Secret) AsString

func (s *Secret) AsString() (string, error)

type SecretStore

type SecretStore interface {
	// Secret returns a secret.  Returns an error if not found
	Secret(id string) (*Secret, error)
	// DeleteSecret deletes the specified secret
	DeleteSecret(item *KeystoreItem) error
	// FindSecret finds a secret, if exists.  Returns nil,nil if not found
	FindSecret(id string) (*Secret, error)
	// GetOrCreateSecret creates or replace a secret
	GetOrCreateSecret(id string, secret *Secret) (current *Secret, created bool, err error)
	// ListSecrets lists the ids of all known secrets
	ListSecrets() ([]string, error)

	// MirrorTo will copy secrets to a vfs.Path, which is often easier for a machine to read
	MirrorTo(basedir vfs.Path) error
}

type Source

type Source struct {
	Parent             *Source
	URL                string
	Hash               *hashing.Hash
	ExtractFromArchive string
}

func (*Source) Key

func (s *Source) Key() string

Builds a unique key for this source

func (*Source) String

func (s *Source) String() string

type StringResource

type StringResource struct {
	// contains filtered or unexported fields
}

func NewStringResource

func NewStringResource(s string) *StringResource

func (*StringResource) MarshalJSON

func (r *StringResource) MarshalJSON() ([]byte, error)

func (*StringResource) Open

func (s *StringResource) Open() (io.Reader, error)

type SubnetInfo

type SubnetInfo struct {
	ID   string
	Zone string
	CIDR string
}

type Target

type Target interface {
	// Lifecycle methods, called by the driver
	Finish(taskMap map[string]Task) error

	// ProcessDeletions returns true if we should delete resources
	// Some providers (e.g. Terraform) actively keep state, and will delete resources automatically
	ProcessDeletions() bool
}

type Task

type Task interface {
	Run(*Context) error
}

type TemplateResource

type TemplateResource interface {
	Resource
	Curry(args []string) TemplateResource
}

type User

type User struct {
	Name    string
	Uid     int
	Gid     int
	Comment string
	Home    string
	Shell   string
}

func LookupUser

func LookupUser(name string) (*User, error)

func LookupUserById

func LookupUserById(uid int) (*User, error)

type VFSCAStore

type VFSCAStore struct {
	// contains filtered or unexported fields
}

func (*VFSCAStore) AddCert

func (c *VFSCAStore) AddCert(id string, cert *pki.Certificate) error

func (*VFSCAStore) AddSSHPublicKey

func (c *VFSCAStore) AddSSHPublicKey(name string, pubkey []byte) error

AddSSHPublicKey stores an SSH public key

func (*VFSCAStore) Cert

func (c *VFSCAStore) Cert(id string, createIfMissing bool) (*pki.Certificate, error)

func (*VFSCAStore) CertificatePool

func (c *VFSCAStore) CertificatePool(id string, createIfMissing bool) (*CertificatePool, error)

func (*VFSCAStore) CreateKeypair

func (c *VFSCAStore) CreateKeypair(signer string, id string, template *x509.Certificate, privateKey *pki.PrivateKey) (*pki.Certificate, error)

func (*VFSCAStore) DeleteSecret

func (c *VFSCAStore) DeleteSecret(item *KeystoreItem) error

func (*VFSCAStore) FindCert

func (c *VFSCAStore) FindCert(id string) (*pki.Certificate, error)

func (*VFSCAStore) FindCertificatePool

func (c *VFSCAStore) FindCertificatePool(id string) (*CertificatePool, error)

func (*VFSCAStore) FindKeypair

func (c *VFSCAStore) FindKeypair(id string) (*pki.Certificate, *pki.PrivateKey, error)

func (*VFSCAStore) FindPrivateKey

func (c *VFSCAStore) FindPrivateKey(id string) (*pki.PrivateKey, error)

func (*VFSCAStore) FindSSHPublicKeys

func (c *VFSCAStore) FindSSHPublicKeys(name string) ([]*KeystoreItem, error)

func (*VFSCAStore) IssueCert

func (c *VFSCAStore) IssueCert(signer string, id string, serial *big.Int, privateKey *pki.PrivateKey, template *x509.Certificate) (*pki.Certificate, error)

func (*VFSCAStore) List

func (c *VFSCAStore) List() ([]*KeystoreItem, error)

func (*VFSCAStore) MirrorTo

func (c *VFSCAStore) MirrorTo(basedir vfs.Path) error

MirrorTo will copy keys to a vfs.Path, which is often easier for a machine to read

func (*VFSCAStore) PrivateKey

func (c *VFSCAStore) PrivateKey(id string, createIfMissing bool) (*pki.PrivateKey, error)

func (*VFSCAStore) StoreKeypair

func (c *VFSCAStore) StoreKeypair(id string, cert *pki.Certificate, privateKey *pki.PrivateKey) error

func (*VFSCAStore) VFSPath

func (s *VFSCAStore) VFSPath() vfs.Path

type VFSResource

type VFSResource struct {
	Path vfs.Path
}

func NewVFSResource

func NewVFSResource(path vfs.Path) *VFSResource

func (*VFSResource) Open

func (r *VFSResource) Open() (io.Reader, error)

type VPCInfo

type VPCInfo struct {
	// CIDR is the IP address range for the VPC
	CIDR string

	// Subnets is a list of subnets that are part of the VPC
	Subnets []*SubnetInfo
}

type Warning

type Warning struct {
	Task    Task
	Message string
}

Warning holds the details of a warning encountered during validation/creation

Jump to

Keyboard shortcuts

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