v1alpha1 API Reference

v1alpha1

APIEndpoint

APIEndpoint is the endpoint used to communicate with the Kubernetes API.

FieldDescriptionSchemeRequired
hostHost is the hostname or IP on which API is running.stringtrue
alternativeNamesAlternativeNames is a list of Subject Alternative Names for the API Server signing cert.[]stringfalse

Back to Group

ControlPlaneConfig

ControlPlaneConfig defines control plane nodes.

FieldDescriptionSchemeRequired
hostsHosts array of all control plane hosts.[]HostConfigtrue

Back to Group

DashboardAuthConfig

DashboardAuthConfig selects the authentication mode for the dashboard. Exactly one of None, Basic, or OIDC must be set. Default is None when unset.

FieldDescriptionSchemeRequired
noneNone disables authentication. The dashboard is accessible without login.*NoneSpecfalse
basicBasic enables username/password authentication backed by a Kubernetes Secret.*DashboardBasicConfigfalse
oidcOIDC enables OpenID Connect authentication via an external provider (e.g. Dex).*DashboardOIDCConfigfalse

Back to Group

DashboardBasicConfig

DashboardBasicConfig holds basic-auth settings for the dashboard.

FieldDescriptionSchemeRequired
secretNamestringfalse
secretNamespacestringfalse
sessionDurationstringfalse

Back to Group

DashboardConfiguration

DashboardConfiguration configures the KubeV API server and web dashboard components.

FieldDescriptionSchemeRequired
enabledEnabled controls whether the API server and dashboard are deployed. Defaults to false.boolfalse
authAuth configures how users authenticate to the dashboard. Required when Enabled is true.DashboardAuthConfigfalse
dashboardURLDashboardURL is the public URL where the dashboard is reachable (e.g. "https://kubev.example.com"). Used as the redirect target after a successful OIDC login.stringfalse
imagePullSecretImagePullSecret is the raw Docker config JSON for authenticating to the image registry. If empty, the installer checks KUBEV_USERNAME and KUBEV_PASSWORD environment variables.stringfalse

Back to Group

DashboardOIDCConfig

DashboardOIDCConfig holds the OIDC provider settings for the dashboard.

FieldDescriptionSchemeRequired
issuerURLstringtrue
clientIDstringtrue
clientSecretstringtrue
redirectURLstringtrue
scopes[]stringfalse

Back to Group

DeveloperConfiguration

DeveloperConfiguration holds settings for developers working on KubeV and KubeVirt.

FieldDescriptionSchemeRequired
featureGatesFeatureGates specifies a list of experimental feature gates to enable. Defaults to none. A feature gate must not appear in both FeatureGates and DisabledFeatureGates.[]stringfalse
useEmulationUseEmulation can be set to true to allow fallback to software emulation in case hardware-assisted emulation is not available. Defaults to falseboolfalse

Back to Group

DexConfiguration

DexConfiguration configures the Dex OIDC identity provider deployed alongside the cluster.

FieldDescriptionSchemeRequired
issuerIssuer is the base URL at which Dex will be reachable (e.g., "https://dex.example.com").stringtrue
connectorsConnectors is the list of identity provider connectors (OIDC, LDAP, GitHub, etc.).[]DexConnectorfalse
staticClientsStaticClients is the list of pre-registered OAuth2 clients.[]DexStaticClientfalse
enablePasswordDBEnablePasswordDB enables the built-in local password database connector.boolfalse

Back to Group

DexConnector

DexConnector defines a single Dex identity provider connector.

FieldDescriptionSchemeRequired
typeType is the connector type (e.g., "oidc", "ldap", "github").stringtrue
idID is a unique identifier for this connector.stringtrue
nameName is the human-readable display name shown on the login page.stringtrue
configConfig holds connector-specific configuration. The structure depends on Type.apiextensionsv1.JSONfalse

Back to Group

DexStaticClient

DexStaticClient defines a statically configured OAuth2 client in Dex.

