v1

package
v2.0.0-...-656b533 Latest Latest
Warning

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

Go to latest
Published: Mar 24, 2023 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

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

Index

Constants

View Source
const (
	// 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"

	// ProjectIDLabelKey is the label on a Cluster resource that points to the project it belongs to.
	ProjectIDLabelKey = "project-id"

	IsCredentialPresetLabelKey = "is-credential-preset"
)
View Source
const (
	CCMMigrationNeededAnnotation = "ccm-migration.k8c.io/migration-needed"
	CSIMigrationNeededAnnotation = "csi-migration.k8c.io/migration-needed"
)
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 contorllers.
	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 (
	TemplateScopeUserCluster    = "user"
	TemplateScopeProjectCluster = "project"
	TemplateScopeGlobalCluster  = "global"
	TemplateScopeSeed           = "seed"
)
View Source
const (
	ClusterTemplateLabelKey                  = "template-id"
	ClusterTemplateInstanceLabelKey          = "template-instance-id"
	ClusterTemplateScopeLabelKey             = "scope"
	ClusterTemplateUserAnnotationKey         = "user"
	ClusterTemplateProjectLabelKey           = "project-id"
	ClusterTemplateHumanReadableNameLabelKey = "name"
)
View Source
const (
	// 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 (
	// 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 (
	ResourceQuotaSubjectNameLabelKey = "subject-name"
	ResourceQuotaSubjectKindLabelKey = "subject-kind"
)
View Source
const ClusterTemplateInstanceOwnerAnnotationKey = "owner"

ClusterTemplateInstanceOwnerAnnotationKey represents the user cluster owner.

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"
View Source
const (
	// 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"
)

Variables

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

	// SchemeGroupVersion is group version used to register these objects.
	SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: GroupVersion}
)

AllExposeStrategies is a set containing all the expose strategies.

ProtectedClusterLabels is a set of labels that must not be set on clusters manually by users, as they are relevant for the correct functioning of and security in KKP.

Functions

func Resource

func Resource(resource string) schema.GroupResource

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

Types

type AKSPreset

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

	TenantID       string `json:"tenantID"`
	SubscriptionID string `json:"subscriptionID"`
	ClientID       string `json:"clientID"`
	ClientSecret   string `json:"clientSecret"`
}

func (*AKSPreset) DeepCopy

func (in *AKSPreset) DeepCopy() *AKSPreset

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

func (*AKSPreset) DeepCopyInto

func (in *AKSPreset) DeepCopyInto(out *AKSPreset)

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

func (AKSPreset) IsValid

func (s AKSPreset) 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 AWSCloudSpec

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

	AccessKeyID          string `json:"accessKeyID,omitempty"`
	SecretAccessKey      string `json:"secretAccessKey,omitempty"`
	AssumeRoleARN        string `json:"assumeRoleARN,omitempty"` //nolint:tagliatelle
	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 AWSPreset

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

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

	AssumeRoleARN        string `json:"assumeRoleARN,omitempty"` //nolint:tagliatelle
	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 (*AWSPreset) DeepCopy

func (in *AWSPreset) DeepCopy() *AWSPreset

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

func (*AWSPreset) DeepCopyInto

func (in *AWSPreset) DeepCopyInto(out *AWSPreset)

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

func (AWSPreset) IsValid

func (s AWSPreset) IsValid() bool

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

+kubebuilder:validation:Enum=AddonResourcesCreatedSuccessfully

const (
	AddonConditionResourcesCreated AddonConditionType = "AddonResourcesCreatedSuccessfully"
)

type AddonConfig

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

	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 []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 []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 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"`

	// 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   AlertmanagerSpec   `json:"spec,omitempty"`
	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 []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"`
}

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 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 AlibabaCloudSpec

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

	AccessKeyID     string `json:"accessKeyID,omitempty"`
	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 AlibabaPreset

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

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

func (*AlibabaPreset) DeepCopy

func (in *AlibabaPreset) DeepCopy() *AlibabaPreset

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

func (*AlibabaPreset) DeepCopyInto

func (in *AlibabaPreset) DeepCopyInto(out *AlibabaPreset)

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

func (AlibabaPreset) IsValid

func (s AlibabaPreset) IsValid() bool

type AllowedRegistry

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

	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 []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 AnexiaCloudSpec

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

	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 AnexiaPreset

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

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

func (*AnexiaPreset) DeepCopy

func (in *AnexiaPreset) DeepCopy() *AnexiaPreset

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

func (*AnexiaPreset) DeepCopyInto

func (in *AnexiaPreset) DeepCopyInto(out *AnexiaPreset)

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

func (AnexiaPreset) IsValid

func (s AnexiaPreset) IsValid() bool

type ApplicationSettings

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

func (in *ApplicationSettings) DeepCopy() *ApplicationSettings

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

func (*ApplicationSettings) DeepCopyInto

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

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

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

func (*AuditSidecarConfiguration) DeepCopyInto

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

type AuditSidecarSettings

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

func (*AuditSidecarSettings) DeepCopy

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

func (*AuditSidecarSettings) DeepCopyInto

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

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

type AzureCloudSpec

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

	// TenantID is the Azure Active Directory Tenant used for this cluster.
	// Can be read from `credentialsReference` instead.
	TenantID string `json:"tenantID,omitempty"`
	// SubscriptionID is the Azure Subscription used for this cluster.
	// Can be read from `credentialsReference` instead.
	SubscriptionID string `json:"subscriptionID,omitempty"`
	// ClientID is the service principal used to access Azure.
	// Can be read from `credentialsReference` instead.
	ClientID string `json:"clientID,omitempty"`
	// ClientSecret is 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: VNetResourceGroup optionally 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 AzureLBSKU `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 AzureLBSKU

type AzureLBSKU string

Azure SKU for Load Balancers. Possible values are `basic` and `standard`.

const (
	AzureLBSKUStandard AzureLBSKU = "standard"
	AzureLBSKUBasic    AzureLBSKU = "basic"
)

type AzurePreset

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

	TenantID       string `json:"tenantID"`
	SubscriptionID string `json:"subscriptionID"`
	ClientID       string `json:"clientID"`
	ClientSecret   string `json:"clientSecret"`

	ResourceGroup     string `json:"resourceGroup,omitempty"`
	VNetResourceGroup string `json:"vnetResourceGroup,omitempty"`
	VNetName          string `json:"vnet,omitempty"`
	SubnetName        string `json:"subnet,omitempty"`
	RouteTableName    string `json:"routeTable,omitempty"`
	SecurityGroup     string `json:"securityGroup,omitempty"`
	// LoadBalancerSKU sets the LB type that will be used for the Azure cluster;
	// if empty, "basic" will be used.
	LoadBalancerSKU AzureLBSKU `json:"loadBalancerSKU"` //nolint:tagliatelle
}

