cluster

package
v0.14.2 Latest Latest
Warning

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

Go to latest
Published: Feb 16, 2023 License: Apache-2.0 Imports: 30 Imported by: 1

Documentation

Index

Constants

View Source
const (
	FluxDefaultNamespace = "flux-system"
	FluxDefaultBranch    = "main"
)

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 EksdReleaseFetch added in v0.8.0

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

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 {
	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
}

type Manifest

type Manifest struct {
	Filename string
	Content  []byte
}

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
	OIDCConfig   *eksav1alpha1.OIDCConfig
	AWSIamConfig *eksav1alpha1.AWSIamConfig

	VersionsBundle *VersionsBundle

	Bundles                   *v1alpha1.Bundles
	ManagementCluster         *types.Cluster
	TinkerbellTemplateConfigs map[string]*eksav1alpha1.TinkerbellTemplateConfig
	// 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)

BuildSpec 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 BuildSpecFromBundles

func BuildSpecFromBundles(cluster *eksav1alpha1.Cluster, bundlesManifest *v1alpha1.Bundles, opts ...SpecOpt) (*Spec, error)

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(opts ...SpecOpt) *Spec

func NewSpecFromClusterConfig added in v0.6.1

func NewSpecFromClusterConfig(clusterConfigPath string, cliVersion version.Info, opts ...SpecOpt) (*Spec, error)

func (*Spec) DeepCopy added in v0.6.0

func (s *Spec) DeepCopy() *Spec

func (*Spec) GetBundles added in v0.6.0

func (s *Spec) GetBundles(cliVersion version.Info) (*v1alpha1.Bundles, error)

func (*Spec) KubeDistroImages added in v0.6.0

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

func (*Spec) LoadManifest

func (s *Spec) LoadManifest(manifest v1alpha1.Manifest) (*Manifest, error)

type SpecOpt

type SpecOpt func(*Spec)

func WithAWSIamConfig added in v0.12.0

func WithAWSIamConfig(awsIamConfig *eksav1alpha1.AWSIamConfig) SpecOpt

func WithEksdRelease added in v0.8.0

func WithEksdRelease(release *eksdv1alpha1.Release) SpecOpt

func WithEmbedFS

func WithEmbedFS(embedFS embed.FS) SpecOpt

func WithFluxConfig added in v0.9.0

func WithFluxConfig(fluxConfig *eksav1alpha1.FluxConfig) SpecOpt

func WithGitOpsConfig added in v0.6.1

func WithGitOpsConfig(gitOpsConfig *eksav1alpha1.GitOpsConfig) SpecOpt

func WithManagementCluster added in v0.6.0

func WithManagementCluster(cluster *types.Cluster) SpecOpt

func WithOIDCConfig added in v0.8.0

func WithOIDCConfig(oidcConfig *eksav1alpha1.OIDCConfig) SpecOpt

func WithOverrideBundlesManifest added in v0.6.0

func WithOverrideBundlesManifest(fileURL string) SpecOpt

func WithReleasesManifest

func WithReleasesManifest(manifestURL string) SpecOpt

func WithUserAgent added in v0.6.1

func WithUserAgent(userAgent string) SpecOpt

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