cluster

package
v0.15.1 Latest Latest
Warning

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

Go to latest
Published: Apr 4, 2023 License: Apache-2.0 Imports: 25 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildMapForWorkerNodeGroupsByName added in v0.7.1

func BuildMapForWorkerNodeGroupsByName(workerNodeGroups []eksav1alpha1.WorkerNodeGroupConfiguration) map[string]eksav1alpha1.WorkerNodeGroupConfiguration

func GetAWSIamConfigForCluster added in v0.12.0

func GetAWSIamConfigForCluster(ctx context.Context, cluster *v1alpha1.Cluster, fetch AWSIamConfigFetch) (*v1alpha1.AWSIamConfig, error)

func GetBundlesForCluster added in v0.6.0

func GetBundlesForCluster(ctx context.Context, cluster *v1alpha1.Cluster, fetch BundlesFetch) (*v1alpha1release.Bundles, error)

func GetEksdReleaseForCluster added in v0.8.0

func GetEksdReleaseForCluster(ctx context.Context, cluster *v1alpha1.Cluster, bundles *v1alpha1release.Bundles, fetch EksdReleaseFetch) (*eksdv1alpha1.Release, error)

func GetFluxConfigForCluster added in v0.9.0

func GetFluxConfigForCluster(ctx context.Context, cluster *v1alpha1.Cluster, fetch FluxConfigFetch) (*v1alpha1.FluxConfig, error)

func GetGitOpsForCluster added in v0.6.1

func GetGitOpsForCluster(ctx context.Context, cluster *v1alpha1.Cluster, fetch GitOpsFetch) (*v1alpha1.GitOpsConfig, error)

func GetOIDCForCluster added in v0.8.0

func GetOIDCForCluster(ctx context.Context, cluster *v1alpha1.Cluster, fetch OIDCFetch) (*v1alpha1.OIDCConfig, error)

func GetVersionsBundle added in v0.8.0

func GetVersionsBundle(clusterConfig *v1alpha1.Cluster, bundles *v1alpha1release.Bundles) (*v1alpha1release.VersionsBundle, error)

func LoadManagement added in v0.6.0

func LoadManagement(kubeconfig string) (*types.Cluster, error)

func NodeGroupsToDelete added in v0.7.1

func NodeGroupsToDelete(currentSpec, newSpec *Spec) []eksav1alpha1.WorkerNodeGroupConfiguration

func SetConfigDefaults added in v0.8.0

func SetConfigDefaults(c *Config) error

func SetDefaultFluxConfigPath added in v0.9.0

func SetDefaultFluxConfigPath(c *Config) error

func SetDefaultFluxGitHubConfigPath added in v0.8.0

func SetDefaultFluxGitHubConfigPath(c *Config) error

func SetSnowDatacenterIndentityRefDefault added in v0.12.0

func SetSnowDatacenterIndentityRefDefault(s *anywherev1.SnowDatacenterConfig)

SetSnowDatacenterIndentityRefDefault sets a default secret as the identity reference The secret will need to be created by the CLI flow as it's not provided by the user This only runs in CLI. snowDatacenterConfig.SetDefaults() will run in both CLI and webhook.

func SetSnowMachineConfigsAnnotations added in v0.9.0

func SetSnowMachineConfigsAnnotations(c *Config) error

func ValidateConfig added in v0.8.0

func ValidateConfig(c *Config) error

func ValidateSnowMachineRefExists added in v0.13.0

func ValidateSnowMachineRefExists(c *Config) error

ValidateSnowMachineRefExists checks the cluster spec machine refs and makes sure the snowmachineconfig object exists for each ref with kind == snowmachineconfig.

Types

type APIObject added in v0.8.0

type APIObject interface {
	runtime.Object
	GetName() string
}

APIObject represents a kubernetes API object.

type APIObjectGenerator added in v0.8.0

type APIObjectGenerator func() APIObject

APIObjectGenerator returns an implementor of the APIObject interface.

type AWSIamConfigFetch added in v0.12.0

type AWSIamConfigFetch func(ctx context.Context, name, namespace string) (*v1alpha1.AWSIamConfig, error)

type BundlesFetch added in v0.6.0

type BundlesFetch func(ctx context.Context, name, namespace string) (*v1alpha1release.Bundles, error)

type Client added in v0.9.2

type Client interface {
	Get(ctx context.Context, name, namespace string, obj kubernetes.Object) error
}

Client is a kubernetes API client.

type Config added in v0.8.0