func (*AzurePreset) DeepCopy

func (in *AzurePreset) DeepCopy() *AzurePreset

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

func (*AzurePreset) DeepCopyInto

func (in *AzurePreset) DeepCopyInto(out *AzurePreset)

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

func (AzurePreset) IsValid

func (s AzurePreset) IsValid() bool

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        EtcdBackupPhase `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        EtcdBackupPhase `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 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

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.

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 CloudProvider

type CloudProvider string

CloudProvider defines the cloud provider where the a cluster's nodes are running. Note that these constants may match the machine-controller's constant, but don't have to. Use the functions in the helper package to translate between the two.

const (
	CloudProviderFake                CloudProvider = "fake"
	CloudProviderAlibaba             CloudProvider = "alibaba"
	CloudProviderAnexia              CloudProvider = "anexia"
	CloudProviderAWS                 CloudProvider = "aws"
	CloudProviderAzure               CloudProvider = "azure"
	CloudProviderBringYourOwn        CloudProvider = "bringyourown"
	CloudProviderDigitalocean        CloudProvider = "digitalocean"
	CloudProviderGCP                 CloudProvider = "gcp"
	CloudProviderHetzner             CloudProvider = "hetzner"
	CloudProviderKubeVirt            CloudProvider = "kubevirt"
	CloudProviderNutanix             CloudProvider = "nutanix"
	CloudProviderOpenStack           CloudProvider = "openstack"
	CloudProviderPacket              CloudProvider = "packet"
	CloudProviderVMwareCloudDirector CloudProvider = "vmwareclouddirector"
	CloudProviderVSphere             CloudProvider = "vsphere"
)

func (CloudProvider) String

func (p CloudProvider) String() string

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 CloudProvider `json:"providerName"`

	Fake                *FakeCloudSpec                `json:"fake,omitempty"`
	Digitalocean        *DigitaloceanCloudSpec        `json:"digitalocean,omitempty"`
	BringYourOwn        *BringYourOwnCloudSpec        `json:"bringyourown,omitempty"`
	AWS                 *AWSCloudSpec                 `json:"aws,omitempty"`
	Azure               *AzureCloudSpec               `json:"azure,omitempty"`
	OpenStack           *OpenStackCloudSpec           `json:"openstack,omitempty"`
	Packet              *PacketCloudSpec              `json:"packet,omitempty"`
	Hetzner             *HetznerCloudSpec             `json:"hetzner,omitempty"`
	VSphere             *VSphereCloudSpec             `json:"vsphere,omitempty"`
	GCP                 *GCPCloudSpec                 `json:"gcp,omitempty"`
	KubeVirt            *KubeVirtCloudSpec            `json:"kubevirt,omitempty"`
	Alibaba             *AlibabaCloudSpec             `json:"alibaba,omitempty"`
	Anexia              *AnexiaCloudSpec              `json:"anexia,omitempty"`
	Nutanix             *NutanixCloudSpec             `json:"nutanix,omitempty"`
	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

TODO: Remove this in KKP 3.x and replace it with a field in the ClusterStatus.

func (*Cluster) IsEncryptionActive

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

func (cluster *Cluster) IsEncryptionEnabled() bool

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

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 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"
	ClusterConditionBackupControllerReconcilingSuccess                  ClusterConditionType = "BackupControllerReconciledSuccessfully"
	ClusterConditionCloudControllerReconcilingSuccess                   ClusterConditionType = "CloudControllerReconciledSuccessfully"
	ClusterConditionUpdateControllerReconcilingSuccess                  ClusterConditionType = "UpdateControllerReconciledSuccessfully"
	ClusterConditionMonitoringControllerReconcilingSuccess              ClusterConditionType = "MonitoringControllerReconciledSuccessfully"
	ClusterConditionMachineDeploymentControllerReconcilingSuccess       ClusterConditionType = "MachineDeploymentReconciledSuccessfully"
	ClusterConditionApplicationInstallationControllerReconcilingSuccess ClusterConditionType = "ApplicationInstallationControllerReconciledSuccessfully"
	ClusterConditionCNIControllerReconcilingSuccess                     ClusterConditionType = "CNIControllerReconciledSuccessfully"
	ClusterConditionMLAControllerReconcilingSuccess                     ClusterConditionType = "MLAControllerReconciledSuccessfully"
	ClusterConditionEncryptionControllerReconcilingSuccess              ClusterConditionType = "EncryptionControllerReconciledSuccessfully"
	ClusterConditionClusterInitialized                                  ClusterConditionType = "ClusterInitialized"
	ClusterConditionIPAMControllerReconcilingSuccess                    ClusterConditionType = "IPAMControllerReconciledSuccessfully"

	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"

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

type ClusterEncryptionPhase

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

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,omitempty"`
}

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

func (*ClusterEncryptionStatus) DeepCopy

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

func (*ClusterEncryptionStatus) DeepCopyInto

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"`

	// KonnectivityEnabled enables konnectivity for controlplane to node network communication.
	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.

func (*ClusterNetworkingConfig) IsDualStack

func (c *ClusterNetworkingConfig) IsDualStack() bool

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

func (*ClusterNetworkingConfig) IsIPv4Only

func (c *ClusterNetworkingConfig) IsIPv4Only() bool

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

func (*ClusterNetworkingConfig) IsIPv6Only

func (c *ClusterNetworkingConfig) IsIPv6Only() bool

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

type ClusterPhase

type ClusterPhase string
const (
	ClusterPhaseCreating    ClusterPhase = "Creating"
	ClusterPhaseUpdating    ClusterPhase = "Updating"
	ClusterPhaseRunning     ClusterPhase = "Running"
	ClusterPhaseTerminating ClusterPhase = "Terminating"
)

These are the valid phases of a cluster.

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"`

	CNIPlugin *CNIPluginSettings `json:"cniPlugin,omitempty"`

	ClusterNetwork  ClusterNetworkingConfig   `json:"clusterNetwork"`
	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"`

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

	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"`

	// 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"`
}

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) GetVersionConditions

func (c ClusterSpec) GetVersionConditions() []ConditionType

GetVersionConditions returns a kubermaticv1.ConditionType list that should be used when checking for available versions in a VersionManager instance.

func (ClusterSpec) IsKubernetesDashboardEnabled

func (c ClusterSpec) IsKubernetesDashboardEnabled() bool

