fi

package
Version: v1.23.2 Latest Latest
Warning

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

Go to latest
Published: May 11, 2022 License: Apache-2.0 Imports: 49 Imported by: 2,456

Documentation

Index

Constants

View Source
const CertificateIDCA = "kubernetes-ca"
View Source
const (
	// SecretNameSSHPrimary is the Name for the primary SSH key
	SecretNameSSHPrimary = "admin"
)

Variables

View Source
var LifecycleNameMap = map[string]Lifecycle{
	"Sync":                     LifecycleSync,
	"Ignore":                   LifecycleIgnore,
	"WarnIfInsufficientAccess": LifecycleWarnIfInsufficientAccess,
	"ExistsAndValidates":       LifecycleExistsAndValidates,
	"ExistsAndWarnIfChanges":   LifecycleExistsAndWarnIfChanges,
}

LifecycleNameMap is used to validate in the UX. When a user provides a lifecycle name it then can be mapped to the actual lifecycle.

Lifecycles are used for ux validation. When validation fails the lifecycle names are printed out.

Functions

func ArrayContains added in v1.16.0

func ArrayContains(array []string, word string) bool

ArrayContains is checking does array contain single word

func Bool

func Bool(v bool) *bool

Bool returns a pointer to a bool

func BoolValue

func BoolValue(v *bool) bool

BoolValue returns the value of bool pointer or false

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 DownloadURL

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

DownloadURL will download the file at the given url and store it as dest. If hash is non-nil, it will also verify that it matches the hash of the downloaded file.

func EnsureFileMode

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

func EnsureFileOwner

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

EnsureFileOwner will set the owner & group for a file. Empty values for owner/group will leave the owner/group unchanged.

func FieldIsImmutable added in v1.10.0

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

func FileModeToString

func FileModeToString(mode os.FileMode) string

func FindPrimary added in v1.10.0

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

FindPrimary returns the primary KeysetItem in the Keyset

func FindPrimaryKeypair added in v1.21.3

func FindPrimaryKeypair(c Keystore, name string) (*pki.Certificate, *pki.PrivateKey, error)

FindPrimaryKeypair is a common implementation of pki.FindPrimaryKeypair.

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 Float32 added in v1.15.1

func Float32(v float32) *float32

Float32 returns a point to a float32

func Float32Value added in v1.15.1

func Float32Value(v *float32) float32

Float32Value returns the value of the float

func Float64 added in v1.15.1

func Float64(v float64) *float64

Float64 returns a point to a float64

func Float64Value added in v1.15.1

func Float64Value(v *float64) float64

Float64Value returns the value of the float

func Int

func Int(v int) *int

func Int32 added in v1.10.0

func Int32(v int32) *int32

func Int32Value added in v1.10.0

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 IntValue

func IntValue(v *int) int

func IsNilOrEmpty

func IsNilOrEmpty(s *string) bool

func KeysetItemIdOlder added in v1.21.3

func KeysetItemIdOlder(a, b string) bool

KeysetItemIdOlder returns whether the KeysetItem Id a is older than b.

func ParseFileMode

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

func PrintCompareWithID added in v1.11.0

func PrintCompareWithID(o interface{}) (string, bool)

func PrintResource added in v1.11.0

func PrintResource(o interface{}) (string, bool)

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 StringSlice added in v1.20.0

func StringSlice(stringSlice []string) []*string

StringSlice is a helper that builds a []*string from a slice of strings

func StringSliceValue added in v1.20.0

func StringSliceValue(stringSlice []*string) []string

StringSliceValue takes a slice of string pointers and returns a slice of strings

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 ToInt64 added in v1.19.0

func ToInt64(s *string) *int64

func ToString added in v1.19.0

func ToString(v *int64) *string

func TypeNameForTask added in v1.10.0

func TypeNameForTask(task interface{}) string

func Uint64Value

func Uint64Value(v *uint64) uint64

func WriteFile

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

WriteFile writes a file to the specified path, setting the mode, owner & group.

Types

type ApiIngressStatus added in v1.21.3

type ApiIngressStatus struct {
	// IP is set for load-balancer ingress points that are IP based
	// (typically GCE or OpenStack load-balancers)
	// +optional
	IP string `json:"ip,omitempty" protobuf:"bytes,1,opt,name=ip"`

	// Hostname is set for load-balancer ingress points that are DNS based
	// (typically AWS load-balancers)
	// +optional
	Hostname string `json:"hostname,omitempty" protobuf:"bytes,2,opt,name=hostname"`
}

ApiIngressStatus represents the status of an ingress point: traffic intended for the service should be sent to an ingress point.

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) AddForTest added in v1.19.0

func (a *AssetStore) AddForTest(id string, path string, content string)

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)

func (*AssetStore) FindMatch added in v1.19.0

