Documentation
¶
Index ¶
- func ChangeDiff(...) *types.ChangeDiff
- type FileGenerator
- func (g *FileGenerator) Init(writer filewriter.FileWriter, eksaSystemDir, fluxSystemDir string) error
- func (g *FileGenerator) WriteClusterConfig(clusterSpec *cluster.Spec, datacenterConfig providers.DatacenterConfig, ...) error
- func (g *FileGenerator) WriteEksaFiles(clusterSpec *cluster.Spec, datacenterConfig providers.DatacenterConfig, ...) error
- func (g *FileGenerator) WriteEksaKustomization() error
- func (g *FileGenerator) WriteFluxKustomization(managementComponents *cluster.ManagementComponents, clusterSpec *cluster.Spec) error
- func (g *FileGenerator) WriteFluxSync() error
- func (g *FileGenerator) WriteFluxSystemFiles(managementComponents *cluster.ManagementComponents, clusterSpec *cluster.Spec) error
- type Flux
- func (f *Flux) Bootstrap(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) error
- func (f *Flux) BootstrapGit(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) error
- func (f *Flux) BootstrapGithub(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) error
- func (f *Flux) CleanupGitRepo(ctx context.Context, clusterSpec *cluster.Spec) error
- func (f *Flux) ForceReconcileGitRepo(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) error
- func (f *Flux) Install(ctx context.Context, cluster *types.Cluster, ...) error
- func (f *Flux) InstallGitOps(ctx context.Context, cluster *types.Cluster, ...) error
- func (f *Flux) PauseClusterResourcesReconcile(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec, ...) error
- func (f *Flux) ResumeClusterResourcesReconcile(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec, ...) error
- func (f *Flux) Uninstall(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) error
- func (f *Flux) UpdateGitEksaSpec(ctx context.Context, clusterSpec *cluster.Spec, ...) error
- func (f *Flux) Upgrade(ctx context.Context, managementCluster *types.Cluster, ...) (*types.ChangeDiff, error)
- func (f *Flux) Validations(ctx context.Context, clusterSpec *cluster.Spec) []validations.Validation
- type FluxClient
- type GitClient
- type GitOpsFluxClient
- type KubeClient
- type Templater
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ChangeDiff ¶ added in v0.19.0
func ChangeDiff(currentManagementComponents, newManagementComponents *cluster.ManagementComponents, currentSpec, newSpec *cluster.Spec) *types.ChangeDiff
ChangeDiff generates a version change diff for the Flux components.
Types ¶
type FileGenerator ¶
type FileGenerator struct {
// contains filtered or unexported fields
}
func NewFileGenerator ¶
func NewFileGenerator() *FileGenerator
func NewFileGeneratorWithWriterTemplater ¶
func NewFileGeneratorWithWriterTemplater(fluxWriter, eksaWriter filewriter.FileWriter, fluxTemplater, eksaTemplater Templater) *FileGenerator
NewFileGeneratorWithWriterTemplater takes flux and eksa writer and templater interface to build the generator. This is only for testing.
func (*FileGenerator) Init ¶
func (g *FileGenerator) Init(writer filewriter.FileWriter, eksaSystemDir, fluxSystemDir string) error
func (*FileGenerator) WriteClusterConfig ¶
func (g *FileGenerator) WriteClusterConfig(clusterSpec *cluster.Spec, datacenterConfig providers.DatacenterConfig, machineConfigs []providers.MachineConfig) error
func (*FileGenerator) WriteEksaFiles ¶
func (g *FileGenerator) WriteEksaFiles(clusterSpec *cluster.Spec, datacenterConfig providers.DatacenterConfig, machineConfigs []providers.MachineConfig) error
func (*FileGenerator) WriteEksaKustomization ¶
func (g *FileGenerator) WriteEksaKustomization() error
func (*FileGenerator) WriteFluxKustomization ¶
func (g *FileGenerator) WriteFluxKustomization(managementComponents *cluster.ManagementComponents, clusterSpec *cluster.Spec) error
WriteFluxKustomization writes the flux-system kustomization file into the flux system git directory.
func (*FileGenerator) WriteFluxSync ¶
func (g *FileGenerator) WriteFluxSync() error
func (*FileGenerator) WriteFluxSystemFiles ¶
func (g *FileGenerator) WriteFluxSystemFiles(managementComponents *cluster.ManagementComponents, clusterSpec *cluster.Spec) error
WriteFluxSystemFiles writes the flux-system files into the flux system git directory.
type Flux ¶
type Flux struct {
// contains filtered or unexported fields
}
func NewFlux ¶
func NewFlux(fluxClient FluxClient, kubeClient KubeClient, gitTools *gitFactory.GitTools, cliConfig *config.CliConfig) *Flux
func NewFluxFromGitOpsFluxClient ¶
func NewFluxFromGitOpsFluxClient(fluxClient GitOpsFluxClient, gitClient GitClient, writer filewriter.FileWriter, cliConfig *config.CliConfig) *Flux
func (*Flux) BootstrapGit ¶
func (*Flux) BootstrapGithub ¶
func (*Flux) CleanupGitRepo ¶
func (*Flux) ForceReconcileGitRepo ¶
func (*Flux) Install ¶
func (f *Flux) Install(ctx context.Context, cluster *types.Cluster, managementComponents *cluster.ManagementComponents, oldSpec, newSpec *cluster.Spec) error
Install installs the Flux components.
func (*Flux) InstallGitOps ¶
func (f *Flux) InstallGitOps(ctx context.Context, cluster *types.Cluster, managementComponents *cluster.ManagementComponents, clusterSpec *cluster.Spec, datacenterConfig providers.DatacenterConfig, machineConfigs []providers.MachineConfig) error
InstallGitOps installs the GitOps components for the cluster.
func (*Flux) PauseClusterResourcesReconcile ¶ added in v0.11.2
func (*Flux) ResumeClusterResourcesReconcile ¶ added in v0.11.2
func (*Flux) UpdateGitEksaSpec ¶
func (f *Flux) UpdateGitEksaSpec(ctx context.Context, clusterSpec *cluster.Spec, datacenterConfig providers.DatacenterConfig, machineConfigs []providers.MachineConfig) error
func (*Flux) Upgrade ¶
func (f *Flux) Upgrade(ctx context.Context, managementCluster *types.Cluster, currentManagementComponents, newManagementComponents *cluster.ManagementComponents, currentSpec *cluster.Spec, newSpec *cluster.Spec) (*types.ChangeDiff, error)
Upgrade checks whether upgrading Flux components is necessary and, if so, upgrades to them to the new versions.
func (*Flux) Validations ¶
func (f *Flux) Validations(ctx context.Context, clusterSpec *cluster.Spec) []validations.Validation
type FluxClient ¶
type FluxClient interface {
BootstrapGithub(ctx context.Context, cluster *types.Cluster, fluxConfig *v1alpha1.FluxConfig) error
BootstrapGit(ctx context.Context, cluster *types.Cluster, fluxConfig *v1alpha1.FluxConfig, cliConfig *config.CliConfig) error
Uninstall(ctx context.Context, cluster *types.Cluster, fluxConfig *v1alpha1.FluxConfig) error
Reconcile(ctx context.Context, cluster *types.Cluster, fluxConfig *v1alpha1.FluxConfig) error
}
FluxClient is an interface that abstracts the basic commands of flux executable.
type GitClient ¶
type GitClient interface {
GetRepo(ctx context.Context) (repo *git.Repository, err error)
CreateRepo(ctx context.Context, opts git.CreateRepoOpts) error
Clone(ctx context.Context) error
Push(ctx context.Context) error
Pull(ctx context.Context, branch string) error
PathExists(ctx context.Context, owner, repo, branch, path string) (exists bool, err error)
Add(filename string) error
Remove(filename string) error
Commit(message string) error
Branch(name string) error
Init() error
}
type GitOpsFluxClient ¶
type GitOpsFluxClient interface {
BootstrapGithub(ctx context.Context, cluster *types.Cluster, fluxConfig *v1alpha1.FluxConfig) error
BootstrapGit(ctx context.Context, cluster *types.Cluster, fluxConfig *v1alpha1.FluxConfig, cliConfig *config.CliConfig) error
Uninstall(ctx context.Context, cluster *types.Cluster, fluxConfig *v1alpha1.FluxConfig) error
GetCluster(ctx context.Context, cluster *types.Cluster, clusterSpec *cluster.Spec) (eksaCluster *v1alpha1.Cluster, err error)
DisableResourceReconcile(ctx context.Context, cluster *types.Cluster, resourceType, objectName, namespace string) error
EnableResourceReconcile(ctx context.Context, cluster *types.Cluster, resourceType, objectName, namespace string) error
Reconcile(ctx context.Context, cluster *types.Cluster, fluxConfig *v1alpha1.FluxConfig) error
ForceReconcile(ctx context.Context, cluster *types.Cluster, namespace string) error
DeleteSystemSecret(ctx context.Context, cluster *types.Cluster, namespace string) error
}
type KubeClient ¶
type KubeClient interface {
GetEksaCluster(ctx context.Context, cluster *types.Cluster, clusterName string) (*v1alpha1.Cluster, error)
UpdateAnnotation(ctx context.Context, resourceType, objectName string, annotations map[string]string, opts ...executables.KubectlOpt) error
RemoveAnnotation(ctx context.Context, resourceType, objectName string, key string, opts ...executables.KubectlOpt) error
DeleteSecret(ctx context.Context, managementCluster *types.Cluster, secretName, namespace string) error
}
KubeClient is an interface that abstracts the basic commands of kubectl executable.
type Templater ¶
type Templater interface {
WriteToFile(templateContent string, data interface{}, fileName string, f ...filewriter.FileOptionsFunc) (filePath string, err error)
}