func (ClusterSpec) IsOperatingSystemManagerEnabled

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"`

	// +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.
	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.

type ClusterStatusError

type ClusterStatusError string
const (
	ClusterStatusErrorInvalidConfiguration ClusterStatusError = "InvalidConfiguration"
	ClusterStatusErrorUnsupportedChange    ClusterStatusError = "UnsupportedChange"
	ClusterStatusErrorReconcile            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            []ClusterTemplateSSHKey `json:"userSSHKeys,omitempty"`
	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 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 []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 []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

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

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

func (*ClusterVersionsStatus) DeepCopyInto

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,omitempty"`
	// 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,omitempty"`
	// KonnectivityProxy configures konnectivity-server and konnectivity-agent components.
	KonnectivityProxy *KonnectivityProxySettings `json:"konnectivityProxy,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.
	ConditionAlways ConditionType = "always"
	// ExternalCloudProviderCondition is an incompatibility condition that represents the usage of the external Cloud Provider.
	ConditionExternalCloudProvider ConditionType = ClusterFeatureExternalCloudProvider
	// InTreeCloudProviderCondition is an incompatibility condition that represents the usage of the in-tree Cloud Provider.
	ConditionInTreeCloudProvider ConditionType = "inTreeProvider"
)

type Constraint

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

	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 []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 ConstraintMatch

type ConstraintMatch 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 []ConstraintMatchKind `json:"kinds,omitempty"`
	// Scope accepts *, Cluster, or Namespaced which determines if cluster-scoped and/or namesapced-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"`
}

ConstraintMatch contains the constraint to resource matching data.

func (*ConstraintMatch) DeepCopy

func (in *ConstraintMatch) DeepCopy() *ConstraintMatch

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

func (*ConstraintMatch) DeepCopyInto

func (in *ConstraintMatch) DeepCopyInto(out *ConstraintMatch)

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

type ConstraintMatchKind

type ConstraintMatchKind 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"`
}

ConstraintMatchKind specifies the resource Kind(s) and APIGroup(s).

func (*ConstraintMatchKind) DeepCopy

func (in *ConstraintMatchKind) DeepCopy() *ConstraintMatchKind

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

func (*ConstraintMatchKind) DeepCopyInto

func (in *ConstraintMatchKind) DeepCopyInto(out *ConstraintMatchKind)

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

type ConstraintParameters

type ConstraintParameters map[string]json.RawMessage

func (ConstraintParameters) DeepCopy

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

func (ConstraintParameters) DeepCopyInto

func (in ConstraintParameters) DeepCopyInto(out *ConstraintParameters)

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

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 []CloudProvider `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 ConstraintMatch `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 ConstraintParameters `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 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 []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 []CloudProvider `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      openpolicyagent.CRD        `json:"crd,omitempty"`
	Targets  []openpolicyagent.Target   `json:"targets,omitempty"`
	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

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

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

func (*ContainerRuntimeContainerd) DeepCopyInto

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

type ContainerdRegistry

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

func (in *ContainerdRegistry) DeepCopy() *ContainerdRegistry

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

func (*ContainerdRegistry) DeepCopyInto

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

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

func (in *CustomNetworkPolicy) DeepCopy() *CustomNetworkPolicy

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

func (*CustomNetworkPolicy) DeepCopyInto

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.

type DatacenterSpec

type DatacenterSpec struct {
	Digitalocean *DatacenterSpecDigitalocean `json:"digitalocean,omitempty"`
	// BringYourOwn contains settings for clusters using manually created
	// nodes via kubeadm.
	BringYourOwn *DatacenterSpecBringYourOwn `json:"bringyourown,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"`
}

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 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"`

	// CustomNetworkPolicies (optional) 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"`

	// 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 {
	AuthURL          string `json:"authURL"`
	AvailabilityZone string `json:"availabilityZone,omitempty"`
	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"`
}

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

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

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

func (*DatacenterSpecVMwareCloudDirector) DeepCopyInto

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

type DefaultProjectResourceQuota struct {
	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

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

func (*DefaultProjectResourceQuota) DeepCopyInto

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 DigitaloceanCloudSpec

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

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

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 DigitaloceanPreset

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

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

func (*DigitaloceanPreset) DeepCopy

func (in *DigitaloceanPreset) DeepCopy() *DigitaloceanPreset

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

func (*DigitaloceanPreset) DeepCopyInto

func (in *DigitaloceanPreset) DeepCopyInto(out *DigitaloceanPreset)

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

func (DigitaloceanPreset) IsValid

func (s DigitaloceanPreset) IsValid() bool

type EKSPreset

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

	AccessKeyID          string `json:"accessKeyID"`
	SecretAccessKey      string `json:"secretAccessKey"`
	AssumeRoleARN        string `json:"assumeRoleARN,omitempty"` //nolint:tagliatelle
	AssumeRoleExternalID string `json:"assumeRoleExternalID,omitempty"`
}

func (*EKSPreset) DeepCopy

func (in *EKSPreset) DeepCopy() *EKSPreset

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

func (*EKSPreset) DeepCopyInto

func (in *EKSPreset) DeepCopyInto(out *EKSPreset)

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

func (EKSPreset) IsValid

func (s EKSPreset) IsValid() bool

type EncryptionConfiguration

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

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

func (*EncryptionConfiguration) DeepCopyInto

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

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

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

func (*EnvoyLoadBalancerService) DeepCopyInto

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   EtcdBackupConfigSpec   `json:"spec,omitempty"`
	Status EtcdBackupConfigStatus `json:"status,omitempty"`
}

EtcdBackupConfig specifies a add-on.

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.

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 []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 EtcdBackupPhase

type EtcdBackupPhase string

EtcdBackupPhase is used to indicate the type of a EtcdBackupConfig condition. For all condition types, the `true` value must indicate success.

const (
	// EtcdBackupPhaseRunning indicates that the corresponding job has started.
	EtcdBackupPhaseRunning EtcdBackupPhase = "Running"

	// EtcdBackupPhaseCompleted indicates that the corresponding job has completed successfully.
	EtcdBackupPhaseCompleted EtcdBackupPhase = "Completed"

	// EtcdBackupPhaseFailed indicates that the corresponding job has completed with an error.
	EtcdBackupPhaseFailed EtcdBackupPhase = "Failed"
)

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   EtcdRestoreSpec   `json:"spec,omitempty"`
	Status EtcdRestoreStatus `json:"status,omitempty"`
}