func (a *AssetStore) FindMatch(expr *regexp.Regexp) (name string, res Resource, err error)

func (*AssetStore) FindMatches added in v1.19.0

func (a *AssetStore) FindMatches(expr *regexp.Regexp) map[string]Resource

type ByTaskKey added in v1.10.0

type ByTaskKey []*render

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

func (ByTaskKey) Len added in v1.10.0

func (a ByTaskKey) Len() int

func (ByTaskKey) Less added in v1.10.0

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

func (ByTaskKey) Swap added in v1.10.0

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) MarshalJSON added in v1.11.0

func (b *BytesResource) MarshalJSON() ([]byte, error)

MarshalJSON is a custom marshaller so this will be printed as a string (instead of nothing) This is used in tests to verify the expected output.

func (*BytesResource) Open

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

type CAStore

type CAStore interface {
	Keystore

	// ListKeysets will return all the KeySets.
	ListKeysets() (map[string]*Keyset, error)
}

func NewClientsetCAStore added in v1.10.0

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

NewClientsetCAStore is the constructor for ClientsetCAStore

type ClientsetCAStore added in v1.10.0

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

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

func (*ClientsetCAStore) AddSSHPublicKey added in v1.10.0

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

AddSSHPublicKey implements CAStore::AddSSHPublicKey

func (*ClientsetCAStore) DeleteSSHCredential added in v1.10.0

func (c *ClientsetCAStore) DeleteSSHCredential() error

DeleteSSHCredential implements SSHCredentialStore::DeleteSSHCredential

func (*ClientsetCAStore) FindKeyset added in v1.21.3

func (c *ClientsetCAStore) FindKeyset(name string) (*Keyset, error)

FindKeyset implements CAStore::FindKeyset

func (*ClientsetCAStore) FindPrimaryKeypair added in v1.21.3

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

FindPrimaryKeypair implements PKI::FindPrimaryKeypair

func (*ClientsetCAStore) FindSSHPublicKeys added in v1.10.0

func (c *ClientsetCAStore) FindSSHPublicKeys() ([]*kops.SSHCredential, error)

FindSSHPublicKeys implements CAStore::FindSSHPublicKeys

func (*ClientsetCAStore) ListKeysets added in v1.10.0

func (c *ClientsetCAStore) ListKeysets() (map[string]*Keyset, error)

ListKeysets implements CAStore::ListKeysets

func (*ClientsetCAStore) MirrorTo added in v1.10.0

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

func (*ClientsetCAStore) StoreKeyset added in v1.21.3

func (c *ClientsetCAStore) StoreKeyset(name string, keyset *Keyset) error

StoreKeyset implements CAStore::StoreKeyset

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.CloudInstance) error

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

	// DetachInstance causes a cloud instance to no longer be counted against the group's size limits.
	DetachInstance(instance *cloudinstances.CloudInstance) error

	// GetCloudGroups returns a map of cloud instances that back a kops cluster.
	// Detached instances must be returned in the NeedUpdate slice.
	GetCloudGroups(cluster *kops.Cluster, instancegroups []*kops.InstanceGroup, warnUnmatched bool, nodes []v1.Node) (map[string]*cloudinstances.CloudInstanceGroup, error)

	// Region returns the cloud region bound to the cloud instance.
	// If the region concept does not apply, returns "".
	Region() string

	// FindClusterStatus discovers the status of the cluster, by inspecting the cloud objects
	FindClusterStatus(cluster *kops.Cluster) (*kops.ClusterStatus, error)
	GetApiIngressStatus(cluster *kops.Cluster) ([]ApiIngressStatus, 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 added in v1.10.0

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(options RunTasksOptions) error

type Deletion

type Deletion interface {
	Delete(target Target) error
	TaskName() string
	Item() string
}

type DeletionByTaskName added in v1.10.0

type DeletionByTaskName []Deletion

DeletionByTaskName sorts []Deletion by TaskName

func (DeletionByTaskName) Len added in v1.10.0

func (a DeletionByTaskName) Len() int

func (DeletionByTaskName) Less added in v1.10.0

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

func (DeletionByTaskName) Swap added in v1.10.0

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) Changes added in v1.15.1

func (t *DryRunTarget) Changes() (map[string]Task, map[string]Task)

Changes returns tasks which is going to be created or updated

func (*DryRunTarget) Delete

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

func (*DryRunTarget) Deletions added in v1.15.1

func (t *DryRunTarget) Deletions() []string

Deletions returns all task names which is going to be deleted

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 added in v1.10.0

func (t *DryRunTarget) ProcessDeletions() bool

func (*DryRunTarget) Render

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

type ExistsAndWarnIfChangesError added in v1.10.0

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

ExistsAndWarnIfChangesError is the custom error return for fi.LifecycleExistsAndWarnIfChanges. This error is used when an object needs to fail validation, but let the user proceed with a warning.

