v1

package
v2.25.0 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2024 License: Apache-2.0 Imports: 21 Imported by: 3

Documentation

Overview

+groupName=kubermatic.k8c.io +versionName=v1 +kubebuilder:object:generate=true

Index

Constants

View Source
const (
	// AddonResourceName represents "Resource" defined in Kubernetes.
	AddonResourceName = "addons"

	// AddonKindName represents "Kind" defined in Kubernetes.
	AddonKindName = "Addon"

	AddonResourcesCreated AddonConditionType = "AddonResourcesCreatedSuccessfully"
)
View Source
const (
	// AlertmanagerResourceName represents "Resource" defined in Kubernetes.
	AlertmanagerResourceName = "alertmanagers"

	// AlertmanagerKindName represents "Kind" defined in Kubernetes.
	AlertmanagerKindName = "Alertmanager"
)
View Source
const (
	// AllowedRegistryResourceName represents "Resource" defined in Kubernetes.
	AllowedRegistryResourceName = "allowedregistry"

	// AllowedRegistryKindName represents "Kind" defined in Kubernetes.
	AllowedRegistryKindName = "AllowedRegistry"
)
View Source
const (
	// ClusterResourceName represents "Resource" defined in Kubernetes.
	ClusterResourceName = "clusters"

	// ClusterKindName represents "Kind" defined in Kubernetes.
	ClusterKindName = "Cluster"

	// CredentialPrefix is the prefix used for the secrets containing cloud provider crednentials.
	CredentialPrefix = "credential"

	// ForceRestartAnnotation is key of the annotation used to restart machine deployments.
	ForceRestartAnnotation = "forceRestart"

	// PresetNameAnnotation is key of the annotation used to hold preset name if was used for the cluster creation.
	PresetNameAnnotation = "presetName"

	// PresetInvalidatedAnnotation is key of the annotation used to indicate why the preset was invalidated.
	PresetInvalidatedAnnotation = "presetInvalidated"
)
View Source
const (
	CCMMigrationNeededAnnotation = "ccm-migration.k8c.io/migration-needed"
	CSIMigrationNeededAnnotation = "csi-migration.k8c.io/migration-needed"
)
View Source
const (
	WorkerNameLabelKey         = "worker-name"
	ProjectIDLabelKey          = "project-id"
	ExternalClusterIDLabelKey  = "external-cluster-id"
	UpdatedByVPALabelKey       = "updated-by-vpa"
	IsCredentialPresetLabelKey = "is-credential-preset"

	DefaultEtcdClusterSize = 3
	MinEtcdClusterSize     = 3
	MaxEtcdClusterSize     = 9

	DefaultKonnectivityKeepaliveTime = "1m"
)
View Source
const (
	AzureStandardLBSKU = LBSKU("standard")
	AzureBasicLBSKU    = LBSKU("basic")
)
View Source
const (
	PresetDeleted = PresetInvalidationReason("deleted")
	PresetChanged = PresetInvalidationReason("changed")
)
View Source
const (
	// ClusterFeatureExternalCloudProvider describes the external cloud provider feature. It is
	// only supported on a limited set of providers for a specific set of Kube versions. It must
	// not be set if its not supported.
	ClusterFeatureExternalCloudProvider = "externalCloudProvider"

	// ClusterFeatureCCMClusterName sets the cluster-name flag on the external CCM deployment.
	// The cluster-name flag is often used for naming cloud resources, such as load balancers.
	ClusterFeatureCCMClusterName = "ccmClusterName"

	// ClusterFeatureVsphereCSIClusterID sets the cluster-id in the vSphere CSI config to
	// the name of the user cluster. Originally, we have been setting cluster-id to the
	// vSphere Compute Cluster name (provided via the Datacenter object), however,
	// this is supposed to identify the Kubernetes cluster, therefore it must be unique.
	// This feature flag is enabled by default for new vSphere clusters, while existing
	// vSphere clusters must be migrated manually (preferably by following advice here:
	// https://kb.vmware.com/s/article/84446).
	ClusterFeatureVsphereCSIClusterID = "vsphereCSIClusterID"

	// ClusterFeatureEtcdLauncher enables features related to the experimental etcd-launcher. This includes user-cluster
	// etcd scaling, automatic volume recovery and new backup/restore controllers.
	ClusterFeatureEtcdLauncher = "etcdLauncher"

	// ApiserverNetworkPolicy enables the deployment of network policies that
	// restrict the egress traffic from Apiserver pods.
	ApiserverNetworkPolicy = "apiserverNetworkPolicy"

	// KubeSystemNetworkPolicies enables the deployment of network policies to kube-system namespace that
	// restrict traffic from all pods in the namespace.
	KubeSystemNetworkPolicies = "kubeSystemNetworkPolicies"

	// ClusterFeatureEncryptionAtRest enables the experimental "encryption-at-rest" feature, which allows encrypting
	// Kubernetes data in etcd with a user-provided encryption key or KMS service.
	ClusterFeatureEncryptionAtRest = "encryptionAtRest"
)
View Source
const (
	AntiAffinityTypePreferred = "preferred"
	AntiAffinityTypeRequired  = "required"
)
View Source
const (
	HealthStatusDown         = HealthStatus("HealthStatusDown")
	HealthStatusUp           = HealthStatus("HealthStatusUp")
	HealthStatusProvisioning = HealthStatus("HealthStatusProvisioning")
)
View Source
const (
	// ClusterTemplateInstanceResourceName represents "Resource" defined in Kubernetes.
	ClusterTemplateInstanceResourceName = "clustertemplateinstances"

	// ClusterTemplateInstanceKindName represents "Kind" defined in Kubernetes.
	ClusterTemplateInstanceKindName = "ClusterTemplateInstance"
)
View Source
const (
	UserClusterTemplateScope    = "user"
	ProjectClusterTemplateScope = "project"
	GlobalClusterTemplateScope  = "global"
	SeedTemplateScope           = "seed"
)
View Source
const (
	ClusterTemplateLabelKey                  = "template-id"
	ClusterTemplateInstanceLabelKey          = "template-instance-id"
	ClusterTemplateScopeLabelKey             = "scope"
	ClusterTemplateUserAnnotationKey         = "user"
	ClusterTemplateProjectLabelKey           = "project-id"
	ClusterTemplateHumanReadableNameLabelKey = "name"
)
View Source
const (
	// ClusterTemplateResourceName represents "Resource" defined in Kubernetes.
	ClusterTemplateResourceName = "clustertemplates"

	// ClusterTemplateKindName represents "Kind" defined in Kubernetes.
	ClusterTemplateKindName = "ClusterTemplate"
)
View Source
const (
	// NodeDeletionFinalizer indicates that the nodes still need cleanup.
	NodeDeletionFinalizer = "kubermatic.k8c.io/delete-nodes"
	// NamespaceCleanupFinalizer indicates that the cluster namespace still exists and the owning Cluster object
	// must not yet be deleted.
	NamespaceCleanupFinalizer = "kubermatic.k8c.io/cleanup-namespace"
	// InClusterPVCleanupFinalizer indicates that the PVs still need cleanup.
	InClusterPVCleanupFinalizer = "kubermatic.k8c.io/cleanup-in-cluster-pv"
	// InClusterLBCleanupFinalizer indicates that the LBs still need cleanup.
	InClusterLBCleanupFinalizer = "kubermatic.k8c.io/cleanup-in-cluster-lb"
	// CredentialsSecretsCleanupFinalizer indicates that secrets for credentials still need cleanup.
	CredentialsSecretsCleanupFinalizer = "kubermatic.k8c.io/cleanup-credentials-secrets"
	// ExternalClusterKubeOneNamespaceCleanupFinalizer indicates that kubeone cluster namespace still need cleanup.
	ExternalClusterKubeOneNamespaceCleanupFinalizer = "kubermatic.k8c.io/cleanup-kubeone-namespace"
	// ExternalClusterKubeconfigCleanupFinalizer indicates that secrets for kubeconfig still need cleanup.
	ExternalClusterKubeconfigCleanupFinalizer = "kubermatic.k8c.io/cleanup-kubeconfig-secret"
	// ExternalClusterKubeOneCleanupFinalizer indicates that secrets for kubeone cluster still need cleanup.
	ExternalClusterKubeOneSecretsCleanupFinalizer = "kubermatic.k8c.io/cleanup-kubeone-secret"
	// EtcdBackConfigCleanupFinalizer indicates that EtcdBackupConfigs for the cluster still need cleanup.
	EtcdBackupConfigCleanupFinalizer = "kubermatic.k8c.io/cleanup-etcdbackupconfigs"
	// GatekeeperConstraintCleanupFinalizer indicates that gatkeeper constraints on the user cluster need cleanup.
	GatekeeperConstraintCleanupFinalizer = "kubermatic.k8c.io/cleanup-gatekeeper-constraints"
	// KubermaticConstraintCleanupFinalizer indicates that Kubermatic constraints for the cluster need cleanup.
	KubermaticConstraintCleanupFinalizer = "kubermatic.k8c.io/cleanup-kubermatic-constraints"
)
View Source
const (
	InitialMachineDeploymentRequestAnnotation        = "kubermatic.io/initial-machinedeployment-request"
	InitialApplicationInstallationsRequestAnnotation = "kubermatic.io/initial-application-installations-request"
	InitialCNIValuesRequestAnnotation                = "kubermatic.io/initial-cni-values-request"
)
View Source
const (

	// ConstraintResourceName represents "Resource" defined in Kubernetes.
	ConstraintResourceName = "constraints"

	// ConstraintKind represents "Kind" defined in Kubernetes.
	ConstraintKind = "Constraint"
)
View Source
const (

	// ConstraintTemplateResourceName represents "Resource" defined in Kubernetes.
	ConstraintTemplateResourceName = "constrainttemplates"

	// ConstraintTemplateKind represents "Kind" defined in Kubernetes.
	ConstraintTemplateKind = "ConstraintTemplate"
)
View Source
const (
	// EtcdBackupConfigResourceName represents "Resource" defined in Kubernetes.
	EtcdBackupConfigResourceName = "etcdbackupconfigs"

	// EtcdBackupConfigKindName represents "Kind" defined in Kubernetes.
	EtcdBackupConfigKindName = "EtcdBackupConfig"

	DefaultKeptBackupsCount = 20
	MaxKeptBackupsCount     = 50

	// BackupStatusPhase value indicating that the corresponding job has started.
	BackupStatusPhaseRunning = "Running"

	// BackupStatusPhase value indicating that the corresponding job has completed successfully.
	BackupStatusPhaseCompleted = "Completed"

	// BackupStatusPhase value indicating that the corresponding job has completed with an error.
	BackupStatusPhaseFailed = "Failed"
)
View Source
const (
	// ExternalClusterResourceName represents "Resource" defined in Kubernetes.
	ExternalClusterResourceName = "externalclusters"

	// ExternalClusterKind represents "Kind" defined in Kubernetes.
	ExternalClusterKind = "ExternalCluster"

	// ExternalCluster Kubeconfig secret prefix.
	ExternalClusterKubeconfigPrefix = "kubeconfig-external-cluster"

	// KubeOneNamespacePrefix is the kubeone namespace prefix.
	KubeOneNamespacePrefix = "kubeone"

	// don't change this as these prefixes are used for rbac generation.
	// KubeOne ssh secret prefixes.
	KubeOneSSHSecretPrefix = "ssh-kubeone-external-cluster"

	// KubeOne manifest secret prefixes.
	KubeOneManifestSecretPrefix = "manifest-kubeone-external-cluster"
)
View Source
const (

	// GroupProjectBindingResourceName represents "Resource" defined in Kubernetes.
	GroupProjectBindingResourceName = "groupprojectbindings"

	// GroupProjectBindingKind represents "Kind" defined in Kubernetes.
	GroupProjectBindingKind = "GroupProjectBinding"

	// AuthZRoleLabel is the label used by rbac-controller and group-rbac-controller to identify the KKP role a ClusterRole or Role were created for.
	AuthZRoleLabel = "authz.k8c.io/role"

	// AuthZGroupProjectBindingLabel references the GroupProjectBinding resource that a ClusterRole/Role was created for.
	AuthZGroupProjectBindingLabel = "authz.k8c.io/group-project-binding"
)
View Source
const (
	// IPAMAllocationResourceName represents "Resource" defined in Kubernetes.
	IPAMAllocationResourceName = "ipamallocation"

	// IPAMAllocationKindName represents "Kind" defined in Kubernetes.
	IPAMAllocationKindName = "IPAMAllocation"
)
View Source
const (
	// IPAMPoolResourceName represents "Resource" defined in Kubernetes.
	IPAMPoolResourceName = "ipampool"

	// IPAMPoolKindName represents "Kind" defined in Kubernetes.
	IPAMPoolKindName = "IPAMPool"
)
View Source
const (
	// MLAAdminSettingResourceName represents "Resource" defined in Kubernetes.
	MLAAdminSettingResourceName = "mlaadminsettings"

	// MLAAdminSettingKindName represents "Kind" defined in Kubernetes.
	MLAAdminSettingKindName = "MLAAdminSetting"
)
View Source
const (
	// ProjectResourceName represents "Resource" defined in Kubernetes.
	ProjectResourceName = "projects"

	// ProjectKindName represents "Kind" defined in Kubernetes.
	ProjectKindName = "Project"
)
View Source
const (
	// ResourceQuotaKindName represents "Kind" defined in Kubernetes.
	ResourceQuotaKindName = "ResourceQuota"

	ResourceQuotaSubjectNameLabelKey = "subject-name"
	ResourceQuotaSubjectKindLabelKey = "subject-kind"

	ProjectSubjectKind = "project"
)
View Source
const (
	// RuleGroupResourceName represents "Resource" defined in Kubernetes.
	RuleGroupResourceName = "rulegroups"

	// RuleGroupKindName represents "Kind" defined in Kubernetes.
	RuleGroupKindName = "RuleGroup"
)
View Source
const (
	// SSHKeyResourceName represents "Resource" defined in Kubernetes.
	SSHKeyResourceName = "usersshkeys"

	// SSHKeyKind represents "Kind" defined in Kubernetes.
	SSHKeyKind = "UserSSHKey"
)
View Source
const (
	// UserResourceName represents "Resource" defined in Kubernetes.
	UserResourceName = "users"

	// UserKindName represents "Kind" defined in Kubernetes.
	UserKindName = "User"

	// ServiceAccountInitialGroupLabel is the name of the label on a KKP User object
	// that contains the initial group for a ServiceAccount. If a User is
	// a ServiceAccount, the the serviceaccount-projectbinding-controller will
	// create a matching ProjectBinding for the User.
	ServiceAccountInitialGroupLabel = "initialGroup"
)
View Source
const (
	// UserProjectBindingResourceName represents "Resource" defined in Kubernetes.
	UserProjectBindingResourceName = "userprojectbindings"

	// UserProjectBindingKind represents "Kind" defined in Kubernetes.
	UserProjectBindingKind = "UserProjectBinding"
)
View Source
const (
	// ClusterBackupStorageLocationKind represents "Kind" defined in Kubernetes.
	ClusterBackupStorageLocationKind = "ClusterBackupStorageLocation"
)
View Source
const ClusterTemplateInstanceOwnerAnnotationKey = "owner"

ClusterTemplateInstanceOwnerAnnotationKey represents the user cluster owner.

View Source
const DefaultNodeAccessNetwork = "10.254.0.0/16"

DefaultNodeAccessNetwork is the default CIDR used for the VPNs transit network through which we route the ControlPlane -> Node/Pod traffic.

View Source
const GlobalSettingsName = "globalsettings"
View Source
const GroupName = "kubermatic.k8c.io"

GroupName is the group name use in this package.

View Source
const GroupVersion = "v1"

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)

AllExposeStrategies is a set containing all the ExposeStrategy.

ProtectedClusterLabels is a set of labels that must not be set by users on clusters, as they are security relevant.

View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: GroupVersion}

SchemeGroupVersion is group version used to register these objects.

Functions

func IsProviderSupported

func IsProviderSupported(name string) bool

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource.

Types

type AKS

type AKS struct {
	ProviderPreset `json:",inline"`

	// The Azure Active Directory Tenant used for the user cluster.
	TenantID string `json:"tenantID"`
	// The Azure Subscription used for the user cluster.
	SubscriptionID string `json:"subscriptionID"`
	// The service principal used to access Azure.
	ClientID string `json:"clientID"`
	// The client secret corresponding to the given service principal.
	ClientSecret string `json:"clientSecret"`
}

func (*AKS) DeepCopy

func (in *AKS) DeepCopy() *AKS

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AKS.

func (*AKS) DeepCopyInto

func (in *AKS) DeepCopyInto(out *AKS)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (AKS) IsValid

func (s AKS) IsValid() bool

type APIServerSettings

type APIServerSettings struct {
	DeploymentSettings `json:",inline"`

	EndpointReconcilingDisabled *bool  `json:"endpointReconcilingDisabled,omitempty"`
	NodePortRange               string `json:"nodePortRange,omitempty"`
}

func (*APIServerSettings) DeepCopy

func (in *APIServerSettings) DeepCopy() *APIServerSettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerSettings.

func (*APIServerSettings) DeepCopyInto

func (in *APIServerSettings) DeepCopyInto(out *APIServerSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AWS

type AWS struct {
	ProviderPreset `json:",inline"`

	// The Access key ID used to authenticate against AWS.
	AccessKeyID string `json:"accessKeyID"`
	// The Secret Access Key used to authenticate against AWS.
	SecretAccessKey string `json:"secretAccessKey"`

	// Defines the ARN for an IAM role that should be assumed when handling resources on AWS. It will be used
	// to acquire temporary security credentials using an STS AssumeRole API operation whenever creating an AWS session.
	// +optional
	AssumeRoleARN string `json:"assumeRoleARN,omitempty"` //nolint:tagliatelle
	// An arbitrary string that may be needed when calling the STS AssumeRole API operation.
	// Using an external ID can help to prevent the "confused deputy problem".
	// +optional
	AssumeRoleExternalID string `json:"assumeRoleExternalID,omitempty"`

	// AWS VPC to use. Must be configured.
	VPCID string `json:"vpcID,omitempty"`
	// Route table to use. This can be configured, but if left empty will be
	// automatically filled in during reconciliation.
	RouteTableID string `json:"routeTableID,omitempty"`
	// Instance profile to use. This can be configured, but if left empty will be
	// automatically filled in during reconciliation.
	InstanceProfileName string `json:"instanceProfileName,omitempty"`
	// Security group to use. This can be configured, but if left empty will be
	// automatically filled in during reconciliation.
	SecurityGroupID string `json:"securityGroupID,omitempty"`
	// ARN to use. This can be configured, but if left empty will be
	// automatically filled in during reconciliation.
	ControlPlaneRoleARN string `json:"roleARN,omitempty"` //nolint:tagliatelle
}

func (*AWS) DeepCopy

func (in *AWS) DeepCopy() *AWS

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWS.

func (*AWS) DeepCopyInto

func (in *AWS) DeepCopyInto(out *AWS)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (AWS) IsValid

func (s AWS) IsValid() bool

type AWSCloudSpec

type AWSCloudSpec struct {
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	// The Access key ID used to authenticate against AWS.
	AccessKeyID string `json:"accessKeyID,omitempty"`
	// The Secret Access Key used to authenticate against AWS.
	SecretAccessKey string `json:"secretAccessKey,omitempty"`
	// Defines the ARN for an IAM role that should be assumed when handling resources on AWS. It will be used
	// to acquire temporary security credentials using an STS AssumeRole API operation whenever creating an AWS session.
	// +optional
	AssumeRoleARN string `json:"assumeRoleARN,omitempty"` //nolint:tagliatelle
	// An arbitrary string that may be needed when calling the STS AssumeRole API operation.
	// Using an external ID can help to prevent the "confused deputy problem".
	// +optional
	AssumeRoleExternalID string `json:"assumeRoleExternalID,omitempty"`
	VPCID                string `json:"vpcID"`
	// The IAM role, the control plane will use. The control plane will perform an assume-role
	ControlPlaneRoleARN string `json:"roleARN"` //nolint:tagliatelle
	RouteTableID        string `json:"routeTableID"`
	InstanceProfileName string `json:"instanceProfileName"`
	SecurityGroupID     string `json:"securityGroupID"`
	// A CIDR range that will be used to allow access to the node port range in the security group to. Only applies if
	// the security group is generated by KKP and not preexisting.
	// If NodePortsAllowedIPRange nor NodePortsAllowedIPRanges is set, the node port range can be accessed from anywhere.
	NodePortsAllowedIPRange string `json:"nodePortsAllowedIPRange,omitempty"`
	// Optional: CIDR ranges that will be used to allow access to the node port range in the security group to. Only applies if
	// the security group is generated by KKP and not preexisting.
	// If NodePortsAllowedIPRange nor NodePortsAllowedIPRanges is set,  the node port range can be accessed from anywhere.
	NodePortsAllowedIPRanges *NetworkRanges `json:"nodePortsAllowedIPRanges,omitempty"`
	// DisableIAMReconciling is used to disable reconciliation for IAM related configuration. This is useful in air-gapped
	// setups where access to IAM service is not possible.
	DisableIAMReconciling bool `json:"disableIAMReconciling,omitempty"` //nolint:tagliatelle
}

AWSCloudSpec specifies access data to Amazon Web Services.

func (*AWSCloudSpec) DeepCopy

func (in *AWSCloudSpec) DeepCopy() *AWSCloudSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSCloudSpec.

func (*AWSCloudSpec) DeepCopyInto

func (in *AWSCloudSpec) DeepCopyInto(out *AWSCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Addon

type Addon struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes the desired addon state.
	Spec AddonSpec `json:"spec,omitempty"`

	// Status contains information about the reconciliation status.
	Status AddonStatus `json:"status,omitempty"`
}

Addon specifies a cluster addon. Addons can be installed into user clusters to provide additional manifests for CNIs, CSIs or other applications, which makes addons a necessary component to create functioning user clusters. Addon objects must be created inside cluster namespaces.

func (*Addon) DeepCopy

func (in *Addon) DeepCopy() *Addon

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Addon.

func (*Addon) DeepCopyInto

func (in *Addon) DeepCopyInto(out *Addon)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Addon) DeepCopyObject

func (in *Addon) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AddonCondition

type AddonCondition struct {
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// Last time we got an update on a given condition.
	LastHeartbeatTime metav1.Time `json:"lastHeartbeatTime"`
	// Last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
}

func (*AddonCondition) DeepCopy

func (in *AddonCondition) DeepCopy() *AddonCondition

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonCondition.

func (*AddonCondition) DeepCopyInto

func (in *AddonCondition) DeepCopyInto(out *AddonCondition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AddonConditionType

type AddonConditionType string

type AddonConfig

type AddonConfig struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes the configuration of an addon.
	Spec AddonConfigSpec `json:"spec,omitempty"`
}

AddonConfig specifies addon configuration. Addons can be installed without a matching AddonConfig, but they will be missing a logo, description and the potentially necessary form fields in the KKP dashboard to make the addon comfortable to use.

func (*AddonConfig) DeepCopy

func (in *AddonConfig) DeepCopy() *AddonConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonConfig.

func (*AddonConfig) DeepCopyInto

func (in *AddonConfig) DeepCopyInto(out *AddonConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AddonConfig) DeepCopyObject

func (in *AddonConfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AddonConfigList

type AddonConfigList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items refers to the list of AddonConfig objects.
	Items []AddonConfig `json:"items"`
}

AddonConfigList is a list of addon configs.

func (*AddonConfigList) DeepCopy

func (in *AddonConfigList) DeepCopy() *AddonConfigList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonConfigList.

func (*AddonConfigList) DeepCopyInto

func (in *AddonConfigList) DeepCopyInto(out *AddonConfigList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AddonConfigList) DeepCopyObject

