core

package
v0.21.0 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2026 License: AGPL-3.0 Imports: 43 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var KubeaidConfigFileTemplates embed.FS

Functions

func BootstrapCluster

func BootstrapCluster(ctx context.Context, args BootstrapClusterArgs)

func CreateDevEnv

func CreateDevEnv(ctx context.Context, args *CreateDevEnvArgs)

func DeleteCluster

func DeleteCluster(ctx context.Context)

func RecoverCluster

func RecoverCluster(ctx context.Context, managementClusterName string, skipPRWorkflow bool)

func SetupCluster

func SetupCluster(ctx context.Context, args SetupClusterArgs)

func SetupKubeAidConfig

func SetupKubeAidConfig(ctx context.Context, args SetupKubeAidConfigArgs)

Does the following :

(1) Creates / updates all necessary files for the given cluster, in the user's KubeAid config repository.

(2) Commits and pushes those changes to the upstream.

(3) Waits for those changes to get merged into the default branch.

It expects the KubeAid Config repository to be already cloned in the temp directory.

func TestCluster added in v0.12.0

func TestCluster(ctx context.Context)

func UpgradeCluster

func UpgradeCluster(ctx context.Context, args UpgradeClusterArgs)

Types

type BootstrapClusterArgs

type BootstrapClusterArgs struct {
	*CreateDevEnvArgs
	SkipClusterctlMove bool
}

type CreateDevEnvArgs

type CreateDevEnvArgs struct {
	ManagementClusterName string

	SkipMonitoringSetup,
	SkipPRWorkflow,

	IsPartOfDisasterRecovery bool
}

type ProvisionAndSetupMainClusterArgs

type ProvisionAndSetupMainClusterArgs struct {
	*BootstrapClusterArgs
	GitAuthMethod transport.AuthMethod
}

type SetupClusterArgs

type SetupClusterArgs struct {
	*CreateDevEnvArgs

	ClusterType   string
	ClusterClient client.Client

	GitAuthMethod transport.AuthMethod
}

type SetupKubeAidConfigArgs

type SetupKubeAidConfigArgs struct {
	*CreateDevEnvArgs
	GitAuthMethod transport.AuthMethod
}

type TemplateValues

type TemplateValues struct {
	GeneralConfigFileContents string

	config.GitConfig
	config.ForksConfig

	config.ClusterConfig
	*config.KubePrometheusConfig
	CAPIClusterNamespace string

	AWSConfig      *config.AWSConfig
	AWSCredentials *config.AWSCredentials
	AWSB64EncodedCredentials,
	AWSAccountID string

	AzureConfig      *config.AzureConfig
	AzureCredentials *config.AzureCredentials
	CAPIUAMIClientID,
	VeleroUAMIClientID,
	AzureStorageAccountAccessKey,
	ServiceAccountIssuerURL string

	HetznerConfig      *config.HetznerConfig
	HetznerCredentials *config.HetznerCredentials

	BareMetalConfig *config.BareMetalConfig

	/*
		There are scenarios when we know the control-plane endpoint before the cluster is provisioned :

		  (1) When provisioning an HCloud / Hetzner hybrid cluster, and we have a VPN cluster.

		  (2) When provisioning a Bare Metal / Hetzner Bare Metal cluster; the user specifies it.

		We specify that pre-provisioned LB IP as the control-plane endpoint to CAPI and Cilium.

		Otherwise, we need to wait until the cluster has been provisioned. Once the cluster is
		provisioned, we get the control-plane endpoint from the Cluster resource. And then it's
		specified to Cilium.

		NOTE : Initially Cilium is installed using the postKubeadm hook in the KubeadmControlPlane
		       resource. The control-plane endpoint is determined from the kubeconfig file in the node.
	*/
	ControlPlaneEndpoint string

	ExtraKnownHosts []string

	*config.DisasterRecoveryConfig

	*config.ObmondoConfig
}

type UpgradeClusterArgs

type UpgradeClusterArgs struct {
	NewKubernetesVersion string
	CloudSpecificUpdates any

	SkipPRWorkflow bool
}

Jump to

Keyboard shortcuts

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