func NewExistsAndWarnIfChangesError added in v1.10.0

func NewExistsAndWarnIfChangesError(message string) *ExistsAndWarnIfChangesError

NewExistsAndWarnIfChangesError is a builder for ExistsAndWarnIfChangesError.

func (*ExistsAndWarnIfChangesError) Error added in v1.10.0

ExistsAndWarnIfChangesError implementation of the error interface.

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 added in v1.19.0

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

type HasAddress

type HasAddress interface {
	Task
	// IsForAPIServer indicates whether the implementation provides an address that needs to be added to the api-server server certificate.
	IsForAPIServer() bool
	// 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 in order to include relevant dynamically allocated addresses in the api-server's server TLS certificate.

type HasCheckExisting

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

type HasDeletions added in v1.21.0

type HasDeletions interface {
	ModelBuilder
	// FindDeletions finds cloud objects that are owned by the cluster but no longer in the model and creates tasks to delete them.
	// It is not called for the Terraform or Cloudformation targets.
	FindDeletions(context *ModelBuilderContext, cloud Cloud) error
}

HasDeletions is a ModelBuilder that creates tasks to delete cloud objects that no longer exist in the model.

type HasDependencies

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

type HasIsReady added in v1.19.0

type HasIsReady interface {
	IsReady() bool
}

HasIsReady is implemented by Resources that are derived (and thus may not be ready at comparison time)

type HasLifecycle added in v1.10.0

type HasLifecycle interface {
	GetLifecycle() Lifecycle
	// SetLifecycle is used to override a tasks lifecycle. If a lifecycle override exists for a specific task name, then the
	// lifecycle is modified.
	SetLifecycle(lifecycle Lifecycle)
}

HasLifecycle indicates that the task has a Lifecycle

type HasName

type HasName interface {
	GetName() *string
}

HasName indicates that the task has a Name.

type HasSource

type HasSource interface {
	GetSource() *Source
}

type HasVFSPath added in v1.10.0

type HasVFSPath interface {
	VFSPath() vfs.Path
}

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

type Keyset added in v1.21.3

type Keyset struct {
	// LegacyFormat instructs a keypair task to convert a Legacy Keyset to the new Keyset API format.
	LegacyFormat bool
	Items        map[string]*KeysetItem
	Primary      *KeysetItem
}

Keyset is a parsed api.Keyset.

func NewKeyset added in v1.21.3

func NewKeyset(cert *pki.Certificate, privateKey *pki.PrivateKey) (*Keyset, error)

NewKeyset creates a Keyset.

func (*Keyset) AddItem added in v1.21.3

func (k *Keyset) AddItem(cert *pki.Certificate, privateKey *pki.PrivateKey, primary bool) (item *KeysetItem, err error)

AddItem adds an item to the keyset

func (*Keyset) ToAPIObject added in v1.21.3

func (k *Keyset) ToAPIObject(name string) (*kops.Keyset, error)

func (*Keyset) ToCertificateBytes added in v1.21.3

func (k *Keyset) ToCertificateBytes() ([]byte, error)

func (*Keyset) ToPublicKeys added in v1.21.3

func (k *Keyset) ToPublicKeys() (string, error)

type KeysetItem added in v1.21.3

type KeysetItem struct {
	// Id is the identifier of this keypair.
	Id string
	// DistrustTimestamp is RFC 3339 date and time at which this keypair was distrusted.
	// If not set, keypair is trusted.
	DistrustTimestamp *time.Time
	// Certificate is the keypair's certificate.
	Certificate *pki.Certificate
	// PrivateKey is a reference to the keypair's private key.
	PrivateKey *pki.PrivateKey
}

KeysetItem is a certificate/key pair in a Keyset.

type Keystore added in v1.10.0

type Keystore interface {
	pki.Keystore

	// FindKeyset finds a Keyset.
	FindKeyset(name string) (*Keyset, error)

	// StoreKeyset writes a Keyset to the store.
	StoreKeyset(name string, keyset *Keyset) 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 Lifecycle added in v1.10.0

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 added in v1.10.0

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

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

type ModelBuilderContext added in v1.10.0

type ModelBuilderContext struct {
	Tasks              map[string]Task
	LifecycleOverrides map[string]Lifecycle
}

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

func (*ModelBuilderContext) AddTask added in v1.10.0

func (c *ModelBuilderContext) AddTask(task Task)

func (*ModelBuilderContext) EnsureTask added in v1.10.0

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 NotADependency added in v1.19.0

type NotADependency struct{}

NotADependency is a marker type to prevent FindTaskDependencies() from considering it a potential dependency.

func (NotADependency) GetDependencies added in v1.19.0

func (NotADependency) GetDependencies(map[string]Task) []Task

type ProducesDeletions

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

type Resource

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

type RunTasksOptions added in v1.10.0

type RunTasksOptions struct {
	MaxTaskDuration         time.Duration
	WaitAfterAllTasksFailed time.Duration
}

func (*RunTasksOptions) InitDefaults added in v1.10.0

func (o *RunTasksOptions) InitDefaults()

type SSHCredentialStore added in v1.10.0

type SSHCredentialStore interface {
	// DeleteSSHCredential deletes the specified SSH credential.
	DeleteSSHCredential() error

	// AddSSHPublicKey adds an SSH public key.
	AddSSHPublicKey(data []byte) error

	// FindSSHPublicKeys retrieves the SSH public keys.
	FindSSHPublicKeys() ([]*kops.SSHCredential, error)
}

SSHCredentialStore holds SSHCredential objects

func NewClientsetSSHCredentialStore added in v1.10.0

func NewClientsetSSHCredentialStore(cluster *kops.Cluster, clientset kopsinternalversion.KopsInterface, namespace string) SSHCredentialStore

NewClientsetSSHCredentialStore creates an SSHCredentialStore backed by an API client

func NewVFSSSHCredentialStore added in v1.10.0

func NewVFSSSHCredentialStore(cluster *kops.Cluster, basedir vfs.Path) SSHCredentialStore

NewVFSSSHCredentialStore creates a SSHCredentialStore backed by VFS

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(id string) error
	// FindSecret finds a secret, if exists.  Returns nil,nil if not found
	FindSecret(id string) (*Secret, error)
	// GetOrCreateSecret creates a secret
	GetOrCreateSecret(id string, secret *Secret) (current *Secret, created bool, err error)
	// ReplaceSecret will forcefully update an existing secret if it exists
	ReplaceSecret(id string, secret *Secret) (current *Secret, 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

Key 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 added in v1.10.0

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

func (*StringResource) Open

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

type SubnetInfo added in v1.10.0

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
}

func FindDependencies added in v1.20.0

func FindDependencies(tasks map[string]Task, o interface{}) []Task

FindDependencies will try to infer dependencies for an arbitrary object

type TaskDependentResource added in v1.19.0

type TaskDependentResource struct {
	Resource Resource `json:"resource,omitempty"`
	Task     Task     `json:"task,omitempty"`
}

func (*TaskDependentResource) GetDependencies added in v1.19.0

func (r *TaskDependentResource) GetDependencies(tasks map[string]Task) []Task

func (*TaskDependentResource) IsReady added in v1.19.0

func (r *TaskDependentResource) IsReady() bool

IsReady implements HasIsReady::IsReady

func (*TaskDependentResource) Open added in v1.19.0

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

type TaskPreRun added in v1.18.3

type TaskPreRun interface {
	// PreRun will be run for all TaskPreRuns, before any Run functions are invoked.
	PreRun(*Context) error
}

TaskPreRun is implemented by tasks that perform some initial validation.

type TemplateResource

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

type TryAgainLaterError added in v1.19.0

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

TryAgainLaterError is the custom used when a task needs to fail validation with a message and try again later

func NewTryAgainLaterError added in v1.19.0

func NewTryAgainLaterError(message string) *TryAgainLaterError

NewTryAgainLaterError is a builder for TryAgainLaterError.

func (*TryAgainLaterError) Error added in v1.19.0

func (e *TryAgainLaterError) Error() string

TryAgainLaterError implementation of the error interface.

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 added in v1.19.0

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

type VFSCAStore

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

func NewVFSCAStore

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

func (*VFSCAStore) AddSSHPublicKey

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

AddSSHPublicKey stores an SSH public key

func (*VFSCAStore) DeleteSSHCredential added in v1.10.0

func (c *VFSCAStore) DeleteSSHCredential() error

func (*VFSCAStore) FindKeyset added in v1.21.3

func (c *VFSCAStore) FindKeyset(id string) (*Keyset, error)

func (*VFSCAStore) FindPrimaryKeypair added in v1.21.3

func (c *VFSCAStore) FindPrimaryKeypair(name string) (*pki.Certificate, *pki.PrivateKey, error)

func (*VFSCAStore) FindSSHPublicKeys

func (c *VFSCAStore) FindSSHPublicKeys() ([]*kops.SSHCredential, error)

func (*VFSCAStore) ListKeysets added in v1.10.0

func (c *VFSCAStore) ListKeysets() (map[string]*Keyset, error)

ListKeysets implements CAStore::ListKeysets

func (*VFSCAStore) MirrorTo added in v1.10.0

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) StoreKeyset added in v1.21.3

func (c *VFSCAStore) StoreKeyset(name string, keyset *Keyset) error

func (*VFSCAStore) VFSPath

func (c *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 added in v1.10.0

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 added in v1.10.0

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