func (in *AddonConfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AddonConfigSpec

type AddonConfigSpec struct {
	// ShortDescription of the configured addon that contains more detailed information about the addon,
	// it will be displayed in the addon details view in the UI
	ShortDescription string `json:"shortDescription,omitempty"`
	// Description of the configured addon, it will be displayed in the addon overview in the UI
	Description string `json:"description,omitempty"`
	Logo string `json:"logo,omitempty"`
	// LogoFormat contains logo format of the configured addon, i.e. svg+xml
	LogoFormat string `json:"logoFormat,omitempty"`
	// Controls that can be set for configured addon
	Controls []AddonFormControl `json:"formSpec,omitempty"`
}

AddonConfigSpec specifies configuration of addon.

func (*AddonConfigSpec) DeepCopy

func (in *AddonConfigSpec) DeepCopy() *AddonConfigSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonConfigSpec.

func (*AddonConfigSpec) DeepCopyInto

func (in *AddonConfigSpec) DeepCopyInto(out *AddonConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AddonFormControl

type AddonFormControl struct {
	// DisplayName is visible in the UI
	DisplayName string `json:"displayName,omitempty"`
	// InternalName is used internally to save in the addon object
	InternalName string `json:"internalName,omitempty"`
	// HelpText is visible in the UI next to the control
	HelpText string `json:"helpText,omitempty"`
	// Required indicates if the control has to be set
	Required bool `json:"required,omitempty"`
	// Type of displayed control
	Type string `json:"type,omitempty"`
}

AddonFormControl specifies addon form control.

func (*AddonFormControl) DeepCopy

func (in *AddonFormControl) DeepCopy() *AddonFormControl

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonFormControl.

func (*AddonFormControl) DeepCopyInto

func (in *AddonFormControl) DeepCopyInto(out *AddonFormControl)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AddonList

type AddonList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items refers to the list of the cluster addons.
	Items []Addon `json:"items"`
}

AddonList is a list of addons.

func (*AddonList) DeepCopy

func (in *AddonList) DeepCopy() *AddonList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonList.

func (*AddonList) DeepCopyInto

func (in *AddonList) DeepCopyInto(out *AddonList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AddonList) DeepCopyObject

func (in *AddonList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AddonSpec

type AddonSpec struct {
	// Name defines the name of the addon to install
	Name string `json:"name"`
	// Cluster is the reference to the cluster the addon should be installed in
	Cluster corev1.ObjectReference `json:"cluster"`
	// Variables is free form data to use for parsing the manifest templates
	// +kubebuilder:pruning:PreserveUnknownFields
	Variables *runtime.RawExtension `json:"variables,omitempty"`
	// RequiredResourceTypes allows to indicate that this addon needs some resource type before it
	// can be installed. This can be used to indicate that a specific CRD and/or extension
	// apiserver must be installed before this addon can be installed. The addon will not
	// be installed until that resource is served.
	RequiredResourceTypes []GroupVersionKind `json:"requiredResourceTypes,omitempty"`
	// IsDefault indicates whether the addon is installed because it was configured in
	// the default addon section in the KubermaticConfiguration. User-installed addons
	// must not set this field to true, as extra default Addon objects (that are not in
	// the KubermaticConfiguration) will be garbage-collected.
	IsDefault bool `json:"isDefault,omitempty"`
}

AddonSpec specifies details of an addon.

func (*AddonSpec) DeepCopy

func (in *AddonSpec) DeepCopy() *AddonSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonSpec.

func (*AddonSpec) DeepCopyInto

func (in *AddonSpec) DeepCopyInto(out *AddonSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AddonStatus

type AddonStatus struct {
	Conditions map[AddonConditionType]AddonCondition `json:"conditions,omitempty"`
}

AddonStatus contains information about the reconciliation status.

func (*AddonStatus) DeepCopy

func (in *AddonStatus) DeepCopy() *AddonStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonStatus.

func (*AddonStatus) DeepCopyInto

func (in *AddonStatus) DeepCopyInto(out *AddonStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AdmissionPlugin

type AdmissionPlugin struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes an admission plugin name and in which k8s version it is supported.
	Spec AdmissionPluginSpec `json:"spec,omitempty"`
}

AdmissionPlugin is the type representing a AdmissionPlugin.

func (*AdmissionPlugin) DeepCopy

func (in *AdmissionPlugin) DeepCopy() *AdmissionPlugin

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdmissionPlugin.

func (*AdmissionPlugin) DeepCopyInto

func (in *AdmissionPlugin) DeepCopyInto(out *AdmissionPlugin)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AdmissionPlugin) DeepCopyObject

func (in *AdmissionPlugin) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AdmissionPluginList

type AdmissionPluginList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items refers to the list of Admission Plugins
	Items []AdmissionPlugin `json:"items"`
}

AdmissionPluginList is the type representing a AdmissionPluginList.

func (*AdmissionPluginList) DeepCopy

func (in *AdmissionPluginList) DeepCopy() *AdmissionPluginList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdmissionPluginList.

func (*AdmissionPluginList) DeepCopyInto

func (in *AdmissionPluginList) DeepCopyInto(out *AdmissionPluginList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AdmissionPluginList) DeepCopyObject

func (in *AdmissionPluginList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AdmissionPluginSpec

type AdmissionPluginSpec struct {
	PluginName string `json:"pluginName"`

	// FromVersion flag can be empty. It means the plugin fit to all k8s versions
	FromVersion *semver.Semver `json:"fromVersion,omitempty"`
}

AdmissionPluginSpec specifies admission plugin name and from which k8s version is supported.

func (*AdmissionPluginSpec) DeepCopy

func (in *AdmissionPluginSpec) DeepCopy() *AdmissionPluginSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdmissionPluginSpec.

func (*AdmissionPluginSpec) DeepCopyInto

func (in *AdmissionPluginSpec) DeepCopyInto(out *AdmissionPluginSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Alertmanager

type Alertmanager struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes the configuration of the Alertmanager.
	Spec AlertmanagerSpec `json:"spec,omitempty"`
	// Status stores status information about the Alertmanager.
	Status AlertmanagerStatus `json:"status,omitempty"`
}

func (*Alertmanager) DeepCopy

func (in *Alertmanager) DeepCopy() *Alertmanager

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Alertmanager.

func (*Alertmanager) DeepCopyInto

func (in *Alertmanager) DeepCopyInto(out *Alertmanager)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Alertmanager) DeepCopyObject

func (in *Alertmanager) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AlertmanagerConfigurationStatus

type AlertmanagerConfigurationStatus struct {
	// LastUpdated stores the last successful time when the configuration was successfully applied
	LastUpdated metav1.Time `json:"lastUpdated,omitempty"`
	// Status of whether the configuration was applied, one of True, False
	Status corev1.ConditionStatus `json:"status"`
	// ErrorMessage contains a default error message in case the configuration could not be applied.
	// Will be reset if the error was resolved and condition becomes True
	ErrorMessage string `json:"errorMessage,omitempty"`
}

AlertmanagerConfigurationStatus stores status information about the AlertManager configuration.

func (*AlertmanagerConfigurationStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlertmanagerConfigurationStatus.

func (*AlertmanagerConfigurationStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AlertmanagerList

type AlertmanagerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items refers to the list of Alertmanager objects.
	Items []Alertmanager `json:"items"`
}

func (*AlertmanagerList) DeepCopy

func (in *AlertmanagerList) DeepCopy() *AlertmanagerList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlertmanagerList.

func (*AlertmanagerList) DeepCopyInto

func (in *AlertmanagerList) DeepCopyInto(out *AlertmanagerList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AlertmanagerList) DeepCopyObject

func (in *AlertmanagerList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AlertmanagerSpec

type AlertmanagerSpec struct {
	// ConfigSecret refers to the Secret in the same namespace as the Alertmanager object,
	// which contains configuration for this Alertmanager.
	ConfigSecret corev1.LocalObjectReference `json:"configSecret"`
}

AlertmanagerSpec describes the configuration of the Alertmanager.

func (*AlertmanagerSpec) DeepCopy

func (in *AlertmanagerSpec) DeepCopy() *AlertmanagerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlertmanagerSpec.

func (*AlertmanagerSpec) DeepCopyInto

func (in *AlertmanagerSpec) DeepCopyInto(out *AlertmanagerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AlertmanagerStatus

type AlertmanagerStatus struct {
	// ConfigStatus stores status information about the AlertManager configuration.
	ConfigStatus AlertmanagerConfigurationStatus `json:"configStatus,omitempty"`
}

AlertmanagerStatus stores status information about the AlertManager.

func (*AlertmanagerStatus) DeepCopy

func (in *AlertmanagerStatus) DeepCopy() *AlertmanagerStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlertmanagerStatus.

func (*AlertmanagerStatus) DeepCopyInto

func (in *AlertmanagerStatus) DeepCopyInto(out *AlertmanagerStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Alibaba

type Alibaba struct {
	ProviderPreset `json:",inline"`

	// The Access Key ID used to authenticate against Alibaba.
	AccessKeyID string `json:"accessKeyID"`
	// The Access Key Secret used to authenticate against Alibaba.
	AccessKeySecret string `json:"accessKeySecret"`
}

func (*Alibaba) DeepCopy

func (in *Alibaba) DeepCopy() *Alibaba

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Alibaba.

func (*Alibaba) DeepCopyInto

func (in *Alibaba) DeepCopyInto(out *Alibaba)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Alibaba) IsValid

func (s Alibaba) IsValid() bool

type AlibabaCloudSpec

type AlibabaCloudSpec struct {
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	// The Access Key ID used to authenticate against Alibaba.
	AccessKeyID string `json:"accessKeyID,omitempty"`
	// The Access Key Secret used to authenticate against Alibaba.
	AccessKeySecret string `json:"accessKeySecret,omitempty"`
}

AlibabaCloudSpec specifies the access data to Alibaba.

func (*AlibabaCloudSpec) DeepCopy

func (in *AlibabaCloudSpec) DeepCopy() *AlibabaCloudSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlibabaCloudSpec.

func (*AlibabaCloudSpec) DeepCopyInto

func (in *AlibabaCloudSpec) DeepCopyInto(out *AlibabaCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AllowedRegistry

type AllowedRegistry struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes the desired state for an allowed registry.
	Spec AllowedRegistrySpec `json:"spec,omitempty"`
}

AllowedRegistry is the object representing an allowed registry.

func (*AllowedRegistry) DeepCopy

func (in *AllowedRegistry) DeepCopy() *AllowedRegistry

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedRegistry.

func (*AllowedRegistry) DeepCopyInto

func (in *AllowedRegistry) DeepCopyInto(out *AllowedRegistry)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AllowedRegistry) DeepCopyObject

func (in *AllowedRegistry) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AllowedRegistryList

type AllowedRegistryList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items refers to the list of the allowed registries.
	Items []AllowedRegistry `json:"items"`
}

AllowedRegistryList specifies a list of allowed registries.

func (*AllowedRegistryList) DeepCopy

func (in *AllowedRegistryList) DeepCopy() *AllowedRegistryList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedRegistryList.

func (*AllowedRegistryList) DeepCopyInto

func (in *AllowedRegistryList) DeepCopyInto(out *AllowedRegistryList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AllowedRegistryList) DeepCopyObject

func (in *AllowedRegistryList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AllowedRegistrySpec

type AllowedRegistrySpec struct {
	// RegistryPrefix contains the prefix of the registry which will be allowed. User clusters will be able to deploy
	// only images which are prefixed with one of the allowed image registry prefixes.
	RegistryPrefix string `json:"registryPrefix"`
}

AllowedRegistrySpec specifies the data for allowed registry spec.

func (*AllowedRegistrySpec) DeepCopy

func (in *AllowedRegistrySpec) DeepCopy() *AllowedRegistrySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedRegistrySpec.

func (*AllowedRegistrySpec) DeepCopyInto

func (in *AllowedRegistrySpec) DeepCopyInto(out *AllowedRegistrySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Anexia

type Anexia struct {
	ProviderPreset `json:",inline"`

	// Token is used to authenticate with the Anexia API.
	Token string `json:"token"`
}

func (*Anexia) DeepCopy

func (in *Anexia) DeepCopy() *Anexia

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Anexia.

func (*Anexia) DeepCopyInto

func (in *Anexia) DeepCopyInto(out *Anexia)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Anexia) IsValid

func (s Anexia) IsValid() bool

type AnexiaCloudSpec

type AnexiaCloudSpec struct {
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	// Token is used to authenticate with the Anexia API.
	Token string `json:"token,omitempty"`
}

AnexiaCloudSpec specifies the access data to Anexia.

func (*AnexiaCloudSpec) DeepCopy

func (in *AnexiaCloudSpec) DeepCopy() *AnexiaCloudSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnexiaCloudSpec.

func (*AnexiaCloudSpec) DeepCopyInto

func (in *AnexiaCloudSpec) DeepCopyInto(out *AnexiaCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AntiAffinityType added in v2.23.0

type AntiAffinityType string

AntiAffinityType is the type of anti-affinity that should be used. Can be "preferred" or "required".

type ApplicationSettings added in v2.21.0

type ApplicationSettings struct {
	// CacheSize is the size of the cache used to download application's sources.
	CacheSize *resource.Quantity `json:"cacheSize,omitempty"`
}

func (*ApplicationSettings) DeepCopy added in v2.21.0

func (in *ApplicationSettings) DeepCopy() *ApplicationSettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSettings.

func (*ApplicationSettings) DeepCopyInto added in v2.21.0

func (in *ApplicationSettings) DeepCopyInto(out *ApplicationSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AuditLoggingSettings

type AuditLoggingSettings struct {
	// Enabled will enable or disable audit logging.
	Enabled bool `json:"enabled,omitempty"`
	// Optional: PolicyPreset can be set to utilize a pre-defined set of audit policy rules.
	PolicyPreset AuditPolicyPreset `json:"policyPreset,omitempty"`
	// Optional: Configures the fluent-bit sidecar deployed alongside kube-apiserver.
	SidecarSettings *AuditSidecarSettings `json:"sidecar,omitempty"`
}

AuditLoggingSettings configures audit logging functionality.

func (*AuditLoggingSettings) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditLoggingSettings.

func (*AuditLoggingSettings) DeepCopyInto

func (in *AuditLoggingSettings) DeepCopyInto(out *AuditLoggingSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AuditPolicyPreset

type AuditPolicyPreset string

AuditPolicyPreset refers to a pre-defined set of audit policy rules. Supported values are `metadata`, `recommended` and `minimal`. See KKP documentation for what each policy preset includes.

const (
	AuditPolicyMetadata    AuditPolicyPreset = "metadata"
	AuditPolicyRecommended AuditPolicyPreset = "recommended"
	AuditPolicyMinimal     AuditPolicyPreset = "minimal"
)

type AuditSidecarConfiguration added in v2.21.0

type AuditSidecarConfiguration struct {
	Service map[string]string   `json:"service,omitempty"`
	Filters []map[string]string `json:"filters,omitempty"`
	Outputs []map[string]string `json:"outputs,omitempty"`
}

AuditSidecarConfiguration defines custom configuration for the fluent-bit sidecar deployed with a kube-apiserver. Also see https://docs.fluentbit.io/manual/v/1.8/administration/configuring-fluent-bit/configuration-file.

func (*AuditSidecarConfiguration) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditSidecarConfiguration.

func (*AuditSidecarConfiguration) DeepCopyInto added in v2.21.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AuditSidecarSettings added in v2.21.0

type AuditSidecarSettings struct {
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
	Config    *AuditSidecarConfiguration   `json:"config,omitempty"`
}

func (*AuditSidecarSettings) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditSidecarSettings.

func (*AuditSidecarSettings) DeepCopyInto added in v2.21.0

func (in *AuditSidecarSettings) DeepCopyInto(out *AuditSidecarSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Azure

type Azure struct {
	ProviderPreset `json:",inline"`

	// The Azure Active Directory Tenant used for the user cluster.
	TenantID string `json:"tenantID"`
	// The Azure Subscription used for the user cluster.
	SubscriptionID string `json:"subscriptionID"`
	// The service principal used to access Azure.
	ClientID string `json:"clientID"`
	// The client secret corresponding to the given service principal.
	ClientSecret string `json:"clientSecret"`

	// The resource group that will be used to look up and create resources for the cluster in.
	// If set to empty string at cluster creation, a new resource group will be created and this field will be updated to
	// the generated resource group's name.
	ResourceGroup string `json:"resourceGroup,omitempty"`
	// Optional: Defines a second resource group that will be used for VNet related resources instead.
	// If left empty, NO additional resource group will be created and all VNet related resources use the resource group defined by `resourceGroup`.
	VNetResourceGroup string `json:"vnetResourceGroup,omitempty"`
	// The name of the VNet resource used for setting up networking in.
	// If set to empty string at cluster creation, a new VNet will be created and this field will be updated to
	// the generated VNet's name.
	VNetName string `json:"vnet,omitempty"`
	// The name of a subnet in the VNet referenced by `vnet`.
	// If set to empty string at cluster creation, a new subnet will be created and this field will be updated to
	// the generated subnet's name. If no VNet is defined at cluster creation, this field should be empty as well.
	SubnetName string `json:"subnet,omitempty"`
	// The name of a route table associated with the subnet referenced by `subnet`.
	// If set to empty string at cluster creation, a new route table will be created and this field will be updated to
	// the generated route table's name. If no subnet is defined at cluster creation, this field should be empty as well.
	RouteTableName string `json:"routeTable,omitempty"`
	// The name of a security group associated with the subnet referenced by `subnet`.
	// If set to empty string at cluster creation, a new security group will be created and this field will be updated to
	// the generated security group's name. If no subnet is defined at cluster creation, this field should be empty as well.
	SecurityGroup string `json:"securityGroup,omitempty"`
	// LoadBalancerSKU sets the LB type that will be used for the Azure cluster, possible values are "basic" and "standard", if empty, "basic" will be used
	LoadBalancerSKU LBSKU `json:"loadBalancerSKU"` //nolint:tagliatelle
}

func (*Azure) DeepCopy

func (in *Azure) DeepCopy() *Azure

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Azure.

func (*Azure) DeepCopyInto

func (in *Azure) DeepCopyInto(out *Azure)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Azure) IsValid

func (s Azure) IsValid() bool

type AzureCloudSpec

type AzureCloudSpec struct {
	// CredentialsReference allows referencing a `Secret` resource instead of passing secret data in this spec.
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	// The Azure Active Directory Tenant used for this cluster.
	// Can be read from `credentialsReference` instead.
	TenantID string `json:"tenantID,omitempty"`
	// The Azure Subscription used for this cluster.
	// Can be read from `credentialsReference` instead.
	SubscriptionID string `json:"subscriptionID,omitempty"`
	// The service principal used to access Azure.
	// Can be read from `credentialsReference` instead.
	ClientID string `json:"clientID,omitempty"`
	// The client secret corresponding to the given service principal.
	// Can be read from `credentialsReference` instead.
	ClientSecret string `json:"clientSecret,omitempty"`

	// The resource group that will be used to look up and create resources for the cluster in.
	// If set to empty string at cluster creation, a new resource group will be created and this field will be updated to
	// the generated resource group's name.
	ResourceGroup string `json:"resourceGroup"`
	// Optional: Defines a second resource group that will be used for VNet related resources instead.
	// If left empty, NO additional resource group will be created and all VNet related resources use the resource group defined by `resourceGroup`.
	VNetResourceGroup string `json:"vnetResourceGroup"`
	// The name of the VNet resource used for setting up networking in.
	// If set to empty string at cluster creation, a new VNet will be created and this field will be updated to
	// the generated VNet's name.
	VNetName string `json:"vnet"`
	// The name of a subnet in the VNet referenced by `vnet`.
	// If set to empty string at cluster creation, a new subnet will be created and this field will be updated to
	// the generated subnet's name. If no VNet is defined at cluster creation, this field should be empty as well.
	SubnetName string `json:"subnet"`
	// The name of a route table associated with the subnet referenced by `subnet`.
	// If set to empty string at cluster creation, a new route table will be created and this field will be updated to
	// the generated route table's name. If no subnet is defined at cluster creation, this field should be empty as well.
	RouteTableName string `json:"routeTable"`
	// The name of a security group associated with the subnet referenced by `subnet`.
	// If set to empty string at cluster creation, a new security group will be created and this field will be updated to
	// the generated security group's name. If no subnet is defined at cluster creation, this field should be empty as well.
	SecurityGroup string `json:"securityGroup"`
	// A CIDR range that will be used to allow access to the node port range in the security group to. Only applies if
	// the security group is generated by KKP and not preexisting.
	// If NodePortsAllowedIPRange nor NodePortsAllowedIPRanges is set, the node port range can be accessed from anywhere.
	NodePortsAllowedIPRange string `json:"nodePortsAllowedIPRange,omitempty"`
	// Optional: CIDR ranges that will be used to allow access to the node port range in the security group to. Only applies if
	// the security group is generated by KKP and not preexisting.
	// If NodePortsAllowedIPRange nor NodePortsAllowedIPRanges is set,  the node port range can be accessed from anywhere.
	NodePortsAllowedIPRanges *NetworkRanges `json:"nodePortsAllowedIPRanges,omitempty"`
	// Optional: AssignAvailabilitySet determines whether KKP creates and assigns an AvailabilitySet to machines.
	// Defaults to `true` internally if not set.
	AssignAvailabilitySet *bool `json:"assignAvailabilitySet,omitempty"`
	// An availability set that will be associated with nodes created for this cluster. If this field is set to empty string
	// at cluster creation and `AssignAvailabilitySet` is set to `true`, a new availability set will be created and this field
	// will be updated to the generated availability set's name.
	AvailabilitySet string `json:"availabilitySet"`
	// LoadBalancerSKU sets the LB type that will be used for the Azure cluster, possible values are "basic" and "standard", if empty, "basic" will be used.
	LoadBalancerSKU LBSKU `json:"loadBalancerSKU"` //nolint:tagliatelle
}

AzureCloudSpec defines cloud resource references for Microsoft Azure.

func (*AzureCloudSpec) DeepCopy

func (in *AzureCloudSpec) DeepCopy() *AzureCloudSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureCloudSpec.

func (*AzureCloudSpec) DeepCopyInto

func (in *AzureCloudSpec) DeepCopyInto(out *AzureCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BackupConfig added in v2.25.0

type BackupConfig struct {
	BackupStorageLocation *corev1.LocalObjectReference `json:"backupStorageLocation,omitempty"`
}

func (*BackupConfig) DeepCopy added in v2.25.0

func (in *BackupConfig) DeepCopy() *BackupConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupConfig.

func (*BackupConfig) DeepCopyInto added in v2.25.0

func (in *BackupConfig) DeepCopyInto(out *BackupConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BackupDestination

type BackupDestination struct {
	// Endpoint is the API endpoint to use for backup and restore.
	Endpoint string `json:"endpoint"`
	// BucketName is the bucket name to use for backup and restore.
	BucketName string `json:"bucketName"`
	// Credentials hold the ref to the secret with backup credentials
	Credentials *corev1.SecretReference `json:"credentials,omitempty"`
}

BackupDestination defines the bucket name and endpoint as a backup destination, and holds reference to the credentials secret.

func (*BackupDestination) DeepCopy

func (in *BackupDestination) DeepCopy() *BackupDestination

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupDestination.

func (*BackupDestination) DeepCopyInto

func (in *BackupDestination) DeepCopyInto(out *BackupDestination)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BackupStatus

type BackupStatus struct {
	// ScheduledTime will always be set when the BackupStatus is created, so it'll never be nil
	// +optional
	ScheduledTime metav1.Time `json:"scheduledTime,omitempty"`
	BackupName    string      `json:"backupName,omitempty"`
	JobName       string      `json:"jobName,omitempty"`
	// +optional
	BackupStartTime metav1.Time `json:"backupStartTime,omitempty"`
	// +optional
	BackupFinishedTime metav1.Time       `json:"backupFinishedTime,omitempty"`
	BackupPhase        BackupStatusPhase `json:"backupPhase,omitempty"`
	BackupMessage      string            `json:"backupMessage,omitempty"`
	DeleteJobName      string            `json:"deleteJobName,omitempty"`
	// +optional
	DeleteStartTime metav1.Time `json:"deleteStartTime,omitempty"`
	// +optional
	DeleteFinishedTime metav1.Time       `json:"deleteFinishedTime,omitempty"`
	DeletePhase        BackupStatusPhase `json:"deletePhase,omitempty"`
	DeleteMessage      string            `json:"deleteMessage,omitempty"`
}

func (*BackupStatus) DeepCopy

func (in *BackupStatus) DeepCopy() *BackupStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStatus.

func (*BackupStatus) DeepCopyInto

func (in *BackupStatus) DeepCopyInto(out *BackupStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BackupStatusPhase

type BackupStatusPhase string

type BringYourOwnCloudSpec

type BringYourOwnCloudSpec struct{}

BringYourOwnCloudSpec specifies access data for a bring your own cluster.

func (*BringYourOwnCloudSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BringYourOwnCloudSpec.

func (*BringYourOwnCloudSpec) DeepCopyInto

func (in *BringYourOwnCloudSpec) DeepCopyInto(out *BringYourOwnCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Bytes

type Bytes []byte

func NewBytes

func NewBytes(b64 string) Bytes

NewBytes creates a Bytes instance from a base64 string, returning nil for an empty base64 string.

func (Bytes) Base64

func (bs Bytes) Base64() string

Base64 converts a Bytes instance to a base64 string.

func (Bytes) DeepCopy

func (in Bytes) DeepCopy() Bytes

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Bytes.

func (Bytes) DeepCopyInto

func (in Bytes) DeepCopyInto(out *Bytes)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Bytes) MarshalJSON

func (bs Bytes) MarshalJSON() ([]byte, error)

MarshalJSON adds base64 json encoding to the Bytes type.

func (*Bytes) UnmarshalJSON

func (bs *Bytes) UnmarshalJSON(src []byte) error

UnmarshalJSON adds base64 json decoding to the Bytes type.

type CIDR added in v2.20.2

type CIDR string

+kubebuilder:validation:Pattern:=`^((\d{1,3}\.){3}\d{1,3}\/([0-9]|[1-2][0-9]|3[0-2]))$`

type CNIPluginSettings

type CNIPluginSettings struct {
	// Type is the CNI plugin type to be used.
	Type CNIPluginType `json:"type"`
	// Version defines the CNI plugin version to be used. This varies by chosen CNI plugin type.
	Version string `json:"version"`
}

CNIPluginSettings contains the spec of the CNI plugin used by the Cluster.

func (*CNIPluginSettings) DeepCopy

func (in *CNIPluginSettings) DeepCopy() *CNIPluginSettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CNIPluginSettings.

func (*CNIPluginSettings) DeepCopyInto

func (in *CNIPluginSettings) DeepCopyInto(out *CNIPluginSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CNIPluginType

type CNIPluginType string

CNIPluginType defines the type of CNI plugin installed. Possible values are `canal`, `cilium` or `none`.

const (
	// CNIPluginTypeCanal corresponds to Canal CNI plugin (i.e. Flannel +
	// Calico for policy enforcement).
	CNIPluginTypeCanal CNIPluginType = "canal"

	// CNIPluginTypeCilium corresponds to Cilium CNI plugin.
	CNIPluginTypeCilium CNIPluginType = "cilium"

	// CNIPluginTypeNone corresponds to no CNI plugin managed by KKP
	// (cluster users are responsible for managing the CNI in the cluster themselves).
	CNIPluginTypeNone CNIPluginType = "none"
)

func (CNIPluginType) String

func (c CNIPluginType) String() string

type CleanupOptions

type CleanupOptions struct {
	// Enable checkboxes that allow the user to ask for LoadBalancers and PVCs
	// to be deleted in order to not leave potentially expensive resources behind.
	Enabled bool `json:"enabled,omitempty"`
	// If enforced is set to true, the cleanup of LoadBalancers and PVCs is
	// enforced.
	Enforced bool `json:"enforced,omitempty"`
}

func (*CleanupOptions) DeepCopy

func (in *CleanupOptions) DeepCopy() *CleanupOptions

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CleanupOptions.

func (*CleanupOptions) DeepCopyInto

func (in *CleanupOptions) DeepCopyInto(out *CleanupOptions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CloudSpec

type CloudSpec struct {
	// DatacenterName states the name of a cloud provider "datacenter" (defined in `Seed` resources)
	// this cluster should be deployed into.
	DatacenterName string `json:"dc"`

	// ProviderName is the name of the cloud provider used for this cluster.
	// This must match the given provider spec (e.g. if the providerName is
	// "aws", then the `aws` field must be set).
	ProviderName string `json:"providerName"`

	// Fake is a dummy cloud provider that is only used for testing purposes.
	// Do not try to actually use it.
	Fake *FakeCloudSpec `json:"fake,omitempty"`
	// Digitalocean defines the configuration data of the DigitalOcean cloud provider.
	Digitalocean *DigitaloceanCloudSpec `json:"digitalocean,omitempty"`
	// BringYourOwn defines the configuration data for a Bring Your Own cluster.
	BringYourOwn *BringYourOwnCloudSpec `json:"bringyourown,omitempty"`
	// Edge defines the configuration data for an edge cluster.
	Edge *EdgeCloudSpec `json:"edge,omitempty"`
	// AWS defines the configuration data of the Amazon Web Services(AWS) cloud provider.
	AWS *AWSCloudSpec `json:"aws,omitempty"`
	// Azure defines the configuration data of the Microsoft Azure cloud.
	Azure *AzureCloudSpec `json:"azure,omitempty"`
	// Openstack defines the configuration data of an OpenStack cloud.
	Openstack *OpenstackCloudSpec `json:"openstack,omitempty"`
	// Packet defines the configuration data of a Packet cloud.
	Packet *PacketCloudSpec `json:"packet,omitempty"`
	// Hetzner defines the configuration data of the Hetzner cloud.
	Hetzner *HetznerCloudSpec `json:"hetzner,omitempty"`
	// VSphere defines the configuration data of the vSphere.
	VSphere *VSphereCloudSpec `json:"vsphere,omitempty"`
	// GCP defines the configuration data of the Google Cloud Platform(GCP).
	GCP *GCPCloudSpec `json:"gcp,omitempty"`
	// Kubevirt defines the configuration data of the KubeVirt.
	Kubevirt *KubevirtCloudSpec `json:"kubevirt,omitempty"`
	// Alibaba defines the configuration data of the Alibaba.
	Alibaba *AlibabaCloudSpec `json:"alibaba,omitempty"`
	// Anexia defines the configuration data of the Anexia.
	Anexia *AnexiaCloudSpec `json:"anexia,omitempty"`
	// Nutanix defines the configuration data of the Nutanix.
	Nutanix *NutanixCloudSpec `json:"nutanix,omitempty"`
	// VMwareCloudDirector defines the configuration data of the VMware Cloud Director.
	VMwareCloudDirector *VMwareCloudDirectorCloudSpec `json:"vmwareclouddirector,omitempty"`
}

CloudSpec stores configuration options for a given cloud provider. Provider specs are mutually exclusive.

func (*CloudSpec) DeepCopy

func (in *CloudSpec) DeepCopy() *CloudSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudSpec.

func (*CloudSpec) DeepCopyInto

func (in *CloudSpec) DeepCopyInto(out *CloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Cluster

type Cluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes the desired cluster state.
	Spec ClusterSpec `json:"spec,omitempty"`

	// Status contains reconciliation information for the cluster.
	Status ClusterStatus `json:"status,omitempty"`
}

Cluster represents a Kubermatic Kubernetes Platform user cluster. Cluster objects exist on Seed clusters and each user cluster consists of a namespace containing the Kubernetes control plane and additional pods (like Prometheus or the machine-controller).

func (*Cluster) DeepCopy

func (in *Cluster) DeepCopy() *Cluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.

func (*Cluster) DeepCopyInto

func (in *Cluster) DeepCopyInto(out *Cluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Cluster) DeepCopyObject

func (in *Cluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Cluster) GetSecretName

func (cluster *Cluster) GetSecretName() string

func (*Cluster) GetUserClusterMLAResourceRequirements

func (cluster *Cluster) GetUserClusterMLAResourceRequirements() map[string]*corev1.ResourceRequirements

func (*Cluster) GetUserClusterOPAResourceRequirements

func (cluster *Cluster) GetUserClusterOPAResourceRequirements() map[string]*corev1.ResourceRequirements

func (*Cluster) IsDualStack added in v2.21.0

func (c *Cluster) IsDualStack() bool

IsDualStack returns true if the cluster networking is dual-stack (IPv4 + IPv6).

func (*Cluster) IsEncryptionActive added in v2.21.0

func (cluster *Cluster) IsEncryptionActive() bool

IsEncryptionActive returns whether encryption-at-rest is active on this cluster. This can still be the case when encryption configuration has been disabled, as encrypted resources require a decryption.

func (*Cluster) IsEncryptionEnabled added in v2.21.0

func (cluster *Cluster) IsEncryptionEnabled() bool

IsEncryptionConfigurationEnabled returns whether encryption-at-rest is configured on this cluster.

func (*Cluster) IsIPv4Only added in v2.21.0

func (c *Cluster) IsIPv4Only() bool

IsIPv4Only returns true if the cluster networking is IPv4-only.

func (*Cluster) IsIPv6Only added in v2.21.0

func (c *Cluster) IsIPv6Only() bool

IsIPv6Only returns true if the cluster networking is IPv6-only.

type ClusterAddress

type ClusterAddress struct {
	// URL under which the Apiserver is available
	// +optional
	URL string `json:"url"`
	// Port is the port the API server listens on
	// +optional
	Port int32 `json:"port"`
	// ExternalName is the DNS name for this cluster
	// +optional
	ExternalName string `json:"externalName"`
	// InternalName is the seed cluster internal absolute DNS name to the API server
	// +optional
	InternalName string `json:"internalURL"`
	// AdminToken is the token for the kubeconfig, the user can download
	// +optional
	AdminToken string `json:"adminToken"`
	// IP is the external IP under which the apiserver is available
	// +optional
	IP string `json:"ip"`
}

ClusterAddress stores access and address information of a cluster.

func (*ClusterAddress) DeepCopy

func (in *ClusterAddress) DeepCopy() *ClusterAddress

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterAddress.

func (*ClusterAddress) DeepCopyInto

func (in *ClusterAddress) DeepCopyInto(out *ClusterAddress)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterBackupStorageLocation added in v2.25.0

type ClusterBackupStorageLocation struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec is a Velero BSL spec
	Spec   velerov1.BackupStorageLocationSpec   `json:"spec,omitempty"`
	Status velerov1.BackupStorageLocationStatus `json:"status,omitempty"`
}

ClusterBackupStorageLocation is a KKP wrapper around Velero BSL spec.

func (*ClusterBackupStorageLocation) DeepCopy added in v2.25.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterBackupStorageLocation.

func (*ClusterBackupStorageLocation) DeepCopyInto added in v2.25.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterBackupStorageLocation) DeepCopyObject added in v2.25.0

func (in *ClusterBackupStorageLocation) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterBackupStorageLocationList added in v2.25.0

type ClusterBackupStorageLocationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items is a list of EtcdBackupConfig objects.
	Items []ClusterBackupStorageLocation `json:"items"`
}

ClusterBackupStorageLocationList is a list of ClusterBackupStorageLocations.

func (*ClusterBackupStorageLocationList) DeepCopy added in v2.25.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterBackupStorageLocationList.

func (*ClusterBackupStorageLocationList) DeepCopyInto added in v2.25.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterBackupStorageLocationList) DeepCopyObject added in v2.25.0

func (in *ClusterBackupStorageLocationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterCondition

type ClusterCondition struct {
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// KubermaticVersion current kubermatic version.
	KubermaticVersion string `json:"kubermaticVersion"`
	// Last time we got an update on a given condition.
	LastHeartbeatTime metav1.Time `json:"lastHeartbeatTime"`
	// Last time the condition transit from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// (brief) reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Human readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

func (*ClusterCondition) DeepCopy

func (in *ClusterCondition) DeepCopy() *ClusterCondition

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCondition.

func (*ClusterCondition) DeepCopyInto

func (in *ClusterCondition) DeepCopyInto(out *ClusterCondition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterConditionType

type ClusterConditionType string

ClusterConditionType is used to indicate the type of a cluster condition. For all condition types, the `true` value must indicate success. All condition types must be registered within the `AllClusterConditionTypes` variable.

const (
	// ClusterConditionSeedResourcesUpToDate indicates that all controllers have finished setting up the
	// resources for a user clusters that run inside the seed cluster, i.e. this ignores
	// the status of cloud provider resources for a given cluster.
	ClusterConditionSeedResourcesUpToDate ClusterConditionType = "SeedResourcesUpToDate"

	ClusterConditionClusterControllerReconcilingSuccess                 ClusterConditionType = "ClusterControllerReconciledSuccessfully"
	ClusterConditionAddonControllerReconcilingSuccess                   ClusterConditionType = "AddonControllerReconciledSuccessfully"
	ClusterConditionAddonInstallerControllerReconcilingSuccess          ClusterConditionType = "AddonInstallerControllerReconciledSuccessfully"
	ClusterConditionCloudControllerReconcilingSuccess                   ClusterConditionType = "CloudControllerReconciledSuccessfully"
	ClusterConditionUpdateControllerReconcilingSuccess                  ClusterConditionType = "UpdateControllerReconciledSuccessfully"
	ClusterConditionMonitoringControllerReconcilingSuccess              ClusterConditionType = "MonitoringControllerReconciledSuccessfully"
	ClusterConditionMachineDeploymentControllerReconcilingSuccess       ClusterConditionType = "MachineDeploymentReconciledSuccessfully"
	ClusterConditionApplicationInstallationControllerReconcilingSuccess ClusterConditionType = "ApplicationInstallationControllerReconciledSuccessfully"
	ClusterConditionKubeLBControllerReconcilingSuccess                  ClusterConditionType = "KubeLBControllerReconciledSuccessfully"
	ClusterConditionCNIControllerReconcilingSuccess                     ClusterConditionType = "CNIControllerReconciledSuccessfully"
	ClusterConditionMLAControllerReconcilingSuccess                     ClusterConditionType = "MLAControllerReconciledSuccessfully"
	ClusterConditionEncryptionControllerReconcilingSuccess              ClusterConditionType = "EncryptionControllerReconciledSuccessfully"
	ClusterConditionClusterInitialized                                  ClusterConditionType = "ClusterInitialized"
	ClusterConditionIPAMControllerReconcilingSuccess                    ClusterConditionType = "IPAMControllerReconciledSuccessfully"
	ClusterConditionClusterBackupControllerReconcilingSuccess           ClusterConditionType = "ClusterBackupControllerReconciledSuccessfully"

	ClusterConditionEtcdClusterInitialized ClusterConditionType = "EtcdClusterInitialized"
	ClusterConditionEncryptionInitialized  ClusterConditionType = "EncryptionInitialized"

	ClusterConditionUpdateProgress ClusterConditionType = "UpdateProgress"

	// ClusterConditionNone is a special value indicating that no cluster condition should be set.
	ClusterConditionNone ClusterConditionType = ""
	// This condition is met when a CSI migration is ongoing and the CSI
	// migration feature gates are activated on the Kubelets of all the nodes.
	// When this condition is `true` CSIMigration{provider}Complete can be
	// enabled.
	ClusterConditionCSIKubeletMigrationCompleted ClusterConditionType = "CSIKubeletMigrationCompleted"

	// This condition is used to determine if the CSI addon created by KKP is in use or not.
	// This helps in ascertaining if the CSI addon can be removed from the cluster or not.
	ClusterConditionCSIAddonInUse ClusterConditionType = "CSIAddonInUse"

	ReasonClusterUpdateSuccessful             = "ClusterUpdateSuccessful"
	ReasonClusterUpdateInProgress             = "ClusterUpdateInProgress"
	ReasonClusterCSIKubeletMigrationCompleted = "CSIKubeletMigrationSuccess"
	ReasonClusterCCMMigrationInProgress       = "CSIKubeletMigrationInProgress"
)

type ClusterEncryptionPhase added in v2.21.0

type ClusterEncryptionPhase string

+kubebuilder:validation:Enum=Pending;Failed;Active;EncryptionNeeded

const (
	ClusterEncryptionPhasePending          ClusterEncryptionPhase = "Pending"
	ClusterEncryptionPhaseFailed           ClusterEncryptionPhase = "Failed"
	ClusterEncryptionPhaseActive           ClusterEncryptionPhase = "Active"
	ClusterEncryptionPhaseEncryptionNeeded ClusterEncryptionPhase = "EncryptionNeeded"
)

type ClusterEncryptionStatus added in v2.21.0

type ClusterEncryptionStatus struct {
	// The current "primary" key used to encrypt data written to etcd. Secondary keys that can be used for decryption
	// (but not encryption) might be configured in the ClusterSpec.
	ActiveKey string `json:"activeKey"`

	// List of resources currently encrypted.
	EncryptedResources []string `json:"encryptedResources"`

	// The current phase of the encryption process. Can be one of `Pending`, `Failed`, `Active` or `EncryptionNeeded`.
	// The `encryption_controller` logic will process the cluster based on the current phase and issue necessary changes
	// to make sure encryption on the cluster is active and updated with what the ClusterSpec defines.
	Phase ClusterEncryptionPhase `json:"phase"`
}

ClusterEncryptionStatus holds status information about the encryption-at-rest feature on the user cluster.

func (*ClusterEncryptionStatus) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterEncryptionStatus.

func (*ClusterEncryptionStatus) DeepCopyInto added in v2.21.0

func (in *ClusterEncryptionStatus) DeepCopyInto(out *ClusterEncryptionStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterList

type ClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []Cluster `json:"items"`
}

ClusterList specifies a list of user clusters.

func (*ClusterList) DeepCopy

func (in *ClusterList) DeepCopy() *ClusterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterList.

func (*ClusterList) DeepCopyInto

func (in *ClusterList) DeepCopyInto(out *ClusterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterList) DeepCopyObject

func (in *ClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterNetworkingConfig

type ClusterNetworkingConfig struct {
	// Optional: IP family used for cluster networking. Supported values are "", "IPv4" or "IPv4+IPv6".
	// Can be omitted / empty if pods and services network ranges are specified.
	// In that case it defaults according to the IP families of the provided network ranges.
	// If neither ipFamily nor pods & services network ranges are specified, defaults to "IPv4".
	// +optional
	IPFamily IPFamily `json:"ipFamily,omitempty"`

	// The network ranges from which service VIPs are allocated.
	// It can contain one IPv4 and/or one IPv6 CIDR.
	// If both address families are specified, the first one defines the primary address family.
	Services NetworkRanges `json:"services"`

	// The network ranges from which POD networks are allocated.
	// It can contain one IPv4 and/or one IPv6 CIDR.
	// If both address families are specified, the first one defines the primary address family.
	Pods NetworkRanges `json:"pods"`

	// NodeCIDRMaskSizeIPv4 is the mask size used to address the nodes within provided IPv4 Pods CIDR.
	// It has to be larger than the provided IPv4 Pods CIDR. Defaults to 24.
	// +optional
	NodeCIDRMaskSizeIPv4 *int32 `json:"nodeCidrMaskSizeIPv4,omitempty"`

	// NodeCIDRMaskSizeIPv6 is the mask size used to address the nodes within provided IPv6 Pods CIDR.
	// It has to be larger than the provided IPv6 Pods CIDR. Defaults to 64.
	// +optional
	NodeCIDRMaskSizeIPv6 *int32 `json:"nodeCidrMaskSizeIPv6,omitempty"`

	// Domain name for services.
	DNSDomain string `json:"dnsDomain"`

	// ProxyMode defines the kube-proxy mode ("ipvs" / "iptables" / "ebpf").
	// Defaults to "ipvs". "ebpf" disables kube-proxy and requires CNI support.
	ProxyMode string `json:"proxyMode"`

	// IPVS defines kube-proxy ipvs configuration options
	IPVS *IPVSConfiguration `json:"ipvs,omitempty"`

	// NodeLocalDNSCacheEnabled controls whether the NodeLocal DNS Cache feature is enabled.
	// Defaults to true.
	NodeLocalDNSCacheEnabled *bool `json:"nodeLocalDNSCacheEnabled,omitempty"`

	// CoreDNSReplicas is the number of desired pods of user cluster coredns deployment.
	CoreDNSReplicas *int32 `json:"coreDNSReplicas,omitempty"`

	// Deprecated: KonnectivityEnabled enables konnectivity for controlplane to node network communication.
	// As OpenVPN will be removed in the future KKP versions, clusters with konnectivity disabled will not be supported.
	// All existing clusters with OpenVPN should migrate to the Konnectivity.
	KonnectivityEnabled *bool `json:"konnectivityEnabled,omitempty"`

	// TunnelingAgentIP is the address used by the tunneling agents
	TunnelingAgentIP string `json:"tunnelingAgentIP,omitempty"`
}

ClusterNetworkingConfig specifies the different networking parameters for a cluster.

func (*ClusterNetworkingConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterNetworkingConfig.

func (*ClusterNetworkingConfig) DeepCopyInto

func (in *ClusterNetworkingConfig) DeepCopyInto(out *ClusterNetworkingConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterPhase added in v2.21.0

type ClusterPhase string
const (
	ClusterCreating    ClusterPhase = "Creating"
	ClusterUpdating    ClusterPhase = "Updating"
	ClusterRunning     ClusterPhase = "Running"
	ClusterTerminating ClusterPhase = "Terminating"
)

These are the valid phases of a project.

type ClusterSpec

type ClusterSpec struct {
	// HumanReadableName is the cluster name provided by the user.
	HumanReadableName string `json:"humanReadableName"`

	// Version defines the wanted version of the control plane.
	Version semver.Semver `json:"version"`

	// Cloud contains information regarding the cloud provider that
	// is responsible for hosting the cluster's workload.
	Cloud CloudSpec `json:"cloud"`

	// ContainerRuntime to use, i.e. `docker` or `containerd`. By default `containerd` will be used.
	ContainerRuntime string `json:"containerRuntime,omitempty"`

	// Optional: ImagePullSecret references a secret with container registry credentials. This is passed to the machine-controller which sets the registry credentials on node level.
	ImagePullSecret *corev1.SecretReference `json:"imagePullSecret,omitempty"`

	// Optional: CNIPlugin refers to the spec of the CNI plugin used by the Cluster.
	CNIPlugin *CNIPluginSettings `json:"cniPlugin,omitempty"`

	// Optional: ClusterNetwork specifies the different networking parameters for a cluster.
	ClusterNetwork ClusterNetworkingConfig `json:"clusterNetwork"`

	// Optional: MachineNetworks is the list of the networking parameters used for IPAM.
	MachineNetworks []MachineNetworkingConfig `json:"machineNetworks,omitempty"`

	// ExposeStrategy is the strategy used to expose a cluster control plane.
	ExposeStrategy ExposeStrategy `json:"exposeStrategy"`

	// Optional: APIServerAllowedIPRanges is a list of IP ranges allowed to access the API server.
	// Applicable only if the expose strategy of the cluster is LoadBalancer.
	// If not configured, access to the API server is unrestricted.
	APIServerAllowedIPRanges *NetworkRanges `json:"apiServerAllowedIPRanges,omitempty"`

	// Optional: Component specific overrides that allow customization of control plane components.
	ComponentsOverride ComponentSettings `json:"componentsOverride,omitempty"`

	// Optional: OIDC specifies the OIDC configuration parameters for enabling authentication mechanism for the cluster.
	OIDC OIDCSettings `json:"oidc,omitempty"`

	// A map of optional or early-stage features that can be enabled for the user cluster.
	// Some feature gates cannot be disabled after being enabled.
	// The available feature gates vary based on KKP version, Kubernetes version and Seed configuration.
	// Please consult the KKP documentation for specific feature gates.
	Features map[string]bool `json:"features,omitempty"`

	// Optional: UpdateWindow configures automatic update systems to respect a maintenance window for
	// applying OS updates to nodes. This is only respected on Flatcar nodes currently.
	UpdateWindow *UpdateWindow `json:"updateWindow,omitempty"`

	// Enables the admission plugin `PodSecurityPolicy`. This plugin is deprecated by Kubernetes.
	UsePodSecurityPolicyAdmissionPlugin bool `json:"usePodSecurityPolicyAdmissionPlugin,omitempty"`
	// Enables the admission plugin `PodNodeSelector`. Needs additional configuration via the `podNodeSelectorAdmissionPluginConfig` field.
	UsePodNodeSelectorAdmissionPlugin bool `json:"usePodNodeSelectorAdmissionPlugin,omitempty"`
	// Enables the admission plugin `EventRateLimit`. Needs additional configuration via the `eventRateLimitConfig` field.
	// This plugin is considered "alpha" by Kubernetes.
	UseEventRateLimitAdmissionPlugin bool `json:"useEventRateLimitAdmissionPlugin,omitempty"`

	// A list of arbitrary admission plugin names that are passed to kube-apiserver. Must not include admission plugins
	// that can be enabled via a separate setting.
	AdmissionPlugins []string `json:"admissionPlugins,omitempty"`

	// Optional: Provides configuration for the PodNodeSelector admission plugin (needs plugin enabled
	// via `usePodNodeSelectorAdmissionPlugin`). It's used by the backend to create a configuration file for this plugin.
	// The key:value from this map is converted to <namespace>:<node-selectors-labels> in the file. Use `clusterDefaultNodeSelector`
	// as key to configure a default node selector.
	PodNodeSelectorAdmissionPluginConfig map[string]string `json:"podNodeSelectorAdmissionPluginConfig,omitempty"`

	// Optional: Configures the EventRateLimit admission plugin (if enabled via `useEventRateLimitAdmissionPlugin`)
	// to create limits on Kubernetes event generation. The EventRateLimit plugin is capable of comparing and rate limiting incoming
	// `Events` based on several configured buckets.
	EventRateLimitConfig *EventRateLimitConfig `json:"eventRateLimitConfig,omitempty"`

	// Optional: Deploys the UserSSHKeyAgent to the user cluster. This field is immutable.
	// If enabled, the agent will be deployed and used to sync user ssh keys attached by users to the cluster.
	// No SSH keys will be synced after node creation if this is disabled.
	EnableUserSSHKeyAgent *bool `json:"enableUserSSHKeyAgent,omitempty"`

	// Optional: Enables operating-system-manager (OSM), which is responsible for creating and managing worker node configuration.
	// This field is enabled(true) by default.
	EnableOperatingSystemManager *bool `json:"enableOperatingSystemManager,omitempty"`

	// KubeLB holds the configuration for the kubeLB component.
	// Only available in Enterprise Edition.
	KubeLB *KubeLB `json:"kubelb,omitempty"`

	// KubernetesDashboard holds the configuration for the kubernetes-dashboard component.
	KubernetesDashboard *KubernetesDashboard `json:"kubernetesDashboard,omitempty"`

	// Optional: AuditLogging configures Kubernetes API audit logging (https://kubernetes.io/docs/tasks/debug-application-cluster/audit/)
	// for the user cluster.
	AuditLogging *AuditLoggingSettings `json:"auditLogging,omitempty"`

	// Optional: OPAIntegration is a preview feature that enables OPA integration for the cluster.
	// Enabling it causes OPA Gatekeeper and its resources to be deployed on the user cluster.
	// By default it is disabled.
	OPAIntegration *OPAIntegrationSettings `json:"opaIntegration,omitempty"`

	// Optional: ServiceAccount contains service account related settings for the user cluster's kube-apiserver.
	ServiceAccount *ServiceAccountSettings `json:"serviceAccount,omitempty"`

	// Optional: MLA contains monitoring, logging and alerting related settings for the user cluster.
	MLA *MLASettings `json:"mla,omitempty"`

	// Optional: ApplicationSettings contains the settings relative to the application feature.
	ApplicationSettings *ApplicationSettings `json:"applicationSettings,omitempty"`

	// Optional: Configures encryption-at-rest for Kubernetes API data. This needs the `encryptionAtRest` feature gate.
	EncryptionConfiguration *EncryptionConfiguration `json:"encryptionConfiguration,omitempty"`

	// If this is set to true, the cluster will not be reconciled by KKP.
	// This indicates that the user needs to do some action to resolve the pause.
	// +kubebuilder:default=false
	Pause bool `json:"pause,omitempty"`
	// PauseReason is the reason why the cluster is not being managed. This field is for informational
	// purpose only and can be set by a user or a controller to communicate the reason for pausing the cluster.
	PauseReason string `json:"pauseReason,omitempty"`

	// Enables more verbose logging in KKP's user-cluster-controller-manager.
	DebugLog bool `json:"debugLog,omitempty"`

	// Optional: DisableCSIDriver disables the installation of CSI driver on the cluster
	// If this is true at the data center then it can't be over-written in the cluster configuration
	DisableCSIDriver bool `json:"disableCsiDriver,omitempty"`

	// Optional: BackupConfig contains the configuration options for managing the Cluster Backup Velero integration feature.
	BackupConfig *BackupConfig `json:"backupConfig,omitempty"`
}

ClusterSpec describes the desired state of a user cluster.

func (*ClusterSpec) DeepCopy

func (in *ClusterSpec) DeepCopy() *ClusterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSpec.

func (*ClusterSpec) DeepCopyInto

func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ClusterSpec) IsClusterBackupEnabled added in v2.25.0

func (c ClusterSpec) IsClusterBackupEnabled() bool

func (ClusterSpec) IsKubeLBEnabled added in v2.24.0

func (c ClusterSpec) IsKubeLBEnabled() bool

func (ClusterSpec) IsKubernetesDashboardEnabled added in v2.21.0

func (c ClusterSpec) IsKubernetesDashboardEnabled() bool

func (ClusterSpec) IsOperatingSystemManagerEnabled added in v2.21.0

func (c ClusterSpec) IsOperatingSystemManagerEnabled() bool

type ClusterStatus

type ClusterStatus struct {
	// Address contains the IPs/URLs to access the cluster control plane.
	// +optional
	Address ClusterAddress `json:"address,omitempty"`

	// Deprecated: LastUpdated contains the timestamp at which the cluster was last modified.
	// It is kept only for KKP 2.20 release to not break the backwards-compatibility and not being set for KKP higher releases.
	// +optional
	LastUpdated metav1.Time `json:"lastUpdated,omitempty"`
	// ExtendedHealth exposes information about the current health state.
	// Extends standard health status for new states.
	// +optional
	ExtendedHealth ExtendedClusterHealth `json:"extendedHealth,omitempty"`
	// LastProviderReconciliation is the time when the cloud provider resources
	// were last fully reconciled (during normal cluster reconciliation, KKP does
	// not re-check things like security groups, networks etc.).
	// +optional
	LastProviderReconciliation metav1.Time `json:"lastProviderReconciliation,omitempty"`
	// NamespaceName defines the namespace the control plane of this cluster is deployed in.
	// +optional
	NamespaceName string `json:"namespaceName"`

	// Versions contains information regarding the current and desired versions
	// of the cluster control plane and worker nodes.
	// +optional
	Versions ClusterVersionsStatus `json:"versions,omitempty"`

	// Deprecated: UserName contains the name of the owner of this cluster.
	// This field is not actively used and will be removed in the future.
	// +optional
	UserName string `json:"userName,omitempty"`
	// UserEmail contains the email of the owner of this cluster.
	// During cluster creation only, this field will be used to bind the `cluster-admin` `ClusterRole` to a cluster owner.
	// +optional
	UserEmail string `json:"userEmail"`

	// ErrorReason contains a error reason in case the controller encountered an error. Will be reset if the error was resolved.
	// +optional
	ErrorReason *ClusterStatusError `json:"errorReason,omitempty"`
	// ErrorMessage contains a default error message in case the controller encountered an error. Will be reset if the error was resolved.
	// +optional
	ErrorMessage *string `json:"errorMessage,omitempty"`

	// Conditions contains conditions the cluster is in, its primary use case is status signaling between controllers or between
	// controllers and the API.
	// +optional
	Conditions map[ClusterConditionType]ClusterCondition `json:"conditions,omitempty"`
	// Phase is a description of the current cluster status, summarizing the various conditions,
	// possible active updates etc. This field is for informational purpose only and no logic
	// should be tied to the phase.
	// +optional
	Phase ClusterPhase `json:"phase,omitempty"`

	// InheritedLabels are labels the cluster inherited from the project. They are read-only for users.
	// +optional
	InheritedLabels map[string]string `json:"inheritedLabels,omitempty"`

	// Encryption describes the status of the encryption-at-rest feature for encrypted data in etcd.
	// +optional
	Encryption *ClusterEncryptionStatus `json:"encryption,omitempty"`

	// ResourceUsage shows the current usage of resources for the cluster.
	ResourceUsage *ResourceDetails `json:"resourceUsage,omitempty"`
}

ClusterStatus stores status information about a cluster.

func (*ClusterStatus) DeepCopy

func (in *ClusterStatus) DeepCopy() *ClusterStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStatus.

func (*ClusterStatus) DeepCopyInto

func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterStatus) HasConditionValue

func (cs *ClusterStatus) HasConditionValue(conditionType ClusterConditionType, conditionStatus corev1.ConditionStatus) bool

HasConditionValue returns true if the cluster status has the given condition with the given status. It does not verify that the condition has been set by a certain Kubermatic version, it just checks the existence.

type ClusterStatusError

type ClusterStatusError string
const (
	InvalidConfigurationClusterError ClusterStatusError = "InvalidConfiguration"
	UnsupportedChangeClusterError    ClusterStatusError = "UnsupportedChange"
	ReconcileClusterError            ClusterStatusError = "ReconcileError"
)

type ClusterTemplate

type ClusterTemplate struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	ClusterLabels          map[string]string `json:"clusterLabels,omitempty"`
	InheritedClusterLabels map[string]string `json:"inheritedClusterLabels,omitempty"`
	Credential             string            `json:"credential"`

	// UserSSHKeys is the list of SSH public keys that should be assigned to all nodes in the cluster.
	UserSSHKeys []ClusterTemplateSSHKey `json:"userSSHKeys,omitempty"`

	// Spec describes the desired state of a user cluster.
	Spec ClusterSpec `json:"spec,omitempty"`
}

ClusterTemplate is the object representing a cluster template.

func (*ClusterTemplate) DeepCopy

func (in *ClusterTemplate) DeepCopy() *ClusterTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTemplate.

func (*ClusterTemplate) DeepCopyInto

func (in *ClusterTemplate) DeepCopyInto(out *ClusterTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterTemplate) DeepCopyObject

func (in *ClusterTemplate) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterTemplateInstance

type ClusterTemplateInstance struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec specifies the data for cluster instances.
	Spec ClusterTemplateInstanceSpec `json:"spec,omitempty"`
}

ClusterTemplateInstance is the object representing a cluster template instance.

func (*ClusterTemplateInstance) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTemplateInstance.

func (*ClusterTemplateInstance) DeepCopyInto

func (in *ClusterTemplateInstance) DeepCopyInto(out *ClusterTemplateInstance)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterTemplateInstance) DeepCopyObject

func (in *ClusterTemplateInstance) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterTemplateInstanceList

type ClusterTemplateInstanceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items refers to the list of ClusterTemplateInstance objects.
	Items []ClusterTemplateInstance `json:"items"`
}

ClusterTemplateInstanceList specifies a list of cluster template instances.

func (*ClusterTemplateInstanceList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTemplateInstanceList.

func (*ClusterTemplateInstanceList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterTemplateInstanceList) DeepCopyObject

func (in *ClusterTemplateInstanceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterTemplateInstanceSpec

type ClusterTemplateInstanceSpec struct {
	ProjectID           string `json:"projectID"`
	ClusterTemplateID   string `json:"clusterTemplateID"`
	ClusterTemplateName string `json:"clusterTemplateName"`
	Replicas            int64  `json:"replicas"`
}

ClusterTemplateInstanceSpec specifies the data for cluster instances.

func (*ClusterTemplateInstanceSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTemplateInstanceSpec.

func (*ClusterTemplateInstanceSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterTemplateList

type ClusterTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items refers to the list of the ClusterTemplate objects.
	Items []ClusterTemplate `json:"items"`
}

ClusterTemplateList specifies a list of cluster templates.

func (*ClusterTemplateList) DeepCopy

func (in *ClusterTemplateList) DeepCopy() *ClusterTemplateList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTemplateList.

func (*ClusterTemplateList) DeepCopyInto

func (in *ClusterTemplateList) DeepCopyInto(out *ClusterTemplateList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterTemplateList) DeepCopyObject

func (in *ClusterTemplateList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterTemplateSSHKey

type ClusterTemplateSSHKey struct {
	// ID is the name of the UserSSHKey object that is supposed to be assigned
	// to any ClusterTemplateInstance created based on this template.
	ID string `json:"id"`
	// Name is the human readable SSH key name.
	Name string `json:"name"`
}

ClusterTemplateSSHKey is the object for holding SSH key.

func (*ClusterTemplateSSHKey) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTemplateSSHKey.

func (*ClusterTemplateSSHKey) DeepCopyInto

func (in *ClusterTemplateSSHKey) DeepCopyInto(out *ClusterTemplateSSHKey)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterVersionsStatus added in v2.21.0

type ClusterVersionsStatus struct {
	// ControlPlane is the currently active cluster version. This can lag behind the apiserver
	// version if an update is currently rolling out.
	ControlPlane semver.Semver `json:"controlPlane"`
	// Apiserver is the currently desired version of the kube-apiserver. During
	// upgrades across multiple minor versions (e.g. from 1.20 to 1.23), this will gradually
	// be increased by the update-controller until the desired cluster version (spec.version)
	// is reached.
	Apiserver semver.Semver `json:"apiserver"`
	// ControllerManager is the currently desired version of the kube-controller-manager. This
	// field behaves the same as the apiserver field.
	ControllerManager semver.Semver `json:"controllerManager"`
	// Scheduler is the currently desired version of the kube-scheduler. This field behaves the
	// same as the apiserver field.
	Scheduler semver.Semver `json:"scheduler"`
	// OldestNodeVersion is the oldest node version currently in use inside the cluster. This can be
	// nil if there are no nodes. This field is primarily for speeding up reconciling, so that
	// the controller doesn't have to re-fetch to the usercluster and query its node on every
	// reconciliation.
	OldestNodeVersion *semver.Semver `json:"oldestNodeVersion,omitempty"`
}

ClusterVersionsStatus contains information regarding the current and desired versions of the cluster control plane and worker nodes.

func (*ClusterVersionsStatus) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVersionsStatus.

func (*ClusterVersionsStatus) DeepCopyInto added in v2.21.0

func (in *ClusterVersionsStatus) DeepCopyInto(out *ClusterVersionsStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ComponentSettings

type ComponentSettings struct {
	// Apiserver configures kube-apiserver settings.
	Apiserver APIServerSettings `json:"apiserver"`
	// ControllerManager configures kube-controller-manager settings.
	ControllerManager ControllerSettings `json:"controllerManager"`
	// Scheduler configures kube-scheduler settings.
	Scheduler ControllerSettings `json:"scheduler"`
	// Etcd configures the etcd ring used to store Kubernetes data.
	Etcd EtcdStatefulSetSettings `json:"etcd"`
	// Prometheus configures the Prometheus instance deployed into the cluster control plane.
	Prometheus StatefulSetSettings `json:"prometheus"`
	// NodePortProxyEnvoy configures the per-cluster nodeport-proxy-envoy that is deployed if
	// the `LoadBalancer` expose strategy is used. This is not effective if a different expose
	// strategy is configured.
	NodePortProxyEnvoy NodeportProxyComponent `json:"nodePortProxyEnvoy"`
	// KonnectivityProxy configures konnectivity-server and konnectivity-agent components.
	KonnectivityProxy KonnectivityProxySettings `json:"konnectivityProxy,omitempty"`
	// UserClusterController configures the KKP usercluster-controller deployed as part of the cluster control plane.
	UserClusterController *ControllerSettings `json:"userClusterController,omitempty"`
}

func (*ComponentSettings) DeepCopy

func (in *ComponentSettings) DeepCopy() *ComponentSettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentSettings.

func (*ComponentSettings) DeepCopyInto

func (in *ComponentSettings) DeepCopyInto(out *ComponentSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConditionType

type ConditionType string

ConditionType is the type defining the cluster or datacenter condition that must be met to block a specific version.

const (
	// AlwaysCondition represent an always true matching condition used while checking provider incompatibilities.
	AlwaysCondition ConditionType = "always"
	// ExternalCloudProviderCondition is an incompatibility condition that represents the usage of the external Cloud Provider.
	ExternalCloudProviderCondition ConditionType = ClusterFeatureExternalCloudProvider
	// InTreeCloudProviderCondition is an incompatibility condition that represents the usage of the in-tree Cloud Provider.
	InTreeCloudProviderCondition ConditionType = "inTreeProvider"
)

type Constraint

type Constraint struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes the desired state for the constraint.
	Spec ConstraintSpec `json:"spec,omitempty"`
}

Constraint specifies a kubermatic wrapper for the gatekeeper constraints.

func (*Constraint) DeepCopy

func (in *Constraint) DeepCopy() *Constraint

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Constraint.

func (*Constraint) DeepCopyInto

func (in *Constraint) DeepCopyInto(out *Constraint)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Constraint) DeepCopyObject

func (in *Constraint) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ConstraintList

type ConstraintList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items is a list of Gatekeeper Constraints
	Items []Constraint `json:"items"`
}

ConstraintList specifies a list of constraints.

func (*ConstraintList) DeepCopy

func (in *ConstraintList) DeepCopy() *ConstraintList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConstraintList.

func (*ConstraintList) DeepCopyInto

func (in *ConstraintList) DeepCopyInto(out *ConstraintList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ConstraintList) DeepCopyObject

func (in *ConstraintList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ConstraintSelector

type ConstraintSelector struct {
	// Providers is a list of cloud providers to which the Constraint applies to. Empty means all providers are selected.
	Providers []string `json:"providers,omitempty"`
	// LabelSelector selects the Clusters to which the Constraint applies based on their labels
	LabelSelector metav1.LabelSelector `json:"labelSelector,omitempty"`
}

ConstraintSelector is the object holding the cluster selection filters.

func (*ConstraintSelector) DeepCopy

func (in *ConstraintSelector) DeepCopy() *ConstraintSelector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConstraintSelector.

func (*ConstraintSelector) DeepCopyInto

func (in *ConstraintSelector) DeepCopyInto(out *ConstraintSelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConstraintSpec

type ConstraintSpec struct {
	// ConstraintType specifies the type of gatekeeper constraint that the constraint applies to
	ConstraintType string `json:"constraintType"`
	// Disabled  is the flag for disabling OPA constraints
	Disabled bool `json:"disabled,omitempty"`
	// Match contains the constraint to resource matching data
	Match Match `json:"match,omitempty"`
	// Parameters specifies the parameters used by the constraint template REGO.
	// It supports both the legacy rawJSON parameters, in which all the parameters are set in a JSON string, and regular
	// parameters like in Gatekeeper Constraints.
	// If rawJSON is set, during constraint syncing to the user cluster, the other parameters are ignored
	// Example with rawJSON parameters:
	//
	// parameters:
	//   rawJSON: '{"labels":["gatekeeper"]}'
	//
	// And with regular parameters:
	//
	// parameters:
	//   labels: ["gatekeeper"]
	//
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	Parameters Parameters `json:"parameters,omitempty"`
	// Selector specifies the cluster selection filters
	Selector ConstraintSelector `json:"selector,omitempty"`

	// EnforcementAction defines the action to take in response to a constraint being violated.
	// By default, EnforcementAction is set to deny as the default behavior is to deny admission requests with any violation.
	EnforcementAction string `json:"enforcementAction,omitempty"`
}

ConstraintSpec specifies the data for the constraint.

func (*ConstraintSpec) DeepCopy

func (in *ConstraintSpec) DeepCopy() *ConstraintSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConstraintSpec.

func (*ConstraintSpec) DeepCopyInto

func (in *ConstraintSpec) DeepCopyInto(out *ConstraintSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConstraintTemplate

type ConstraintTemplate struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec specifies the gatekeeper constraint template and KKP related spec.
	Spec ConstraintTemplateSpec `json:"spec,omitempty"`
}

ConstraintTemplate is the object representing a kubermatic wrapper for a gatekeeper constraint template.

func (*ConstraintTemplate) DeepCopy

func (in *ConstraintTemplate) DeepCopy() *ConstraintTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConstraintTemplate.

func (*ConstraintTemplate) DeepCopyInto

func (in *ConstraintTemplate) DeepCopyInto(out *ConstraintTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ConstraintTemplate) DeepCopyObject

func (in *ConstraintTemplate) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ConstraintTemplateList

type ConstraintTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items refers to the list of ConstraintTemplate objects.
	Items []ConstraintTemplate `json:"items"`
}

ConstraintTemplateList specifies a list of constraint templates.

func (*ConstraintTemplateList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConstraintTemplateList.

func (*ConstraintTemplateList) DeepCopyInto

func (in *ConstraintTemplateList) DeepCopyInto(out *ConstraintTemplateList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ConstraintTemplateList) DeepCopyObject

func (in *ConstraintTemplateList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ConstraintTemplateSelector

type ConstraintTemplateSelector struct {
	// Providers is a list of cloud providers to which the Constraint Template applies to. Empty means all providers are selected.
	Providers []string `json:"providers,omitempty"`
	// LabelSelector selects the Clusters to which the Constraint Template applies based on their labels
	LabelSelector metav1.LabelSelector `json:"labelSelector,omitempty"`
}

ConstraintTemplateSelector is the object holding the cluster selection filters.

func (*ConstraintTemplateSelector) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConstraintTemplateSelector.

func (*ConstraintTemplateSelector) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConstraintTemplateSpec

type ConstraintTemplateSpec struct {
	CRD     v1.CRD      `json:"crd,omitempty"`
	Targets []v1.Target `json:"targets,omitempty"`

	// Selector configures which clusters this constraint template is applied to.
	Selector ConstraintTemplateSelector `json:"selector,omitempty"`
}

ConstraintTemplateSpec is the object representing the gatekeeper constraint template spec and kubermatic related spec.

func (*ConstraintTemplateSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConstraintTemplateSpec.

func (*ConstraintTemplateSpec) DeepCopyInto

func (in *ConstraintTemplateSpec) DeepCopyInto(out *ConstraintTemplateSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ContainerRuntimeContainerd added in v2.20.4

type ContainerRuntimeContainerd struct {
	// A map of registries to use to render configs and mirrors for containerd registries
	Registries map[string]ContainerdRegistry `json:"registries,omitempty"`
}

ContainerRuntimeContainerd defines containerd container runtime registries configs.

func (*ContainerRuntimeContainerd) DeepCopy added in v2.20.4

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeContainerd.

func (*ContainerRuntimeContainerd) DeepCopyInto added in v2.20.4

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ContainerdRegistry added in v2.20.4

type ContainerdRegistry struct {
	// List of registry mirrors to use
	Mirrors []string `json:"mirrors,omitempty"`
}

ContainerdRegistry defines endpoints and security for given container registry.

func (*ContainerdRegistry) DeepCopy added in v2.20.4

func (in *ContainerdRegistry) DeepCopy() *ContainerdRegistry

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerdRegistry.

func (*ContainerdRegistry) DeepCopyInto added in v2.20.4

func (in *ContainerdRegistry) DeepCopyInto(out *ContainerdRegistry)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ControllerSettings

type ControllerSettings struct {
	DeploymentSettings     `json:",inline"`
	LeaderElectionSettings `json:"leaderElection,omitempty"`
}

func (*ControllerSettings) DeepCopy

func (in *ControllerSettings) DeepCopy() *ControllerSettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerSettings.

func (*ControllerSettings) DeepCopyInto

func (in *ControllerSettings) DeepCopyInto(out *ControllerSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CustomLink struct {
	Label    string `json:"label"`
	URL      string `json:"url"`
	Icon     string `json:"icon"`
	Location string `json:"location"`
}

func (*CustomLink) DeepCopy

func (in *CustomLink) DeepCopy() *CustomLink

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomLink.

func (*CustomLink) DeepCopyInto

func (in *CustomLink) DeepCopyInto(out *CustomLink)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CustomLinks []CustomLink

func (CustomLinks) DeepCopy

func (in CustomLinks) DeepCopy() CustomLinks

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomLinks.

func (CustomLinks) DeepCopyInto

func (in CustomLinks) DeepCopyInto(out *CustomLinks)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CustomNetworkPolicy added in v2.21.5

type CustomNetworkPolicy struct {
	// Name is the name of the Custom Network Policy.
	Name string `json:"name"`
	// Spec is the Spec of the NetworkPolicy, using the standard type.
	Spec networkingv1.NetworkPolicySpec `json:"spec"`
}

CustomNetworkPolicy contains a name and the Spec of a NetworkPolicy.

func (*CustomNetworkPolicy) DeepCopy added in v2.21.5

func (in *CustomNetworkPolicy) DeepCopy() *CustomNetworkPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomNetworkPolicy.

func (*CustomNetworkPolicy) DeepCopyInto added in v2.21.5

func (in *CustomNetworkPolicy) DeepCopyInto(out *CustomNetworkPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Datacenter

type Datacenter struct {
	// Optional: Country of the seed as ISO-3166 two-letter code, e.g. DE or UK.
	// For informational purposes in the Kubermatic dashboard only.
	Country string `json:"country,omitempty"`
	// Optional: Detailed location of the cluster, like "Hamburg" or "Datacenter 7".
	// For informational purposes in the Kubermatic dashboard only.
	Location string `json:"location,omitempty"`
	// Node holds node-specific settings, like e.g. HTTP proxy, Docker
	// registries and the like. Proxy settings are inherited from the seed if
	// not specified here.
	Node *NodeSettings `json:"node,omitempty"`
	// Spec describes the cloud provider settings used to manage resources
	// in this datacenter. Exactly one cloud provider must be defined.
	Spec DatacenterSpec `json:"spec"`
}

func (*Datacenter) DeepCopy

func (in *Datacenter) DeepCopy() *Datacenter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Datacenter.

func (*Datacenter) DeepCopyInto

func (in *Datacenter) DeepCopyInto(out *Datacenter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Datacenter) IsIPv6Enabled added in v2.21.0

func (d *Datacenter) IsIPv6Enabled(cloudProvider ProviderType) bool

IsIPv6Enabled returns true if ipv6 is enabled for the datacenter.

type DatacenterSpec

type DatacenterSpec struct {
	// Digitalocean configures a Digitalocean datacenter.
	Digitalocean *DatacenterSpecDigitalocean `json:"digitalocean,omitempty"`
	// BringYourOwn contains settings for clusters using manually created
	// nodes via kubeadm.
	BringYourOwn *DatacenterSpecBringYourOwn `json:"bringyourown,omitempty"`
	// Edge contains settings for clusters using manually created
	// nodes in edge envs.
	Edge *DatacenterSpecEdge `json:"edge,omitempty"`
	// AWS configures an Amazon Web Services (AWS) datacenter.
	AWS *DatacenterSpecAWS `json:"aws,omitempty"`
	// Azure configures an Azure datacenter.
	Azure *DatacenterSpecAzure `json:"azure,omitempty"`
	// Openstack configures an Openstack datacenter.
	Openstack *DatacenterSpecOpenstack `json:"openstack,omitempty"`
	// Packet configures an Equinix Metal datacenter.
	Packet *DatacenterSpecPacket `json:"packet,omitempty"`
	// Hetzner configures a Hetzner datacenter.
	Hetzner *DatacenterSpecHetzner `json:"hetzner,omitempty"`
	// VSphere configures a VMware vSphere datacenter.
	VSphere *DatacenterSpecVSphere `json:"vsphere,omitempty"`
	// VMwareCloudDirector configures a VMware Cloud Director datacenter.
	VMwareCloudDirector *DatacenterSpecVMwareCloudDirector `json:"vmwareclouddirector,omitempty"`
	// GCP configures a Google Cloud Platform (GCP) datacenter.
	GCP *DatacenterSpecGCP `json:"gcp,omitempty"`
	// Kubevirt configures a KubeVirt datacenter.
	Kubevirt *DatacenterSpecKubevirt `json:"kubevirt,omitempty"`
	// Alibaba configures an Alibaba Cloud datacenter.
	Alibaba *DatacenterSpecAlibaba `json:"alibaba,omitempty"`
	// Anexia configures an Anexia datacenter.
	Anexia *DatacenterSpecAnexia `json:"anexia,omitempty"`
	// Nutanix configures a Nutanix HCI datacenter.
	Nutanix *DatacenterSpecNutanix `json:"nutanix,omitempty"`

	//nolint:staticcheck
	//lint:ignore SA5008 omitgenyaml is used by the example-yaml-generator
	Fake *DatacenterSpecFake `json:"fake,omitempty,omitgenyaml"`

	// Optional: When defined, only users with an e-mail address on the
	// given domains can make use of this datacenter. You can define multiple
	// domains, e.g. "example.com", one of which must match the email domain
	// exactly (i.e. "example.com" will not match "user@test.example.com").
	RequiredEmails []string `json:"requiredEmails,omitempty"`

	// Optional: EnforceAuditLogging enforces audit logging on every cluster within the DC,
	// ignoring cluster-specific settings.
	EnforceAuditLogging bool `json:"enforceAuditLogging,omitempty"`

	// Optional: EnforcePodSecurityPolicy enforces pod security policy plugin on every clusters within the DC,
	// ignoring cluster-specific settings.
	EnforcePodSecurityPolicy bool `json:"enforcePodSecurityPolicy,omitempty"`

	// Optional: ProviderReconciliationInterval is the time that must have passed since a
	// Cluster's status.lastProviderReconciliation to make the cliuster controller
	// perform an in-depth provider reconciliation, where for example missing security
	// groups will be reconciled.
	// Setting this too low can cause rate limits by the cloud provider, setting this
	// too high means that *if* a resource at a cloud provider is removed/changed outside
	// of KKP, it will take this long to fix it.
	ProviderReconciliationInterval *metav1.Duration `json:"providerReconciliationInterval,omitempty"`

	// Optional: DefaultOperatingSystemProfiles specifies the OperatingSystemProfiles to use for each supported operating system.
	DefaultOperatingSystemProfiles OperatingSystemProfileList `json:"operatingSystemProfiles,omitempty"`

	// Optional: MachineFlavorFilter is used to filter out allowed machine flavors based on the specified resource limits like CPU, Memory, and GPU etc.
	MachineFlavorFilter *MachineFlavorFilter `json:"machineFlavorFilter,omitempty"`

	// Optional: DisableCSIDriver disables the installation of CSI driver on every clusters within the DC
	// If true it can't be over-written in the cluster configuration
	DisableCSIDriver bool `json:"disableCsiDriver,omitempty"`

	// Optional: KubeLB holds the configuration for the kubeLB at the data center level.
	// Only available in Enterprise Edition.
	//
	//nolint:staticcheck
	//lint:ignore SA5008 omitcegenyaml is used by the example-yaml-generator
	KubeLB *KubeLBDatacenterSettings `json:"kubelb,omitempty,omitcegenyaml"`
}

DatacenterSpec configures a KKP datacenter. Provider configuration is mutually exclusive, and as such only a single provider can be configured per datacenter.

func (*DatacenterSpec) DeepCopy

func (in *DatacenterSpec) DeepCopy() *DatacenterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpec.

func (*DatacenterSpec) DeepCopyInto

func (in *DatacenterSpec) DeepCopyInto(out *DatacenterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecAWS

type DatacenterSpecAWS struct {
	// The AWS region to use, e.g. "us-east-1". For a list of available regions, see
	// https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
	Region string `json:"region"`

	// List of AMIs to use for a given operating system.
	// This gets defaulted by querying for the latest AMI for the given distribution
	// when machines are created, so under normal circumstances it is not necessary
	// to define the AMIs statically.
	Images ImageList `json:"images,omitempty"`
}

DatacenterSpecAWS describes an AWS datacenter.

func (*DatacenterSpecAWS) DeepCopy

func (in *DatacenterSpecAWS) DeepCopy() *DatacenterSpecAWS

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecAWS.

func (*DatacenterSpecAWS) DeepCopyInto

func (in *DatacenterSpecAWS) DeepCopyInto(out *DatacenterSpecAWS)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecAlibaba

type DatacenterSpecAlibaba struct {
	// Region to use, for a full list of regions see
	// https://www.alibabacloud.com/help/doc-detail/40654.htm
	Region string `json:"region"`
}

DatacenterSpecAlibaba describes a alibaba datacenter.

func (*DatacenterSpecAlibaba) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecAlibaba.

func (*DatacenterSpecAlibaba) DeepCopyInto

func (in *DatacenterSpecAlibaba) DeepCopyInto(out *DatacenterSpecAlibaba)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecAnexia

type DatacenterSpecAnexia struct {
	// LocationID the location of the region
	LocationID string `json:"locationID"`
}

DatacenterSpecAnexia describes a anexia datacenter.

func (*DatacenterSpecAnexia) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecAnexia.

func (*DatacenterSpecAnexia) DeepCopyInto

func (in *DatacenterSpecAnexia) DeepCopyInto(out *DatacenterSpecAnexia)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecAzure

type DatacenterSpecAzure struct {
	// Region to use, for example "westeurope". A list of available regions can be
	// found at https://azure.microsoft.com/en-us/global-infrastructure/locations/
	Location string `json:"location"`
}

DatacenterSpecAzure describes an Azure cloud datacenter.

func (*DatacenterSpecAzure) DeepCopy

func (in *DatacenterSpecAzure) DeepCopy() *DatacenterSpecAzure

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecAzure.

func (*DatacenterSpecAzure) DeepCopyInto

func (in *DatacenterSpecAzure) DeepCopyInto(out *DatacenterSpecAzure)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecBringYourOwn

type DatacenterSpecBringYourOwn struct {
}

DatacenterSpecBringYourOwn describes a datacenter our of bring your own nodes.

func (*DatacenterSpecBringYourOwn) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecBringYourOwn.

func (*DatacenterSpecBringYourOwn) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecDigitalocean

type DatacenterSpecDigitalocean struct {
	// Datacenter location, e.g. "ams3". A list of existing datacenters can be found
	// at https://www.digitalocean.com/docs/platform/availability-matrix/
	Region string `json:"region"`
}

DatacenterSpecDigitalocean describes a DigitalOcean datacenter.

func (*DatacenterSpecDigitalocean) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecDigitalocean.

func (*DatacenterSpecDigitalocean) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecEdge added in v2.25.0

type DatacenterSpecEdge struct {
}

DatacenterSpecEdge describes a datacenter of edge nodes.

func (*DatacenterSpecEdge) DeepCopy added in v2.25.0

func (in *DatacenterSpecEdge) DeepCopy() *DatacenterSpecEdge

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecEdge.

func (*DatacenterSpecEdge) DeepCopyInto added in v2.25.0

func (in *DatacenterSpecEdge) DeepCopyInto(out *DatacenterSpecEdge)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecFake

type DatacenterSpecFake struct {
	FakeProperty string `json:"fakeProperty,omitempty"`
}

DatacenterSpecFake describes a fake datacenter.

func (*DatacenterSpecFake) DeepCopy

func (in *DatacenterSpecFake) DeepCopy() *DatacenterSpecFake

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecFake.

func (*DatacenterSpecFake) DeepCopyInto

func (in *DatacenterSpecFake) DeepCopyInto(out *DatacenterSpecFake)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecGCP

type DatacenterSpecGCP struct {
	// Region to use, for example "europe-west3", for a full list of regions see
	// https://cloud.google.com/compute/docs/regions-zones/
	Region string `json:"region"`
	// List of enabled zones, for example [a, c]. See the link above for the available
	// zones in your chosen region.
	ZoneSuffixes []string `json:"zoneSuffixes"`

	// Optional: Regional clusters spread their resources across multiple availability zones.
	// Refer to the official documentation for more details on this:
	// https://cloud.google.com/kubernetes-engine/docs/concepts/regional-clusters
	Regional bool `json:"regional,omitempty"`
}

DatacenterSpecGCP describes a GCP datacenter.

func (*DatacenterSpecGCP) DeepCopy

func (in *DatacenterSpecGCP) DeepCopy() *DatacenterSpecGCP

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecGCP.

func (*DatacenterSpecGCP) DeepCopyInto

func (in *DatacenterSpecGCP) DeepCopyInto(out *DatacenterSpecGCP)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecHetzner

type DatacenterSpecHetzner struct {
	// Datacenter location, e.g. "nbg1-dc3". A list of existing datacenters can be found
	// at https://docs.hetzner.com/general/others/data-centers-and-connection/
	Datacenter string `json:"datacenter"`
	// Network is the pre-existing Hetzner network in which the machines are running.
	// While machines can be in multiple networks, a single one must be chosen for the
	// HCloud CCM to work.
	Network string `json:"network"`
	// Optional: Detailed location of the datacenter, like "Hamburg" or "Datacenter 7".
	// For informational purposes only.
	Location string `json:"location,omitempty"`
}

DatacenterSpecHetzner describes a Hetzner cloud datacenter.

func (*DatacenterSpecHetzner) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecHetzner.

func (*DatacenterSpecHetzner) DeepCopyInto

func (in *DatacenterSpecHetzner) DeepCopyInto(out *DatacenterSpecHetzner)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecKubevirt

type DatacenterSpecKubevirt struct {

	// DNSPolicy represents the dns policy for the pod. Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst',
	// 'Default' or 'None'. Defaults to "ClusterFirst". DNS parameters given in DNSConfig will be merged with the
	// policy selected with DNSPolicy.
	DNSPolicy string `json:"dnsPolicy,omitempty"`

	// DNSConfig represents the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS
	// configuration based on DNSPolicy.
	DNSConfig *corev1.PodDNSConfig `json:"dnsConfig,omitempty"`

	// Optional: EnableDefaultNetworkPolicies enables deployment of default network policies like cluster isolation.
	// Defaults to true.
	EnableDefaultNetworkPolicies *bool `json:"enableDefaultNetworkPolicies,omitempty"`

	// Optional: CustomNetworkPolicies allows to add some extra custom NetworkPolicies, that are deployed
	// in the dedicated infra KubeVirt cluster. They are added to the defaults.
	CustomNetworkPolicies []CustomNetworkPolicy `json:"customNetworkPolicies,omitempty"`

	// Images represents standard VM Image sources.
	Images KubeVirtImageSources `json:"images,omitempty"`

	// Optional: InfraStorageClasses contains a list of KubeVirt infra cluster StorageClasses names
	// that will be used to initialise StorageClasses in the tenant cluster.
	// In the tenant cluster, the created StorageClass name will have as name:
	// kubevirt-<infra-storageClass-name>
	InfraStorageClasses []KubeVirtInfraStorageClass `json:"infraStorageClasses,omitempty"`
}

DatacenterSpecKubevirt describes a kubevirt datacenter.

func (*DatacenterSpecKubevirt) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecKubevirt.

func (*DatacenterSpecKubevirt) DeepCopyInto

func (in *DatacenterSpecKubevirt) DeepCopyInto(out *DatacenterSpecKubevirt)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecNutanix

type DatacenterSpecNutanix struct {
	// Endpoint to use for accessing Nutanix Prism Central. No protocol or port should be passed,
	// for example "nutanix.example.com" or "10.0.0.1"
	Endpoint string `json:"endpoint"`
	// Optional: Port to use when connecting to the Nutanix Prism Central endpoint (defaults to 9440)
	Port *int32 `json:"port,omitempty"`

	// Optional: AllowInsecure allows to disable the TLS certificate check against the endpoint (defaults to false)
	AllowInsecure bool `json:"allowInsecure,omitempty"`
	// Images to use for each supported operating system
	Images ImageList `json:"images"`
}

DatacenterSpecNutanix describes a Nutanix datacenter.

func (*DatacenterSpecNutanix) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecNutanix.

func (*DatacenterSpecNutanix) DeepCopyInto

func (in *DatacenterSpecNutanix) DeepCopyInto(out *DatacenterSpecNutanix)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecOpenstack

type DatacenterSpecOpenstack struct {
	// Authentication URL
	AuthURL string `json:"authURL"`
	// Used to configure availability zone.
	AvailabilityZone string `json:"availabilityZone,omitempty"`
	// Authentication region name
	Region string `json:"region"`
	// Optional
	IgnoreVolumeAZ bool `json:"ignoreVolumeAZ,omitempty"` //nolint:tagliatelle
	// Optional
	EnforceFloatingIP bool `json:"enforceFloatingIP,omitempty"`
	// Used for automatic network creation
	DNSServers []string `json:"dnsServers,omitempty"`
	// Images to use for each supported operating system.
	Images ImageList `json:"images"`
	// Optional: Gets mapped to the "manage-security-groups" setting in the cloud config.
	// This setting defaults to true.
	ManageSecurityGroups *bool `json:"manageSecurityGroups,omitempty"`
	// Optional: Gets mapped to the "use-octavia" setting in the cloud config.
	// use-octavia is enabled by default in CCM since v1.17.0, and disabled by
	// default with the in-tree cloud provider.
	UseOctavia *bool `json:"useOctavia,omitempty"`
	// Optional: Gets mapped to the "trust-device-path" setting in the cloud config.
	// This setting defaults to false.
	TrustDevicePath *bool `json:"trustDevicePath,omitempty"`
	// Optional: Restrict the allowed VM configurations that can be chosen in
	// the KKP dashboard. This setting does not affect the validation webhook for
	// MachineDeployments.
	NodeSizeRequirements *OpenstackNodeSizeRequirements `json:"nodeSizeRequirements,omitempty"`
	// Optional: List of enabled flavors for the given datacenter
	EnabledFlavors []string `json:"enabledFlavors,omitempty"`
	// Optional: defines if the IPv6 is enabled for the datacenter
	IPv6Enabled *bool `json:"ipv6Enabled,omitempty"`
	// Optional: configures enablement of topology support for the Cinder CSI Plugin.
	// This requires Nova and Cinder to have matching availability zones configured.
	CSICinderTopologyEnabled bool `json:"csiCinderTopologyEnabled,omitempty"`
}

DatacenterSpecOpenstack describes an OpenStack datacenter.

func (*DatacenterSpecOpenstack) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecOpenstack.

func (*DatacenterSpecOpenstack) DeepCopyInto

func (in *DatacenterSpecOpenstack) DeepCopyInto(out *DatacenterSpecOpenstack)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecPacket

type DatacenterSpecPacket struct {
	// The list of enabled facilities, for example "ams1", for a full list of available
	// facilities see https://metal.equinix.com/developers/docs/locations/facilities/
	Facilities []string `json:"facilities,omitempty"`
	// Metros are facilities that are grouped together geographically and share capacity
	// and networking features, see https://metal.equinix.com/developers/docs/locations/metros/
	Metro string `json:"metro,omitempty"`
}

DatacenterSpecPacket describes a Packet datacenter.

func (*DatacenterSpecPacket) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecPacket.

func (*DatacenterSpecPacket) DeepCopyInto

func (in *DatacenterSpecPacket) DeepCopyInto(out *DatacenterSpecPacket)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecVMwareCloudDirector added in v2.21.0

type DatacenterSpecVMwareCloudDirector struct {
	// Endpoint URL to use, including protocol, for example "https://vclouddirector.example.com".
	URL string `json:"url"`
	// If set to true, disables the TLS certificate check against the endpoint.
	AllowInsecure bool `json:"allowInsecure,omitempty"`
	// The default catalog which contains the VM templates.
	DefaultCatalog string `json:"catalog,omitempty"`
	// The name of the storage profile to use for disks attached to the VMs.
	DefaultStorageProfile string `json:"storageProfile,omitempty"`
	// A list of VM templates to use for a given operating system. You must
	// define at least one template.
	Templates ImageList `json:"templates"`
}

func (*DatacenterSpecVMwareCloudDirector) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecVMwareCloudDirector.

func (*DatacenterSpecVMwareCloudDirector) DeepCopyInto added in v2.21.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatacenterSpecVSphere

type DatacenterSpecVSphere struct {
	// Endpoint URL to use, including protocol, for example "https://vcenter.example.com".
	Endpoint string `json:"endpoint"`
	// If set to true, disables the TLS certificate check against the endpoint.
	AllowInsecure bool `json:"allowInsecure,omitempty"`
	// The default Datastore to be used for provisioning volumes using storage
	// classes/dynamic provisioning and for storing virtual machine files in
	// case no `Datastore` or `DatastoreCluster` is provided at Cluster level.
	DefaultDatastore string `json:"datastore"`
	// The name of the datacenter to use.
	Datacenter string `json:"datacenter"`
	// The name of the vSphere cluster to use. Used for out-of-tree CSI Driver.
	Cluster string `json:"cluster"`
	// The name of the storage policy to use for the storage class created in the user cluster.
	DefaultStoragePolicy string `json:"storagePolicy,omitempty"`
	// Optional: The root path for cluster specific VM folders. Each cluster gets its own
	// folder below the root folder. Must be the FQDN (for example
	// "/datacenter-1/vm/all-kubermatic-vms-in-here") and defaults to the root VM
	// folder: "/datacenter-1/vm"
	RootPath string `json:"rootPath,omitempty"`
	// A list of VM templates to use for a given operating system. You must
	// define at least one template.
	// See: https://github.com/kubermatic/machine-controller/blob/master/docs/vsphere.md#template-vms-preparation
	Templates ImageList `json:"templates"`
	// Optional: Infra management user is the user that will be used for everything
	// except the cloud provider functionality, which will still use the credentials
	// passed in via the Kubermatic dashboard/API.
	InfraManagementUser *VSphereCredentials `json:"infraManagementUser,omitempty"`
	// Optional: defines if the IPv6 is enabled for the datacenter
	IPv6Enabled *bool `json:"ipv6Enabled,omitempty"`
	// DefaultTagCategoryID is the tag category id that will be used as default, if users don't specify it on a cluster level,
	// and they don't wish KKP to create default generated tag category, upon cluster creation.
	DefaultTagCategoryID string `json:"defaultTagCategoryID,omitempty"`
}

DatacenterSpecVSphere describes a vSphere datacenter.

func (*DatacenterSpecVSphere) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatacenterSpecVSphere.

func (*DatacenterSpecVSphere) DeepCopyInto

func (in *DatacenterSpecVSphere) DeepCopyInto(out *DatacenterSpecVSphere)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DefaultProjectResourceQuota added in v2.22.0

type DefaultProjectResourceQuota struct {
	// Quota specifies the default CPU, Memory and Storage quantities for all the projects.
	Quota ResourceDetails `json:"quota,omitempty"`
}

DefaultProjectResourceQuota contains the default resource quota which will be set for all projects that do not have a custom quota already set.

func (*DefaultProjectResourceQuota) DeepCopy added in v2.22.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DefaultProjectResourceQuota.

func (*DefaultProjectResourceQuota) DeepCopyInto added in v2.22.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeploymentSettings

type DeploymentSettings struct {
	Replicas    *int32                       `json:"replicas,omitempty"`
	Resources   *corev1.ResourceRequirements `json:"resources,omitempty"`
	Tolerations []corev1.Toleration          `json:"tolerations,omitempty"`
}

func (*DeploymentSettings) DeepCopy

func (in *DeploymentSettings) DeepCopy() *DeploymentSettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSettings.

func (*DeploymentSettings) DeepCopyInto

func (in *DeploymentSettings) DeepCopyInto(out *DeploymentSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Digitalocean

type Digitalocean struct {
	ProviderPreset `json:",inline"`

	// Token is used to authenticate with the DigitalOcean API.
	Token string `json:"token"`
}

func (*Digitalocean) DeepCopy

func (in *Digitalocean) DeepCopy() *Digitalocean

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Digitalocean.

func (*Digitalocean) DeepCopyInto

func (in *Digitalocean) DeepCopyInto(out *Digitalocean)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Digitalocean) IsValid

func (s Digitalocean) IsValid() bool

type DigitaloceanCloudSpec

type DigitaloceanCloudSpec struct {
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	// Token is used to authenticate with the DigitalOcean API.
	Token string `json:"token,omitempty"`
}

DigitaloceanCloudSpec specifies access data to DigitalOcean.

func (*DigitaloceanCloudSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DigitaloceanCloudSpec.

func (*DigitaloceanCloudSpec) DeepCopyInto

func (in *DigitaloceanCloudSpec) DeepCopyInto(out *DigitaloceanCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EKS

type EKS struct {
	ProviderPreset `json:",inline"`

	// The Access key ID used to authenticate against AWS.
	AccessKeyID string `json:"accessKeyID"`
	// The Secret Access Key used to authenticate against AWS.
	SecretAccessKey string `json:"secretAccessKey"`
	// Defines the ARN for an IAM role that should be assumed when handling resources on AWS. It will be used
	// to acquire temporary security credentials using an STS AssumeRole API operation whenever creating an AWS session.
	// required: false
	AssumeRoleARN string `json:"assumeRoleARN,omitempty"` //nolint:tagliatelle
	// An arbitrary string that may be needed when calling the STS AssumeRole API operation.
	// Using an external ID can help to prevent the "confused deputy problem".
	// required: false
	AssumeRoleExternalID string `json:"assumeRoleExternalID,omitempty"`
}

func (*EKS) DeepCopy

func (in *EKS) DeepCopy() *EKS

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EKS.

func (*EKS) DeepCopyInto

func (in *EKS) DeepCopyInto(out *EKS)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (EKS) IsValid

func (s EKS) IsValid() bool

type EdgeCloudSpec added in v2.25.0

type EdgeCloudSpec struct{}

EdgeCloudSpec specifies access data for an edge cluster.

func (*EdgeCloudSpec) DeepCopy added in v2.25.0

func (in *EdgeCloudSpec) DeepCopy() *EdgeCloudSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgeCloudSpec.

func (*EdgeCloudSpec) DeepCopyInto added in v2.25.0

func (in *EdgeCloudSpec) DeepCopyInto(out *EdgeCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EncryptionConfiguration added in v2.21.0

type EncryptionConfiguration struct {
	// Enables encryption-at-rest on this cluster.
	Enabled bool `json:"enabled"`

	// List of resources that will be stored encrypted in etcd.
	Resources []string `json:"resources"`
	// Configuration for the `secretbox` static key encryption scheme as supported by Kubernetes.
	// More info: https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/#providers
	Secretbox *SecretboxEncryptionConfiguration `json:"secretbox,omitempty"`
}

EncryptionConfiguration configures encryption-at-rest for Kubernetes API data.

func (*EncryptionConfiguration) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EncryptionConfiguration.

func (*EncryptionConfiguration) DeepCopyInto added in v2.21.0

func (in *EncryptionConfiguration) DeepCopyInto(out *EncryptionConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EnvoyLoadBalancerService added in v2.20.2

type EnvoyLoadBalancerService struct {
	// Annotations are used to further tweak the LoadBalancer integration with the
	// cloud provider.
	Annotations map[string]string `json:"annotations,omitempty"`
	// SourceRanges will restrict loadbalancer service to IP ranges specified using CIDR notation like 172.25.0.0/16.
	// This field will be ignored if the cloud-provider does not support the feature.
	// More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
	SourceRanges []CIDR `json:"sourceRanges,omitempty"`
}

func (*EnvoyLoadBalancerService) DeepCopy added in v2.20.2

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyLoadBalancerService.

func (*EnvoyLoadBalancerService) DeepCopyInto added in v2.20.2

func (in *EnvoyLoadBalancerService) DeepCopyInto(out *EnvoyLoadBalancerService)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdBackupConfig

type EtcdBackupConfig struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes details of an Etcd backup.
	Spec   EtcdBackupConfigSpec   `json:"spec,omitempty"`
	Status EtcdBackupConfigStatus `json:"status,omitempty"`
}

EtcdBackupConfig describes how snapshots of user cluster etcds should be performed. Each user cluster automatically gets a default EtcdBackupConfig in its cluster namespace.

func (*EtcdBackupConfig) DeepCopy

func (in *EtcdBackupConfig) DeepCopy() *EtcdBackupConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdBackupConfig.

func (*EtcdBackupConfig) DeepCopyInto

func (in *EtcdBackupConfig) DeepCopyInto(out *EtcdBackupConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EtcdBackupConfig) DeepCopyObject

func (in *EtcdBackupConfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*EtcdBackupConfig) GetKeptBackupsCount

func (bc *EtcdBackupConfig) GetKeptBackupsCount() int

type EtcdBackupConfigCondition

type EtcdBackupConfigCondition struct {
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// Last time we got an update on a given condition.
	LastHeartbeatTime metav1.Time `json:"lastHeartbeatTime"`
	// Last time the condition transit from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// (brief) reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Human readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

func (*EtcdBackupConfigCondition) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdBackupConfigCondition.

func (*EtcdBackupConfigCondition) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdBackupConfigConditionType

type EtcdBackupConfigConditionType string

EtcdBackupConfigConditionType is used to indicate the type of a EtcdBackupConfig condition. For all condition types, the `true` value must indicate success. All condition types must be registered within the `AllClusterConditionTypes` variable.

const (
	// EtcdBackupConfigConditionSchedulingActive indicates that the EtcdBackupConfig is active, i.e.
	// new backups are being scheduled according to the config's schedule.
	EtcdBackupConfigConditionSchedulingActive EtcdBackupConfigConditionType = "SchedulingActive"
)

type EtcdBackupConfigList

type EtcdBackupConfigList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items is a list of EtcdBackupConfig objects.
	Items []EtcdBackupConfig `json:"items"`
}

EtcdBackupConfigList is a list of etcd backup configs.

func (*EtcdBackupConfigList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdBackupConfigList.

func (*EtcdBackupConfigList) DeepCopyInto

func (in *EtcdBackupConfigList) DeepCopyInto(out *EtcdBackupConfigList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EtcdBackupConfigList) DeepCopyObject

func (in *EtcdBackupConfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type EtcdBackupConfigSpec

type EtcdBackupConfigSpec struct {
	// Name defines the name of the backup
	// The name of the backup file in S3 will be <cluster>-<backup name>
	// If a schedule is set (see below), -<timestamp> will be appended.
	Name string `json:"name"`
	// Cluster is the reference to the cluster whose etcd will be backed up
	Cluster corev1.ObjectReference `json:"cluster"`
	// Schedule is a cron expression defining when to perform
	// the backup. If not set, the backup is performed exactly
	// once, immediately.
	Schedule string `json:"schedule,omitempty"`
	// Keep is the number of backups to keep around before deleting the oldest one
	// If not set, defaults to DefaultKeptBackupsCount. Only used if Schedule is set.
	Keep *int `json:"keep,omitempty"`
	// Destination indicates where the backup will be stored. The destination name must correspond to a destination in
	// the cluster's Seed.Spec.EtcdBackupRestore.
	Destination string `json:"destination"`
}

EtcdBackupConfigSpec specifies details of an etcd backup.

func (*EtcdBackupConfigSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdBackupConfigSpec.

func (*EtcdBackupConfigSpec) DeepCopyInto

func (in *EtcdBackupConfigSpec) DeepCopyInto(out *EtcdBackupConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdBackupConfigStatus

type EtcdBackupConfigStatus struct {
	// CurrentBackups tracks the creation and deletion progress of all backups managed by the EtcdBackupConfig
	CurrentBackups []BackupStatus `json:"currentBackups,omitempty"`
	// Conditions contains conditions of the EtcdBackupConfig
	Conditions map[EtcdBackupConfigConditionType]EtcdBackupConfigCondition `json:"conditions,omitempty"`
	// If the controller was configured with a cleanupContainer, CleanupRunning keeps track of the corresponding job
	CleanupRunning bool `json:"cleanupRunning,omitempty"`
}

func (*EtcdBackupConfigStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdBackupConfigStatus.

func (*EtcdBackupConfigStatus) DeepCopyInto

func (in *EtcdBackupConfigStatus) DeepCopyInto(out *EtcdBackupConfigStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdBackupRestore

type EtcdBackupRestore struct {
	// Destinations stores all the possible destinations where the backups for the Seed can be stored. If not empty,
	// it enables automatic backup and restore for the seed.
	Destinations map[string]*BackupDestination `json:"destinations,omitempty"`

	// DefaultDestination marks the default destination that will be used for the default etcd backup config which is
	// created for every user cluster. Has to correspond to a destination in Destinations.
	// If removed, it removes the related default etcd backup configs.
	DefaultDestination string `json:"defaultDestination,omitempty"`
}

EtcdBackupRestore holds the configuration of the automatic backup and restores.

func (*EtcdBackupRestore) DeepCopy

func (in *EtcdBackupRestore) DeepCopy() *EtcdBackupRestore

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdBackupRestore.

func (*EtcdBackupRestore) DeepCopyInto

func (in *EtcdBackupRestore) DeepCopyInto(out *EtcdBackupRestore)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdRestore

type EtcdRestore struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes details of an etcd restore.
	Spec   EtcdRestoreSpec   `json:"spec,omitempty"`
	Status EtcdRestoreStatus `json:"status,omitempty"`
}

EtcdRestore specifies an add-on.

func (*EtcdRestore) DeepCopy

func (in *EtcdRestore) DeepCopy() *EtcdRestore

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdRestore.

func (*EtcdRestore) DeepCopyInto

func (in *EtcdRestore) DeepCopyInto(out *EtcdRestore)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EtcdRestore) DeepCopyObject

func (in *EtcdRestore) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type EtcdRestoreList

type EtcdRestoreList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items is the list of the Etcd restores.
	Items []EtcdRestore `json:"items"`
}

EtcdRestoreList is a list of etcd restores.

func (*EtcdRestoreList) DeepCopy

func (in *EtcdRestoreList) DeepCopy() *EtcdRestoreList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdRestoreList.

func (*EtcdRestoreList) DeepCopyInto

func (in *EtcdRestoreList) DeepCopyInto(out *EtcdRestoreList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EtcdRestoreList) DeepCopyObject

func (in *EtcdRestoreList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type EtcdRestorePhase

type EtcdRestorePhase string

EtcdRestorePhase represents the lifecycle phase of an EtcdRestore.

const (
	// EtcdRestoreResourceName represents "Resource" defined in Kubernetes.
	EtcdRestoreResourceName = "etcdrestores"

	// EtcdRestoreKindName represents "Kind" defined in Kubernetes.
	EtcdRestoreKindName = "EtcdRestore"

	// EtcdRestorePhaseStarted value indicating that the restore has started.
	EtcdRestorePhaseStarted EtcdRestorePhase = "Started"

	// EtcdRestorePhaseStsRebuilding value indicating that the old Etcd statefulset has been deleted and is now rebuilding.
	EtcdRestorePhaseStsRebuilding EtcdRestorePhase = "StsRebuilding"

	// EtcdRestorePhaseCompleted value indicating that the old Etcd statefulset has completed successfully.
	EtcdRestorePhaseCompleted EtcdRestorePhase = "Completed"

	// EtcdRestorePhaseEtcdLauncherNotEnabled value indicating that etcd-launcher is not enabled.
	EtcdRestorePhaseEtcdLauncherNotEnabled EtcdRestorePhase = "EtcdLauncherNotEnabled"
)

type EtcdRestoreSpec

type EtcdRestoreSpec struct {
	// Name defines the name of the restore
	// The name of the restore file in S3 will be <cluster>-<restore name>
	// If a schedule is set (see below), -<timestamp> will be appended.
	Name string `json:"name"`
	// Cluster is the reference to the cluster whose etcd will be backed up
	Cluster corev1.ObjectReference `json:"cluster"`
	// BackupName is the name of the backup to restore from
	BackupName string `json:"backupName"`
	// BackupDownloadCredentialsSecret is the name of a secret in the cluster-xxx namespace containing
	// credentials needed to download the backup
	BackupDownloadCredentialsSecret string `json:"backupDownloadCredentialsSecret,omitempty"`
	// Destination indicates where the backup was stored. The destination name should correspond to a destination in
	// the cluster's Seed.Spec.EtcdBackupRestore. If empty, it will use the legacy destination configured in Seed.Spec.BackupRestore
	Destination string `json:"destination,omitempty"`
}

EtcdRestoreSpec specifies details of an etcd restore.

func (*EtcdRestoreSpec) DeepCopy

func (in *EtcdRestoreSpec) DeepCopy() *EtcdRestoreSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdRestoreSpec.

func (*EtcdRestoreSpec) DeepCopyInto

func (in *EtcdRestoreSpec) DeepCopyInto(out *EtcdRestoreSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdRestoreStatus

type EtcdRestoreStatus struct {
	Phase EtcdRestorePhase `json:"phase"`
	// +optional
	RestoreTime metav1.Time `json:"restoreTime,omitempty"`
}

func (*EtcdRestoreStatus) DeepCopy

func (in *EtcdRestoreStatus) DeepCopy() *EtcdRestoreStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdRestoreStatus.

func (*EtcdRestoreStatus) DeepCopyInto

func (in *EtcdRestoreStatus) DeepCopyInto(out *EtcdRestoreStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdStatefulSetSettings

type EtcdStatefulSetSettings struct {
	// ClusterSize is the number of replicas created for etcd. This should be an
	// odd number to guarantee consensus, e.g. 3, 5 or 7.
	ClusterSize *int32 `json:"clusterSize,omitempty"`
	// StorageClass is the Kubernetes StorageClass used for persistent storage
	// which stores the etcd WAL and other data persisted across restarts. Defaults to
	// `kubermatic-fast` (the global default).
	StorageClass string `json:"storageClass,omitempty"`
	// DiskSize is the volume size used when creating persistent storage from
	// the configured StorageClass. This is inherited from KubermaticConfiguration
	// if not set. Defaults to 5Gi.
	DiskSize *resource.Quantity `json:"diskSize,omitempty"`
	// Resources allows to override the resource requirements for etcd Pods.
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
	// Tolerations allows to override the scheduling tolerations for etcd Pods.
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// HostAntiAffinity allows to enforce a certain type of host anti-affinity on etcd
	// pods. Options are "preferred" (default) and "required". Please note that
	// enforcing anti-affinity via "required" can mean that pods are never scheduled.
	HostAntiAffinity AntiAffinityType `json:"hostAntiAffinity,omitempty"`
	// ZoneAntiAffinity allows to enforce a certain type of availability zone anti-affinity on etcd
	// pods. Options are "preferred" (default) and "required". Please note that
	// enforcing anti-affinity via "required" can mean that pods are never scheduled.
	ZoneAntiAffinity AntiAffinityType `json:"zoneAntiAffinity,omitempty"`
	// NodeSelector is a selector which restricts the set of nodes where etcd Pods can run.
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
}

func (*EtcdStatefulSetSettings) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdStatefulSetSettings.

func (*EtcdStatefulSetSettings) DeepCopyInto

func (in *EtcdStatefulSetSettings) DeepCopyInto(out *EtcdStatefulSetSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EventRateLimitConfig

type EventRateLimitConfig struct {
	Server          *EventRateLimitConfigItem `json:"server,omitempty"`
	Namespace       *EventRateLimitConfigItem `json:"namespace,omitempty"`
	User            *EventRateLimitConfigItem `json:"user,omitempty"`
	SourceAndObject *EventRateLimitConfigItem `json:"sourceAndObject,omitempty"`
}

EventRateLimitConfig configures the `EventRateLimit` admission plugin. More info: https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#eventratelimit

func (*EventRateLimitConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventRateLimitConfig.

func (*EventRateLimitConfig) DeepCopyInto

func (in *EventRateLimitConfig) DeepCopyInto(out *EventRateLimitConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EventRateLimitConfigItem

type EventRateLimitConfigItem struct {
	QPS       int32 `json:"qps"`
	Burst     int32 `json:"burst"`
	CacheSize int32 `json:"cacheSize,omitempty"`
}

func (*EventRateLimitConfigItem) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventRateLimitConfigItem.

func (*EventRateLimitConfigItem) DeepCopyInto

func (in *EventRateLimitConfigItem) DeepCopyInto(out *EventRateLimitConfigItem)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExposeStrategiesSet

type ExposeStrategiesSet map[ExposeStrategy]struct{}

ExposeStrategiesSet is a set of ExposeStrategies.

func NewExposeStrategiesSet

func NewExposeStrategiesSet(items ...ExposeStrategy) ExposeStrategiesSet

NewByte creates a ExposeStrategiesSet from a list of values.

func (ExposeStrategiesSet) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExposeStrategiesSet.

func (ExposeStrategiesSet) DeepCopyInto

func (in ExposeStrategiesSet) DeepCopyInto(out *ExposeStrategiesSet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ExposeStrategiesSet) Has

Has returns true if and only if item is contained in the set.

func (ExposeStrategiesSet) Items

func (e ExposeStrategiesSet) Items() []string

func (ExposeStrategiesSet) String

func (e ExposeStrategiesSet) String() string

Has returns true if and only if item is contained in the set.

type ExposeStrategy

type ExposeStrategy string

ExposeStrategy is the strategy used to expose a cluster control plane. Possible values are `NodePort`, `LoadBalancer` or `Tunneling` (requires a feature gate).

const (
	// ExposeStrategyNodePort creates a NodePort with a "nodeport-proxy.k8s.io/expose": "true" annotation to expose
	// all clusters on one central Service of type LoadBalancer via the NodePort proxy.
	ExposeStrategyNodePort ExposeStrategy = "NodePort"
	// ExposeStrategyLoadBalancer creates a LoadBalancer service per cluster.
	ExposeStrategyLoadBalancer ExposeStrategy = "LoadBalancer"
	// ExposeStrategyTunneling allows to reach the control plane components by
	// tunneling L4 traffic (TCP only is supported at the moment).
	// The traffic is encapsulated by mean of an agent deployed on the worker
	// nodes.
	// The traffic is decapsulated and forwarded to the recipients by
	// mean of a proxy deployed on the Seed Cluster.
	// The same proxy is also capable of routing TLS traffic without
	// termination, this is to allow the Kubelet to reach the control plane
	// before the agents are running.
	//
	// This strategy has the inconvenience of requiring an agent on worker
	// nodes, but has the notable advantage of requiring one single entry point
	// (e.g. Service of type LoadBalancer) without consuming one or more ports
	// for each user cluster.
	ExposeStrategyTunneling ExposeStrategy = "Tunneling"
)

func ExposeStrategyFromString

func ExposeStrategyFromString(s string) (ExposeStrategy, bool)

ExposeStrategyFromString returns the expose strategy which String representation corresponds to the input string, and a bool saying whether a match was found or not.

func (ExposeStrategy) String

func (e ExposeStrategy) String() string

String returns the string representation of the ExposeStrategy.

type ExtendedClusterHealth

type ExtendedClusterHealth struct {
	Apiserver         HealthStatus `json:"apiserver,omitempty"`
	Scheduler         HealthStatus `json:"scheduler,omitempty"`
	Controller        HealthStatus `json:"controller,omitempty"`
	MachineController HealthStatus `json:"machineController,omitempty"`
	Etcd              HealthStatus `json:"etcd,omitempty"`
	//  Deprecated: OpenVPN will be removed entirely in the future.
	OpenVPN                      HealthStatus  `json:"openvpn,omitempty"`
	Konnectivity                 HealthStatus  `json:"konnectivity,omitempty"`
	CloudProviderInfrastructure  HealthStatus  `json:"cloudProviderInfrastructure,omitempty"`
	UserClusterControllerManager HealthStatus  `json:"userClusterControllerManager,omitempty"`
	ApplicationController        HealthStatus  `json:"applicationController,omitempty"`
	GatekeeperController         *HealthStatus `json:"gatekeeperController,omitempty"`
	GatekeeperAudit              *HealthStatus `json:"gatekeeperAudit,omitempty"`
	Monitoring                   *HealthStatus `json:"monitoring,omitempty"`
	Logging                      *HealthStatus `json:"logging,omitempty"`
	AlertmanagerConfig           *HealthStatus `json:"alertmanagerConfig,omitempty"`
	MLAGateway                   *HealthStatus `json:"mlaGateway,omitempty"`
	OperatingSystemManager       *HealthStatus `json:"operatingSystemManager,omitempty"`
	KubernetesDashboard          *HealthStatus `json:"kubernetesDashboard,omitempty"`
	KubeLB                       *HealthStatus `json:"kubelb,omitempty"`
}

ExtendedClusterHealth stores health information of a cluster.

func (*ExtendedClusterHealth) AllHealthy

func (h *ExtendedClusterHealth) AllHealthy() bool

AllHealthy returns true if all components are healthy. Gatekeeper components not included as they are optional and not crucial for cluster functioning.

func (*ExtendedClusterHealth) ApplicationControllerHealthy added in v2.21.0

func (h *ExtendedClusterHealth) ApplicationControllerHealthy() bool

ApplicationControllerHealthy checks for health of all essential components and the ApplicationController.

func (*ExtendedClusterHealth) ControlPlaneHealthy added in v2.21.0

func (h *ExtendedClusterHealth) ControlPlaneHealthy() bool

ControlPlaneHealthy returns if all Kubernetes control plane components are healthy.

func (*ExtendedClusterHealth) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtendedClusterHealth.

func (*ExtendedClusterHealth) DeepCopyInto

func (in *ExtendedClusterHealth) DeepCopyInto(out *ExtendedClusterHealth)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalCluster

type ExternalCluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes the desired cluster state.
	Spec ExternalClusterSpec `json:"spec"`

	// Status contains reconciliation information for the cluster.
	Status ExternalClusterStatus `json:"status,omitempty"`
}

ExternalCluster is the object representing an external kubernetes cluster.

func (*ExternalCluster) DeepCopy

func (in *ExternalCluster) DeepCopy() *ExternalCluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalCluster.

func (*ExternalCluster) DeepCopyInto

func (in *ExternalCluster) DeepCopyInto(out *ExternalCluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ExternalCluster) DeepCopyObject

func (in *ExternalCluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ExternalCluster) GetCredentialsSecretName

func (i *ExternalCluster) GetCredentialsSecretName() string

func (*ExternalCluster) GetKubeOneCredentialsSecretName added in v2.22.0

func (i *ExternalCluster) GetKubeOneCredentialsSecretName() string

func (*ExternalCluster) GetKubeOneManifestSecretName added in v2.22.0

func (i *ExternalCluster) GetKubeOneManifestSecretName() string

func (*ExternalCluster) GetKubeOneNamespaceName added in v2.22.0

func (i *ExternalCluster) GetKubeOneNamespaceName() string

func (*ExternalCluster) GetKubeOneSSHSecretName added in v2.22.0

func (i *ExternalCluster) GetKubeOneSSHSecretName() string

func (*ExternalCluster) GetKubeconfigSecretName

func (i *ExternalCluster) GetKubeconfigSecretName() string

type ExternalClusterAKSCloudSpec

type ExternalClusterAKSCloudSpec struct {
	// CredentialsReference allows referencing a `Secret` resource instead of passing secret data in this spec.
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference"`

	Name string `json:"name"`
	// The Azure Active Directory Tenant used for this cluster.
	// Can be read from `credentialsReference` instead.
	TenantID string `json:"tenantID,omitempty"`
	// The Azure Subscription used for this cluster.
	// Can be read from `credentialsReference` instead.
	SubscriptionID string `json:"subscriptionID,omitempty"`
	// The service principal used to access Azure.
	// Can be read from `credentialsReference` instead.
	ClientID string `json:"clientID,omitempty"`
	// The client secret corresponding to the given service principal.
	// Can be read from `credentialsReference` instead.
	ClientSecret string `json:"clientSecret,omitempty"`
	// The geo-location where the resource lives
	Location string `json:"location"`
	// The resource group that will be used to look up and create resources for the cluster in.
	// If set to empty string at cluster creation, a new resource group will be created and this field will be updated to
	// the generated resource group's name.
	ResourceGroup string `json:"resourceGroup"`
}

func (*ExternalClusterAKSCloudSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalClusterAKSCloudSpec.

func (*ExternalClusterAKSCloudSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalClusterBringYourOwnCloudSpec added in v2.21.0

type ExternalClusterBringYourOwnCloudSpec struct{}

func (*ExternalClusterBringYourOwnCloudSpec) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalClusterBringYourOwnCloudSpec.

func (*ExternalClusterBringYourOwnCloudSpec) DeepCopyInto added in v2.21.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalClusterCloudSpec

type ExternalClusterCloudSpec struct {
	ProviderName ExternalClusterProvider               `json:"providerName"`
	GKE          *ExternalClusterGKECloudSpec          `json:"gke,omitempty"`
	EKS          *ExternalClusterEKSCloudSpec          `json:"eks,omitempty"`
	AKS          *ExternalClusterAKSCloudSpec          `json:"aks,omitempty"`
	KubeOne      *ExternalClusterKubeOneCloudSpec      `json:"kubeone,omitempty"`
	BringYourOwn *ExternalClusterBringYourOwnCloudSpec `json:"bringyourown,omitempty"`
}

ExternalClusterCloudSpec mutually stores access data to a cloud provider.

func (*ExternalClusterCloudSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalClusterCloudSpec.

func (*ExternalClusterCloudSpec) DeepCopyInto

func (in *ExternalClusterCloudSpec) DeepCopyInto(out *ExternalClusterCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalClusterCondition added in v2.21.0

type ExternalClusterCondition struct {
	Phase ExternalClusterPhase `json:"phase"`
	// Human readable message indicating details about last transition.
	Message string `json:"message,omitempty"`
}

func (*ExternalClusterCondition) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalClusterCondition.

func (*ExternalClusterCondition) DeepCopyInto added in v2.21.0

func (in *ExternalClusterCondition) DeepCopyInto(out *ExternalClusterCondition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalClusterEKSCloudSpec

type ExternalClusterEKSCloudSpec struct {
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference"`

	Name string `json:"name"`
	// The Access key ID used to authenticate against AWS.
	// Can be read from `credentialsReference` instead.
	AccessKeyID string `json:"accessKeyID,omitempty"`
	// The Secret Access Key used to authenticate against AWS.
	// Can be read from `credentialsReference` instead.
	SecretAccessKey string `json:"secretAccessKey,omitempty"`
	Region          string `json:"region"`
	// The Amazon Resource Name (ARN) of the IAM role that provides permissions
	// for the Kubernetes control plane to make calls to Amazon Web Services API
	// operations on your behalf.
	ControlPlaneRoleARN string `json:"roleArn,omitempty"`
	// The VPC associated with your cluster.
	VPCID string `json:"vpcID,omitempty"`
	// The subnets associated with your cluster.
	SubnetIDs []string `json:"subnetIDs,omitempty"`
	// The security groups associated with the cross-account elastic network interfaces
	// that are used to allow communication between your nodes and the Kubernetes
	// control plane.
	SecurityGroupIDs []string `json:"securityGroupIDs,omitempty"`

	// The ARN for an IAM role that should be assumed when handling resources on AWS. It will be used
	// to acquire temporary security credentials using an STS AssumeRole API operation whenever creating an AWS session.
	// required: false
	AssumeRoleARN string `json:"assumeRoleARN,omitempty"` //nolint:tagliatelle
	// An arbitrary string that may be needed when calling the STS AssumeRole API operation.
	// Using an external ID can help to prevent the "confused deputy problem".
	// required: false
	AssumeRoleExternalID string `json:"assumeRoleExternalID,omitempty"`
}

func (*ExternalClusterEKSCloudSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalClusterEKSCloudSpec.

func (*ExternalClusterEKSCloudSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalClusterGKECloudSpec

type ExternalClusterGKECloudSpec struct {
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference"`

	Name string `json:"name"`
	// ServiceAccount: The Google Cloud Platform Service Account.
	// Can be read from `credentialsReference` instead.
	ServiceAccount string `json:"serviceAccount,omitempty"`
	// Zone: The name of the Google Compute Engine zone
	// (https://cloud.google.com/compute/docs/zones#available) in which the
	// cluster resides.
	Zone string `json:"zone"`
}

func (*ExternalClusterGKECloudSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalClusterGKECloudSpec.

func (*ExternalClusterGKECloudSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalClusterKubeOneCloudSpec added in v2.21.0

type ExternalClusterKubeOneCloudSpec struct {
	// The name of the cloud provider used, one of
	// "aws", "azure", "digitalocean", "gcp",
	// "hetzner", "nutanix", "openstack", "packet", "vsphere" KubeOne natively-supported providers
	ProviderName string `json:"providerName"`

	// The cloud provider region in which the cluster resides.
	// This field is used only to display information.
	Region string `json:"region,omitempty"`

	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference,omitempty"`
	SSHReference         *providerconfig.GlobalSecretKeySelector `json:"sshReference,omitempty"`
	ManifestReference    *providerconfig.GlobalSecretKeySelector `json:"manifestReference,omitempty"`
}

func (*ExternalClusterKubeOneCloudSpec) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalClusterKubeOneCloudSpec.

func (*ExternalClusterKubeOneCloudSpec) DeepCopyInto added in v2.21.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalClusterList

type ExternalClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items holds the list of the External Kubernetes cluster.
	Items []ExternalCluster `json:"items"`
}

ExternalClusterList specifies a list of external kubernetes clusters.

func (*ExternalClusterList) DeepCopy

func (in *ExternalClusterList) DeepCopy() *ExternalClusterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalClusterList.

func (*ExternalClusterList) DeepCopyInto

func (in *ExternalClusterList) DeepCopyInto(out *ExternalClusterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ExternalClusterList) DeepCopyObject

func (in *ExternalClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ExternalClusterNetworkRanges added in v2.22.0

type ExternalClusterNetworkRanges struct {
	CIDRBlocks []string `json:"cidrBlocks,omitempty"`
}

ExternalClusterNetworkRanges represents ranges of network addresses.

func (*ExternalClusterNetworkRanges) DeepCopy added in v2.22.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalClusterNetworkRanges.

func (*ExternalClusterNetworkRanges) DeepCopyInto added in v2.22.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalClusterNetworkingConfig added in v2.22.0

type ExternalClusterNetworkingConfig struct {
	// The network ranges from which service VIPs are allocated.
	// It can contain one IPv4 and/or one IPv6 CIDR.
	// If both address families are specified, the first one defines the primary address family.
	Services ExternalClusterNetworkRanges `json:"services,omitempty"`

	// The network ranges from which POD networks are allocated.
	// It can contain one IPv4 and/or one IPv6 CIDR.
	// If both address families are specified, the first one defines the primary address family.
	Pods ExternalClusterNetworkRanges `json:"pods,omitempty"`
}

ExternalClusterNetworkingConfig specifies the different networking parameters for an external cluster.

func (*ExternalClusterNetworkingConfig) DeepCopy added in v2.22.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalClusterNetworkingConfig.

func (*ExternalClusterNetworkingConfig) DeepCopyInto added in v2.22.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalClusterPhase added in v2.21.0

type ExternalClusterPhase string
const (
	// ExternalClusterPhaseProvisioning status indicates the cluster is being imported.
	ExternalClusterPhaseProvisioning ExternalClusterPhase = "Provisioning"

	// ExternalClusterPhaseRunning status indicates the cluster is fully usable.
	ExternalClusterPhaseRunning ExternalClusterPhase = "Running"

	ExternalClusterPhaseStarting ExternalClusterPhase = "Starting"

	ExternalClusterPhaseStopping ExternalClusterPhase = "Stopping"

	ExternalClusterPhaseStopped ExternalClusterPhase = "Stopped"

	ExternalClusterPhaseWarning ExternalClusterPhase = "Warning"

	// ExternalClusterPhaseReconciling status indicates that some work is actively being done on the cluster, such as upgrading the master or
	// node software. Details can be found in the `StatusMessage` field.
	ExternalClusterPhaseReconciling ExternalClusterPhase = "Reconciling"

	KubeOnePhaseReconcilingUpgrade ExternalClusterPhase = "ReconcilingUpgrade"

	KubeOnePhaseReconcilingMigrate ExternalClusterPhase = "ReconcilingMigrate"

	// ExternalClusterPhaseDeleting status indicates the cluster is being deleted.
	ExternalClusterPhaseDeleting ExternalClusterPhase = "Deleting"

	// ExternalClusterPhaseUnknown Not set.
	ExternalClusterPhaseUnknown ExternalClusterPhase = "Unknown"

	// ExternalClusterPhaseError status indicates the cluster is unusable. Details can be found in the
	// `statusMessage` field.
	ExternalClusterPhaseError ExternalClusterPhase = "Error"

	// ExternalClusterPhaseRuntimeError status indicates cluster runtime error. Details can be found in the
	// `statusMessage` field.
	ExternalClusterPhaseRuntimeError ExternalClusterPhase = "RuntimeError"

	// ExternalClusterPhaseEtcdError status indicates cluster etcd error. Details can be found in the
	// `statusMessage` field.
	ExternalClusterPhaseEtcdError ExternalClusterPhase = "EtcdError"

	// ExternalClusterPhaseKubeClientError status indicates cluster kubeclient. Details can be found in the
	// `statusMessage` field.
	ExternalClusterPhaseKubeClientError ExternalClusterPhase = "KubeClientError"

	// KubeOneExternalClusterPhaseSSHError status indicates cluster ssh error. Details can be found in the
	// `statusMessage` field.
	ExternalClusterPhaseSSHError ExternalClusterPhase = "SSHError"

	// ExternalClusterPhaseConnectionError status indicates cluster connection error. Details can be found in the
	// `statusMessage` field.
	ExternalClusterPhaseConnectionError ExternalClusterPhase = "ConnectionError"

	// ExternalClusterPhaseConfigError status indicates cluster config error. Details can be found in the
	// `statusMessage` field.
	ExternalClusterPhaseConfigError ExternalClusterPhase = "ConfigError"
)

type ExternalClusterProvider added in v2.21.0

type ExternalClusterProvider string

ExternalClusterProvider is the identifier for the cloud provider that hosts the external cluster control plane.

const (
	ExternalClusterAKSProvider          ExternalClusterProvider = "aks"
	ExternalClusterBringYourOwnProvider ExternalClusterProvider = "bringyourown"
	ExternalClusterEKSProvider          ExternalClusterProvider = "eks"
	ExternalClusterGKEProvider          ExternalClusterProvider = "gke"
	ExternalClusterKubeOneProvider      ExternalClusterProvider = "kubeone"
)

type ExternalClusterProviderType added in v2.21.0

type ExternalClusterProviderType string

ExternalClusterProviderType is used to indicate ExternalCluster Provider Types.

const (
	EKSProviderType ExternalClusterProviderType = "eks"
	GKEProviderType ExternalClusterProviderType = "gke"
	AKSProviderType ExternalClusterProviderType = "aks"
)

type ExternalClusterProviderVersioningConfiguration added in v2.21.0

type ExternalClusterProviderVersioningConfiguration struct {
	// Versions lists the available versions.
	Versions []semver.Semver `json:"versions,omitempty"`
	// Default is the default version to offer users.
	Default *semver.Semver `json:"default,omitempty"`
	// Updates is a list of available upgrades.
	Updates []semver.Semver `json:"updates,omitempty"`
}

ExternalClusterProviderVersioningConfiguration configures the available and default Kubernetes versions for ExternalCluster Providers.

func (*ExternalClusterProviderVersioningConfiguration) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalClusterProviderVersioningConfiguration.

func (*ExternalClusterProviderVersioningConfiguration) DeepCopyInto added in v2.21.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalClusterSpec

type ExternalClusterSpec struct {
	// HumanReadableName is the cluster name provided by the user
	HumanReadableName string `json:"humanReadableName"`

	// Reference to cluster Kubeconfig
	KubeconfigReference *providerconfig.GlobalSecretKeySelector `json:"kubeconfigReference,omitempty"`

	// Defines the wanted version of the control plane.
	Version semver.Semver `json:"version"`

	// CloudSpec contains provider specific fields
	CloudSpec ExternalClusterCloudSpec `json:"cloudSpec"`

	// ClusterNetwork contains the different networking parameters for an external cluster.
	ClusterNetwork ExternalClusterNetworkingConfig `json:"clusterNetwork,omitempty"`

	// ContainerRuntime to use, i.e. `docker` or `containerd`.
	ContainerRuntime string `json:"containerRuntime,omitempty"`

	// If this is set to true, the cluster will not be reconciled by KKP.
	// This indicates that the user needs to do some action to resolve the pause.
	Pause bool `json:"pause"`

	// PauseReason is the reason why the cluster is not being managed. This field is for informational
	// purpose only and can be set by a user or a controller to communicate the reason for pausing the cluster.
	PauseReason string `json:"pauseReason,omitempty"`
}

ExternalClusterSpec specifies the data for a new external kubernetes cluster.

func (*ExternalClusterSpec) DeepCopy

func (in *ExternalClusterSpec) DeepCopy() *ExternalClusterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalClusterSpec.

func (*ExternalClusterSpec) DeepCopyInto

func (in *ExternalClusterSpec) DeepCopyInto(out *ExternalClusterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalClusterStatus added in v2.21.0

type ExternalClusterStatus struct {
	// Conditions contains conditions an externalcluster is in, its primary use case is status signaling for controller
	Condition ExternalClusterCondition `json:"condition,omitempty"`
}

ExternalClusterStatus denotes status information about an ExternalCluster.

func (*ExternalClusterStatus) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalClusterStatus.

func (*ExternalClusterStatus) DeepCopyInto added in v2.21.0

func (in *ExternalClusterStatus) DeepCopyInto(out *ExternalClusterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Fake

type Fake struct {
	ProviderPreset `json:",inline"`

	Token string `json:"token"`
}

func (*Fake) DeepCopy

func (in *Fake) DeepCopy() *Fake

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Fake.

func (*Fake) DeepCopyInto

func (in *Fake) DeepCopyInto(out *Fake)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Fake) IsValid

func (s Fake) IsValid() bool

type FakeCloudSpec

type FakeCloudSpec struct {
	Token string `json:"token,omitempty"`
}

FakeCloudSpec specifies access data for a fake cloud.

func (*FakeCloudSpec) DeepCopy

func (in *FakeCloudSpec) DeepCopy() *FakeCloudSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FakeCloudSpec.

func (*FakeCloudSpec) DeepCopyInto

func (in *FakeCloudSpec) DeepCopyInto(out *FakeCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GCP

type GCP struct {
	ProviderPreset `json:",inline"`

	// ServiceAccount is the Google Service Account (JSON format), encoded with base64.
	ServiceAccount string `json:"serviceAccount"`

	Network    string `json:"network,omitempty"`
	Subnetwork string `json:"subnetwork,omitempty"`
}

func (*GCP) DeepCopy

func (in *GCP) DeepCopy() *GCP

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCP.

func (*GCP) DeepCopyInto

func (in *GCP) DeepCopyInto(out *GCP)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (GCP) IsValid

func (s GCP) IsValid() bool

type GCPCloudSpec

type GCPCloudSpec struct {
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	// The Google Service Account (JSON format), encoded with base64.
	ServiceAccount string `json:"serviceAccount,omitempty"`
	Network        string `json:"network"`
	Subnetwork     string `json:"subnetwork"`
	// A CIDR range that will be used to allow access to the node port range in the firewall rules to.
	// If NodePortsAllowedIPRange nor NodePortsAllowedIPRanges is set, the node port range can be accessed from anywhere.
	NodePortsAllowedIPRange string `json:"nodePortsAllowedIPRange,omitempty"`
	// Optional: CIDR ranges that will be used to allow access to the node port range in the firewall rules to.
	// If NodePortsAllowedIPRange nor NodePortsAllowedIPRanges is set,  the node port range can be accessed from anywhere.
	NodePortsAllowedIPRanges *NetworkRanges `json:"nodePortsAllowedIPRanges,omitempty"`
}

GCPCloudSpec specifies access data to GCP.

func (*GCPCloudSpec) DeepCopy

func (in *GCPCloudSpec) DeepCopy() *GCPCloudSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPCloudSpec.

func (*GCPCloudSpec) DeepCopyInto

func (in *GCPCloudSpec) DeepCopyInto(out *GCPCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GKE

type GKE struct {
	ProviderPreset `json:",inline"`

	ServiceAccount string `json:"serviceAccount"`
}

func (*GKE) DeepCopy

func (in *GKE) DeepCopy() *GKE

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GKE.

func (*GKE) DeepCopyInto

func (in *GKE) DeepCopyInto(out *GKE)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (GKE) IsValid

func (s GKE) IsValid() bool

type GroupProjectBinding added in v2.21.0

type GroupProjectBinding struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes an oidc group binding to a project.
	Spec GroupProjectBindingSpec `json:"spec,omitempty"`
}

GroupProjectBinding specifies a binding between a group and a project This resource is used by the user management to manipulate member groups of the given project.

func (*GroupProjectBinding) DeepCopy added in v2.21.0

func (in *GroupProjectBinding) DeepCopy() *GroupProjectBinding

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupProjectBinding.

func (*GroupProjectBinding) DeepCopyInto added in v2.21.0

func (in *GroupProjectBinding) DeepCopyInto(out *GroupProjectBinding)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GroupProjectBinding) DeepCopyObject added in v2.21.0

func (in *GroupProjectBinding) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type GroupProjectBindingList added in v2.21.0

type GroupProjectBindingList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items holds the list of the group and project bindings.
	Items []GroupProjectBinding `json:"items"`
}

GroupProjectBindingList is a list of group project bindings.

func (*GroupProjectBindingList) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupProjectBindingList.

func (*GroupProjectBindingList) DeepCopyInto added in v2.21.0

func (in *GroupProjectBindingList) DeepCopyInto(out *GroupProjectBindingList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GroupProjectBindingList) DeepCopyObject added in v2.21.0

func (in *GroupProjectBindingList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type GroupProjectBindingSpec added in v2.21.0

type GroupProjectBindingSpec struct {
	// Group is the group name that is bound to the given project.
	Group string `json:"group"`
	// ProjectID is the ID of the target project.
	// Should be a valid lowercase RFC1123 domain name
	// +kubebuilder:validation:Pattern:=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`
	// +kubebuilder:validation:MaxLength:=63
	// +kubebuilder:validation:Type=string
	ProjectID string `json:"projectID"`

	// Role is the user's role within the project, determining their permissions.
	// Possible roles are:
	// "viewers" - allowed to get/list project resources
	// "editors" - allowed to edit all project resources
	// "owners" - same as editors, but also can manage users in the project
	Role string `json:"role"`
}

GroupProjectBindingSpec specifies an oidc group binding to a project.

func (*GroupProjectBindingSpec) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupProjectBindingSpec.

func (*GroupProjectBindingSpec) DeepCopyInto added in v2.21.0

func (in *GroupProjectBindingSpec) DeepCopyInto(out *GroupProjectBindingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GroupVersionKind

type GroupVersionKind struct {
	Group   string `json:"group,omitempty"`
	Version string `json:"version,omitempty"`
	Kind    string `json:"kind,omitempty"`
}

GroupVersionKind unambiguously identifies a kind. It doesn't anonymously include GroupVersion to avoid automatic coercion. It doesn't use a GroupVersion to avoid custom marshalling.

func (*GroupVersionKind) DeepCopy

func (in *GroupVersionKind) DeepCopy() *GroupVersionKind

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupVersionKind.

func (*GroupVersionKind) DeepCopyInto

func (in *GroupVersionKind) DeepCopyInto(out *GroupVersionKind)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HealthStatus

type HealthStatus string

type Hetzner

type Hetzner struct {
	ProviderPreset `json:",inline"`

	// Token is used to authenticate with the Hetzner API.
	Token string `json:"token"`

	// Network is the pre-existing Hetzner network in which the machines are running.
	// While machines can be in multiple networks, a single one must be chosen for the
	// HCloud CCM to work.
	// If this is empty, the network configured on the datacenter will be used.
	Network string `json:"network,omitempty"`
}

func (*Hetzner) DeepCopy

func (in *Hetzner) DeepCopy() *Hetzner

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Hetzner.

func (*Hetzner) DeepCopyInto

func (in *Hetzner) DeepCopyInto(out *Hetzner)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Hetzner) IsValid

func (s Hetzner) IsValid() bool

type HetznerCloudSpec

type HetznerCloudSpec struct {
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	// Token is used to authenticate with the Hetzner cloud API.
	Token string `json:"token,omitempty"`
	// Network is the pre-existing Hetzner network in which the machines are running.
	// While machines can be in multiple networks, a single one must be chosen for the
	// HCloud CCM to work.
	// If this is empty, the network configured on the datacenter will be used.
	Network string `json:"network,omitempty"`
}

HetznerCloudSpec specifies access data to hetzner cloud.

func (*HetznerCloudSpec) DeepCopy

func (in *HetznerCloudSpec) DeepCopy() *HetznerCloudSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HetznerCloudSpec.

func (*HetznerCloudSpec) DeepCopyInto

func (in *HetznerCloudSpec) DeepCopyInto(out *HetznerCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IPAMAllocation added in v2.21.0

type IPAMAllocation struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec IPAMAllocationSpec `json:"spec,omitempty"`
}

IPAMAllocation is the object representing an allocation from an IPAMPool made for a particular KKP user cluster.

func (*IPAMAllocation) DeepCopy added in v2.21.0

func (in *IPAMAllocation) DeepCopy() *IPAMAllocation

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMAllocation.

func (*IPAMAllocation) DeepCopyInto added in v2.21.0

func (in *IPAMAllocation) DeepCopyInto(out *IPAMAllocation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*IPAMAllocation) DeepCopyObject added in v2.21.0

func (in *IPAMAllocation) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type IPAMAllocationList added in v2.21.0

type IPAMAllocationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []IPAMAllocation `json:"items"`
}

func (*IPAMAllocationList) DeepCopy added in v2.21.0

func (in *IPAMAllocationList) DeepCopy() *IPAMAllocationList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMAllocationList.

func (*IPAMAllocationList) DeepCopyInto added in v2.21.0

func (in *IPAMAllocationList) DeepCopyInto(out *IPAMAllocationList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*IPAMAllocationList) DeepCopyObject added in v2.21.0

func (in *IPAMAllocationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type IPAMAllocationSpec added in v2.21.0

type IPAMAllocationSpec struct {
	// Type is the allocation type that is being used.
	Type IPAMPoolAllocationType `json:"type"`
	// DC is the datacenter of the allocation.
	DC string `json:"dc"`
	// CIDR is the CIDR that is being used for the allocation.
	// Set when "type=prefix".
	CIDR SubnetCIDR `json:"cidr,omitempty"`
	// Addresses are the IP address ranges that are being used for the allocation.
	// Set when "type=range".
	Addresses []string `json:"addresses,omitempty"`
}

IPAMAllocationSpec specifies an allocation from an IPAMPool made for a particular KKP user cluster.

func (*IPAMAllocationSpec) DeepCopy added in v2.21.0

func (in *IPAMAllocationSpec) DeepCopy() *IPAMAllocationSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMAllocationSpec.

func (*IPAMAllocationSpec) DeepCopyInto added in v2.21.0

func (in *IPAMAllocationSpec) DeepCopyInto(out *IPAMAllocationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IPAMPool added in v2.21.0

type IPAMPool struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes the Multi-Cluster IP Address Management (IPAM) configuration for KKP user clusters.
	Spec IPAMPoolSpec `json:"spec,omitempty"`
}

IPAMPool is the object representing Multi-Cluster IP Address Management (IPAM) configuration for KKP user clusters.

func (*IPAMPool) DeepCopy added in v2.21.0

func (in *IPAMPool) DeepCopy() *IPAMPool

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMPool.

func (*IPAMPool) DeepCopyInto added in v2.21.0

func (in *IPAMPool) DeepCopyInto(out *IPAMPool)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*IPAMPool) DeepCopyObject added in v2.21.0

func (in *IPAMPool) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type IPAMPoolAllocationType added in v2.21.0

type IPAMPoolAllocationType string

+kubebuilder:validation:Enum=prefix;range IPAMPoolAllocationType defines the type of allocation to be used. Possible values are `prefix` and `range`.

const (
	// IPAMPoolAllocationTypePrefix corresponds to prefix allocation type.
	IPAMPoolAllocationTypePrefix IPAMPoolAllocationType = "prefix"
	// IPAMPoolAllocationTypeRange corresponds to range allocation type.
	IPAMPoolAllocationTypeRange IPAMPoolAllocationType = "range"
)

func (IPAMPoolAllocationType) String added in v2.21.0

func (t IPAMPoolAllocationType) String() string

type IPAMPoolDatacenterSettings added in v2.21.0

type IPAMPoolDatacenterSettings struct {
	// Type is the allocation type to be used.
	Type IPAMPoolAllocationType `json:"type"`

	// PoolCIDR is the pool CIDR to be used for the allocation.
	PoolCIDR SubnetCIDR `json:"poolCidr"`

	// +kubebuilder:validation:Minimum:=1
	// +kubebuilder:validation:Maximum:=128
	// AllocationPrefix is the prefix for the allocation.
	// Used when "type=prefix".
	AllocationPrefix int `json:"allocationPrefix,omitempty"`

	// Optional: ExcludePrefixes is used to exclude particular subnets for the allocation.
	// NOTE: must be the same length as allocationPrefix.
	// Can be used when "type=prefix".
	ExcludePrefixes []SubnetCIDR `json:"excludePrefixes,omitempty"`

	// +kubebuilder:validation:Minimum:=1
	// AllocationRange is the range for the allocation.
	// Used when "type=range".
	AllocationRange int `json:"allocationRange,omitempty"`

	// Optional: ExcludeRanges is used to exclude particular IPs or IP ranges for the allocation.
	// Examples: "192.168.1.100-192.168.1.110", "192.168.1.255".
	// Can be used when "type=range".
	ExcludeRanges []string `json:"excludeRanges,omitempty"`
}

IPAMPoolDatacenterSettings contains IPAM Pool configuration for a datacenter.

func (*IPAMPoolDatacenterSettings) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMPoolDatacenterSettings.

func (*IPAMPoolDatacenterSettings) DeepCopyInto added in v2.21.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IPAMPoolList added in v2.21.0

type IPAMPoolList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items holds the list of IPAM pool objects.
	Items []IPAMPool `json:"items"`
}

IPAMPoolList is the list of the object representing Multi-Cluster IP Address Management (IPAM) configuration for KKP user clusters.

func (*IPAMPoolList) DeepCopy added in v2.21.0

func (in *IPAMPoolList) DeepCopy() *IPAMPoolList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMPoolList.

func (*IPAMPoolList) DeepCopyInto added in v2.21.0

func (in *IPAMPoolList) DeepCopyInto(out *IPAMPoolList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*IPAMPoolList) DeepCopyObject added in v2.21.0

func (in *IPAMPoolList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type IPAMPoolSpec added in v2.21.0

type IPAMPoolSpec struct {
	// Datacenters contains a map of datacenters (DCs) for the allocation.
	Datacenters map[string]IPAMPoolDatacenterSettings `json:"datacenters"`
}

IPAMPoolSpec specifies the Multi-Cluster IP Address Management (IPAM) configuration for KKP user clusters.

func (*IPAMPoolSpec) DeepCopy added in v2.21.0

func (in *IPAMPoolSpec) DeepCopy() *IPAMPoolSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMPoolSpec.

func (*IPAMPoolSpec) DeepCopyInto added in v2.21.0

func (in *IPAMPoolSpec) DeepCopyInto(out *IPAMPoolSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IPFamily added in v2.21.0

type IPFamily string

+kubebuilder:validation:Enum="";IPv4;IPv4+IPv6

const (
	// IPFamilyUnspecified represents unspecified IP address family, which is interpreted as IPv4.
	IPFamilyUnspecified IPFamily = ""
	// IPFamilyIPv4 represents IPv4-only address family.
	IPFamilyIPv4 IPFamily = "IPv4"
	// IPFamilyDualStack represents dual-stack address family with IPv4 as the primary address family.
	IPFamilyDualStack IPFamily = "IPv4+IPv6"
)

type IPVSConfiguration

type IPVSConfiguration struct {

	// StrictArp configure arp_ignore and arp_announce to avoid answering ARP queries from kube-ipvs0 interface.
	// defaults to true.
	StrictArp *bool `json:"strictArp,omitempty"`
}

IPVSConfiguration contains ipvs-related configuration details for kube-proxy.

func (*IPVSConfiguration) DeepCopy

func (in *IPVSConfiguration) DeepCopy() *IPVSConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPVSConfiguration.

func (*IPVSConfiguration) DeepCopyInto

func (in *IPVSConfiguration) DeepCopyInto(out *IPVSConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ImageList

ImageList defines a map of operating system and the image to use.

func (ImageList) DeepCopy

func (in ImageList) DeepCopy() ImageList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageList.

func (ImageList) DeepCopyInto

func (in ImageList) DeepCopyInto(out *ImageList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ImageListWithVersions added in v2.22.0

type ImageListWithVersions map[providerconfig.OperatingSystem]OSVersions

ImageListWithVersions defines a map of operating system with their versions to use.

func (ImageListWithVersions) DeepCopy added in v2.22.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageListWithVersions.

func (ImageListWithVersions) DeepCopyInto added in v2.22.0

func (in ImageListWithVersions) DeepCopyInto(out *ImageListWithVersions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Incompatibility

type Incompatibility struct {
	// Provider to which to apply the compatibility check.
	// Empty string matches all providers
	// +kubebuilder:validation:Enum="";digitalocean;hetzner;azure;vsphere;aws;openstack;packet;gcp;kubevirt;nutanix;alibaba;anexia;fake;vmwareclouddirector
	Provider string `json:"provider,omitempty"`
	// Version is the Kubernetes version that must be checked. Wildcards are allowed, e.g. "1.25.*".
	Version string `json:"version,omitempty"`
	// Condition is the cluster or datacenter condition that must be met to block a specific version
	Condition ConditionType `json:"condition,omitempty"`
	// Operation is the operation triggering the compatibility check (CREATE or UPDATE)
	Operation OperationType `json:"operation,omitempty"`
}

Incompatibility represents a version incompatibility for a user cluster.

func (*Incompatibility) DeepCopy

func (in *Incompatibility) DeepCopy() *Incompatibility

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Incompatibility.

func (*Incompatibility) DeepCopyInto

func (in *Incompatibility) DeepCopyInto(out *Incompatibility)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Kind

type Kind struct {
	// Kinds specifies the kinds of the resources
	Kinds []string `json:"kinds,omitempty"`
	// APIGroups specifies the APIGroups of the resources
	APIGroups []string `json:"apiGroups,omitempty"`
}

Kind specifies the resource Kind and APIGroup.

func (*Kind) DeepCopy

func (in *Kind) DeepCopy() *Kind

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Kind.

func (*Kind) DeepCopyInto

func (in *Kind) DeepCopyInto(out *Kind)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KonnectivityProxySettings added in v2.21.6

type KonnectivityProxySettings struct {
	// Resources configure limits/requests for Konnectivity components.
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
	// KeepaliveTime represents a duration of time to check if the transport is still alive.
	// The option is propagated to agents and server.
	// Defaults to 1m.
	KeepaliveTime string `json:"keepaliveTime,omitempty"`
}

func (*KonnectivityProxySettings) DeepCopy added in v2.21.6

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KonnectivityProxySettings.

func (*KonnectivityProxySettings) DeepCopyInto added in v2.21.6

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubeLB added in v2.24.0

type KubeLB struct {
	// Controls whether kubeLB is deployed or not.
	Enabled bool `json:"enabled"`
}

KubeLB contains settings for the kubeLB component as part of the cluster control plane. This component is responsible for managing load balancers. Only available in Enterprise Edition.

func (*KubeLB) DeepCopy added in v2.24.0

func (in *KubeLB) DeepCopy() *KubeLB

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeLB.

func (*KubeLB) DeepCopyInto added in v2.24.0

func (in *KubeLB) DeepCopyInto(out *KubeLB)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubeLBDatacenterSettings added in v2.24.0

type KubeLBDatacenterSettings struct {
	// Used to configure and override the default kubeLB settings.
	KubeLBSettings `json:",inline"`
	// Enabled is used to enable/disable kubeLB for the datacenter. This is used to control whether installing kubeLB is allowed or not for the datacenter.
	Enabled bool `json:"enabled,omitempty"`
	// Enforced is used to enforce kubeLB installation for all the user clusters belonging to this datacenter. Setting enforced to false will not uninstall kubeLB from the user clusters and it needs to be disabled manually.
	Enforced bool `json:"enforced,omitempty"`
	// NodeAddressType is used to configure the address type from node, used for load balancing.
	// Optional: Defaults to ExternalIP.
	// +kubebuilder:validation:Enum=InternalIP;ExternalIP
	// +kubebuilder:default=ExternalIP
	NodeAddressType string `json:"nodeAddressType,omitempty"`
}

func (*KubeLBDatacenterSettings) DeepCopy added in v2.24.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeLBDatacenterSettings.

func (*KubeLBDatacenterSettings) DeepCopyInto added in v2.24.0

func (in *KubeLBDatacenterSettings) DeepCopyInto(out *KubeLBDatacenterSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubeLBSettings added in v2.24.0

type KubeLBSettings struct {
	// Kubeconfig is reference to the Kubeconfig for the kubeLB management cluster.
	Kubeconfig corev1.ObjectReference `json:"kubeconfig,omitempty"`
}

func (*KubeLBSettings) DeepCopy added in v2.24.0

func (in *KubeLBSettings) DeepCopy() *KubeLBSettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeLBSettings.

func (*KubeLBSettings) DeepCopyInto added in v2.24.0

func (in *KubeLBSettings) DeepCopyInto(out *KubeLBSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubeVirtHTTPSource added in v2.22.0

type KubeVirtHTTPSource struct {
	// OperatingSystems represents list of supported operating-systems with their URLs.
	OperatingSystems map[providerconfig.OperatingSystem]OSVersions `json:"operatingSystems"`
}

KubeVirtHTTPSource represents list of images and their versions that can be downloaded over HTTP.

func (*KubeVirtHTTPSource) DeepCopy added in v2.22.0

func (in *KubeVirtHTTPSource) DeepCopy() *KubeVirtHTTPSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeVirtHTTPSource.

func (*KubeVirtHTTPSource) DeepCopyInto added in v2.22.0

func (in *KubeVirtHTTPSource) DeepCopyInto(out *KubeVirtHTTPSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubeVirtImageSources added in v2.22.0

type KubeVirtImageSources struct {
	// HTTP represents a http source.
	HTTP *KubeVirtHTTPSource `json:"http,omitempty"`
}

KubeVirtImageSources represents KubeVirt image sources.

func (*KubeVirtImageSources) DeepCopy added in v2.22.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeVirtImageSources.

func (*KubeVirtImageSources) DeepCopyInto added in v2.22.0

func (in *KubeVirtImageSources) DeepCopyInto(out *KubeVirtImageSources)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubeVirtInfraStorageClass added in v2.22.0

type KubeVirtInfraStorageClass struct {
	Name string `json:"name"`
	// Optional: IsDefaultClass. If true, the created StorageClass in the tenant cluster will be annotated with:
	// storageclass.kubernetes.io/is-default-class : true
	// If missing or false, annotation will be:
	// storageclass.kubernetes.io/is-default-class : false
	IsDefaultClass *bool `json:"isDefaultClass,omitempty"`
}

func (*KubeVirtInfraStorageClass) DeepCopy added in v2.22.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeVirtInfraStorageClass.

func (*KubeVirtInfraStorageClass) DeepCopyInto added in v2.22.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticAPIConfiguration

type KubermaticAPIConfiguration struct {
	// DockerRepository is the repository containing the Kubermatic REST API image.
	DockerRepository string `json:"dockerRepository,omitempty"`
	// AccessibleAddons is a list of addons that should be enabled in the API.
	AccessibleAddons []string `json:"accessibleAddons,omitempty"`
	// PProfEndpoint controls the port the API should listen on to provide pprof
	// data. This port is never exposed from the container and only available via port-forwardings.
	PProfEndpoint *string `json:"pprofEndpoint,omitempty"`
	// Resources describes the requested and maximum allowed CPU/memory usage.
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
	// DebugLog enables more verbose logging.
	DebugLog bool `json:"debugLog,omitempty"`
	// Replicas sets the number of pod replicas for the API deployment.
	Replicas *int32 `json:"replicas,omitempty"`
}

KubermaticAPIConfiguration configures the dashboard.

func (*KubermaticAPIConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticAPIConfiguration.

func (*KubermaticAPIConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticAddonsConfiguration

type KubermaticAddonsConfiguration struct {
	// Default is the list of addons to be installed by default into each cluster.
	// Mutually exclusive with "defaultManifests".
	Default []string `json:"default,omitempty"`
	// DefaultManifests is a list of addon manifests to install into all clusters.
	// Mutually exclusive with "default".
	DefaultManifests string `json:"defaultManifests,omitempty"`
	// DockerRepository is the repository containing the Docker image containing
	// the possible addon manifests.
	DockerRepository string `json:"dockerRepository,omitempty"`
	// DockerTagSuffix is appended to the tag used for referring to the addons image.
	// If left empty, the tag will be the KKP version (e.g. "v2.15.0"), with a
	// suffix it becomes "v2.15.0-SUFFIX".
	DockerTagSuffix string `json:"dockerTagSuffix,omitempty"`
}

KubermaticAddonConfiguration describes the addons for a given cluster runtime.

func (*KubermaticAddonsConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticAddonsConfiguration.

func (*KubermaticAddonsConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticAuthConfiguration

type KubermaticAuthConfiguration struct {
	ClientID                 string `json:"clientID,omitempty"`
	TokenIssuer              string `json:"tokenIssuer,omitempty"`
	IssuerRedirectURL        string `json:"issuerRedirectURL,omitempty"`
	IssuerClientID           string `json:"issuerClientID,omitempty"`
	IssuerClientSecret       string `json:"issuerClientSecret,omitempty"`
	IssuerCookieKey          string `json:"issuerCookieKey,omitempty"`
	ServiceAccountKey        string `json:"serviceAccountKey,omitempty"`
	SkipTokenIssuerTLSVerify bool   `json:"skipTokenIssuerTLSVerify,omitempty"`
}

KubermaticAuthConfiguration defines keys and URLs for Dex.

func (*KubermaticAuthConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticAuthConfiguration.

func (*KubermaticAuthConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticConfiguration

type KubermaticConfiguration struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   KubermaticConfigurationSpec   `json:"spec,omitempty"`
	Status KubermaticConfigurationStatus `json:"status,omitempty"`
}

KubermaticConfiguration is the configuration required for running Kubermatic.

func (*KubermaticConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticConfiguration.

func (*KubermaticConfiguration) DeepCopyInto

func (in *KubermaticConfiguration) DeepCopyInto(out *KubermaticConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KubermaticConfiguration) DeepCopyObject

func (in *KubermaticConfiguration) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KubermaticConfigurationList

type KubermaticConfigurationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []KubermaticConfiguration `json:"items"`
}

KubermaticConfigurationList is a collection of KubermaticConfigurations.

func (*KubermaticConfigurationList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticConfigurationList.

func (*KubermaticConfigurationList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KubermaticConfigurationList) DeepCopyObject

func (in *KubermaticConfigurationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KubermaticConfigurationSpec

type KubermaticConfigurationSpec struct {
	// CABundle references a ConfigMap in the same namespace as the KubermaticConfiguration.
	// This ConfigMap must contain a ca-bundle.pem with PEM-encoded certificates. This bundle
	// automatically synchronized into each seed and each usercluster. APIGroup and Kind are
	// currently ignored.
	CABundle corev1.TypedLocalObjectReference `json:"caBundle,omitempty"`
	// ImagePullSecret is used to authenticate against Docker registries.
	ImagePullSecret string `json:"imagePullSecret,omitempty"`
	// Auth defines keys and URLs for Dex. These must be defined unless the HeadlessInstallation
	// feature gate is set, which will disable the UI/API and its need for an OIDC provider entirely.
	// +optional
	Auth KubermaticAuthConfiguration `json:"auth"`
	// FeatureGates are used to optionally enable certain features.
	FeatureGates map[string]bool `json:"featureGates,omitempty"`
	// UI configures the dashboard.
	UI KubermaticUIConfiguration `json:"ui,omitempty"`
	// API configures the frontend REST API used by the dashboard.
	API KubermaticAPIConfiguration `json:"api,omitempty"`
	// SeedController configures the seed-controller-manager.
	SeedController KubermaticSeedControllerConfiguration `json:"seedController,omitempty"`
	// MasterController configures the master-controller-manager.
	MasterController KubermaticMasterControllerConfiguration `json:"masterController,omitempty"`
	// Webhook configures the webhook.
	Webhook KubermaticWebhookConfiguration `json:"webhook,omitempty"`
	// UserCluster configures various aspects of the user-created clusters.
	UserCluster KubermaticUserClusterConfiguration `json:"userCluster,omitempty"`
	// ExposeStrategy is the strategy to expose the cluster with.
	// Note: The `seed_dns_overwrite` setting of a Seed's datacenter doesn't have any effect
	// if this is set to LoadBalancerStrategy.
	ExposeStrategy ExposeStrategy `json:"exposeStrategy,omitempty"`
	// Ingress contains settings for making the API and UI accessible remotely.
	Ingress KubermaticIngressConfiguration `json:"ingress,omitempty"`
	// Versions configures the available and default Kubernetes versions and updates.
	Versions KubermaticVersioningConfiguration `json:"versions,omitempty"`
	// VerticalPodAutoscaler configures the Kubernetes VPA integration.
	VerticalPodAutoscaler KubermaticVPAConfiguration `json:"verticalPodAutoscaler,omitempty"`
	// Proxy allows to configure Kubermatic to use proxies to talk to the
	// world outside of its cluster.
	Proxy KubermaticProxyConfiguration `json:"proxy,omitempty"`
}

KubermaticConfigurationSpec is the spec for a Kubermatic installation.

func (*KubermaticConfigurationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticConfigurationSpec.

func (*KubermaticConfigurationSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticConfigurationStatus added in v2.21.0

type KubermaticConfigurationStatus struct {
	// KubermaticVersion current Kubermatic Version.
	KubermaticVersion string `json:"kubermaticVersion,omitempty"`
	// KubermaticEdition current Kubermatic Edition , i.e. Community Edition or Enterprise Edition.
	KubermaticEdition string `json:"kubermaticEdition,omitempty"`
}

KubermaticConfigurationStatus stores status information about a KubermaticConfiguration.

func (*KubermaticConfigurationStatus) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticConfigurationStatus.

func (*KubermaticConfigurationStatus) DeepCopyInto added in v2.21.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticIngressConfiguration

type KubermaticIngressConfiguration struct {
	// Domain is the base domain where the dashboard shall be available. Even with
	// a disabled Ingress, this must always be a valid hostname.
	Domain string `json:"domain"`

	// ClassName is the Ingress resource's class name, used for selecting the appropriate
	// ingress controller.
	ClassName string `json:"className,omitempty"`

	// NamespaceOverride need to be set if a different ingress-controller is used than the KKP default one.
	NamespaceOverride string `json:"namespaceOverride,omitempty"`

	// Disable will prevent an Ingress from being created at all. This is mostly useful
	// during testing. If the Ingress is disabled, the CertificateIssuer setting can also
	// be left empty, as no Certificate resource will be created.
	Disable bool `json:"disable,omitempty"`

	// CertificateIssuer is the name of a cert-manager Issuer or ClusterIssuer (default)
	// that will be used to acquire the certificate for the configured domain.
	// To use a namespaced Issuer, set the Kind to "Issuer" and manually create the
	// matching Issuer in Kubermatic's namespace.
	// Setting an empty name disables the automatic creation of certificates and disables
	// the TLS settings on the Kubermatic Ingress.
	CertificateIssuer corev1.TypedLocalObjectReference `json:"certificateIssuer,omitempty"`
}

func (*KubermaticIngressConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticIngressConfiguration.

func (*KubermaticIngressConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticMasterControllerConfiguration

type KubermaticMasterControllerConfiguration struct {
	// DockerRepository is the repository containing the Kubermatic master-controller-manager image.
	DockerRepository string `json:"dockerRepository,omitempty"`
	// ProjectsMigrator configures the migrator for user projects.
	ProjectsMigrator KubermaticProjectsMigratorConfiguration `json:"projectsMigrator,omitempty"`
	// PProfEndpoint controls the port the master-controller-manager should listen on to provide pprof
	// data. This port is never exposed from the container and only available via port-forwardings.
	PProfEndpoint *string `json:"pprofEndpoint,omitempty"`
	// Resources describes the requested and maximum allowed CPU/memory usage.
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
	// DebugLog enables more verbose logging.
	DebugLog bool `json:"debugLog,omitempty"`
	// Replicas sets the number of pod replicas for the master-controller-manager.
	Replicas *int32 `json:"replicas,omitempty"`
}

KubermaticMasterControllerConfiguration configures the Kubermatic master controller-manager.

func (*KubermaticMasterControllerConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticMasterControllerConfiguration.

func (*KubermaticMasterControllerConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticProjectsMigratorConfiguration

type KubermaticProjectsMigratorConfiguration struct {
	// DryRun makes the migrator only log the actions it would take.
	DryRun bool `json:"dryRun,omitempty"`
}

KubermaticProjectsMigratorConfiguration configures the Kubermatic master controller-manager.

func (*KubermaticProjectsMigratorConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticProjectsMigratorConfiguration.

func (*KubermaticProjectsMigratorConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticProxyConfiguration

type KubermaticProxyConfiguration struct {
	// HTTP is the full URL to the proxy to use for plaintext HTTP
	// connections, e.g. "http://internalproxy.example.com:8080".
	HTTP string `json:"http,omitempty"`
	// HTTPS is the full URL to the proxy to use for encrypted HTTPS
	// connections, e.g. "http://secureinternalproxy.example.com:8080".
	HTTPS string `json:"https,omitempty"`
	// NoProxy is a comma-separated list of hostnames / network masks
	// for which no proxy shall be used. If you make use of proxies,
	// this list should contain all local and cluster-internal domains
	// and networks, e.g. "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,mydomain".
	// The operator will always prepend the following elements to this
	// list if proxying is configured (i.e. HTTP/HTTPS are not empty):
	// "127.0.0.1/8", "localhost", ".local", ".local.", "kubernetes", ".default", ".svc"
	NoProxy string `json:"noProxy,omitempty"`
}

KubermaticProxyConfiguration can be used to control how the various Kubermatic components reach external services / the Internet. These settings are reflected as environment variables for the Kubermatic pods.

func (*KubermaticProxyConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticProxyConfiguration.

func (*KubermaticProxyConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticSeedControllerConfiguration

type KubermaticSeedControllerConfiguration struct {
	// DockerRepository is the repository containing the Kubermatic seed-controller-manager image.
	DockerRepository string `json:"dockerRepository,omitempty"`
	// BackupStoreContainer is the container used for shipping etcd snapshots to a backup location.
	BackupStoreContainer string `json:"backupStoreContainer,omitempty"`
	// BackupDeleteContainer is the container used for deleting etcd snapshots from a backup location.
	BackupDeleteContainer string `json:"backupDeleteContainer,omitempty"`
	// Deprecated: BackupCleanupContainer is the container used for removing expired backups from the storage location.
	// This field is a no-op and is no longer used. The old backup controller it was used for has been
	// removed. Do not set this field.
	BackupCleanupContainer string `json:"backupCleanupContainer,omitempty"`
	// MaximumParallelReconciles limits the number of cluster reconciliations
	// that are active at any given time.
	MaximumParallelReconciles int `json:"maximumParallelReconciles,omitempty"`
	// PProfEndpoint controls the port the seed-controller-manager should listen on to provide pprof
	// data. This port is never exposed from the container and only available via port-forwardings.
	PProfEndpoint *string `json:"pprofEndpoint,omitempty"`
	// Resources describes the requested and maximum allowed CPU/memory usage.
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
	// DebugLog enables more verbose logging.
	DebugLog bool `json:"debugLog,omitempty"`
	// Replicas sets the number of pod replicas for the seed-controller-manager.
	Replicas *int32 `json:"replicas,omitempty"`
}

KubermaticSeedControllerConfiguration configures the Kubermatic seed controller-manager.

func (*KubermaticSeedControllerConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticSeedControllerConfiguration.

func (*KubermaticSeedControllerConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticSetting

type KubermaticSetting struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec SettingSpec `json:"spec,omitempty"`
}

KubermaticSetting is the type representing a KubermaticSetting. These settings affect the KKP dashboard and are not relevant when using the Kube API on the master/seed clusters directly.

func (*KubermaticSetting) DeepCopy

func (in *KubermaticSetting) DeepCopy() *KubermaticSetting

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticSetting.

func (*KubermaticSetting) DeepCopyInto

func (in *KubermaticSetting) DeepCopyInto(out *KubermaticSetting)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KubermaticSetting) DeepCopyObject

func (in *KubermaticSetting) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KubermaticSettingList

type KubermaticSettingList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []KubermaticSetting `json:"items"`
}

KubermaticSettingList is a list of settings.

func (*KubermaticSettingList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticSettingList.

func (*KubermaticSettingList) DeepCopyInto

func (in *KubermaticSettingList) DeepCopyInto(out *KubermaticSettingList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KubermaticSettingList) DeepCopyObject

func (in *KubermaticSettingList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KubermaticUIConfiguration

type KubermaticUIConfiguration struct {
	// DockerRepository is the repository containing the Kubermatic dashboard image.
	DockerRepository string `json:"dockerRepository,omitempty"`
	// DockerTag is used to overwrite the dashboard Docker image tag and is only for development
	// purposes. This field must not be set in production environments. If DockerTag is specified then
	// DockerTagSuffix will be ignored.
	// ---
	//nolint:staticcheck
	//lint:ignore SA5008 omitgenyaml is used by the example-yaml-generator
	DockerTag string `json:"dockerTag,omitempty,omitgenyaml"`
	// DockerTagSuffix is appended to the KKP version used for referring to the custom dashboard image.
	// If left empty, either the `DockerTag` if specified or the original dashboard Docker image tag will be used.
	// With DockerTagSuffix the tag becomes <KKP_VERSION:SUFFIX> i.e. "v2.15.0-SUFFIX".
	DockerTagSuffix string `json:"dockerTagSuffix,omitempty"`
	// Config sets flags for various dashboard features.
	Config string `json:"config,omitempty"`
	// Resources describes the requested and maximum allowed CPU/memory usage.
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
	// Replicas sets the number of pod replicas for the UI deployment.
	Replicas *int32 `json:"replicas,omitempty"`
	// ExtraVolumeMounts allows to mount additional volumes into the UI container.
	ExtraVolumeMounts []corev1.VolumeMount `json:"extraVolumeMounts,omitempty"`
	// ExtraVolumes allows to mount additional volumes into the UI container.
	ExtraVolumes []corev1.Volume `json:"extraVolumes,omitempty"`
}

KubermaticUIConfiguration configures the dashboard.

func (*KubermaticUIConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticUIConfiguration.

func (*KubermaticUIConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticUserClusterConfiguration

type KubermaticUserClusterConfiguration struct {
	// KubermaticDockerRepository is the repository containing the Kubermatic user-cluster-controller-manager image.
	KubermaticDockerRepository string `json:"kubermaticDockerRepository,omitempty"`
	// DNATControllerDockerRepository is the repository containing the
	// dnat-controller image.
	DNATControllerDockerRepository string `json:"dnatControllerDockerRepository,omitempty"`
	// EtcdLauncherDockerRepository is the repository containing the Kubermatic
	// etcd-launcher image.
	EtcdLauncherDockerRepository string `json:"etcdLauncherDockerRepository,omitempty"`
	// OverwriteRegistry specifies a custom Docker registry which will be used for all images
	// used for user clusters (user cluster control plane + addons). This also applies to
	// the KubermaticDockerRepository and DNATControllerDockerRepository fields.
	OverwriteRegistry string `json:"overwriteRegistry,omitempty"`
	// Addons controls the optional additions installed into each user cluster.
	Addons KubermaticAddonsConfiguration `json:"addons,omitempty"`
	// SystemApplications contains configuration for system Applications (such as CNI).
	SystemApplications SystemApplicationsConfiguration `json:"systemApplications,omitempty"`
	// NodePortRange is the port range for user clusters - this must match the NodePort
	// range of the seed cluster.
	NodePortRange string `json:"nodePortRange,omitempty"`
	// Monitoring can be used to fine-tune to in-cluster Prometheus.
	Monitoring KubermaticUserClusterMonitoringConfiguration `json:"monitoring,omitempty"`
	// DisableAPIServerEndpointReconciling can be used to toggle the `--endpoint-reconciler-type` flag for
	// the Kubernetes API server.
	DisableAPIServerEndpointReconciling bool `json:"disableApiserverEndpointReconciling,omitempty"`
	// EtcdVolumeSize configures the volume size to use for each etcd pod inside user clusters.
	EtcdVolumeSize string `json:"etcdVolumeSize,omitempty"`
	// APIServerReplicas configures the replica count for the API-Server deployment inside user clusters.
	APIServerReplicas *int32 `json:"apiserverReplicas,omitempty"`
	// MachineController configures the Machine Controller
	MachineController MachineControllerConfiguration `json:"machineController,omitempty"`
	// OperatingSystemManager configures the image repo and the tag version for osm deployment.
	OperatingSystemManager OperatingSystemManager `json:"operatingSystemManager,omitempty"`
}

KubermaticUserClusterConfiguration controls various aspects of the user-created clusters.

func (*KubermaticUserClusterConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticUserClusterConfiguration.

func (*KubermaticUserClusterConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticUserClusterMonitoringConfiguration

type KubermaticUserClusterMonitoringConfiguration struct {
	// DisableDefaultRules disables the recording and alerting rules.
	DisableDefaultRules bool `json:"disableDefaultRules,omitempty"`
	// DisableDefaultScrapingConfigs disables the default scraping targets.
	DisableDefaultScrapingConfigs bool `json:"disableDefaultScrapingConfigs,omitempty"`
	// CustomRules can be used to inject custom recording and alerting rules. This field
	// must be a YAML-formatted string with a `group` element at its root, as documented
	// on https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/.
	// This value is treated as a Go template, which allows to inject dynamic values like
	// the internal cluster address or the cluster ID. Refer to pkg/resources/prometheus
	// and the documentation for more information on the available fields.
	CustomRules string `json:"customRules,omitempty"`
	// CustomScrapingConfigs can be used to inject custom scraping rules. This must be a
	// YAML-formatted string containing an array of scrape configurations as documented
	// on https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config.
	// This value is treated as a Go template, which allows to inject dynamic values like
	// the internal cluster address or the cluster ID. Refer to pkg/resources/prometheus
	// and the documentation for more information on the available fields.
	CustomScrapingConfigs string `json:"customScrapingConfigs,omitempty"`
	// ScrapeAnnotationPrefix (if set) is used to make the in-cluster Prometheus scrape pods
	// inside the user clusters.
	ScrapeAnnotationPrefix string `json:"scrapeAnnotationPrefix,omitempty"`
}

KubermaticUserClusterMonitoringConfiguration can be used to fine-tune to in-cluster Prometheus.

func (*KubermaticUserClusterMonitoringConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticUserClusterMonitoringConfiguration.

func (*KubermaticUserClusterMonitoringConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticVPAComponent

type KubermaticVPAComponent struct {
	// DockerRepository is the repository containing the component's image.
	DockerRepository string `json:"dockerRepository,omitempty"`
	// Resources describes the requested and maximum allowed CPU/memory usage.
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
}

func (*KubermaticVPAComponent) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticVPAComponent.

func (*KubermaticVPAComponent) DeepCopyInto

func (in *KubermaticVPAComponent) DeepCopyInto(out *KubermaticVPAComponent)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticVPAConfiguration

type KubermaticVPAConfiguration struct {
	Recommender         KubermaticVPAComponent `json:"recommender,omitempty"`
	Updater             KubermaticVPAComponent `json:"updater,omitempty"`
	AdmissionController KubermaticVPAComponent `json:"admissionController,omitempty"`
}

KubermaticVPAConfiguration configures the Kubernetes VPA.

func (*KubermaticVPAConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticVPAConfiguration.

func (*KubermaticVPAConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticVersioningConfiguration

type KubermaticVersioningConfiguration struct {
	// Versions lists the available versions.
	Versions []semver.Semver `json:"versions,omitempty"`
	// Default is the default version to offer users.
	Default *semver.Semver `json:"default,omitempty"`

	// Updates is a list of available and automatic upgrades.
	// All 'to' versions must be configured in the version list for this orchestrator.
	// Each update may optionally be configured to be 'automatic: true', in which case the
	// controlplane of all clusters whose version matches the 'from' directive will get
	// updated to the 'to' version. If automatic is enabled, the 'to' version must be a
	// version and not a version range.
	// Also, updates may set 'automaticNodeUpdate: true', in which case Nodes will get
	// updates as well. 'automaticNodeUpdate: true' implies 'automatic: true' as well,
	// because Nodes may not have a newer version than the controlplane.
	Updates []Update `json:"updates,omitempty"`

	// ProviderIncompatibilities lists all the Kubernetes version incompatibilities
	ProviderIncompatibilities []Incompatibility `json:"providerIncompatibilities,omitempty"`

	// ExternalClusters contains the available and default Kubernetes versions and updates for ExternalClusters.
	ExternalClusters map[ExternalClusterProviderType]ExternalClusterProviderVersioningConfiguration `json:"externalClusters,omitempty"`
}

KubermaticVersioningConfiguration configures the available and default Kubernetes versions.

func (*KubermaticVersioningConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticVersioningConfiguration.

func (*KubermaticVersioningConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubermaticWebhookConfiguration added in v2.21.0

type KubermaticWebhookConfiguration struct {
	// DockerRepository is the repository containing the Kubermatic webhook image.
	DockerRepository string `json:"dockerRepository,omitempty"`
	// PProfEndpoint controls the port the webhook should listen on to provide pprof
	// data. This port is never exposed from the container and only available via port-forwardings.
	PProfEndpoint *string `json:"pprofEndpoint,omitempty"`
	// Resources describes the requested and maximum allowed CPU/memory usage.
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
	// DebugLog enables more verbose logging.
	DebugLog bool `json:"debugLog,omitempty"`
	// Replicas sets the number of pod replicas for the webhook.
	Replicas *int32 `json:"replicas,omitempty"`
}

KubermaticWebhookConfiguration configures the Kubermatic webhook.

func (*KubermaticWebhookConfiguration) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubermaticWebhookConfiguration.

func (*KubermaticWebhookConfiguration) DeepCopyInto added in v2.21.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubernetesDashboard added in v2.21.0

type KubernetesDashboard struct {
	// Controls whether kubernetes-dashboard is deployed to the user cluster or not.
	// Enabled by default.
	Enabled bool `json:"enabled,omitempty"`
}

KubernetesDashboard contains settings for the kubernetes-dashboard component as part of the cluster control plane.

func (*KubernetesDashboard) DeepCopy added in v2.21.0

func (in *KubernetesDashboard) DeepCopy() *KubernetesDashboard

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesDashboard.

func (*KubernetesDashboard) DeepCopyInto added in v2.21.0

func (in *KubernetesDashboard) DeepCopyInto(out *KubernetesDashboard)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Kubevirt

type Kubevirt struct {
	ProviderPreset `json:",inline"`

	// Kubeconfig is the cluster's kubeconfig file, encoded with base64.
	Kubeconfig string `json:"kubeconfig"`
}

func (*Kubevirt) DeepCopy

func (in *Kubevirt) DeepCopy() *Kubevirt

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Kubevirt.

func (*Kubevirt) DeepCopyInto

func (in *Kubevirt) DeepCopyInto(out *Kubevirt)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Kubevirt) IsValid

func (s Kubevirt) IsValid() bool

type KubevirtCloudSpec

type KubevirtCloudSpec struct {
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	// The cluster's kubeconfig file, encoded with base64.
	Kubeconfig    string `json:"kubeconfig,omitempty"`
	CSIKubeconfig string `json:"csiKubeconfig,omitempty"`
	// Custom Images are a good example of this use case.
	PreAllocatedDataVolumes []PreAllocatedDataVolume `json:"preAllocatedDataVolumes,omitempty"`
	// Deprecated: in favor of StorageClasses.
	// InfraStorageClasses is a list of storage classes from KubeVirt infra cluster that are used for
	// initialization of user cluster storage classes by the CSI driver kubevirt (hot pluggable disks)
	InfraStorageClasses []string `json:"infraStorageClasses,omitempty"`
	// StorageClasses is a list of storage classes from KubeVirt infra cluster that are used for
	// initialization of user cluster storage classes by the CSI driver kubevirt (hot pluggable disks.
	// It contains also some flag specifying which one is the default one.
	StorageClasses []KubeVirtInfraStorageClass `json:"storageClasses,omitempty"`
	// ImageCloningEnabled flag enable/disable cloning for a cluster.
	ImageCloningEnabled bool `json:"imageCloningEnabled,omitempty"`
}

KubevirtCloudSpec specifies the access data to Kubevirt.

func (*KubevirtCloudSpec) DeepCopy

func (in *KubevirtCloudSpec) DeepCopy() *KubevirtCloudSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubevirtCloudSpec.

func (*KubevirtCloudSpec) DeepCopyInto

func (in *KubevirtCloudSpec) DeepCopyInto(out *KubevirtCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LBSKU

type LBSKU string

Azure SKU for Load Balancers. Possible values are `basic` and `standard`.

type LeaderElectionSettings

type LeaderElectionSettings struct {
	// LeaseDurationSeconds is the duration in seconds that non-leader candidates
	// will wait to force acquire leadership. This is measured against time of
	// last observed ack.
	// +optional
	LeaseDurationSeconds *int32 `json:"leaseDurationSeconds,omitempty"`
	// RenewDeadlineSeconds is the duration in seconds that the acting controlplane
	// will retry refreshing leadership before giving up.
	// +optional
	RenewDeadlineSeconds *int32 `json:"renewDeadlineSeconds,omitempty"`
	// RetryPeriodSeconds is the duration in seconds the LeaderElector clients
	// should wait between tries of actions.
	// +optional
	RetryPeriodSeconds *int32 `json:"retryPeriodSeconds,omitempty"`
}

func (*LeaderElectionSettings) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaderElectionSettings.

func (*LeaderElectionSettings) DeepCopyInto

func (in *LeaderElectionSettings) DeepCopyInto(out *LeaderElectionSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LoggingRateLimitSettings

type LoggingRateLimitSettings struct {
	// IngestionRate represents ingestion rate limit in requests per second (nginx `rate` in `r/s`).
	IngestionRate int32 `json:"ingestionRate,omitempty"`
	// IngestionBurstSize represents ingestion burst size in number of requests (nginx `burst`).
	IngestionBurstSize int32 `json:"ingestionBurstSize,omitempty"` //

	// QueryRate represents query request rate limit per second (nginx `rate` in `r/s`).
	QueryRate int32 `json:"queryRate,omitempty"`
	// QueryBurstSize represents query burst size in number of requests (nginx `burst`).
	QueryBurstSize int32 `json:"queryBurstSize,omitempty"`
}

LoggingRateLimitSettings contains rate-limiting configuration for logging in the user cluster.

func (*LoggingRateLimitSettings) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoggingRateLimitSettings.

func (*LoggingRateLimitSettings) DeepCopyInto

func (in *LoggingRateLimitSettings) DeepCopyInto(out *LoggingRateLimitSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MLAAdminSetting

type MLAAdminSetting struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes the cluster-specific administrator settings for KKP user cluster MLA
	// (monitoring, logging & alerting) stack.
	Spec MLAAdminSettingSpec `json:"spec,omitempty"`
}

MLAAdminSetting is the object representing cluster-specific administrator settings for KKP user cluster MLA (monitoring, logging & alerting) stack.

func (*MLAAdminSetting) DeepCopy

func (in *MLAAdminSetting) DeepCopy() *MLAAdminSetting

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MLAAdminSetting.

func (*MLAAdminSetting) DeepCopyInto

func (in *MLAAdminSetting) DeepCopyInto(out *MLAAdminSetting)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MLAAdminSetting) DeepCopyObject

func (in *MLAAdminSetting) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type MLAAdminSettingList

type MLAAdminSettingList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items holds the list of the cluster-specific administrative settings
	// for KKP user cluster MLA.
	Items []MLAAdminSetting `json:"items"`
}

MLAAdminSettingList specifies a list of administrtor settings for KKP user cluster MLA (monitoring, logging & alerting) stack.

func (*MLAAdminSettingList) DeepCopy

func (in *MLAAdminSettingList) DeepCopy() *MLAAdminSettingList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MLAAdminSettingList.

func (*MLAAdminSettingList) DeepCopyInto

func (in *MLAAdminSettingList) DeepCopyInto(out *MLAAdminSettingList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MLAAdminSettingList) DeepCopyObject

func (in *MLAAdminSettingList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type MLAAdminSettingSpec

type MLAAdminSettingSpec struct {
	// ClusterName is the name of the user cluster whose MLA settings are defined in this object.
	ClusterName string `json:"clusterName"`
	// MonitoringRateLimits contains rate-limiting configuration for monitoring in the user cluster.
	MonitoringRateLimits *MonitoringRateLimitSettings `json:"monitoringRateLimits,omitempty"`
	// LoggingRateLimits contains rate-limiting configuration logging in the user cluster.
	LoggingRateLimits *LoggingRateLimitSettings `json:"loggingRateLimits,omitempty"`
}

MLAAdminSettingSpec specifies the cluster-specific administrator settings for KKP user cluster MLA (monitoring, logging & alerting) stack.

func (*MLAAdminSettingSpec) DeepCopy

func (in *MLAAdminSettingSpec) DeepCopy() *MLAAdminSettingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MLAAdminSettingSpec.

func (*MLAAdminSettingSpec) DeepCopyInto

func (in *MLAAdminSettingSpec) DeepCopyInto(out *MLAAdminSettingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MLASettings

type MLASettings struct {
	// MonitoringEnabled is the flag for enabling monitoring in user cluster.
	MonitoringEnabled bool `json:"monitoringEnabled,omitempty"`
	// LoggingEnabled is the flag for enabling logging in user cluster.
	LoggingEnabled bool `json:"loggingEnabled,omitempty"`
	// MonitoringResources is the resource requirements for user cluster prometheus.
	MonitoringResources *corev1.ResourceRequirements `json:"monitoringResources,omitempty"`
	// LoggingResources is the resource requirements for user cluster promtail.
	LoggingResources *corev1.ResourceRequirements `json:"loggingResources,omitempty"`
	// MonitoringReplicas is the number of desired pods of user cluster prometheus deployment.
	MonitoringReplicas *int32 `json:"monitoringReplicas,omitempty"`
}

func (*MLASettings) DeepCopy

func (in *MLASettings) DeepCopy() *MLASettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MLASettings.

func (*MLASettings) DeepCopyInto

func (in *MLASettings) DeepCopyInto(out *MLASettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MachineControllerConfiguration

type MachineControllerConfiguration struct {
	// ImageRepository is used to override the Machine Controller image repository.
	// It is only for development, tests and PoC purposes. This field must not be set in production environments.
	ImageRepository string `json:"imageRepository,omitempty"`
	// ImageTag is used to override the Machine Controller image.
	// It is only for development, tests and PoC purposes. This field must not be set in production environments.
	ImageTag string `json:"imageTag,omitempty"`
}

MachineControllerConfiguration configures Machine Controller.

func (*MachineControllerConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineControllerConfiguration.

func (*MachineControllerConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MachineDeploymentOptions added in v2.23.0

type MachineDeploymentOptions struct {
	// AutoUpdatesEnabled enables the auto updates option for machine deployments on the dashboard.
	// In case of flatcar linux, this will enable automatic updates through update engine and for other operating systems,
	// this will enable package updates on boot for the machines.
	AutoUpdatesEnabled bool `json:"autoUpdatesEnabled,omitempty"`
	// AutoUpdatesEnforced enforces the auto updates option for machine deployments on the dashboard.
	// In case of flatcar linux, this will enable automatic updates through update engine and for other operating systems,
	// this will enable package updates on boot for the machines.
	AutoUpdatesEnforced bool `json:"autoUpdatesEnforced,omitempty"`
}

func (*MachineDeploymentOptions) DeepCopy added in v2.23.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineDeploymentOptions.

func (*MachineDeploymentOptions) DeepCopyInto added in v2.23.0

func (in *MachineDeploymentOptions) DeepCopyInto(out *MachineDeploymentOptions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MachineFlavorFilter added in v2.22.0

type MachineFlavorFilter struct {

	// Minimum number of vCPU
	MinCPU int `json:"minCPU"`

	// Maximum number of vCPU
	MaxCPU int `json:"maxCPU"`

	// Minimum RAM size in GB
	MinRAM int `json:"minRAM"`

	// Maximum RAM size in GB
	MaxRAM int `json:"maxRAM"`

	// Include VMs with GPU
	EnableGPU bool `json:"enableGPU"` //nolint:tagliatelle
}

func (*MachineFlavorFilter) DeepCopy added in v2.22.0

func (in *MachineFlavorFilter) DeepCopy() *MachineFlavorFilter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineFlavorFilter.

func (*MachineFlavorFilter) DeepCopyInto added in v2.22.0

func (in *MachineFlavorFilter) DeepCopyInto(out *MachineFlavorFilter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MachineNetworkingConfig

type MachineNetworkingConfig struct {
	CIDR       string   `json:"cidr"`
	Gateway    string   `json:"gateway"`
	DNSServers []string `json:"dnsServers"`
}

MachineNetworkingConfig specifies the networking parameters used for IPAM.

func (*MachineNetworkingConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineNetworkingConfig.

func (*MachineNetworkingConfig) DeepCopyInto

func (in *MachineNetworkingConfig) DeepCopyInto(out *MachineNetworkingConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Match

type Match struct {
	// Kinds accepts a list of objects with apiGroups and kinds fields that list the groups/kinds of objects to which
	// the constraint will apply. If multiple groups/kinds objects are specified, only one match is needed for the resource to be in scope
	Kinds []Kind `json:"kinds,omitempty"`
	// Scope accepts *, Cluster, or Namespaced which determines if cluster-scoped and/or namespace-scoped resources are selected. (defaults to *)
	Scope string `json:"scope,omitempty"`
	// Namespaces is a list of namespace names. If defined, a constraint will only apply to resources in a listed namespace.
	Namespaces []string `json:"namespaces,omitempty"`
	// ExcludedNamespaces is a list of namespace names. If defined, a constraint will only apply to resources not in a listed namespace.
	ExcludedNamespaces []string `json:"excludedNamespaces,omitempty"`
	// LabelSelector is a standard Kubernetes label selector.
	LabelSelector metav1.LabelSelector `json:"labelSelector,omitempty"`
	// NamespaceSelector  is a standard Kubernetes namespace selector. If defined, make sure to add Namespaces to your
	// configs.config.gatekeeper.sh object to ensure namespaces are synced into OPA
	NamespaceSelector metav1.LabelSelector `json:"namespaceSelector,omitempty"`
}

Match contains the constraint to resource matching data.

func (*Match) DeepCopy

func (in *Match) DeepCopy() *Match

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Match.

func (*Match) DeepCopyInto

func (in *Match) DeepCopyInto(out *Match)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MeteringConfiguration

type MeteringConfiguration struct {
	Enabled bool `json:"enabled"`

	// StorageClassName is the name of the storage class that the metering Prometheus instance uses to store metric data for reporting.
	StorageClassName string `json:"storageClassName"`
	// StorageSize is the size of the storage class. Default value is 100Gi. Changing this value requires
	// manual deletion of the existing Prometheus PVC (and thereby removing all metering data).
	StorageSize string `json:"storageSize,omitempty"`
	// RetentionDays is the number of days for which data should be kept in Prometheus. Default value is 90.
	RetentionDays int `json:"retentionDays,omitempty"`

	// ReportConfigurations is a map of report configuration definitions.
	ReportConfigurations map[string]*MeteringReportConfiguration `json:"reports,omitempty"`
}

MeteringConfiguration contains all the configuration for the metering tool.

func (*MeteringConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MeteringConfiguration.

func (*MeteringConfiguration) DeepCopyInto

func (in *MeteringConfiguration) DeepCopyInto(out *MeteringConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MeteringReportConfiguration added in v2.21.0

type MeteringReportConfiguration struct {

	// Schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. Please take a note that Schedule is responsible
	// only for setting the time when a report generation mechanism kicks off. The Interval MUST be set independently.
	Schedule string `json:"schedule,omitempty"`

	// Interval defines the number of days consulted in the metering report.
	// Ignored when `Monthly` is set to true
	Interval uint32 `json:"interval,omitempty"`

	// +optional
	// Monthly creates a report for the previous month.
	Monthly bool `json:"monthly,omitempty"`

	// Retention defines a number of days after which reports are queued for removal. If not set, reports are kept forever.
	// Please note that this functionality works only for object storage that supports an object lifecycle management mechanism.
	Retention *uint32 `json:"retention,omitempty"`

	// Types of reports to generate. Available report types are cluster and namespace. By default, all types of reports are generated.
	Types []string `json:"type,omitempty"`
}

func (*MeteringReportConfiguration) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MeteringReportConfiguration.

func (*MeteringReportConfiguration) DeepCopyInto added in v2.21.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MlaOptions

type MlaOptions struct {
	LoggingEnabled     bool `json:"loggingEnabled,omitempty"`
	LoggingEnforced    bool `json:"loggingEnforced,omitempty"`
	MonitoringEnabled  bool `json:"monitoringEnabled,omitempty"`
	MonitoringEnforced bool `json:"monitoringEnforced,omitempty"`
}

func (*MlaOptions) DeepCopy

func (in *MlaOptions) DeepCopy() *MlaOptions

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MlaOptions.

func (*MlaOptions) DeepCopyInto

func (in *MlaOptions) DeepCopyInto(out *MlaOptions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonitoringRateLimitSettings

type MonitoringRateLimitSettings struct {
	// IngestionRate represents the ingestion rate limit in samples per second (Cortex `ingestion_rate`).
	IngestionRate int32 `json:"ingestionRate,omitempty"`
	// IngestionBurstSize represents ingestion burst size in samples per second (Cortex `ingestion_burst_size`).
	IngestionBurstSize int32 `json:"ingestionBurstSize,omitempty"`
	// MaxSeriesPerMetric represents maximum number of series per metric (Cortex `max_series_per_metric`).
	MaxSeriesPerMetric int32 `json:"maxSeriesPerMetric,omitempty"`
	// MaxSeriesTotal represents maximum number of series per this user cluster (Cortex `max_series_per_user`).
	MaxSeriesTotal int32 `json:"maxSeriesTotal,omitempty"`

	// QueryRate represents  query request rate limit per second (nginx `rate` in `r/s`).
	QueryRate int32 `json:"queryRate,omitempty"`
	// QueryBurstSize represents query burst size in number of requests (nginx `burst`).
	QueryBurstSize int32 `json:"queryBurstSize,omitempty"`
	// MaxSamplesPerQuery represents maximum number of samples during a query (Cortex `max_samples_per_query`).
	MaxSamplesPerQuery int32 `json:"maxSamplesPerQuery,omitempty"`
	// MaxSeriesPerQuery represents maximum number of timeseries during a query (Cortex `max_series_per_query`).
	MaxSeriesPerQuery int32 `json:"maxSeriesPerQuery,omitempty"`
}

MonitoringRateLimitSettings contains rate-limiting configuration for monitoring in the user cluster.

func (*MonitoringRateLimitSettings) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitoringRateLimitSettings.

func (*MonitoringRateLimitSettings) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkRanges

type NetworkRanges struct {
	CIDRBlocks []string `json:"cidrBlocks"`
}

NetworkRanges represents ranges of network addresses.

func (*NetworkRanges) DeepCopy

func (in *NetworkRanges) DeepCopy() *NetworkRanges

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkRanges.

func (*NetworkRanges) DeepCopyInto

func (in *NetworkRanges) DeepCopyInto(out *NetworkRanges)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NetworkRanges) GetIPv4CIDR added in v2.21.0

func (r *NetworkRanges) GetIPv4CIDR() string

GetIPv4CIDR returns the first found IPv4 CIDR in the network ranges, or an empty string if no IPv4 CIDR is found.

func (*NetworkRanges) GetIPv4CIDRs added in v2.21.0

func (r *NetworkRanges) GetIPv4CIDRs() (res []string)

GetIPv4CIDRs returns all IPv4 CIDRs in the network ranges, or an empty string if no IPv4 CIDR is found.

func (*NetworkRanges) GetIPv6CIDR added in v2.21.0

func (r *NetworkRanges) GetIPv6CIDR() string

GetIPv6CIDR returns the first found IPv6 CIDR in the network ranges, or an empty string if no IPv6 CIDR is found.

func (*NetworkRanges) GetIPv6CIDRs added in v2.21.0

func (r *NetworkRanges) GetIPv6CIDRs() (res []string)

GetIPv6CIDRs returns all IPv6 CIDRs in the network ranges, or an empty string if no IPv6 CIDR is found.

func (*NetworkRanges) HasIPv4CIDR added in v2.21.0

func (r *NetworkRanges) HasIPv4CIDR() bool

HasIPv4CIDR returns true if the network ranges contain any IPv4 CIDR, false otherwise.

func (*NetworkRanges) HasIPv6CIDR added in v2.21.0

func (r *NetworkRanges) HasIPv6CIDR() bool

HasIPv6CIDR returns true if the network ranges contain any IPv6 CIDR, false otherwise.

func (*NetworkRanges) Validate added in v2.21.0

func (r *NetworkRanges) Validate() error

Validate validates the network ranges. Returns nil if valid, error otherwise.

type NodePortProxyComponentEnvoy added in v2.20.2

type NodePortProxyComponentEnvoy struct {
	NodeportProxyComponent `json:",inline"`
	LoadBalancerService    EnvoyLoadBalancerService `json:"loadBalancerService,omitempty"`
}

func (*NodePortProxyComponentEnvoy) DeepCopy added in v2.20.2

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodePortProxyComponentEnvoy.

func (*NodePortProxyComponentEnvoy) DeepCopyInto added in v2.20.2

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeSettings

type NodeSettings struct {
	// Optional: Proxy settings for the Nodes in this datacenter.
	// Defaults to the Proxy settings of the seed.
	ProxySettings `json:",inline"`
	// Optional: These image registries will be configured as insecure
	// on the container runtime.
	InsecureRegistries []string `json:"insecureRegistries,omitempty"`
	// Optional: These image registries will be configured as registry mirrors
	// on the container runtime.
	RegistryMirrors []string `json:"registryMirrors,omitempty"`
	// Optional: Translates to --pod-infra-container-image on the kubelet.
	// If not set, the kubelet will default it.
	PauseImage string `json:"pauseImage,omitempty"`
	// Optional: ContainerdRegistryMirrors configure registry mirrors endpoints. Can be used multiple times to specify multiple mirrors.
	ContainerdRegistryMirrors *ContainerRuntimeContainerd `json:"containerdRegistryMirrors,omitempty"`
}

NodeSettings are node specific flags which can be configured on datacenter level.

func (*NodeSettings) DeepCopy

func (in *NodeSettings) DeepCopy() *NodeSettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSettings.

func (*NodeSettings) DeepCopyInto

func (in *NodeSettings) DeepCopyInto(out *NodeSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeportProxyComponent

type NodeportProxyComponent struct {
	// DockerRepository is the repository containing the component's image.
	DockerRepository string `json:"dockerRepository,omitempty"`
	// Resources describes the requested and maximum allowed CPU/memory usage.
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
}

func (*NodeportProxyComponent) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeportProxyComponent.

func (*NodeportProxyComponent) DeepCopyInto

func (in *NodeportProxyComponent) DeepCopyInto(out *NodeportProxyComponent)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeportProxyConfig

type NodeportProxyConfig struct {
	// Disable will prevent the Kubermatic Operator from creating a nodeport-proxy
	// setup on the seed cluster. This should only be used if a suitable replacement
	// is installed (like the nodeport-proxy Helm chart).
	Disable bool `json:"disable,omitempty"`
	// Annotations are used to further tweak the LoadBalancer integration with the
	// cloud provider where the seed cluster is running.
	// Deprecated: Use .envoy.loadBalancerService.annotations instead.
	Annotations map[string]string `json:"annotations,omitempty"`
	// Envoy configures the Envoy application itself.
	Envoy NodePortProxyComponentEnvoy `json:"envoy,omitempty"`
	// EnvoyManager configures the Kubermatic-internal Envoy manager.
	EnvoyManager NodeportProxyComponent `json:"envoyManager,omitempty"`
	// Updater configures the component responsible for updating the LoadBalancer
	// service.
	Updater NodeportProxyComponent `json:"updater,omitempty"`
	// IPFamilyPolicy configures the IP family policy for the LoadBalancer service.
	IPFamilyPolicy *corev1.IPFamilyPolicy `json:"ipFamilyPolicy,omitempty"`
	// IPFamilies configures the IP families to use for the LoadBalancer service.
	IPFamilies []corev1.IPFamily `json:"ipFamilies,omitempty"`
}

func (*NodeportProxyConfig) DeepCopy

func (in *NodeportProxyConfig) DeepCopy() *NodeportProxyConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeportProxyConfig.

func (*NodeportProxyConfig) DeepCopyInto

func (in *NodeportProxyConfig) DeepCopyInto(out *NodeportProxyConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NotificationsOptions added in v2.22.0

type NotificationsOptions struct {
	// HideErrors will silence error notifications for the dashboard.
	HideErrors bool `json:"hideErrors,omitempty"`
	// HideErrorEvents will silence error events for the dashboard.
	HideErrorEvents bool `json:"hideErrorEvents,omitempty"`
}

func (*NotificationsOptions) DeepCopy added in v2.22.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotificationsOptions.

func (*NotificationsOptions) DeepCopyInto added in v2.22.0

func (in *NotificationsOptions) DeepCopyInto(out *NotificationsOptions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Nutanix

type Nutanix struct {
	ProviderPreset `json:",inline"`

	// Optional: To configure a HTTP proxy to access Nutanix Prism Central.
	ProxyURL string `json:"proxyURL,omitempty"`
	// Username that is used to access the Nutanix Prism Central API.
	Username string `json:"username"`
	// Password corresponding to the provided user.
	Password string `json:"password"`

	// The name of the Nutanix cluster to which the resources and nodes are deployed to.
	ClusterName string `json:"clusterName"`
	// Optional: Nutanix project to use. If none is given,
	// no project will be used.
	ProjectName string `json:"projectName,omitempty"`

	// Prism Element Username for CSI driver.
	CSIUsername string `json:"csiUsername,omitempty"`

	// Prism Element Password for CSI driver.
	CSIPassword string `json:"csiPassword,omitempty"`

	// CSIEndpoint to access Nutanix Prism Element for CSI driver.
	CSIEndpoint string `json:"csiEndpoint,omitempty"`

	// CSIPort to use when connecting to the Nutanix Prism Element endpoint (defaults to 9440).
	CSIPort *int32 `json:"csiPort,omitempty"`
}

func (*Nutanix) DeepCopy

func (in *Nutanix) DeepCopy() *Nutanix

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Nutanix.

func (*Nutanix) DeepCopyInto

func (in *Nutanix) DeepCopyInto(out *Nutanix)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Nutanix) IsValid

func (s Nutanix) IsValid() bool

type NutanixCSIConfig added in v2.20.0

type NutanixCSIConfig struct {

	// Prism Element Username for CSI driver.
	Username string `json:"username,omitempty"`

	// Prism Element Password for CSI driver.
	Password string `json:"password,omitempty"`

	// Prism Element Endpoint to access Nutanix Prism Element for CSI driver.
	Endpoint string `json:"endpoint"`

	// Optional: Port to use when connecting to the Nutanix Prism Element endpoint (defaults to 9440).
	// +optional
	Port *int32 `json:"port,omitempty"`

	// Optional: defaults to "SelfServiceContainer".
	// +optional
	StorageContainer string `json:"storageContainer,omitempty"`

	// Optional: defaults to "xfs"
	// +optional
	Fstype string `json:"fstype,omitempty"`

	// Optional: defaults to "false".
	// +optional
	SsSegmentedIscsiNetwork *bool `json:"ssSegmentedIscsiNetwork,omitempty"`
}

NutanixCSIConfig contains credentials and the endpoint for the Nutanix Prism Element to which the CSI driver connects.

func (*NutanixCSIConfig) DeepCopy added in v2.20.0

func (in *NutanixCSIConfig) DeepCopy() *NutanixCSIConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NutanixCSIConfig.

func (*NutanixCSIConfig) DeepCopyInto added in v2.20.0

func (in *NutanixCSIConfig) DeepCopyInto(out *NutanixCSIConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NutanixCloudSpec

type NutanixCloudSpec struct {
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	// ClusterName is the Nutanix cluster that this user cluster will be deployed to.
	ClusterName string `json:"clusterName"`

	// The name of the project that this cluster is deployed into. If none is given, no project will be used.
	// +optional
	ProjectName string `json:"projectName,omitempty"`

	// Optional: Used to configure a HTTP proxy to access Nutanix Prism Central.
	ProxyURL string `json:"proxyURL,omitempty"`
	// Username to access the Nutanix Prism Central API.
	Username string `json:"username,omitempty"`
	// Password corresponding to the provided user.
	Password string `json:"password,omitempty"`

	// NutanixCSIConfig for CSI driver that connects to a prism element.
	// +optional
	CSI *NutanixCSIConfig `json:"csi,omitempty"`
}

NutanixCloudSpec specifies the access data to Nutanix.

func (*NutanixCloudSpec) DeepCopy

func (in *NutanixCloudSpec) DeepCopy() *NutanixCloudSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NutanixCloudSpec.

func (*NutanixCloudSpec) DeepCopyInto

func (in *NutanixCloudSpec) DeepCopyInto(out *NutanixCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OIDCProviderConfiguration added in v2.22.0

type OIDCProviderConfiguration struct {
	// URL of the provider which allows the API server to discover public signing keys.
	IssuerURL string `json:"issuerURL"`

	// IssuerClientID is the application's ID.
	IssuerClientID string `json:"issuerClientID"`

	// IssuerClientSecret is the application's secret.
	IssuerClientSecret string `json:"issuerClientSecret"`

	// Optional: CookieHashKey is required, used to authenticate the cookie value using HMAC.
	// It is recommended to use a key with 32 or 64 bytes.
	// If not set, configuration is inherited from the default OIDC provider.
	CookieHashKey *string `json:"cookieHashKey,omitempty"`

	// Optional: CookieSecureMode if true then cookie received only with HTTPS otherwise with HTTP.
	// If not set, configuration is inherited from the default OIDC provider.
	CookieSecureMode *bool `json:"cookieSecureMode,omitempty"`

	// Optional:  OfflineAccessAsScope if true then "offline_access" scope will be used
	// otherwise 'access_type=offline" query param will be passed.
	// If not set, configuration is inherited from the default OIDC provider.
	OfflineAccessAsScope *bool `json:"offlineAccessAsScope,omitempty"`

	// Optional: SkipTLSVerify skip TLS verification for the token issuer.
	// If not set, configuration is inherited from the default OIDC provider.
	SkipTLSVerify *bool `json:"skipTLSVerify,omitempty"`
}

OIDCProviderConfiguration allows to configure OIDC provider at the Seed level. If set, it overwrites the OIDC configuration from the KubermaticConfiguration. OIDC is later used to configure: - access to User Cluster API-Servers (via user kubeconfigs) - https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens, - access to User Cluster's Kubernetes Dashboards.

func (*OIDCProviderConfiguration) DeepCopy added in v2.22.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCProviderConfiguration.

func (*OIDCProviderConfiguration) DeepCopyInto added in v2.22.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OIDCSettings

type OIDCSettings struct {
	IssuerURL      string `json:"issuerURL,omitempty"`
	ClientID       string `json:"clientID,omitempty"`
	ClientSecret   string `json:"clientSecret,omitempty"`
	UsernameClaim  string `json:"usernameClaim,omitempty"`
	GroupsClaim    string `json:"groupsClaim,omitempty"`
	RequiredClaim  string `json:"requiredClaim,omitempty"`
	ExtraScopes    string `json:"extraScopes,omitempty"`
	UsernamePrefix string `json:"usernamePrefix,omitempty"`
	GroupsPrefix   string `json:"groupsPrefix,omitempty"`
}

OIDCSettings contains OIDC configuration parameters for enabling authentication mechanism for the cluster.

func (*OIDCSettings) DeepCopy

func (in *OIDCSettings) DeepCopy() *OIDCSettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCSettings.

func (*OIDCSettings) DeepCopyInto

func (in *OIDCSettings) DeepCopyInto(out *OIDCSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OPAIntegrationSettings

type OPAIntegrationSettings struct {
	// Enables OPA Gatekeeper integration.
	Enabled bool `json:"enabled,omitempty"`

	// The timeout in seconds that is set for the Gatekeeper validating webhook admission review calls.
	// Defaults to `10` (seconds).
	WebhookTimeoutSeconds *int32 `json:"webhookTimeoutSeconds,omitempty"`
	// Optional: Enables experimental mutation in Gatekeeper.
	ExperimentalEnableMutation bool `json:"experimentalEnableMutation,omitempty"`
	// Optional: ControllerResources is the resource requirements for user cluster gatekeeper controller.
	ControllerResources *corev1.ResourceRequirements `json:"controllerResources,omitempty"`
	// Optional: AuditResources is the resource requirements for user cluster gatekeeper audit.
	AuditResources *corev1.ResourceRequirements `json:"auditResources,omitempty"`
}

OPAIntegrationSettings configures the usage of OPA (Open Policy Agent) Gatekeeper inside the user cluster.

func (*OPAIntegrationSettings) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OPAIntegrationSettings.

func (*OPAIntegrationSettings) DeepCopyInto

func (in *OPAIntegrationSettings) DeepCopyInto(out *OPAIntegrationSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OSVersions added in v2.22.0

type OSVersions map[string]string

OSVersions defines a map of OS version and the source to download the image.

func (OSVersions) DeepCopy added in v2.22.0

func (in OSVersions) DeepCopy() OSVersions

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSVersions.

func (OSVersions) DeepCopyInto added in v2.22.0

func (in OSVersions) DeepCopyInto(out *OSVersions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpaOptions

type OpaOptions struct {
	Enabled  bool `json:"enabled,omitempty"`
	Enforced bool `json:"enforced,omitempty"`
}

func (*OpaOptions) DeepCopy

func (in *OpaOptions) DeepCopy() *OpaOptions

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpaOptions.

func (*OpaOptions) DeepCopyInto

func (in *OpaOptions) DeepCopyInto(out *OpaOptions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenStack added in v2.22.0

type OpenStack struct {
	// EnforceCustomDisk will enforce the custom disk option for machines for the dashboard.
	EnforceCustomDisk bool `json:"enforceCustomDisk,omitempty"`
}

func (*OpenStack) DeepCopy added in v2.22.0

func (in *OpenStack) DeepCopy() *OpenStack

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStack.

func (*OpenStack) DeepCopyInto added in v2.22.0

func (in *OpenStack) DeepCopyInto(out *OpenStack)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Openstack

type Openstack struct {
	ProviderPreset `json:",inline"`

	UseToken bool `json:"useToken,omitempty"`

	ApplicationCredentialID     string `json:"applicationCredentialID,omitempty"`
	ApplicationCredentialSecret string `json:"applicationCredentialSecret,omitempty"`

	Username string `json:"username,omitempty"`
	Password string `json:"password,omitempty"`
	// Project, formally known as tenant.
	Project string `json:"project,omitempty"`
	// ProjectID, formally known as tenantID.
	ProjectID string `json:"projectID,omitempty"`
	Domain    string `json:"domain"`

	// Network holds the name of the internal network When specified, all worker nodes will be attached to this network. If not specified, a network, subnet & router will be created.
	Network        string `json:"network,omitempty"`
	SecurityGroups string `json:"securityGroups,omitempty"`
	// FloatingIPPool holds the name of the public network The public network is reachable from the outside world and should provide the pool of IP addresses to choose from.
	FloatingIPPool string `json:"floatingIPPool,omitempty"`
	RouterID       string `json:"routerID,omitempty"`
	SubnetID       string `json:"subnetID,omitempty"`
}

func (*Openstack) DeepCopy

func (in *Openstack) DeepCopy() *Openstack

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Openstack.

func (*Openstack) DeepCopyInto

func (in *Openstack) DeepCopyInto(out *Openstack)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Openstack) IsValid

func (s Openstack) IsValid() bool

type OpenstackCloudSpec

type OpenstackCloudSpec struct {
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	Username string `json:"username,omitempty"`
	Password string `json:"password,omitempty"`

	// project, formally known as tenant.
	Project string `json:"project,omitempty"`
	// project id, formally known as tenantID.
	ProjectID string `json:"projectID,omitempty"`

	Domain                      string `json:"domain,omitempty"`
	ApplicationCredentialID     string `json:"applicationCredentialID,omitempty"`
	ApplicationCredentialSecret string `json:"applicationCredentialSecret,omitempty"`
	UseToken                    bool   `json:"useToken,omitempty"`
	// Used internally during cluster creation
	Token string `json:"token,omitempty"`

	// Network holds the name of the internal network
	// When specified, all worker nodes will be attached to this network. If not specified, a network, subnet & router will be created.
	//
	// Note that the network is internal if the "External" field is set to false
	Network        string `json:"network"`
	SecurityGroups string `json:"securityGroups"`
	// A CIDR range that will be used to allow access to the node port range in the security group to. Only applies if
	// the security group is generated by KKP and not preexisting.
	// If NodePortsAllowedIPRange nor NodePortsAllowedIPRanges is set, the node port range can be accessed from anywhere.
	NodePortsAllowedIPRange string `json:"nodePortsAllowedIPRange,omitempty"`
	// Optional: CIDR ranges that will be used to allow access to the node port range in the security group to. Only applies if
	// the security group is generated by KKP and not preexisting.
	// If NodePortsAllowedIPRange nor NodePortsAllowedIPRanges is set, the node port range can be accessed from anywhere.
	NodePortsAllowedIPRanges *NetworkRanges `json:"nodePortsAllowedIPRanges,omitempty"`
	// FloatingIPPool holds the name of the public network
	// The public network is reachable from the outside world
	// and should provide the pool of IP addresses to choose from.
	//
	// When specified, all worker nodes will receive a public ip from this floating ip pool
	//
	// Note that the network is external if the "External" field is set to true
	FloatingIPPool string `json:"floatingIPPool"`
	RouterID       string `json:"routerID"`
	SubnetID       string `json:"subnetID"`
	// IPv6SubnetID holds the ID of the subnet used for IPv6 networking.
	// If not provided, a new subnet will be created if IPv6 is enabled.
	// +optional
	IPv6SubnetID string `json:"ipv6SubnetID,omitempty"`
	// IPv6SubnetPool holds the name of the subnet pool used for creating new IPv6 subnets.
	// If not provided, the default IPv6 subnet pool will be used.
	// +optional
	IPv6SubnetPool string `json:"ipv6SubnetPool,omitempty"`
	// Whether or not to use Octavia for LoadBalancer type of Service
	// implementation instead of using Neutron-LBaaS.
	// Attention:Openstack CCM use Octavia as default load balancer
	// implementation since v1.17.0
	//
	// Takes precedence over the 'use_octavia' flag provided at datacenter
	// level if both are specified.
	// +optional
	UseOctavia *bool `json:"useOctavia,omitempty"`

	// Enable the `enable-ingress-hostname` cloud provider option on the Openstack CCM. Can only be used with the
	// external CCM and might be deprecated and removed in future versions as it is considered a workaround for the PROXY
	// protocol to preserve client IPs.
	// +optional
	EnableIngressHostname *bool `json:"enableIngressHostname,omitempty"`
	// Set a specific suffix for the hostnames used for the PROXY protocol workaround that is enabled by EnableIngressHostname.
	// The suffix is set to `nip.io` by default. Can only be used with the external CCM and might be deprecated and removed in
	// future versions as it is considered a workaround only.
	IngressHostnameSuffix *string `json:"ingressHostnameSuffix,omitempty"`

	// Flag to configure enablement of topology support for the Cinder CSI plugin.
	// This requires Nova and Cinder to have matching availability zones configured.
	// +optional
	CinderTopologyEnabled bool `json:"cinderTopologyEnabled,omitempty"`
}

OpenstackCloudSpec specifies access data to an OpenStack cloud.

func (*OpenstackCloudSpec) DeepCopy

func (in *OpenstackCloudSpec) DeepCopy() *OpenstackCloudSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenstackCloudSpec.

func (*OpenstackCloudSpec) DeepCopyInto

func (in *OpenstackCloudSpec) DeepCopyInto(out *OpenstackCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenstackNodeSizeRequirements

type OpenstackNodeSizeRequirements struct {
	// VCPUs is the minimum required amount of (virtual) CPUs
	MinimumVCPUs int `json:"minimumVCPUs,omitempty"` //nolint:tagliatelle
	// MinimumMemory is the minimum required amount of memory, measured in MB
	MinimumMemory int `json:"minimumMemory,omitempty"`
}

func (*OpenstackNodeSizeRequirements) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenstackNodeSizeRequirements.

func (*OpenstackNodeSizeRequirements) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OperatingSystemManager added in v2.20.5

type OperatingSystemManager struct {
	// ImageRepository is used to override the OperatingSystemManager image repository.
	// It is recommended to use this field only for development, tests and PoC purposes. For production environments.
	// it is not recommended, to use this field due to compatibility with the overall KKP stack.
	ImageRepository string `json:"imageRepository,omitempty"`
	// ImageTag is used to override the OperatingSystemManager image.
	// It is recommended to use this field only for development, tests and PoC purposes. For production environments.
	// it is not recommended, to use this field due to compatibility with the overall KKP stack.
	ImageTag string `json:"imageTag,omitempty"`
}

OperatingSystemManager configures the image repo and the tag version for osm deployment.

func (*OperatingSystemManager) DeepCopy added in v2.20.5

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatingSystemManager.

func (*OperatingSystemManager) DeepCopyInto added in v2.20.5

func (in *OperatingSystemManager) DeepCopyInto(out *OperatingSystemManager)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OperatingSystemProfileList added in v2.22.0

type OperatingSystemProfileList map[providerconfig.OperatingSystem]string

OperatingSystemProfileList defines a map of operating system and the OperatingSystemProfile to use.

func (OperatingSystemProfileList) DeepCopy added in v2.22.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatingSystemProfileList.

func (OperatingSystemProfileList) DeepCopyInto added in v2.22.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OperationType

type OperationType string

OperationType is the type defining the operations triggering the compatibility check (CREATE or UPDATE).

const (
	// CreateOperation represents the creation of a new cluster.
	CreateOperation OperationType = "CREATE"
	// UpdateOperation represents the update of an existing cluster.
	UpdateOperation OperationType = "UPGRADE"
	// SupportOperation represents the possibility to enable a new feature on an existing cluster.
	SupportOperation OperationType = "SUPPORT"
)

type Packet

type Packet struct {
	ProviderPreset `json:",inline"`

	APIKey    string `json:"apiKey"`
	ProjectID string `json:"projectID"`

	BillingCycle string `json:"billingCycle,omitempty"`
}

func (*Packet) DeepCopy

func (in *Packet) DeepCopy() *Packet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Packet.

func (*Packet) DeepCopyInto

func (in *Packet) DeepCopyInto(out *Packet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Packet) IsValid

func (s Packet) IsValid() bool

type PacketCloudSpec

type PacketCloudSpec struct {
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	APIKey       string `json:"apiKey,omitempty"`
	ProjectID    string `json:"projectID,omitempty"`
	BillingCycle string `json:"billingCycle"`
}

PacketCloudSpec specifies access data to a Packet cloud.

func (*PacketCloudSpec) DeepCopy

func (in *PacketCloudSpec) DeepCopy() *PacketCloudSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PacketCloudSpec.

func (*PacketCloudSpec) DeepCopyInto

func (in *PacketCloudSpec) DeepCopyInto(out *PacketCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Parameters

type Parameters map[string]json.RawMessage

func (Parameters) DeepCopy

func (in Parameters) DeepCopy() Parameters

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Parameters.

func (Parameters) DeepCopyInto

func (in Parameters) DeepCopyInto(out *Parameters)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PreAllocatedDataVolume added in v2.21.0

type PreAllocatedDataVolume struct {
	Name         string            `json:"name"`
	Annotations  map[string]string `json:"annotations,omitempty"`
	URL          string            `json:"url"`
	Size         string            `json:"size"`
	StorageClass string            `json:"storageClass"`
}

func (*PreAllocatedDataVolume) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreAllocatedDataVolume.

func (*PreAllocatedDataVolume) DeepCopyInto added in v2.21.0

func (in *PreAllocatedDataVolume) DeepCopyInto(out *PreAllocatedDataVolume)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Preset

type Preset struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec PresetSpec `json:"spec"`
}

Presets are preconfigured cloud provider credentials that can be applied to new clusters. This frees end users from having to know the actual credentials used for their clusters.

func (*Preset) DeepCopy

func (in *Preset) DeepCopy() *Preset

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Preset.

func (*Preset) DeepCopyInto

func (in *Preset) DeepCopyInto(out *Preset)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Preset) DeepCopyObject

func (in *Preset) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PresetInvalidationReason added in v2.21.0

type PresetInvalidationReason string

+kubebuilder:validation:Enum=deleted;changed

type PresetList

type PresetList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// List of presets
	Items []Preset `json:"items"`
}

PresetList is the type representing a PresetList.

func (*PresetList) DeepCopy

func (in *PresetList) DeepCopy() *PresetList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PresetList.

func (*PresetList) DeepCopyInto

func (in *PresetList) DeepCopyInto(out *PresetList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PresetList) DeepCopyObject

func (in *PresetList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PresetSpec

type PresetSpec struct {
	// Access data for DigitalOcean.
	Digitalocean *Digitalocean `json:"digitalocean,omitempty"`
	// Access data for Hetzner.
	Hetzner *Hetzner `json:"hetzner,omitempty"`
	// Access data for Microsoft Azure Cloud.
	Azure *Azure `json:"azure,omitempty"`
	// Access data for vSphere.
	VSphere *VSphere `json:"vsphere,omitempty"`
	// Access data for Amazon Web Services(AWS) Cloud.
	AWS *AWS `json:"aws,omitempty"`
	// Access data for OpenStack.
	Openstack *Openstack `json:"openstack,omitempty"`
	// Access data for Packet Cloud.
	Packet *Packet `json:"packet,omitempty"`
	// Access data for Google Cloud Platform(GCP).
	GCP *GCP `json:"gcp,omitempty"`
	// Access data for KuberVirt.
	Kubevirt *Kubevirt `json:"kubevirt,omitempty"`
	// Access data for Alibaba Cloud.
	Alibaba *Alibaba `json:"alibaba,omitempty"`
	// Access data for Anexia.
	Anexia *Anexia `json:"anexia,omitempty"`
	// Access data for Nutanix.
	Nutanix *Nutanix `json:"nutanix,omitempty"`
	// Access data for VMware Cloud Director.
	VMwareCloudDirector *VMwareCloudDirector `json:"vmwareclouddirector,omitempty"`
	// Access data for Google Kubernetes Engine(GKE).
	GKE *GKE `json:"gke,omitempty"`
	// Access data for Amazon Elastic Kubernetes Service(EKS).
	EKS *EKS `json:"eks,omitempty"`
	// Access data for Azure Kubernetes Service(AKS).
	AKS *AKS `json:"aks,omitempty"`

	Fake *Fake `json:"fake,omitempty"`

	// RequiredEmails is a list of e-mail addresses that this presets should
	// be restricted to. Each item in the list can be either a full e-mail
	// address or just a domain name. This restriction is only enforced in the
	// KKP API.
	RequiredEmails []string `json:"requiredEmails,omitempty"`

	// Projects is a list of project IDs that this preset is limited to.
	Projects []string `json:"projects,omitempty"`

	// Only enabled presets will be available in the KKP dashboard.
	Enabled *bool `json:"enabled,omitempty"`
}

Presets specifies default presets for supported providers.

func (*PresetSpec) DeepCopy

func (in *PresetSpec) DeepCopy() *PresetSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PresetSpec.

func (*PresetSpec) DeepCopyInto

func (in *PresetSpec) DeepCopyInto(out *PresetSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (PresetSpec) IsEnabled

func (s PresetSpec) IsEnabled() bool

func (*PresetSpec) SetEnabled

func (s *PresetSpec) SetEnabled(enabled bool)

type Project

type Project struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes the configuration of the project.
	Spec ProjectSpec `json:"spec,omitempty"`
	// Status holds the current status of the project.
	Status ProjectStatus `json:"status,omitempty"`
}

Project is the type describing a project. A project is a collection of SSH keys, clusters and members. Members are assigned by creating UserProjectBinding objects.

func (*Project) DeepCopy

func (in *Project) DeepCopy() *Project

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Project.

func (*Project) DeepCopyInto

func (in *Project) DeepCopyInto(out *Project)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Project) DeepCopyObject

func (in *Project) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ProjectGroup

type ProjectGroup struct {
	Name  string `json:"name"`
	Group string `json:"group"`
}

ProjectGroup is a helper data structure that stores the information about a project and a group that a user belongs to.

func (*ProjectGroup) DeepCopy

func (in *ProjectGroup) DeepCopy() *ProjectGroup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectGroup.

func (*ProjectGroup) DeepCopyInto

func (in *ProjectGroup) DeepCopyInto(out *ProjectGroup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProjectList

type ProjectList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items is the list of the projects.
	Items []Project `json:"items"`
}

ProjectList is a collection of projects.

func (*ProjectList) DeepCopy

func (in *ProjectList) DeepCopy() *ProjectList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectList.

func (*ProjectList) DeepCopyInto

func (in *ProjectList) DeepCopyInto(out *ProjectList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ProjectList) DeepCopyObject

func (in *ProjectList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ProjectPhase

type ProjectPhase string
const (
	// ProjectActive means the project is available for use in the system.
	ProjectActive ProjectPhase = "Active"

	// ProjectInactive means the project is inactive and requires further initialization.
	ProjectInactive ProjectPhase = "Inactive"

	// ProjectTerminating means the project is undergoing graceful termination.
	ProjectTerminating ProjectPhase = "Terminating"
)

These are the valid phases of a project.

type ProjectSpec

type ProjectSpec struct {
	// Name is the human-readable name given to the project.
	Name string `json:"name"`
}

ProjectSpec is a specification of a project.

func (*ProjectSpec) DeepCopy

func (in *ProjectSpec) DeepCopy() *ProjectSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectSpec.

func (*ProjectSpec) DeepCopyInto

func (in *ProjectSpec) DeepCopyInto(out *ProjectSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProjectStatus

type ProjectStatus struct {
	// Phase describes the project phase. New projects are in the `Inactive`
	// phase; after being reconciled they move to `Active` and during deletion
	// they are `Terminating`.
	Phase ProjectPhase `json:"phase"`
}

ProjectStatus represents the current status of a project.

func (*ProjectStatus) DeepCopy

func (in *ProjectStatus) DeepCopy() *ProjectStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectStatus.

func (*ProjectStatus) DeepCopyInto

func (in *ProjectStatus) DeepCopyInto(out *ProjectStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProviderConfiguration added in v2.22.0

type ProviderConfiguration struct {
	// OpenStack are the configurations for openstack provider.
	OpenStack OpenStack `json:"openStack,omitempty"`

	// VMwareCloudDirector are the configurations for VMware Cloud Director provider.
	VMwareCloudDirector VMwareCloudDirectorSettings `json:"vmwareCloudDirector,omitempty"`
}

func (*ProviderConfiguration) DeepCopy added in v2.22.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderConfiguration.

func (*ProviderConfiguration) DeepCopyInto added in v2.22.0

func (in *ProviderConfiguration) DeepCopyInto(out *ProviderConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProviderPreset

type ProviderPreset struct {
	// Only enabled presets will be available in the KKP dashboard.
	Enabled *bool `json:"enabled,omitempty"`
	// If datacenter is set, this preset is only applicable to the
	// configured datacenter.
	Datacenter string `json:"datacenter,omitempty"`
}

func (*ProviderPreset) DeepCopy

func (in *ProviderPreset) DeepCopy() *ProviderPreset

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderPreset.

func (*ProviderPreset) DeepCopyInto

func (in *ProviderPreset) DeepCopyInto(out *ProviderPreset)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ProviderPreset) IsEnabled

func (s ProviderPreset) IsEnabled() bool

type ProviderType

type ProviderType string

+kubebuilder:validation:Enum=digitalocean;hetzner;azure;vsphere;aws;openstack;packet;gcp;kubevirt;nutanix;alibaba;anexia;fake;vmwareclouddirector

const (
	// Constants defining known cloud providers.
	FakeCloudProvider                ProviderType = "fake"
	AKSCloudProvider                 ProviderType = "aks"
	AlibabaCloudProvider             ProviderType = "alibaba"
	AnexiaCloudProvider              ProviderType = "anexia"
	AWSCloudProvider                 ProviderType = "aws"
	AzureCloudProvider               ProviderType = "azure"
	BringYourOwnCloudProvider        ProviderType = "bringyourown"
	EdgeCloudProvider                ProviderType = "edge"
	DigitaloceanCloudProvider        ProviderType = "digitalocean"
	EKSCloudProvider                 ProviderType = "eks"
	GCPCloudProvider                 ProviderType = "gcp"
	GKECloudProvider                 ProviderType = "gke"
	HetznerCloudProvider             ProviderType = "hetzner"
	KubevirtCloudProvider            ProviderType = "kubevirt"
	NutanixCloudProvider             ProviderType = "nutanix"
	OpenstackCloudProvider           ProviderType = "openstack"
	PacketCloudProvider              ProviderType = "packet"
	VMwareCloudDirectorCloudProvider ProviderType = "vmwareclouddirector"
	VSphereCloudProvider             ProviderType = "vsphere"

	DefaultSSHPort     = 22
	DefaultKubeletPort = 10250

	DefaultKubeconfigFieldPath = "kubeconfig"
)

func (ProviderType) IsIPv6KnownProvider added in v2.21.0

func (cloudProvider ProviderType) IsIPv6KnownProvider() bool

type ProxySettings

type ProxySettings struct {
	// Optional: If set, this proxy will be configured for both HTTP and HTTPS.
	HTTPProxy *ProxyValue `json:"httpProxy,omitempty"`
	// Optional: If set this will be set as NO_PROXY environment variable on the node;
	// The value must be a comma-separated list of domains for which no proxy
	// should be used, e.g. "*.example.com,internal.dev".
	// Note that the in-cluster apiserver URL will be automatically prepended
	// to this value.
	NoProxy *ProxyValue `json:"noProxy,omitempty"`
}

ProxySettings allow configuring a HTTP proxy for the controlplanes and nodes.

func (*ProxySettings) DeepCopy

func (in *ProxySettings) DeepCopy() *ProxySettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxySettings.

func (*ProxySettings) DeepCopyInto

func (in *ProxySettings) DeepCopyInto(out *ProxySettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ProxySettings) Empty

func (p *ProxySettings) Empty() bool

Empty returns true if p or all of its children are nil or empty strings.

func (*ProxySettings) Merge

func (p *ProxySettings) Merge(dst *ProxySettings)

Merge applies the settings from p into dst if the corresponding setting in dst is nil or an empty string.

type ProxyValue

type ProxyValue string

func NewProxyValue

func NewProxyValue(value string) *ProxyValue

func (*ProxyValue) Empty

func (p *ProxyValue) Empty() bool

func (*ProxyValue) String

func (p *ProxyValue) String() string

type ResourceDetails added in v2.21.0

type ResourceDetails struct {
	// CPU holds the quantity of CPU. For the format, please check k8s.io/apimachinery/pkg/api/resource.Quantity.
	CPU *resource.Quantity `json:"cpu,omitempty"`
	// Memory represents the quantity of RAM size. For the format, please check k8s.io/apimachinery/pkg/api/resource.Quantity.
	Memory *resource.Quantity `json:"memory,omitempty"`
	// Storage represents the disk size. For the format, please check k8s.io/apimachinery/pkg/api/resource.Quantity.
	Storage *resource.Quantity `json:"storage,omitempty"`
}

ResourceDetails holds the CPU, Memory and Storage quantities.

func NewResourceDetails added in v2.21.0

func NewResourceDetails(cpu, memory, storage resource.Quantity) *ResourceDetails

func (*ResourceDetails) DeepCopy added in v2.21.0

func (in *ResourceDetails) DeepCopy() *ResourceDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceDetails.

func (*ResourceDetails) DeepCopyInto added in v2.21.0

func (in *ResourceDetails) DeepCopyInto(out *ResourceDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ResourceDetails) IsEmpty added in v2.22.0

func (r ResourceDetails) IsEmpty() bool

type ResourceQuota added in v2.21.0

type ResourceQuota struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes the desired state of the resource quota.
	Spec ResourceQuotaSpec `json:"spec,omitempty"`
	// Status holds the current state of the resource quota.
	Status ResourceQuotaStatus `json:"status,omitempty"`
}

ResourceQuota specifies the amount of cluster resources a project can use.

func (*ResourceQuota) DeepCopy added in v2.21.0

func (in *ResourceQuota) DeepCopy() *ResourceQuota

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuota.

func (*ResourceQuota) DeepCopyInto added in v2.21.0

func (in *ResourceQuota) DeepCopyInto(out *ResourceQuota)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ResourceQuota) DeepCopyObject added in v2.21.0

func (in *ResourceQuota) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ResourceQuotaList added in v2.21.0

type ResourceQuotaList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items is the list of the resource quotas.
	Items []ResourceQuota `json:"items"`
}

ResourceQuotaList is a collection of resource quotas.

func (*ResourceQuotaList) DeepCopy added in v2.21.0

func (in *ResourceQuotaList) DeepCopy() *ResourceQuotaList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaList.

func (*ResourceQuotaList) DeepCopyInto added in v2.21.0

func (in *ResourceQuotaList) DeepCopyInto(out *ResourceQuotaList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ResourceQuotaList) DeepCopyObject added in v2.21.0

func (in *ResourceQuotaList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ResourceQuotaSpec added in v2.21.0

type ResourceQuotaSpec struct {
	// Subject specifies to which entity the quota applies to.
	Subject Subject `json:"subject"`
	// Quota specifies the current maximum allowed usage of resources.
	Quota ResourceDetails `json:"quota"`
}

ResourceQuotaSpec describes the desired state of a resource quota.

func (*ResourceQuotaSpec) DeepCopy added in v2.21.0

func (in *ResourceQuotaSpec) DeepCopy() *ResourceQuotaSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaSpec.

func (*ResourceQuotaSpec) DeepCopyInto added in v2.21.0

func (in *ResourceQuotaSpec) DeepCopyInto(out *ResourceQuotaSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ResourceQuotaStatus added in v2.21.0

type ResourceQuotaStatus struct {
	// GlobalUsage is holds the current usage of resources for all seeds.
	GlobalUsage ResourceDetails `json:"globalUsage,omitempty"`
	// LocalUsage is holds the current usage of resources for the local seed.
	LocalUsage ResourceDetails `json:"localUsage,omitempty"`
}

ResourceQuotaStatus describes the current state of a resource quota.

func (*ResourceQuotaStatus) DeepCopy added in v2.21.0

func (in *ResourceQuotaStatus) DeepCopy() *ResourceQuotaStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaStatus.

func (*ResourceQuotaStatus) DeepCopyInto added in v2.21.0

func (in *ResourceQuotaStatus) DeepCopyInto(out *ResourceQuotaStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RuleGroup

type RuleGroup struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec RuleGroupSpec `json:"spec,omitempty"`
}

func (*RuleGroup) DeepCopy

func (in *RuleGroup) DeepCopy() *RuleGroup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleGroup.

func (*RuleGroup) DeepCopyInto

func (in *RuleGroup) DeepCopyInto(out *RuleGroup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RuleGroup) DeepCopyObject

func (in *RuleGroup) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RuleGroupList

type RuleGroupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []RuleGroup `json:"items"`
}

func (*RuleGroupList) DeepCopy

func (in *RuleGroupList) DeepCopy() *RuleGroupList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleGroupList.

func (*RuleGroupList) DeepCopyInto

func (in *RuleGroupList) DeepCopyInto(out *RuleGroupList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RuleGroupList) DeepCopyObject

func (in *RuleGroupList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RuleGroupSpec

type RuleGroupSpec struct {
	// IsDefault indicates whether the ruleGroup is default
	IsDefault bool `json:"isDefault,omitempty"`
	// RuleGroupType is the type of this ruleGroup applies to. It can be `Metrics` or `Logs`.
	RuleGroupType RuleGroupType `json:"ruleGroupType"`
	// Cluster is the reference to the cluster the ruleGroup should be created in. All fields
	// except for the name are ignored.
	Cluster corev1.ObjectReference `json:"cluster"`
	// Data contains the RuleGroup data. Ref: https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#rule_group
	Data []byte `json:"data"`
}

func (*RuleGroupSpec) DeepCopy

func (in *RuleGroupSpec) DeepCopy() *RuleGroupSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleGroupSpec.

func (*RuleGroupSpec) DeepCopyInto

func (in *RuleGroupSpec) DeepCopyInto(out *RuleGroupSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RuleGroupType

type RuleGroupType string
const (
	// RuleGroupTypeMetrics means the RuleGroup defines the rules to generate alerts from metrics.
	RuleGroupTypeMetrics RuleGroupType = "Metrics"
	// RuleGroupTypeLogs means the RuleGroup defines the rules to generate alerts from logs.
	RuleGroupTypeLogs RuleGroupType = "Logs"
)

type SSHKeySpec

type SSHKeySpec struct {
	// Name is the human readable name for this SSH key.
	Name string `json:"name"`
	// Owner is the name of the User object that owns this SSH key.
	// Deprecated: This field is not used anymore.
	// +optional
	Owner string `json:"owner,omitempty"`
	// Project is the name of the Project object that this SSH key belongs to.
	// This field is immutable.
	Project string `json:"project"`
	// Clusters is the list of cluster names that this SSH key is assigned to.
	Clusters []string `json:"clusters"`
	// Fingerprint is calculated server-side based on the supplied public key
	// and doesn't need to be set by clients.
	// +optional
	Fingerprint string `json:"fingerprint"`
	// PublicKey is the SSH public key.
	PublicKey string `json:"publicKey"`
}

func (*SSHKeySpec) DeepCopy

func (in *SSHKeySpec) DeepCopy() *SSHKeySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHKeySpec.

func (*SSHKeySpec) DeepCopyInto

func (in *SSHKeySpec) DeepCopyInto(out *SSHKeySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SecretboxEncryptionConfiguration added in v2.21.0

type SecretboxEncryptionConfiguration struct {

	// List of 'secretbox' encryption keys. The first element of this list is considered
	// the "primary" key which will be used for encrypting data while writing it. Additional
	// keys will be used for decrypting data while reading it, if keys higher in the list
	// did not succeed in decrypting it.
	Keys []SecretboxKey `json:"keys"`
}

SecretboxEncryptionConfiguration defines static key encryption based on the 'secretbox' solution for Kubernetes.

func (*SecretboxEncryptionConfiguration) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretboxEncryptionConfiguration.

func (*SecretboxEncryptionConfiguration) DeepCopyInto added in v2.21.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SecretboxKey added in v2.21.0

type SecretboxKey struct {
	// Identifier of a key, used in various places to refer to the key.
	Name string `json:"name"`
	// Value contains a 32-byte random key that is base64 encoded. This is the key used
	// for encryption. Can be generated via `head -c 32 /dev/urandom | base64`, for example.
	Value string `json:"value,omitempty"`
	// Instead of passing the sensitive encryption key via the `value` field, a secret can be
	// referenced. The key of the secret referenced here needs to hold a key equivalent to the `value` field.
	SecretRef *corev1.SecretKeySelector `json:"secretRef,omitempty"`
}

SecretboxKey stores a key or key reference for encrypting Kubernetes API data at rest with a static key.

func (*SecretboxKey) DeepCopy added in v2.21.0

func (in *SecretboxKey) DeepCopy() *SecretboxKey

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretboxKey.

func (*SecretboxKey) DeepCopyInto added in v2.21.0

func (in *SecretboxKey) DeepCopyInto(out *SecretboxKey)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Seed

type Seed struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes the configuration of the Seed cluster.
	Spec SeedSpec `json:"spec"`
	//nolint:staticcheck
	//lint:ignore SA5008 omitgenyaml is used by the example-yaml-generator
	// Status holds the runtime information of the Seed cluster.
	Status SeedStatus `json:"status,omitempty,omitgenyaml"`
}

Seed is the type representing a Seed cluster. Seed clusters host the the control planes for KKP user clusters.

func (*Seed) DeepCopy

func (in *Seed) DeepCopy() *Seed

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Seed.

func (*Seed) DeepCopyInto

func (in *Seed) DeepCopyInto(out *Seed)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Seed) DeepCopyObject

func (in *Seed) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Seed) GetEtcdBackupDestination added in v2.20.0

func (s *Seed) GetEtcdBackupDestination(destinationName string) *BackupDestination

func (*Seed) IsDefaultEtcdAutomaticBackupEnabled

func (s *Seed) IsDefaultEtcdAutomaticBackupEnabled() bool

IsDefaultEtcdAutomaticBackupEnabled returns true if etcd automatic backup with default destination is configured for the seed.

func (*Seed) IsEtcdAutomaticBackupEnabled added in v2.21.6

func (s *Seed) IsEtcdAutomaticBackupEnabled() bool

IsEtcdAutomaticBackupEnabled returns true if etcd automatic backup is configured for the seed.

func (*Seed) IsUpToDate added in v2.21.0

func (s *Seed) IsUpToDate(masterVersions kubermatic.Versions) bool

IsUpToDate returns true if the seed was successfully reconciled by the KKP operator, meaning it has the same CRDs and controller versions than the master.

func (*Seed) SetDefaults

func (s *Seed) SetDefaults()

func (*Seed) SetKubermaticVersion added in v2.21.0

func (s *Seed) SetKubermaticVersion(masterVersions kubermatic.Versions)

type SeedCondition added in v2.21.0

type SeedCondition struct {
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// Last time we got an update on a given condition.
	LastHeartbeatTime metav1.Time `json:"lastHeartbeatTime"`
	// Last time the condition transit from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// (brief) reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Human readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

func (*SeedCondition) DeepCopy added in v2.21.0

func (in *SeedCondition) DeepCopy() *SeedCondition

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeedCondition.

func (*SeedCondition) DeepCopyInto added in v2.21.0

func (in *SeedCondition) DeepCopyInto(out *SeedCondition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SeedConditionType added in v2.21.0

type SeedConditionType string

SeedConditionType is used to indicate the type of a seed condition. For all condition types, the `true` value must indicate success. All condition types must be registered within the `AllSeedConditionTypes` variable.

const (
	// SeedConditionKubeconfigValid indicates that the configured kubeconfig for the seed is valid.
	// The seed-sync controller manages this condition.
	SeedConditionKubeconfigValid SeedConditionType = "KubeconfigValid"
	// SeedConditionResourcesReconciled indicates that the KKP operator has finished setting up the
	// resources inside the seed cluster.
	SeedConditionResourcesReconciled SeedConditionType = "ResourcesReconciled"
	// SeedConditionClusterInitialized indicates that the KKP operator has finished setting up the
	// CRDs and other prerequisites on the Seed cluster. After this condition is true, other
	// controllers can begin to create watches and reconcile resources (i.e. this condition is
	// a precondition to ResourcesReconciled). Once this condition is true, it is never set to false
	// again.
	SeedConditionClusterInitialized SeedConditionType = "ClusterInitialized"
)

type SeedList

type SeedList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// List of seeds
	Items []Seed `json:"items"`
}

SeedDatacenterList is the type representing a SeedDatacenterList.

func (*SeedList) DeepCopy

func (in *SeedList) DeepCopy() *SeedList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeedList.

func (*SeedList) DeepCopyInto

func (in *SeedList) DeepCopyInto(out *SeedList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SeedList) DeepCopyObject

func (in *SeedList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SeedMLASettings

type SeedMLASettings struct {
	// Optional: UserClusterMLAEnabled controls whether the user cluster MLA (Monitoring, Logging & Alerting) stack is enabled in the seed.
	UserClusterMLAEnabled bool `json:"userClusterMLAEnabled,omitempty"` //nolint:tagliatelle
}

SeedMLASettings allow configuring seed level MLA (Monitoring, Logging & Alerting) stack settings.

func (*SeedMLASettings) DeepCopy

func (in *SeedMLASettings) DeepCopy() *SeedMLASettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeedMLASettings.

func (*SeedMLASettings) DeepCopyInto

func (in *SeedMLASettings) DeepCopyInto(out *SeedMLASettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SeedPhase added in v2.21.0

type SeedPhase string
const (
	// SeedHealthyPhase means the seed is reachable and was successfully reconciled.
	SeedHealthyPhase SeedPhase = "Healthy"

	// SeedUnhealthyPhase means the KKP resources on the seed cluster could not be
	// successfully reconciled.
	SeedUnhealthyPhase SeedPhase = "Unhealthy"

	// SeedInvalidPhase means the seed kubeconfig is defunct.
	SeedInvalidPhase SeedPhase = "Invalid"

	// SeedTerminatingPhase means the seed is currently being deleted.
	SeedTerminatingPhase SeedPhase = "Terminating"

	// SeedPausedPhase means the seed is not being reconciled because the SkipReconciling
	// annotation is set.
	SeedPausedPhase SeedPhase = "Paused"
)

These are the valid phases of a seed.

type SeedSpec

type SeedSpec struct {
	// Optional: Country of the seed as ISO-3166 two-letter code, e.g. DE or UK.
	// For informational purposes in the Kubermatic dashboard only.
	Country string `json:"country,omitempty"`
	// Optional: Detailed location of the cluster, like "Hamburg" or "Datacenter 7".
	// For informational purposes in the Kubermatic dashboard only.
	Location string `json:"location,omitempty"`
	// A reference to the Kubeconfig of this cluster. The Kubeconfig must
	// have cluster-admin privileges. This field is mandatory for every
	// seed, even if there are no datacenters defined yet.
	Kubeconfig corev1.ObjectReference `json:"kubeconfig"`
	// Datacenters contains a map of the possible datacenters (DCs) in this seed.
	// Each DC must have a globally unique identifier (i.e. names must be unique
	// across all seeds).
	Datacenters map[string]Datacenter `json:"datacenters,omitempty"`
	// Optional: This can be used to override the DNS name used for this seed.
	// By default the seed name is used.
	SeedDNSOverwrite string `json:"seedDNSOverwrite,omitempty"`
	// NodeportProxy can be used to configure the NodePort proxy service that is
	// responsible for making user-cluster control planes accessible from the outside.
	NodeportProxy NodeportProxyConfig `json:"nodeportProxy,omitempty"`
	// Optional: ProxySettings can be used to configure HTTP proxy settings on the
	// worker nodes in user clusters. However, proxy settings on nodes take precedence.
	ProxySettings *ProxySettings `json:"proxySettings,omitempty"`
	// Optional: ExposeStrategy explicitly sets the expose strategy for this seed cluster, if not set, the default provided by the master is used.
	ExposeStrategy ExposeStrategy `json:"exposeStrategy,omitempty"`
	// Optional: MLA allows configuring seed level MLA (Monitoring, Logging & Alerting) stack settings.
	MLA *SeedMLASettings `json:"mla,omitempty"`
	// DefaultComponentSettings are default values to set for newly created clusters.
	// Deprecated: Use DefaultClusterTemplate instead.
	DefaultComponentSettings ComponentSettings `json:"defaultComponentSettings,omitempty"`
	// DefaultClusterTemplate is the name of a cluster template of scope "seed" that is used
	// to default all new created clusters
	DefaultClusterTemplate string `json:"defaultClusterTemplate,omitempty"`
	// Metering configures the metering tool on user clusters across the seed.
	Metering *MeteringConfiguration `json:"metering,omitempty"`
	// EtcdBackupRestore holds the configuration of the automatic etcd backup restores for the Seed;
	// if this is set, the new backup/restore controllers are enabled for this Seed.
	EtcdBackupRestore *EtcdBackupRestore `json:"etcdBackupRestore,omitempty"`
	// OIDCProviderConfiguration allows to configure OIDC provider at the Seed level.
	OIDCProviderConfiguration *OIDCProviderConfiguration `json:"oidcProviderConfiguration,omitempty"`
	// KubeLB holds the configuration for the kubeLB at the Seed level. This component is responsible for managing load balancers.
	// Only available in Enterprise Edition.
	//
	//nolint:staticcheck
	//lint:ignore SA5008 omitcegenyaml is used by the example-yaml-generator
	KubeLB *KubeLBSettings `json:"kubelb,omitempty,omitcegenyaml"`
}

The spec for a seed cluster.

func (*SeedSpec) DeepCopy

func (in *SeedSpec) DeepCopy() *SeedSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeedSpec.

func (*SeedSpec) DeepCopyInto

func (in *SeedSpec) DeepCopyInto(out *SeedSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SeedStatus added in v2.21.0

type SeedStatus struct {
	// Phase contains a human readable text to indicate the seed cluster status. No logic should be tied
	// to this field, as its content can change in between KKP releases.
	Phase SeedPhase `json:"phase,omitempty"`

	// Clusters is the total number of user clusters that exist on this seed.
	Clusters int `json:"clusters"`

	// Versions contains information regarding versions of components in the cluster and the cluster
	// itself.
	// +optional
	Versions SeedVersionsStatus `json:"versions,omitempty"`

	// Conditions contains conditions the seed is in, its primary use case is status signaling
	// between controllers or between controllers and the API.
	// +optional
	Conditions map[SeedConditionType]SeedCondition `json:"conditions,omitempty"`
}

SeedStatus contains runtime information regarding the seed.

func (*SeedStatus) DeepCopy added in v2.21.0

func (in *SeedStatus) DeepCopy() *SeedStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeedStatus.

func (*SeedStatus) DeepCopyInto added in v2.21.0

func (in *SeedStatus) DeepCopyInto(out *SeedStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SeedStatus) HasConditionValue added in v2.21.0

func (ss *SeedStatus) HasConditionValue(conditionType SeedConditionType, conditionStatus corev1.ConditionStatus) bool

HasConditionValue returns true if the seed status has the given condition with the given status.

func (*SeedStatus) IsInitialized added in v2.22.0

func (ss *SeedStatus) IsInitialized() bool

IsInitialized returns true if the seed cluster was successfully initialized and is ready for controllers to operate on it.

type SeedVersionsStatus added in v2.21.0

type SeedVersionsStatus struct {
	// Kubermatic is the version of the currently deployed KKP components. Note that a permanent
	// version skew between master and seed is not supported and KKP setups should never run for
	// longer times with a skew between the clusters.
	Kubermatic string `json:"kubermatic,omitempty"`
	// Cluster is the Kubernetes version of the cluster's control plane.
	Cluster string `json:"cluster,omitempty"`
}

SeedVersionsStatus contains information regarding versions of components in the cluster and the cluster itself.

func (*SeedVersionsStatus) DeepCopy added in v2.21.0

func (in *SeedVersionsStatus) DeepCopy() *SeedVersionsStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeedVersionsStatus.

func (*SeedVersionsStatus) DeepCopyInto added in v2.21.0

func (in *SeedVersionsStatus) DeepCopyInto(out *SeedVersionsStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceAccountSettings

type ServiceAccountSettings struct {
	TokenVolumeProjectionEnabled bool `json:"tokenVolumeProjectionEnabled,omitempty"`
	// Issuer is the identifier of the service account token issuer
	// If this is not specified, it will be set to the URL of apiserver by default
	Issuer string `json:"issuer,omitempty"`
	// APIAudiences are the Identifiers of the API
	// If this is not specified, it will be set to a single element list containing the issuer URL
	APIAudiences []string `json:"apiAudiences,omitempty"`
}

func (*ServiceAccountSettings) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountSettings.

func (*ServiceAccountSettings) DeepCopyInto

func (in *ServiceAccountSettings) DeepCopyInto(out *ServiceAccountSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SettingSpec

type SettingSpec struct {
	// CustomLinks are additional links that can be shown the dashboard's footer.
	CustomLinks CustomLinks `json:"customLinks"`
	// DefaultNodeCount is the default number of replicas for the initial MachineDeployment.
	DefaultNodeCount int8 `json:"defaultNodeCount"`
	// DisplayDemoInfo controls whether a "Demo System" hint is shown in the footer.
	DisplayDemoInfo bool `json:"displayDemoInfo"`
	// DisplayDemoInfo controls whether a a link to the KKP API documentation is shown in the footer.
	DisplayAPIDocs bool `json:"displayAPIDocs"`
	// DisplayDemoInfo controls whether a a link to TOS is shown in the footer.
	DisplayTermsOfService bool `json:"displayTermsOfService"`
	// EnableDashboard enables the link to the Kubernetes dashboard for a user cluster.
	EnableDashboard bool `json:"enableDashboard"`

	// EnableWebTerminal enables the Web Terminal feature for the user clusters.
	EnableWebTerminal bool `json:"enableWebTerminal,omitempty"`

	// EnableShareCluster enables the Share Cluster feature for the user clusters.
	EnableShareCluster *bool `json:"enableShareCluster,omitempty"`

	EnableOIDCKubeconfig bool `json:"enableOIDCKubeconfig"` //nolint:tagliatelle

	// EnableClusterBackup enables the Cluster Backup feature in the dashboard.
	EnableClusterBackups *bool `json:"enableClusterBackup,omitempty"`

	// DisableAdminKubeconfig disables the admin kubeconfig functionality on the dashboard.
	DisableAdminKubeconfig bool `json:"disableAdminKubeconfig,omitempty"`

	// UserProjectsLimit is the maximum number of projects a user can create.
	UserProjectsLimit       int64 `json:"userProjectsLimit"`
	RestrictProjectCreation bool  `json:"restrictProjectCreation"`
	RestrictProjectDeletion bool  `json:"restrictProjectDeletion"`

	EnableExternalClusterImport bool `json:"enableExternalClusterImport"`

	// CleanupOptions control what happens when a cluster is deleted via the dashboard.
	// +optional
	CleanupOptions CleanupOptions `json:"cleanupOptions,omitempty"`
	// +optional
	OpaOptions OpaOptions `json:"opaOptions,omitempty"`
	// +optional
	MlaOptions MlaOptions `json:"mlaOptions,omitempty"`

	MlaAlertmanagerPrefix string `json:"mlaAlertmanagerPrefix"`
	MlaGrafanaPrefix      string `json:"mlaGrafanaPrefix"`

	// Notifications are the configuration for notifications on dashboard.
	// +optional
	Notifications NotificationsOptions `json:"notifications,omitempty"`

	// ProviderConfiguration are the cloud provider specific configurations on dashboard.
	// +optional
	ProviderConfiguration ProviderConfiguration `json:"providerConfiguration,omitempty"`

	// MachineDeploymentVMResourceQuota is used to filter out allowed machine flavors based on the specified resource limits like CPU, Memory, and GPU etc.
	MachineDeploymentVMResourceQuota *MachineFlavorFilter `json:"machineDeploymentVMResourceQuota,omitempty"`

	// AllowedOperatingSystems shows if the operating system is allowed to be use in the machinedeployment.
	AllowedOperatingSystems allowedOperatingSystems `json:"allowedOperatingSystems,omitempty"`

	// DefaultProjectResourceQuota allows to configure a default project resource quota which
	// will be set for all projects that do not have a custom quota already set. EE-version only.
	// +optional
	DefaultProjectResourceQuota *DefaultProjectResourceQuota `json:"defaultQuota,omitempty"`

	// +optional
	MachineDeploymentOptions MachineDeploymentOptions `json:"machineDeploymentOptions,omitempty"`

	// DisableChangelogPopup disables the changelog popup in KKP dashboard.
	DisableChangelogPopup bool `json:"disableChangelogPopup,omitempty"`
}

func (*SettingSpec) DeepCopy

func (in *SettingSpec) DeepCopy() *SettingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SettingSpec.

func (*SettingSpec) DeepCopyInto

func (in *SettingSpec) DeepCopyInto(out *SettingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (SettingSpec) HasDefaultProjectResourceQuota added in v2.22.0

func (s SettingSpec) HasDefaultProjectResourceQuota() bool

type StatefulSetSettings

type StatefulSetSettings struct {
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
}

func (*StatefulSetSettings) DeepCopy

func (in *StatefulSetSettings) DeepCopy() *StatefulSetSettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetSettings.

func (*StatefulSetSettings) DeepCopyInto

func (in *StatefulSetSettings) DeepCopyInto(out *StatefulSetSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Subject added in v2.21.0

type Subject struct {
	// Name of the quota subject.
	Name string `json:"name"`

	// Kind of the quota subject. For now the only possible kind is project.
	Kind string `json:"kind"`
}

Subject describes the entity to which the quota applies to.

func (*Subject) DeepCopy added in v2.21.0

func (in *Subject) DeepCopy() *Subject

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.

func (*Subject) DeepCopyInto added in v2.21.0

func (in *Subject) DeepCopyInto(out *Subject)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SubnetCIDR added in v2.21.0

type SubnetCIDR string

+kubebuilder:validation:Pattern="((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))/([0-9]|[1-2][0-9]|3[0-2])$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$))" SubnetCIDR is used to store IPv4/IPv6 CIDR.

type SystemApplicationsConfiguration added in v2.22.0

type SystemApplicationsConfiguration struct {
	// HelmRepository specifies OCI repository containing Helm charts of system Applications.
	HelmRepository string `json:"helmRepository,omitempty"`
	// HelmRegistryConfigFile optionally holds the ref and key in the secret for the OCI registry credential file.
	// The value is dockercfg file that follows the same format rules as ~/.docker/config.json
	// The Secret must exist in the namespace where KKP is installed (default is "kubermatic").
	// The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to "helm".
	HelmRegistryConfigFile *corev1.SecretKeySelector `json:"helmRegistryConfigFile,omitempty"`
}

SystemApplicationsConfiguration contains configuration for system Applications (e.g. CNI).

func (*SystemApplicationsConfiguration) DeepCopy added in v2.22.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemApplicationsConfiguration.

func (*SystemApplicationsConfiguration) DeepCopyInto added in v2.22.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Update

type Update struct {
	// From is the version from which an update is allowed. Wildcards are allowed, e.g. "1.18.*".
	From string `json:"from,omitempty"`
	// To is the version to which an update is allowed.
	// Must be a valid version if `automatic` is set to true, e.g. "1.20.13".
	// Can be a wildcard otherwise, e.g. "1.20.*".
	To string `json:"to,omitempty"`
	// Automatic controls whether this update is executed automatically
	// for the control plane of all matching user clusters.
	// ---
	//nolint:staticcheck
	//lint:ignore SA5008 omitgenyaml is used by the example-yaml-generator
	Automatic *bool `json:"automatic,omitempty,omitgenyaml"`
	// Automatic controls whether this update is executed automatically
	// for the worker nodes of all matching user clusters.
	// ---
	//nolint:staticcheck
	//lint:ignore SA5008 omitgenyaml is used by the example-yaml-generator
	AutomaticNodeUpdate *bool `json:"automaticNodeUpdate,omitempty,omitgenyaml"`
}

Update represents an update option for a user cluster.

func (*Update) DeepCopy

func (in *Update) DeepCopy() *Update

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Update.

func (*Update) DeepCopyInto

func (in *Update) DeepCopyInto(out *Update)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UpdateWindow

type UpdateWindow struct {

	// Sets the start time of the update window. This can be a time of day in 24h format, e.g. `22:30`,
	// or a day of week plus a time of day, for example `Mon 21:00`. Only short names for week days are supported,
	// i.e. `Mon`, `Tue`, `Wed`, `Thu`, `Fri`, `Sat` and `Sun`.
	Start string `json:"start,omitempty"`
	// Sets the length of the update window beginning with the start time. This needs to be a valid duration
	// as parsed by Go's time.ParseDuration (https://pkg.go.dev/time#ParseDuration), e.g. `2h`.
	Length string `json:"length,omitempty"`
}

UpdateWindow allows defining windows for maintenance tasks related to OS updates. This is only applied to cluster nodes using Flatcar Linux. The reference time for this is the node system time and might differ from the user's timezone, which needs to be considered when configuring a window.

func (*UpdateWindow) DeepCopy

func (in *UpdateWindow) DeepCopy() *UpdateWindow

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpdateWindow.

func (*UpdateWindow) DeepCopyInto

func (in *UpdateWindow) DeepCopyInto(out *UpdateWindow)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type User

type User struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes a KKP user.
	Spec UserSpec `json:"spec,omitempty"`
	// Status holds the information about the KKP user.
	Status UserStatus `json:"status,omitempty"`
}

User specifies a KKP user. Users can be either humans or KKP service accounts.

func (*User) DeepCopy

func (in *User) DeepCopy() *User

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new User.

func (*User) DeepCopyInto

func (in *User) DeepCopyInto(out *User)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*User) DeepCopyObject

func (in *User) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*User) GetInvalidTokensReferenceSecretName added in v2.20.0

func (u *User) GetInvalidTokensReferenceSecretName() string

type UserList

type UserList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items is the list of KKP users.
	Items []User `json:"items"`
}

UserList is a list of users.

func (*UserList) DeepCopy

func (in *UserList) DeepCopy() *UserList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserList.

func (*UserList) DeepCopyInto

func (in *UserList) DeepCopyInto(out *UserList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*UserList) DeepCopyObject

func (in *UserList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type UserProjectBinding

type UserProjectBinding struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec describes a KKP user and project binding.
	Spec UserProjectBindingSpec `json:"spec,omitempty"`
}

UserProjectBinding specifies a binding between a user and a project This resource is used by the user management to manipulate members of the given project.

func (*UserProjectBinding) DeepCopy

func (in *UserProjectBinding) DeepCopy() *UserProjectBinding

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserProjectBinding.

func (*UserProjectBinding) DeepCopyInto

func (in *UserProjectBinding) DeepCopyInto(out *UserProjectBinding)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*UserProjectBinding) DeepCopyObject

func (in *UserProjectBinding) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type UserProjectBindingList

type UserProjectBindingList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items is the list of KKP user and project bindings.
	Items []UserProjectBinding `json:"items"`
}

UserProjectBindingList is a list of KKP user and project bindings.

func (*UserProjectBindingList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserProjectBindingList.

func (*UserProjectBindingList) DeepCopyInto

func (in *UserProjectBindingList) DeepCopyInto(out *UserProjectBindingList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*UserProjectBindingList) DeepCopyObject

func (in *UserProjectBindingList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type UserProjectBindingSpec

type UserProjectBindingSpec struct {
	// UserEmail is the email of the user that is bound to the given project.
	UserEmail string `json:"userEmail"`
	// ProjectID is the name of the target project.
	ProjectID string `json:"projectID"`

	// Group is the user's group, determining their permissions within the project.
	// Must be one of `owners`, `editors`, `viewers` or `projectmanagers`.
	Group string `json:"group"`
}

UserProjectBindingSpec specifies a user and project binding.

func (*UserProjectBindingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserProjectBindingSpec.

func (*UserProjectBindingSpec) DeepCopyInto

func (in *UserProjectBindingSpec) DeepCopyInto(out *UserProjectBindingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UserSSHKey

type UserSSHKey struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec SSHKeySpec `json:"spec,omitempty"`
}

UserSSHKey specifies a users UserSSHKey.

func (*UserSSHKey) AddToCluster

func (sk *UserSSHKey) AddToCluster(clustername string)

func (*UserSSHKey) DeepCopy

func (in *UserSSHKey) DeepCopy() *UserSSHKey

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSSHKey.

func (*UserSSHKey) DeepCopyInto

func (in *UserSSHKey) DeepCopyInto(out *UserSSHKey)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*UserSSHKey) DeepCopyObject

func (in *UserSSHKey) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*UserSSHKey) IsUsedByCluster

func (sk *UserSSHKey) IsUsedByCluster(clustername string) bool

func (*UserSSHKey) RemoveFromCluster

func (sk *UserSSHKey) RemoveFromCluster(clustername string)

type UserSSHKeyList

type UserSSHKeyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []UserSSHKey `json:"items"`
}

UserSSHKeyList specifies a users UserSSHKey.

func (*UserSSHKeyList) DeepCopy

func (in *UserSSHKeyList) DeepCopy() *UserSSHKeyList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSSHKeyList.

func (*UserSSHKeyList) DeepCopyInto

func (in *UserSSHKeyList) DeepCopyInto(out *UserSSHKeyList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*UserSSHKeyList) DeepCopyObject

func (in *UserSSHKeyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type UserSettings

type UserSettings struct {
	SelectedTheme              string `json:"selectedTheme,omitempty"`
	ItemsPerPage               int8   `json:"itemsPerPage,omitempty"`
	SelectedProjectID          string `json:"selectedProjectID,omitempty"`
	SelectProjectTableView     bool   `json:"selectProjectTableView,omitempty"`
	CollapseSidenav            bool   `json:"collapseSidenav,omitempty"`
	DisplayAllProjectsForAdmin bool   `json:"displayAllProjectsForAdmin,omitempty"`
	LastSeenChangelogVersion   string `json:"lastSeenChangelogVersion,omitempty"`
	UseClustersView            bool   `json:"useClustersView,omitempty"`
}

UserSettings represent an user settings.

func (*UserSettings) DeepCopy

func (in *UserSettings) DeepCopy() *UserSettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSettings.

func (*UserSettings) DeepCopyInto

func (in *UserSettings) DeepCopyInto(out *UserSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UserSpec

type UserSpec struct {
	// ID is an unused legacy field.
	// Deprecated: do not set this field anymore.
	ID string `json:"id,omitempty"`
	// Name is the full name of this user.
	Name string `json:"name"`
	// Email is the email address of this user. Emails must be globally unique across
	// all KKP users.
	Email string `json:"email"`
	// IsAdmin defines whether this user is an administrator with additional permissions.
	// Admins can for example see all projects and clusters in the KKP dashboard.
	// +kubebuilder:default=false
	IsAdmin bool `json:"admin"`
	// Groups holds the information to which groups the user belongs to. Set automatically when logging in to the
	// KKP API, and used by the KKP API.
	Groups []string `json:"groups,omitempty"`

	// Project is the name of the project that this service account user is tied to. This
	// field is only applicable to service accounts and regular users must not set this field.
	// +optional
	Project string `json:"project,omitempty"`

	// Settings contains both user-configurable and system-owned configuration for the
	// KKP dashboard.
	Settings *UserSettings `json:"settings,omitempty"`

	// InvalidTokensReference is a reference to a Secret that contains invalidated
	// login tokens. The tokens are used to provide a safe logout mechanism.
	InvalidTokensReference *providerconfig.GlobalSecretKeySelector `json:"invalidTokensReference,omitempty"`
}

UserSpec specifies a user.

func (*UserSpec) DeepCopy

func (in *UserSpec) DeepCopy() *UserSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSpec.

func (*UserSpec) DeepCopyInto

func (in *UserSpec) DeepCopyInto(out *UserSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UserStatus

type UserStatus struct {
	// +optional
	LastSeen metav1.Time `json:"lastSeen,omitempty"`
}

UserStatus stores status information about a user.

func (*UserStatus) DeepCopy

func (in *UserStatus) DeepCopy() *UserStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserStatus.

func (*UserStatus) DeepCopyInto

func (in *UserStatus) DeepCopyInto(out *UserStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VMwareCloudDirector added in v2.21.0

type VMwareCloudDirector struct {
	ProviderPreset `json:",inline"`

	// The VMware Cloud Director user name.
	Username string `json:"username,omitempty"`
	// The VMware Cloud Director user password.
	Password string `json:"password,omitempty"`
	// The VMware Cloud Director API token.
	APIToken string `json:"apiToken,omitempty"`
	// The organizational virtual data center.
	VDC string `json:"vdc"`
	// The name of organization to use.
	Organization string `json:"organization"`
	// The name of organizational virtual data center network that will be associated with the VMs and vApp.
	// Deprecated: OVDCNetwork has been deprecated starting with KKP 2.25 and will be removed in KKP 2.27+. It is recommended to use OVDCNetworks instead.
	OVDCNetwork string `json:"ovdcNetwork,omitempty"`
	// OVDCNetworks is the list of organizational virtual data center networks that will be attached to the vApp and can be consumed the VMs.
	OVDCNetworks []string `json:"ovdcNetworks,omitempty"`
}

func (*VMwareCloudDirector) DeepCopy added in v2.21.0

func (in *VMwareCloudDirector) DeepCopy() *VMwareCloudDirector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMwareCloudDirector.

func (*VMwareCloudDirector) DeepCopyInto added in v2.21.0

func (in *VMwareCloudDirector) DeepCopyInto(out *VMwareCloudDirector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (VMwareCloudDirector) IsValid added in v2.21.0

func (s VMwareCloudDirector) IsValid() bool

type VMwareCloudDirectorCSIConfig added in v2.21.0

type VMwareCloudDirectorCSIConfig struct {
	// The name of the storage profile to use for disks created by CSI driver
	StorageProfile string `json:"storageProfile"`

	// Filesystem to use for named disks, defaults to "ext4"
	// +optional
	Filesystem string `json:"filesystem,omitempty"`
}

func (*VMwareCloudDirectorCSIConfig) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMwareCloudDirectorCSIConfig.

func (*VMwareCloudDirectorCSIConfig) DeepCopyInto added in v2.21.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VMwareCloudDirectorCloudSpec added in v2.21.0

type VMwareCloudDirectorCloudSpec struct {
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	// The VMware Cloud Director user name.
	// +optional
	Username string `json:"username,omitempty"`

	// The VMware Cloud Director user password.
	// +optional
	Password string `json:"password,omitempty"`

	// The VMware Cloud Director API token.
	// +optional
	APIToken string `json:"apiToken,omitempty"`

	// The name of organization to use.
	// +optional
	Organization string `json:"organization,omitempty"`

	// The organizational virtual data center.
	// +optional
	VDC string `json:"vdc,omitempty"`

	// The name of organizational virtual data center network that will be associated with the VMs and vApp.
	// Deprecated: OVDCNetwork has been deprecated starting with KKP 2.25 and will be removed in KKP 2.27+. It is recommended to use OVDCNetworks instead.
	OVDCNetwork string `json:"ovdcNetwork,omitempty"`

	// OVDCNetworks is the list of organizational virtual data center networks that will be attached to the vApp and can be consumed the VMs.
	OVDCNetworks []string `json:"ovdcNetworks,omitempty"`

	// VApp used for isolation of VMs and their associated network
	// +optional
	VApp string `json:"vapp,omitempty"`

	// Config for CSI driver
	CSI *VMwareCloudDirectorCSIConfig `json:"csi"`
}

VMwareCloudDirectorCloudSpec specifies access data to VMware Cloud Director cloud.

func (*VMwareCloudDirectorCloudSpec) DeepCopy added in v2.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMwareCloudDirectorCloudSpec.

func (*VMwareCloudDirectorCloudSpec) DeepCopyInto added in v2.21.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VMwareCloudDirectorSettings added in v2.25.0

type VMwareCloudDirectorSettings struct {
	// IPAllocationModes are the allowed IP allocation modes for the VMware Cloud Director provider. If not set, all modes are allowed.
	IPAllocationModes []ipAllocationMode `json:"ipAllocationModes,omitempty"`
}

func (*VMwareCloudDirectorSettings) DeepCopy added in v2.25.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMwareCloudDirectorSettings.

func (*VMwareCloudDirectorSettings) DeepCopyInto added in v2.25.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VSphere

type VSphere struct {
	ProviderPreset `json:",inline"`

	// The vSphere user name.
	Username string `json:"username"`
	// The vSphere user password.
	Password string `json:"password"`

	// Deprecated: Use networks instead.
	VMNetName string `json:"vmNetName,omitempty"`
	// List of vSphere networks.
	Networks []string `json:"networks,omitempty"`
	// Datastore to be used for storing virtual machines and as a default for dynamic volume provisioning, it is mutually exclusive with DatastoreCluster.
	Datastore string `json:"datastore,omitempty"`
	// DatastoreCluster to be used for storing virtual machines, it is mutually exclusive with Datastore.
	DatastoreCluster string `json:"datastoreCluster,omitempty"`
	// ResourcePool is used to manage resources such as cpu and memory for vSphere virtual machines. The resource pool should be defined on vSphere cluster level.
	ResourcePool string `json:"resourcePool,omitempty"`
	// BasePath configures a vCenter folder path that KKP will create an individual cluster folder in.
	// If it's an absolute path, the RootPath configured in the datacenter will be ignored. If it is a relative path,
	// the BasePath part will be appended to the RootPath to construct the full path. For both cases,
	// the full folder structure needs to exist. KKP will only try to create the cluster folder.
	BasePath string `json:"basePath,omitempty"`
}

func (*VSphere) DeepCopy

func (in *VSphere) DeepCopy() *VSphere

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VSphere.

func (*VSphere) DeepCopyInto

func (in *VSphere) DeepCopyInto(out *VSphere)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (VSphere) IsValid

func (s VSphere) IsValid() bool

type VSphereCloudSpec

type VSphereCloudSpec struct {
	CredentialsReference *providerconfig.GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	// The vSphere user name.
	// +optional
	Username string `json:"username"`
	// The vSphere user password.
	// +optional
	Password string `json:"password"`
	// The name of the vSphere network.
	// Deprecated: Use networks instead.
	// +optional
	VMNetName string `json:"vmNetName,omitempty"`
	// List of vSphere networks.
	// +optional
	Networks []string `json:"networks,omitempty"`
	// Folder to be used to group the provisioned virtual
	// machines.
	// +optional
	Folder string `json:"folder"`
	// Optional: BasePath configures a vCenter folder path that KKP will create an individual cluster folder in.
	// If it's an absolute path, the RootPath configured in the datacenter will be ignored. If it is a relative path,
	// the BasePath part will be appended to the RootPath to construct the full path. For both cases,
	// the full folder structure needs to exist. KKP will only try to create the cluster folder.
	// +optional
	BasePath string `json:"basePath,omitempty"`

	// Datastore to be used for storing virtual machines and as a default for
	// dynamic volume provisioning, it is mutually exclusive with
	// DatastoreCluster.
	// +optional
	Datastore string `json:"datastore,omitempty"`
	// DatastoreCluster to be used for storing virtual machines, it is mutually
	// exclusive with Datastore.
	// +optional
	DatastoreCluster string `json:"datastoreCluster,omitempty"`

	// StoragePolicy to be used for storage provisioning
	StoragePolicy string `json:"storagePolicy"`

	// ResourcePool is used to manage resources such as cpu and memory for vSphere virtual machines. The resource pool
	// should be defined on vSphere cluster level.
	// +optional
	ResourcePool string `json:"resourcePool,omitempty"`

	// This user will be used for everything except cloud provider functionality
	InfraManagementUser VSphereCredentials `json:"infraManagementUser"`

	// Tags represents the tags that are attached or created on the cluster level, that are then propagated down to the
	// MachineDeployments. In order to attach tags on MachineDeployment, users must create the tag on a cluster level first
	// then attach that tag on the MachineDeployment.
	Tags *VSphereTag `json:"tags,omitempty"`
}

VSphereCloudSpec specifies access data to VSphere cloud.

func (*VSphereCloudSpec) DeepCopy

func (in *VSphereCloudSpec) DeepCopy() *VSphereCloudSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VSphereCloudSpec.

func (*VSphereCloudSpec) DeepCopyInto

func (in *VSphereCloudSpec) DeepCopyInto(out *VSphereCloudSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VSphereCredentials

type VSphereCredentials struct {
	Username string `json:"username,omitempty"`
	Password string `json:"password,omitempty"`
}

VSphereCredentials credentials represents a credential for accessing vSphere.

func (*VSphereCredentials) DeepCopy

func (in *VSphereCredentials) DeepCopy() *VSphereCredentials

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VSphereCredentials.

func (*VSphereCredentials) DeepCopyInto

func (in *VSphereCredentials) DeepCopyInto(out *VSphereCredentials)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VSphereTag added in v2.22.0

type VSphereTag struct {
	// Tags represents the name of the created tags.
	Tags []string `json:"tags"`
	// CategoryID is the id of the vsphere category that the tag belongs to. If the category id is left empty, the default
	// category id for the cluster will be used.
	CategoryID string `json:"categoryID,omitempty"`
}

VSphereTag represents the tags that are attached or created on the cluster level, that are then propagated down to the MachineDeployments. In order to attach tags on MachineDeployment, users must create the tag on a cluster level first then attach that tag on the MachineDeployment.

func (*VSphereTag) DeepCopy added in v2.22.0

func (in *VSphereTag) DeepCopy() *VSphereTag

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VSphereTag.

func (*VSphereTag) DeepCopyInto added in v2.22.0

func (in *VSphereTag) DeepCopyInto(out *VSphereTag)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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