type Config struct {
	Cluster                   *anywherev1.Cluster
	CloudStackDatacenter      *anywherev1.CloudStackDatacenterConfig
	VSphereDatacenter         *anywherev1.VSphereDatacenterConfig
	DockerDatacenter          *anywherev1.DockerDatacenterConfig
	SnowDatacenter            *anywherev1.SnowDatacenterConfig
	NutanixDatacenter         *anywherev1.NutanixDatacenterConfig
	TinkerbellDatacenter      *anywherev1.TinkerbellDatacenterConfig
	VSphereMachineConfigs     map[string]*anywherev1.VSphereMachineConfig
	CloudStackMachineConfigs  map[string]*anywherev1.CloudStackMachineConfig
	SnowMachineConfigs        map[string]*anywherev1.SnowMachineConfig
	NutanixMachineConfigs     map[string]*anywherev1.NutanixMachineConfig
	TinkerbellMachineConfigs  map[string]*anywherev1.TinkerbellMachineConfig
	TinkerbellTemplateConfigs map[string]*anywherev1.TinkerbellTemplateConfig
	OIDCConfigs               map[string]*anywherev1.OIDCConfig
	AWSIAMConfigs             map[string]*anywherev1.AWSIamConfig
	GitOpsConfig              *anywherev1.GitOpsConfig
	FluxConfig                *anywherev1.FluxConfig
	SnowCredentialsSecret     *v1.Secret
	SnowIPPools               map[string]*anywherev1.SnowIPPool
}

func ParseConfig added in v0.8.0

func ParseConfig(yamlManifest []byte) (*Config, error)

ParseConfig reads yaml manifest with at least one Cluster object and generates the corresponding Config using the default package config manager.

func ParseConfigFromFile added in v0.8.0

func ParseConfigFromFile(path string) (*Config, error)

ParseConfig reads yaml file with at least one Cluster object and generates the corresponding Config using the default package config manager.

func (*Config) AWSIamConfig added in v0.8.0

func (c *Config) AWSIamConfig(name string) *anywherev1.AWSIamConfig

func (*Config) ChildObjects added in v0.9.2

func (c *Config) ChildObjects() []kubernetes.Object

ChildObjects returns all API objects in Config except the Cluster.

func (*Config) CloudStackMachineConfig added in v0.9.0

func (c *Config) CloudStackMachineConfig(name string) *anywherev1.CloudStackMachineConfig

func (*Config) DeepCopy added in v0.8.0

func (c *Config) DeepCopy() *Config

func (*Config) NutanixMachineConfig added in v0.12.0

func (c *Config) NutanixMachineConfig(name string) *anywherev1.NutanixMachineConfig

func (*Config) OIDCConfig added in v0.8.0

func (c *Config) OIDCConfig(name string) *anywherev1.OIDCConfig

func (*Config) SnowIPPool added in v0.14.0

func (c *Config) SnowIPPool(name string) *anywherev1.SnowIPPool

SnowIPPool returns a SnowIPPool based on a name.

func (*Config) SnowMachineConfig added in v0.8.0

func (c *Config) SnowMachineConfig(name string) *anywherev1.SnowMachineConfig

func (*Config) VsphereMachineConfig added in v0.8.0

func (c *Config) VsphereMachineConfig(name string) *anywherev1.VSphereMachineConfig

type ConfigClientBuilder added in v0.9.2

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

ConfigClientBuilder allows to register processors to build a Config using a cluster client, retrieving the api objects from the API server.

func NewConfigClientBuilder added in v0.9.2

func NewConfigClientBuilder() *ConfigClientBuilder

NewConfigClientBuilder builds a new ConfigClientBuilder with no processors registered.

func NewDefaultConfigClientBuilder added in v0.9.2

func NewDefaultConfigClientBuilder() *ConfigClientBuilder

NewDefaultConfigClientBuilder returns a ConfigClientBuilder with the default processors to build a Config.

func (*ConfigClientBuilder) Build added in v0.9.2

func (b *ConfigClientBuilder) Build(ctx context.Context, client Client, cluster *anywherev1.Cluster) (*Config, error)

Build constructs a Config for a cluster using the registered processors.

func (*ConfigClientBuilder) Register added in v0.9.2

Register stores processors to be used during Build.

type ConfigClientProcessor added in v0.9.2

type ConfigClientProcessor func(ctx context.Context, client Client, c *Config) error

ConfigClientProcessor updates a Config retrieving objects from the API server through a client.

type ConfigManager added in v0.8.0

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

ConfigManager allows to parse from yaml, set defaults and validate a Cluster struct It allows to dynamically register configuration for all those operations.

func NewConfigManager added in v0.8.0

func NewConfigManager() *ConfigManager

NewConfigManager builds a ConfigManager with empty configuration.

func NewDefaultConfigManager added in v0.9.2

func NewDefaultConfigManager() (*ConfigManager, error)

func (*ConfigManager) Parse added in v0.8.0

func (c *ConfigManager) Parse(yamlManifest []byte) (*Config, error)

Parse reads yaml manifest with at least one cluster object and generates the corresponding Config.

func (*ConfigManager) Register added in v0.8.0