EtcdRestore specifies how to restore an etcd backup for a usercluster.

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 []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 (
	// EtcdRestorePhaseStarted indicates that the restore has started.
	EtcdRestorePhaseStarted EtcdRestorePhase = "Started"

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

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

	// EtcdRestorePhaseEtcdLauncherNotEnabled indicates 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  *int32                       `json:"clusterSize,omitempty"`
	StorageClass string                       `json:"storageClass,omitempty"`
	DiskSize     *resource.Quantity           `json:"diskSize,omitempty"`
	Resources    *corev1.ResourceRequirements `json:"resources,omitempty"`
	Tolerations  []corev1.Toleration          `json:"tolerations,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 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 (ExposeStrategy) String

func (s ExposeStrategy) String() string

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"`
	CloudProviderInfrastructure  HealthStatus  `json:"cloudProviderInfrastructure,omitempty"`
	UserClusterControllerManager HealthStatus  `json:"userClusterControllerManager,omitempty"`
	ApplicationController        HealthStatus  `json:"applicationController,omitempty"`
	OpenVPN                      *HealthStatus `json:"openvpn,omitempty"`
	Konnectivity                 *HealthStatus `json:"konnectivity,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"`
}

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

func (h *ExtendedClusterHealth) ApplicationControllerHealthy() bool

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

func (*ExtendedClusterHealth) ControlPlaneHealthy

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 (c *ExternalCluster) GetCredentialsSecretName() string

TODO: Replace this with a field in the ExternalClusterStatus in KKP 3.x.

func (*ExternalCluster) GetKubeOneCredentialsSecretName

func (c *ExternalCluster) GetKubeOneCredentialsSecretName() string

TODO: Replace this with a field in the ExternalClusterStatus in KKP 3.x.

func (*ExternalCluster) GetKubeOneManifestSecretName

func (c *ExternalCluster) GetKubeOneManifestSecretName() string

TODO: Replace this with a field in the ExternalClusterStatus in KKP 3.x.

func (*ExternalCluster) GetKubeOneNamespaceName

func (c *ExternalCluster) GetKubeOneNamespaceName() string

TODO: Replace this with a field in the ExternalClusterStatus in KKP 3.x.

func (*ExternalCluster) GetKubeOneSSHSecretName

func (c *ExternalCluster) GetKubeOneSSHSecretName() string

TODO: Replace this with a field in the ExternalClusterStatus in KKP 3.x.

func (*ExternalCluster) GetKubeconfigSecretName

func (c *ExternalCluster) GetKubeconfigSecretName() string

TODO: Replace this with a field in the ExternalClusterStatus in KKP 3.x.

type ExternalClusterAKSCloudSpec

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

	Name string `json:"name"`
	// TenantID: The Azure Active Directory Tenant used for this cluster.
	// Can be read from `credentialsReference` instead.
	TenantID string `json:"tenantID,omitempty"`
	// SubscriptionID: The Azure Subscription used for this cluster.
	// Can be read from `credentialsReference` instead.
	SubscriptionID string `json:"subscriptionID,omitempty"`
	// ClientID: The service principal used to access Azure.
	// Can be read from `credentialsReference` instead.
	ClientID string `json:"clientID,omitempty"`
	// ClientSecret: The client secret corresponding to the given service principal.
	// Can be read from `credentialsReference` instead.
	ClientSecret string `json:"clientSecret,omitempty"`
	// Location: The geo-location where the resource lives
	Location string `json:"location"`
	// ResourceGroup: 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

type ExternalClusterBringYourOwnCloudSpec struct{}

func (*ExternalClusterBringYourOwnCloudSpec) DeepCopy

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

func (*ExternalClusterBringYourOwnCloudSpec) DeepCopyInto

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

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

func (*ExternalClusterCondition) DeepCopy

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

func (*ExternalClusterCondition) DeepCopyInto

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 *GlobalSecretKeySelector `json:"credentialsReference"`

	Name string `json:"name"`
	// AccessKeyID: AWS Access key ID
	// Can be read from `credentialsReference` instead.
	AccessKeyID string `json:"accessKeyID,omitempty"`
	// SecretAccessKey: AWS Secret Access Key
	// Can be read from `credentialsReference` instead.
	SecretAccessKey string `json:"secretAccessKey,omitempty"`
	Region          string `json:"region"`
	// ControlPlaneRoleARN: 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"`
	// VPCID: The VPC associated with your cluster.
	VPCID string `json:"vpcID,omitempty"`
	// SubnetIDs: The subnets associated with your cluster.
	SubnetIDs []string `json:"subnetIDs,omitempty"`
	// SecurityGroupIDs: 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"`

	// AssumeRoleARN 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
	// AssumeRoleExternalID is 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 *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

type ExternalClusterKubeOneCloudSpec struct {
	// ProviderName is 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"`

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

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

func (*ExternalClusterKubeOneCloudSpec) DeepCopy

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

func (*ExternalClusterKubeOneCloudSpec) DeepCopyInto

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 []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

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

ExternalClusterNetworkRanges represents ranges of network addresses.

func (*ExternalClusterNetworkRanges) DeepCopy

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

func (*ExternalClusterNetworkRanges) DeepCopyInto

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

type ExternalClusterNetworkingConfig

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 a external cluster.

func (*ExternalClusterNetworkingConfig) DeepCopy

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

func (*ExternalClusterNetworkingConfig) DeepCopyInto

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

type ExternalClusterPhase

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"

	// 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"

	KubeOneClusterPhaseReconcilingUpgrade ExternalClusterPhase = "ReconcilingUpgrade"

	KubeOneClusterPhaseReconcilingMigrate 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

type ExternalClusterProvider string
const (
	ExternalClusterProviderAKS          ExternalClusterProvider = "aks"
	ExternalClusterProviderEKS          ExternalClusterProvider = "eks"
	ExternalClusterProviderGKE          ExternalClusterProvider = "gke"
	ExternalClusterProviderBringYourOwn ExternalClusterProvider = "bringyourown"
	ExternalClusterProviderKubeOne      ExternalClusterProvider = "kubeone"
)

func (ExternalClusterProvider) String

func (p ExternalClusterProvider) String() string

type ExternalClusterProviderVersioningConfiguration

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

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

func (*ExternalClusterProviderVersioningConfiguration) DeepCopyInto

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"`

	// KubeconfigReference is reference to cluster Kubeconfig
	KubeconfigReference *GlobalSecretKeySelector `json:"kubeconfigReference,omitempty"`

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

	// CloudSpec contains provider specific fields
	CloudSpec ExternalClusterCloudSpec `json:"cloudSpec"`

	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

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

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

func (*ExternalClusterStatus) DeepCopyInto

func (in *ExternalClusterStatus) DeepCopyInto(out *ExternalClusterStatus)

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

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 FakePreset

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

	Token string `json:"token"`
}