FieldDescriptionSchemeRequired
idID is the OAuth2 client identifier.stringtrue
secretSecret is the plaintext OAuth2 client secret.stringfalse
nameName is the human-readable display name for this client.stringtrue
redirectURIsRedirectURIs is the list of allowed redirect URIs for this client.[]stringfalse
publicPublic marks this as a public client (no secret required, e.g. for CLI flows).boolfalse

Back to Group

HostConfig

HostConfig describes a single control plane or worker node.

FieldDescriptionSchemeRequired
addressAddress is internal RFC-1918 IP address.stringtrue
sshUsernameSSHUsername is system login name. Default value is "root".stringfalse
sshPrivateKeyFileSSHPrivateKeyFile is path to the file with PRIVATE AND CLEANTEXT ssh key. Default value is "".stringfalse
labelsLabels to be used to apply (or remove, with minus symbol suffix, see more kubectl help label) labels to/from nodemap[string]stringfalse
annotationsAnnotations to be used to apply (or remove, with minus symbol suffix, see more kubectl help annotate) annotations to/from nodemap[string]stringfalse
tunnelInterfaceTunnelInterface specifies the physical NIC used for Kube-OVN overlay tunnel traffic on this node. Must be a valid Linux network interface name (max 15 characters, alphanumeric with _, ., -).stringfalse

Back to Group

IDPConfiguration

IDPConfiguration selects which identity provider to deploy alongside the cluster. Exactly one of Dex or None must be set. Default is None when unset.

FieldDescriptionSchemeRequired
dexDex deploys a Dex OIDC identity provider alongside the cluster.*DexConfigurationfalse
noneNone explicitly disables any managed identity provider deployment.*NoneSpecfalse

Back to Group

KubeVCluster

KubeVCluster is Kubermatic Virtualization Cluster API Schema.

FieldDescriptionSchemeRequired
controlPlaneControlPlane describes the control plane nodes and how to access them.ControlPlaneConfigtrue
staticWorkersStaticWorkers describes the worker nodes that are managed by KubeV/kubeadm.StaticWorkersConfigfalse
networkConfigurationNetworkConfiguration holds the network settings for the Kubermatic Virtualization Platform.NetworkConfigurationfalse
apiEndpointAPIEndpoint are pairs of address and port used to communicate with the Kubernetes API.APIEndpointtrue
loadBalancerLoadBalancer configures the platform’s external load balancing. Exactly one implementation (e.g., MetalLB, None) must be specified.LoadBalancerSpecfalse
storageStorage configures the persistent storage solution for the cluster. Exactly one option (e.g., Longhorn, None) must be specified.StorageConfigurationfalse
offlineSettingsOfflineSettings configures the platform for air-gapped (offline) operation. When used, all external dependencies must be served from internal mirrors.OfflineSettingsfalse
kubevirtKubevirtConfiguration holds settings specific to the KubeVirt integration.KubevirtConfigurationfalse
idpIDP configures an optional identity provider to deploy alongside the cluster. Exactly one option (e.g., Dex, None) must be specified. Default is None when unset.IDPConfigurationfalse
dashboardDashboard configures the KubeV API server and web dashboard.DashboardConfigurationfalse

Back to Group

KubevirtConfiguration

KubevirtConfiguration holds settings specific to the KubeVirt integration.

FieldDescriptionSchemeRequired
developerConfigurationDeveloperConfiguration holds settings for developers working on KubeV and KubeVirt.*DeveloperConfigurationfalse

Back to Group

LoadBalancerSpec

LoadBalancerSpec configures the platform’s load balancing. Exactly one of the following fields must be set: None, MetalLB. (KubeLB will be supported in the future.) If no load balancer is desired, set None: {}.

FieldDescriptionSchemeRequired
noneNone explicitly disables external L4 load balancing. Use this when LoadBalancer-type services should not be exposed externally.*NoneSpecfalse
metallbMetalLB configures MetalLB to allocate external IPs for LoadBalancer services.*MetalLBSpecfalse

Back to Group

Longhorn

Longhorn defines Longhorn-specific settings.