func (c *ConfigManager) Register(entries ...*ConfigManagerEntry) error

Register records the configuration defined in a ConfigManagerEntry into the ConfigManager This is equivalent to the individual register methods.

func (*ConfigManager) RegisterDefaulters added in v0.8.0

func (c *ConfigManager) RegisterDefaulters(defaulters ...Defaulter)

RegisterDefaulters records defaults for a Config struct.

func (*ConfigManager) RegisterMapping added in v0.8.0

func (c *ConfigManager) RegisterMapping(kind string, generator APIObjectGenerator) error

RegisterMapping records the mapping between a kubernetes Kind and an API concrete type.

func (*ConfigManager) RegisterProcessors added in v0.8.0

func (c *ConfigManager) RegisterProcessors(processors ...ParsedProcessor)

RegisterProcessors records setters to fill the Config struct from the parsed API objects.

func (*ConfigManager) RegisterValidations added in v0.8.0

func (c *ConfigManager) RegisterValidations(validations ...Validation)

RegisterValidations records validations for a Config struct.

func (*ConfigManager) SetDefaults added in v0.8.0

func (c *ConfigManager) SetDefaults(config *Config) error

Parse set the registered defaults in a Config struct.

func (*ConfigManager) Validate added in v0.8.0

func (c *ConfigManager) Validate(config *Config) error

Validate performs the registered validations in a Config struct.

type ConfigManagerEntry added in v0.8.0

type ConfigManagerEntry struct {
	APIObjectMapping map[string]APIObjectGenerator
	Processors       []ParsedProcessor
	Validations      []Validation
	Defaulters       []Defaulter
}

ConfigManagerEntry allows to declare the necessary configuration to parse from yaml, set defaults and validate a Cluster struct for one or more types. It is semantically equivalent to use the individual register methods and its only purpose is convenience.

func NewConfigManagerEntry added in v0.8.0

func NewConfigManagerEntry() *ConfigManagerEntry

NewConfigManagerEntry builds a ConfigManagerEntry with empty configuration.

func (*ConfigManagerEntry) Merge added in v0.8.0

func (c *ConfigManagerEntry) Merge(entries ...*ConfigManagerEntry) error

Merge combines the configuration declared in multiple ConfigManagerEntry.

func (*ConfigManagerEntry) RegisterDefaulters added in v0.8.0

func (c *ConfigManagerEntry) RegisterDefaulters(defaulters ...Defaulter)

RegisterDefaulters records defaults for a Config struct.

func (*ConfigManagerEntry) RegisterMapping added in v0.8.0

func (c *ConfigManagerEntry) RegisterMapping(kind string, generator APIObjectGenerator) error

RegisterMapping records the mapping between a kubernetes Kind and an API concrete type.

func (*ConfigManagerEntry) RegisterProcessors added in v0.8.0

func (c *ConfigManagerEntry) RegisterProcessors(processors ...ParsedProcessor)

RegisterProcessors records setters to fill the Config struct from the parsed API objects.

func (*ConfigManagerEntry) RegisterValidations added in v0.8.0

func (c *ConfigManagerEntry) RegisterValidations(validations ...Validation)

RegisterValidations records validations for a Config struct.

type Defaulter added in v0.8.0

type Defaulter func(*Config) error

Defaulter sets defaults in a Config object.

func BundlesRefDefaulter added in v0.9.2

func BundlesRefDefaulter() Defaulter

type EKSD added in v0.15.0

type EKSD struct {
	// Channel is the minor Kubernetes version for the eks-d release (eg. "1.23", "1.24", etc.)
	Channel string
	// Number is the monotonically increasing number that distinguishes the different eks-d releases
	// for the same Kubernetes minor version (channel).
	Number int
}

EKSD represents an eks-d release.

type EksdReleaseFetch added in v0.8.0

type EksdReleaseFetch func(ctx context.Context, name, namespace string) (*eksdv1alpha1.Release, error)

type FileSpecBuilder added in v0.15.0

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

FileSpecBuilder allows to build Spec by reading from files.

func NewFileSpecBuilder added in v0.15.0

func NewFileSpecBuilder(reader manifests.FileReader, cliVersion version.Info, opts ...FileSpecBuilderOpt) FileSpecBuilder

NewFileSpecBuilder builds a new FileSpecBuilder. cliVersion is used to chose the right Bundles from the the Release manifest.

func (FileSpecBuilder) Build added in v0.15.0

func (b FileSpecBuilder) Build(clusterConfigURL string) (*Spec, error)

Build constructs a new Spec by reading the cluster config in yaml from a file and Releases, Bundles and EKS-D manifests from the configured URLs.

type FileSpecBuilderOpt added in v0.15.0

type FileSpecBuilderOpt func(*FileSpecBuilder)

FileSpecBuilderOpt allows to configure FileSpecBuilder.

func WithOverrideBundlesManifest added in v0.6.0