func (*FakePreset) DeepCopy

func (in *FakePreset) DeepCopy() *FakePreset

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

func (*FakePreset) DeepCopyInto

func (in *FakePreset) DeepCopyInto(out *FakePreset)

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

func (FakePreset) IsValid

func (s FakePreset) IsValid() bool

type GCPCloudSpec

type GCPCloudSpec struct {
	CredentialsReference *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 GCPPreset

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

	ServiceAccount string `json:"serviceAccount"`

	Network    string `json:"network,omitempty"`
	Subnetwork string `json:"subnetwork,omitempty"`
}

func (*GCPPreset) DeepCopy

func (in *GCPPreset) DeepCopy() *GCPPreset

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

func (*GCPPreset) DeepCopyInto

func (in *GCPPreset) DeepCopyInto(out *GCPPreset)

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

func (GCPPreset) IsValid

func (s GCPPreset) IsValid() bool

type GKEPreset

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

	ServiceAccount string `json:"serviceAccount"`
}

func (*GKEPreset) DeepCopy

func (in *GKEPreset) DeepCopy() *GKEPreset

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

func (*GKEPreset) DeepCopyInto

func (in *GKEPreset) DeepCopyInto(out *GKEPreset)

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

func (GKEPreset) IsValid

func (s GKEPreset) IsValid() bool

type GlobalConfigMapKeySelector

type GlobalConfigMapKeySelector GlobalObjectKeySelector

func (*GlobalConfigMapKeySelector) DeepCopy

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

func (*GlobalConfigMapKeySelector) DeepCopyInto

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

type GlobalObjectKeySelector

type GlobalObjectKeySelector struct {
	corev1.ObjectReference `json:",inline"`
	Key                    string `json:"key,omitempty"`
}

GlobalObjectKeySelector is needed as we can not use v1.SecretKeySelector because it is not cross namespace.

func (*GlobalObjectKeySelector) DeepCopy

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

func (*GlobalObjectKeySelector) DeepCopyInto

func (in *GlobalObjectKeySelector) DeepCopyInto(out *GlobalObjectKeySelector)

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

type GlobalSecretKeySelector

type GlobalSecretKeySelector GlobalObjectKeySelector

func (*GlobalSecretKeySelector) DeepCopy

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

func (*GlobalSecretKeySelector) DeepCopyInto

func (in *GlobalSecretKeySelector) DeepCopyInto(out *GlobalSecretKeySelector)

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

type GroupProjectBinding

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

	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

func (in *GroupProjectBinding) DeepCopy() *GroupProjectBinding

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

func (*GroupProjectBinding) DeepCopyInto

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

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

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

type GroupProjectBindingList

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

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

GroupProjectBindingList is a list of group project bindings.

func (*GroupProjectBindingList) DeepCopy

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

func (*GroupProjectBindingList) DeepCopyInto

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

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

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

type GroupProjectBindingSpec

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

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

func (*GroupProjectBindingSpec) DeepCopyInto

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
const (
	HealthStatusDown         HealthStatus = "HealthStatusDown"
	HealthStatusUp           HealthStatus = "HealthStatusUp"
	HealthStatusProvisioning HealthStatus = "HealthStatusProvisioning"
)

type HetznerCloudSpec

type HetznerCloudSpec struct {
	CredentialsReference *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 HetznerPreset

type HetznerPreset 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 (*HetznerPreset) DeepCopy

func (in *HetznerPreset) DeepCopy() *HetznerPreset

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

func (*HetznerPreset) DeepCopyInto

func (in *HetznerPreset) DeepCopyInto(out *HetznerPreset)

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

func (HetznerPreset) IsValid

func (s HetznerPreset) IsValid() bool

type IPAMAllocation

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

func (in *IPAMAllocation) DeepCopy() *IPAMAllocation

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

func (*IPAMAllocation) DeepCopyInto

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

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

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

type IPAMAllocationList

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

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

func (*IPAMAllocationList) DeepCopy

func (in *IPAMAllocationList) DeepCopy() *IPAMAllocationList

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

func (*IPAMAllocationList) DeepCopyInto

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

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

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

type IPAMAllocationSpec

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

func (in *IPAMAllocationSpec) DeepCopy() *IPAMAllocationSpec

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

func (*IPAMAllocationSpec) DeepCopyInto

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

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

	Spec IPAMPoolSpec `json:"spec,omitempty"`
}

IPAMPool is the object representing Multi-Cluster IP Address Management (IPAM) configuration for KKP user clusters.

func (*IPAMPool) DeepCopy

func (in *IPAMPool) DeepCopy() *IPAMPool

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

func (*IPAMPool) DeepCopyInto

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

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

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

type IPAMPoolAllocationType

type IPAMPoolAllocationType string

IPAMPoolAllocationType defines the type of allocation to be used.

const (
	// IPAMPoolAllocationTypePrefix corresponds to prefix allocation type.
	IPAMPoolAllocationTypePrefix IPAMPoolAllocationType = "prefix"
	// IPAMPoolAllocationTypeRange corresponds to range allocation type.
	IPAMPoolAllocationTypeRange IPAMPoolAllocationType = "range"
)

type IPAMPoolDatacenterSettings

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

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

func (*IPAMPoolDatacenterSettings) DeepCopyInto

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

type IPAMPoolList

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

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

func (*IPAMPoolList) DeepCopy

func (in *IPAMPoolList) DeepCopy() *IPAMPoolList

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

func (*IPAMPoolList) DeepCopyInto

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

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

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

type IPAMPoolSpec

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

func (in *IPAMPoolSpec) DeepCopy() *IPAMPoolSpec

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

func (*IPAMPoolSpec) DeepCopyInto

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

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

type ImageList map[OperatingSystem]string

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

type ImageListWithVersions map[OperatingSystem]OSVersions

ImageListWithVersions defines a map of operating system with their versions to use.

func (ImageListWithVersions) DeepCopy

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