FieldDescriptionSchemeRequired

Back to Group

MetalLBSpec

MetalLBSpec defines MetalLB-specific settings.

FieldDescriptionSchemeRequired
ipRangeIPRange is the IP address range used to allocate external IPs for LoadBalancer services. Acceptable formats: CIDR (e.g., "192.168.10.0/24") or inclusive range (e.g., "192.168.10.50-192.168.10.100").stringtrue

Back to Group

NetworkConfiguration

FieldDescriptionSchemeRequired
networkCIDRNetworkCIDR specifies the IP address range used to assign network addresses to all managed workloads, including containers and virtual machines. This CIDR block serves as the default pool for internal IP allocation across the platform.stringfalse
dnsServerIPDNSServerIP is the IP address of the DNS server used by the entire platform. This field is required. In offline deployments, this address will be configured as the DNS resolver for all nodes and services within the Kubermatic Virtualization Platform.stringtrue
gatewayIPGatewayIP specifies the IP address of the network gateway for the default NetworkCIDR. This gateway facilitates external network access for workloads within the Kubermatic Virtualization Platform.stringfalse
serviceCIDRServiceCIDR specifies the IP address range reserved for internal platform services. This CIDR block is used to allocate virtual IPs for services, ensuring they are reachable within the platform.stringfalse
tunnelInterfaceTunnelInterface specifies the physical NIC used for Kube-OVN overlay tunnel traffic. Accepts a single interface name (e.g., "eth0"), a comma-separated list (e.g., "eth0,eth1"), or a regular expression (e.g., "^eth[0-9]+$").stringfalse

Back to Group

NoneSpec

NoneSpec is a marker type used to explicitly disable LB/CSI integration. It carries no configuration.

FieldDescriptionSchemeRequired

Back to Group

OCIConfiguration

OCIConfiguration defines how to connect to an OCI-compatible container registry. This is used for pulling container images and Helm charts in offline environments.

FieldDescriptionSchemeRequired
addressAddress is the registry hostname and optional port (e.g., "http://registry.example.com:5000").stringtrue
usernameUsername is the basic-auth username for registry authentication. Required if the registry requires authentication.stringfalse
passwordPassword is the basic-auth password for registry authentication.stringfalse
insecureInsecure, when true, disables TLS verification and may allow HTTP connections. Use only for internal, trusted registries. Not recommended for production.boolfalse

Back to Group

OfflineSettings

OfflineSettings configures the platform for air-gapped (offline) operation. When used, all external dependencies must be served from internal mirrors.

FieldDescriptionSchemeRequired
enabledEnabled indicates whether the platform is operating in offline (air-gapped) mode. When true, all container images, Helm charts, and software packages must be sourced from the internal endpoints specified below.booltrue
containerRegistryContainerRegistry specifies the internal OCI registry that hosts all container images required by the platform and workloads. This registry must be pre-populated before deployment.OCIConfigurationtrue
helmRegistryHelmRegistry specifies the internal OCI registry or HTTP server that hosts Helm charts used by the platform. Charts must be available at this location in offline mode.OCIConfigurationtrue
packageRepositoryPackageRepository is the URL or local path to the internal repository serving platform-related OS or software packages (e.g., RPMs, DEBs, or binaries). This is used during node provisioning and upgrades in offline environments.stringtrue

Back to Group

StaticWorkersConfig

StaticWorkersConfig defines static worker nodes provisioned by KubeOne and kubeadm.

FieldDescriptionSchemeRequired
hostsHosts[]HostConfigfalse

Back to Group

StorageConfiguration

StorageConfiguration configures the platform’s persistent storage solution. Exactly one of the following fields must be set: None, Longhorn. (Additional storage providers may be supported in the future.) If no managed storage is desired, set None: {}.

FieldDescriptionSchemeRequired
noneNone explicitly disables managed storage integration. Users must provide their own StorageClass or provision volumes manually.*NoneSpecfalse
longhornLonghorn configures Longhorn as the default distributed block storage system.*Longhornfalse

Back to Group