func WithOverrideBundlesManifest(url string) FileSpecBuilderOpt

WithOverrideBundlesManifest configures the URL to read the Bundles manifest. This overrides the Bundles declared in the Releases so reading the Releases manifest is skipped.

func WithReleasesManifest

func WithReleasesManifest(url string) FileSpecBuilderOpt

WithReleasesManifest configures the URL to read the Releases manifest.

type FluxConfigFetch added in v0.9.0

type FluxConfigFetch func(ctx context.Context, name, namespace string) (*v1alpha1.FluxConfig, error)

type GitOpsFetch added in v0.6.1

type GitOpsFetch func(ctx context.Context, name, namespace string) (*v1alpha1.GitOpsConfig, error)

type KubeDistro

type KubeDistro struct {
	EKSD                EKSD
	Kubernetes          VersionedRepository
	CoreDNS             VersionedRepository
	Etcd                VersionedRepository
	NodeDriverRegistrar v1alpha1.Image
	LivenessProbe       v1alpha1.Image
	ExternalAttacher    v1alpha1.Image
	ExternalProvisioner v1alpha1.Image
	Pause               v1alpha1.Image
	EtcdImage           v1alpha1.Image
	EtcdVersion         string
	AwsIamAuthImage     v1alpha1.Image
	KubeProxy           v1alpha1.Image
}

type OIDCFetch added in v0.8.0

type OIDCFetch func(ctx context.Context, name, namespace string) (*v1alpha1.OIDCConfig, error)

type ObjectLookup added in v0.8.0

type ObjectLookup map[string]APIObject

func (ObjectLookup) GetFromRef added in v0.8.0

func (o ObjectLookup) GetFromRef(apiVersion string, ref anywherev1.Ref) APIObject

GetFromRef searches in a ObjectLookup for an APIObject referenced by a anywherev1.Ref.

type ParsedProcessor added in v0.8.0

type ParsedProcessor func(*Config, ObjectLookup)

ParsedProcessor fills the Config struct from the parsed API objects in ObjectLookup.

type Spec

type Spec struct {
	*Config
	Bundles        *v1alpha1.Bundles
	VersionsBundle *VersionsBundle

	OIDCConfig        *eksav1alpha1.OIDCConfig
	AWSIamConfig      *eksav1alpha1.AWSIamConfig
	ManagementCluster *types.Cluster // TODO(g-gaston): cleanup, this doesn't belong here
	// contains filtered or unexported fields
}

func BuildSpec added in v0.9.2

func BuildSpec(ctx context.Context, client Client, cluster *v1alpha1.Cluster) (*Spec, error)

BuildSpec constructs a cluster.Spec for an eks-a cluster by retrieving all necessary objects from the cluster using a kubernetes client.

func BuildSpecForCluster added in v0.6.0

func BuildSpecForCluster(ctx context.Context, cluster *v1alpha1.Cluster, bundlesFetch BundlesFetch, eksdReleaseFetch EksdReleaseFetch, gitOpsFetch GitOpsFetch, fluxConfigFetch FluxConfigFetch, oidcFetch OIDCFetch, awsIamConfigFetch AWSIamConfigFetch) (*Spec, error)

BuildSpecForCluster constructs a cluster.Spec for an eks-a cluster by retrieving all necessary objects using fetch methods This is deprecated in favour of BuildSpec.

func BuildSpecFromConfig added in v0.14.0

func BuildSpecFromConfig(ctx context.Context, client Client, config *Config) (*Spec, error)

BuildSpecFromConfig constructs a cluster.Spec for an eks-a cluster config by retrieving all dependencies objects from the cluster using a kubernetes client.

func NewSpec

func NewSpec(config *Config, bundles *v1alpha1.Bundles, eksdRelease *eksdv1alpha1.Release) (*Spec, error)

NewSpec builds a new Spec.

func (*Spec) DeepCopy added in v0.6.0

func (s *Spec) DeepCopy() *Spec

func (*Spec) KubeDistroImages added in v0.6.0

func (s *Spec) KubeDistroImages() []v1alpha1.Image

type Validation added in v0.8.0

type Validation func(*Config) error

Validation performs a validation over the Config object.

type VersionedRepository

type VersionedRepository struct {
	Repository, Tag string
}

type VersionsBundle

type VersionsBundle struct {
	*v1alpha1.VersionsBundle
	KubeDistro *KubeDistro
}

func (*VersionsBundle) Images added in v0.6.0

func (vb *VersionsBundle) Images() []v1alpha1.Image

func (*VersionsBundle) KubeDistroImages added in v0.7.0

func (vb *VersionsBundle) KubeDistroImages() []v1alpha1.Image

func (*VersionsBundle) Ovas added in v0.6.0

func (vb *VersionsBundle) Ovas() []v1alpha1.Archive

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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