func (ImageListWithVersions) DeepCopyInto

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. If this is not specified, the
	// incompatibility is valid for all cloud providers.
	Provider CloudProvider `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 KonnectivityProxySettings

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

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

func (*KonnectivityProxySettings) DeepCopyInto

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

type KubeVirtCloudSpec

type KubeVirtCloudSpec struct {
	CredentialsReference *GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	// The cluster's kubeconfig file, encoded with base64.
	Kubeconfig    string `json:"kubeconfig,omitempty"`
	CSIKubeconfig string `json:"csiKubeconfig,omitempty"`
	// PreAllocatedDataVolumes represents a list of DataVolumes that are tied to cluster lifecycle and can be referenced by machines.
	// Custom Images are a good example of this use case.
	PreAllocatedDataVolumes []PreAllocatedDataVolume `json:"preAllocatedDataVolumes,omitempty"`
	// Deprecated: in favor of InfraStorageClasses.
	// 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 KubeVirtHTTPSource

type KubeVirtHTTPSource struct {
	// OperatingSystems represents list of supported operating-systems with their URLs.
	OperatingSystems map[OperatingSystem]OSVersions `json:"operatingSystems"`
}

KubeVirtHTTPSource represents list of images and their versions that can be downloaded over HTTP.

func (*KubeVirtHTTPSource) DeepCopy

func (in *KubeVirtHTTPSource) DeepCopy() *KubeVirtHTTPSource

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

func (*KubeVirtHTTPSource) DeepCopyInto

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

type KubeVirtImageSources struct {
	// HTTP represents a http source.
	HTTP *KubeVirtHTTPSource `json:"http,omitempty"`
}

KubeVirtImageSources represents KubeVirt image sources.

func (*KubeVirtImageSources) DeepCopy

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

func (*KubeVirtImageSources) DeepCopyInto

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

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

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

func (*KubeVirtInfraStorageClass) DeepCopyInto

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

type KubeVirtPreset

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

	Kubeconfig string `json:"kubeconfig"`
}

func (*KubeVirtPreset) DeepCopy

func (in *KubeVirtPreset) DeepCopy() *KubeVirtPreset

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

func (*KubeVirtPreset) DeepCopyInto

func (in *KubeVirtPreset) DeepCopyInto(out *KubeVirtPreset)

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

func (KubeVirtPreset) IsValid

func (s KubeVirtPreset) IsValid() bool

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.
	Auth *KubermaticAuthConfiguration `json:"auth,omitempty"`
	// 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

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

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

func (*KubermaticConfigurationStatus) DeepCopyInto

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"`

	// 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.
	// This container is only relevant when the new backup/restore controllers are enabled.
	BackupDeleteContainer string `json:"backupDeleteContainer,omitempty"`
	// BackupCleanupContainer is the container used for removing expired backups from the storage location.
	// This container is only relevant when the old, deprecated backup controllers are enabled.
	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.
	// ---
	//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"`
}

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[ExternalClusterProvider]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

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

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

func (*KubermaticWebhookConfiguration) DeepCopyInto

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

type KubernetesDashboard

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

func (in *KubernetesDashboard) DeepCopy() *KubernetesDashboard

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

func (*KubernetesDashboard) DeepCopyInto

func (in *KubernetesDashboard) DeepCopyInto(out *KubernetesDashboard)

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

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 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 []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 MachineFlavorFilter

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

func (in *MachineFlavorFilter) DeepCopy() *MachineFlavorFilter

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

func (*MachineFlavorFilter) DeepCopyInto

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 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.
	StorageSize string `json:"storageSize"`

	// 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

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.
	Interval uint32 `json:"interval,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

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

func (*MeteringReportConfiguration) DeepCopyInto

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,omitempty"`
}

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

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

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

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

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

func (r *NetworkRanges) HasIPv4CIDR() bool

HasIPv4CIDR returns true if the network ranges contain any IPv4 CIDR, false otherwise.

func (*NetworkRanges) HasIPv6CIDR

func (r *NetworkRanges) HasIPv6CIDR() bool

HasIPv6CIDR returns true if the network ranges contain any IPv6 CIDR, false otherwise.

func (*NetworkRanges) Validate

func (r *NetworkRanges) Validate() error

Validate validates the network ranges. Returns nil if valid, error otherwise.

type NodePortProxyComponentEnvoy

type NodePortProxyComponentEnvoy struct {
	NodeportProxyComponent `json:",inline"`
	LoadBalancerService    *EnvoyLoadBalancerService `json:"loadBalancerService,omitempty"`
}

func (*NodePortProxyComponentEnvoy) DeepCopy

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

func (*NodePortProxyComponentEnvoy) DeepCopyInto

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"`
}

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

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

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

func (*NotificationsOptions) DeepCopyInto

func (in *NotificationsOptions) DeepCopyInto(out *NotificationsOptions)

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

type NutanixCSIConfig

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

func (in *NutanixCSIConfig) DeepCopy() *NutanixCSIConfig

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

func (*NutanixCSIConfig) DeepCopyInto

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 *GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	// ClusterName is the Nutanix cluster that this user cluster will be deployed to.
	ClusterName string `json:"clusterName"`

	// ProjectName is the project that this cluster is deployed into. If none is given, no project will be used.
	// +optional
	ProjectName string `json:"projectName,omitempty"`

	ProxyURL string `json:"proxyURL,omitempty"`
	Username string `json:"username,omitempty"`
	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 NutanixPreset

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

	// ProxyURL is used to optionally configure a HTTP proxy to access Nutanix Prism Central.
	ProxyURL string `json:"proxyURL,omitempty"`
	// Username is the username to access the Nutanix Prism Central API.
	Username string `json:"username"`
	// Password is the password corresponding to the provided user.
	Password string `json:"password"`

	// ClusterName is the Nutanix cluster to deploy resources and nodes to.
	ClusterName string `json:"clusterName"`
	// ProjectName is the 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 (*NutanixPreset) DeepCopy

func (in *NutanixPreset) DeepCopy() *NutanixPreset

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

func (*NutanixPreset) DeepCopyInto

func (in *NutanixPreset) DeepCopyInto(out *NutanixPreset)

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

func (NutanixPreset) IsValid

func (s NutanixPreset) IsValid() bool

type OIDCProviderConfiguration

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

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

func (*OIDCProviderConfiguration) DeepCopyInto

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"`
}

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

type OSVersions map[string]string

OSVersions defines a map of OS version and the source to download the image.

func (OSVersions) DeepCopy

func (in OSVersions) DeepCopy() OSVersions

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

func (OSVersions) DeepCopyInto

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

type OpenStack struct {
	// EnforceCustomDisk will enforce the custom disk option for machines for the dashboard.
	EnforceCustomDisk bool `json:"enforceCustomDisk,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.

type OpenStackCloudSpec

type OpenStackCloudSpec struct {
	CredentialsReference *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"`
}

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 OpenStackPreset

type OpenStackPreset 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   string `json:"project,omitempty"`
	ProjectID string `json:"projectID,omitempty"`
	Domain    string `json:"domain"`

	Network        string `json:"network,omitempty"`
	SecurityGroups string `json:"securityGroups,omitempty"`
	FloatingIPPool string `json:"floatingIPPool,omitempty"`
	RouterID       string `json:"routerID,omitempty"`
	SubnetID       string `json:"subnetID,omitempty"`
}

func (*OpenStackPreset) DeepCopy

func (in *OpenStackPreset) DeepCopy() *OpenStackPreset

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

func (*OpenStackPreset) DeepCopyInto

func (in *OpenStackPreset) DeepCopyInto(out *OpenStackPreset)

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

func (OpenStackPreset) IsValid

func (s OpenStackPreset) IsValid() bool

type OperatingSystem

type OperatingSystem string

OperatingSystem defines the a node's operating system. Note that these constants may match the machine-controller's constant, but don't have to. Use the functions in the helper package to translate between the two.

const (
	OperatingSystemUbuntu       OperatingSystem = "ubuntu"
	OperatingSystemCentOS       OperatingSystem = "centos"
	OperatingSystemAmazonLinux2 OperatingSystem = "amzn2"
	OperatingSystemRHEL         OperatingSystem = "rhel"
	OperatingSystemFlatcar      OperatingSystem = "flatcar"
	OperatingSystemRockyLinux   OperatingSystem = "rockylinux"
)

func (OperatingSystem) String

func (o OperatingSystem) String() string

type OperatingSystemManager

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

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

func (*OperatingSystemManager) DeepCopyInto

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

type OperatingSystemProfileList map[OperatingSystem]string

OperatingSystemProfileList defines a map of operating system and the OperatingSystemProfile to use.

func (OperatingSystemProfileList) DeepCopy

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

func (OperatingSystemProfileList) DeepCopyInto

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.
	OperationCreate OperationType = "CREATE"
	// UpdateOperation represents the update of an existing cluster.
	OperationUpdate OperationType = "UPGRADE"
	// SupportOperation represents the possibility to enable a new feature on an existing cluster.
	OperationSupport OperationType = "SUPPORT"
)

type PacketCloudSpec

type PacketCloudSpec struct {
	CredentialsReference *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 PacketPreset

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

	APIKey    string `json:"apiKey"`
	ProjectID string `json:"projectID"`

	BillingCycle string `json:"billingCycle,omitempty"`
}

func (*PacketPreset) DeepCopy

func (in *PacketPreset) DeepCopy() *PacketPreset

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

func (*PacketPreset) DeepCopyInto

func (in *PacketPreset) DeepCopyInto(out *PacketPreset)

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

func (PacketPreset) IsValid

func (s PacketPreset) IsValid() bool

type PreAllocatedDataVolume

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

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

func (*PreAllocatedDataVolume) DeepCopyInto

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

type PresetInvalidationReason string

+kubebuilder:validation:Enum=deleted;changed

const (
	PresetInvalidationReasonDeleted PresetInvalidationReason = "deleted"
	PresetInvalidationReasonChanged PresetInvalidationReason = "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 {
	Digitalocean        *DigitaloceanPreset        `json:"digitalocean,omitempty"`
	Hetzner             *HetznerPreset             `json:"hetzner,omitempty"`
	Azure               *AzurePreset               `json:"azure,omitempty"`
	VSphere             *VSpherePreset             `json:"vsphere,omitempty"`
	AWS                 *AWSPreset                 `json:"aws,omitempty"`
	OpenStack           *OpenStackPreset           `json:"openstack,omitempty"`
	Packet              *PacketPreset              `json:"packet,omitempty"`
	GCP                 *GCPPreset                 `json:"gcp,omitempty"`
	KubeVirt            *KubeVirtPreset            `json:"kubevirt,omitempty"`
	Alibaba             *AlibabaPreset             `json:"alibaba,omitempty"`
	Anexia              *AnexiaPreset              `json:"anexia,omitempty"`
	Nutanix             *NutanixPreset             `json:"nutanix,omitempty"`
	VMwareCloudDirector *VMwareCloudDirectorPreset `json:"vmwareclouddirector,omitempty"`
	GKE                 *GKEPreset                 `json:"gke,omitempty"`
	EKS                 *EKSPreset                 `json:"eks,omitempty"`
	AKS                 *AKSPreset                 `json:"aks,omitempty"`

	Fake *FakePreset `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.

type Project

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

	Spec   ProjectSpec   `json:"spec,omitempty"`
	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 []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 (
	// ProjectPhaseActive means the project is available for use in the system.
	ProjectPhaseActive ProjectPhase = "Active"

	// ProjectPhaseInactive means the project is inactive and requires further initialization.
	ProjectPhaseInactive ProjectPhase = "Inactive"

	// ProjectPhaseTerminating means the project is undergoing graceful termination.
	ProjectPhaseTerminating 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

type ProviderConfiguration struct {
	// OpenStack are the configurations for OpenStack provider.
	OpenStack *OpenStack `json:"openStack,omitempty"`
}

func (*ProviderConfiguration) DeepCopy

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

func (*ProviderConfiguration) DeepCopyInto

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.

type ProxySettings

type ProxySettings struct {
	// Optional: If set, this proxy will be configured for both HTTP and HTTPS.
	HTTPProxy *string `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 *string `json:"noProxy,omitempty"`
}

ProxySettings allow configuring a HTTP proxy for the control planes 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 ResourceDetails

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 (*ResourceDetails) DeepCopy

func (in *ResourceDetails) DeepCopy() *ResourceDetails

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

func (*ResourceDetails) DeepCopyInto

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

func (r *ResourceDetails) IsEmpty() bool

type ResourceQuota

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

	Spec   ResourceQuotaSpec   `json:"spec,omitempty"`
	Status ResourceQuotaStatus `json:"status,omitempty"`
}

ResourceQuota specifies the amount of cluster resources a project can use.

func (*ResourceQuota) DeepCopy

func (in *ResourceQuota) DeepCopy() *ResourceQuota

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

func (*ResourceQuota) DeepCopyInto

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

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

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

type ResourceQuotaList

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

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

ResourceQuotaList is a collection of resource quotas.

func (*ResourceQuotaList) DeepCopy

func (in *ResourceQuotaList) DeepCopy() *ResourceQuotaList

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

func (*ResourceQuotaList) DeepCopyInto

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

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

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

type ResourceQuotaSpec

type ResourceQuotaSpec struct {
	// Subject specifies to which entity the quota applies to.
	Subject ResourceQuotaSubject `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

func (in *ResourceQuotaSpec) DeepCopy() *ResourceQuotaSpec

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

func (*ResourceQuotaSpec) DeepCopyInto

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

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

func (in *ResourceQuotaStatus) DeepCopy() *ResourceQuotaStatus

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

func (*ResourceQuotaStatus) DeepCopyInto

func (in *ResourceQuotaStatus) DeepCopyInto(out *ResourceQuotaStatus)

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

type ResourceQuotaSubject

type ResourceQuotaSubject struct {
	// Name of the quota subject.
	Name string `json:"name"`

	// Kind of the quota subject.
	Kind ResourceQuotaSubjectName `json:"kind"`
}

ResourceQuotaSubject describes the entity to which the quota applies to.

func (*ResourceQuotaSubject) DeepCopy

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

func (*ResourceQuotaSubject) DeepCopyInto

func (in *ResourceQuotaSubject) DeepCopyInto(out *ResourceQuotaSubject)

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

type ResourceQuotaSubjectName

type ResourceQuotaSubjectName string
const (
	ResourceQuotaSubjectProject ResourceQuotaSubjectName = "project"
)

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

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

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

func (*SecretboxEncryptionConfiguration) DeepCopyInto

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

type SecretboxKey

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

func (in *SecretboxKey) DeepCopy() *SecretboxKey

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

func (*SecretboxKey) DeepCopyInto

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 SeedSpec `json:"spec"`
	//nolint:staticcheck
	//lint:ignore SA5008 omitgenyaml is used by the example-yaml-generator
	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

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

func (s *Seed) IsEtcdAutomaticBackupEnabled() bool

IsEtcdAutomaticBackupEnabled returns true if etcd automatic backup is configured for the seed.

type SeedCondition

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

func (in *SeedCondition) DeepCopy() *SeedCondition

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

func (*SeedCondition) DeepCopyInto

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

type SeedConditionType string

SeedConditionType is used to indicate the type of a seed condition. For all condition types, the `true` value must indicate success.

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: 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

type SeedPhase string
const (
	// SeedPhaseHealthy means the seed is reachable and was successfully reconciled.
	SeedPhaseHealthy SeedPhase = "Healthy"

	// SeedPhaseUnhealthy means the KKP resources on the seed cluster could not be
	// successfully reconciled.
	SeedPhaseUnhealthy SeedPhase = "Unhealthy"

	// SeedPhaseInvalid means the seed kubeconfig is defunct.
	SeedPhaseInvalid SeedPhase = "Invalid"

	// SeedPhaseTerminating means the seed is currently being deleted.
	SeedPhaseTerminating SeedPhase = "Terminating"

	// SeedPhasePaused means the seed is not being reconciled because the SkipReconciling
	// annotation is set.
	SeedPhasePaused 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"`
}

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

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

func (in *SeedStatus) DeepCopy() *SeedStatus

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

func (*SeedStatus) DeepCopyInto

func (in *SeedStatus) DeepCopyInto(out *SeedStatus)

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

type SeedVersionsStatus

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

func (in *SeedVersionsStatus) DeepCopy() *SeedVersionsStatus

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

func (*SeedVersionsStatus) DeepCopyInto

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
	// UserProjectsLimit is the maximum number of projects a user can create.
	UserProjectsLimit           int64 `json:"userProjectsLimit"`
	RestrictProjectCreation     bool  `json:"restrictProjectCreation"`
	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"`

	// 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"`
}

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

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 SubnetCIDR

type SubnetCIDR string

SubnetCIDR is used to store IPv4/IPv6 CIDR.

type SystemApplicationsConfiguration

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

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

func (*SystemApplicationsConfiguration) DeepCopyInto

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   UserSpec   `json:"spec,omitempty"`
	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

func (u *User) GetInvalidTokensReferenceSecretName() string

TODO: Replace this in KKP 3.x with a field in the UserStatus.

type UserList

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

	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 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 []UserProjectBinding `json:"items"`
}

UserProjectBindingList is a list of users.

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.

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 *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 VMwareCloudDirectorCSIConfig

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

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

func (*VMwareCloudDirectorCSIConfig) DeepCopyInto

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

type VMwareCloudDirectorCloudSpec

type VMwareCloudDirectorCloudSpec struct {
	CredentialsReference *GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	// Username is the VMware Cloud Director user name.
	// +optional
	Username string `json:"username,omitempty"`
	// Password is the VMware Cloud Director user password.
	// +optional
	Password string `json:"password,omitempty"`

	// Organization is the name of organization to use.
	// +optional
	Organization string `json:"organization,omitempty"`

	// VDC is the organizational virtual data center.
	// +optional
	VDC string `json:"vdc,omitempty"`

	// Network is the name of organizational virtual data center network that will be associated with the VMs and vApp.
	OVDCNetwork string `json:"ovdcNetwork"`

	// 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

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

func (*VMwareCloudDirectorCloudSpec) DeepCopyInto

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

type VMwareCloudDirectorPreset

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

	Username     string `json:"username"`
	Password     string `json:"password"`
	VDC          string `json:"vdc"`
	Organization string `json:"organization"`
	OVDCNetwork  string `json:"ovdcNetwork"`
}

func (*VMwareCloudDirectorPreset) DeepCopy

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

func (*VMwareCloudDirectorPreset) DeepCopyInto

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

func (VMwareCloudDirectorPreset) IsValid

func (s VMwareCloudDirectorPreset) IsValid() bool

type VSphereCloudSpec

type VSphereCloudSpec struct {
	CredentialsReference *GlobalSecretKeySelector `json:"credentialsReference,omitempty"`

	// Username is the vSphere user name.
	// +optional
	Username string `json:"username"`
	// Password is the vSphere user password.
	// +optional
	Password string `json:"password"`
	// VMNetName is the name of the vSphere network.
	VMNetName string `json:"vmNetName"`
	// Folder is the folder to be used to group the provisioned virtual
	// machines.
	// +optional
	Folder string `json:"folder"`

	// 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 VSpherePreset

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

	Username string `json:"username"`
	Password string `json:"password"`

	VMNetName        string `json:"vmNetName,omitempty"`
	Datastore        string `json:"datastore,omitempty"`
	DatastoreCluster string `json:"datastoreCluster,omitempty"`
	ResourcePool     string `json:"resourcePool,omitempty"`
}

func (*VSpherePreset) DeepCopy

func (in *VSpherePreset) DeepCopy() *VSpherePreset

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

func (*VSpherePreset) DeepCopyInto

func (in *VSpherePreset) DeepCopyInto(out *VSpherePreset)

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

func (VSpherePreset) IsValid

func (s VSpherePreset) IsValid() bool

type VSphereTag

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

func (in *VSphereTag) DeepCopy() *VSphereTag

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

func (*VSphereTag) DeepCopyInto

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