KDP Integration

Kubermatic Virtualization (KubeV) can run as a service of the Kubermatic Developer Platform (KDP). Teams then get virtual machines, networks, disks and backups in their own KDP projects, from the same catalog as every other service on the platform, while KubeV runs them on its own cluster.

flowchart TB user(["User"]) kdp["KDP
stores each project's
VMs, networks, disks"] kubev["KubeV
dashboard"] cluster["KubeV cluster
runs them"] user -->|"opens a project"| kdp user -->|"Open KubeV"| kubev kubev -->|"changes the project"| kdp kdp <-->|"api-syncagent"| cluster classDef kdp fill:#e8f1fb,stroke:#1f5fa8,color:#0d3c73 classDef kv fill:#e3f4e8,stroke:#2e7d32,color:#1b5e20 classDef ext fill:#fff4e0,stroke:#b26a00,color:#6d4100 class kdp kdp class kubev,cluster kv class user ext

In the diagrams of this section, blue is KDP, green is the KubeV cluster, and orange is outside both.

KDP stores each project’s objects and decides who may do what. The api-syncagent copies the objects to the KubeV cluster, where KubeVirt, Kube-OVN and the KubeV controllers run them, and copies their status back. How It Works explains every step.

Read this first

The KDP dashboard is the entry point. Organizations, projects, members, roles and services are managed in KDP, never in KubeV. Users sign in to KDP, open a project, and choose Open KubeV Virtualization there. KubeV then works in that one project, and has no administration pages of its own.

KubeV works in projects only. Create VMs and every other KubeV resource in a project. KDP refuses new ones in an organization. In a workspace nested below a project, kcp accepts them, but they never reach the KubeV cluster and never run. See Where KubeV works.

Installation modes

The installer offers three ways to run KubeV with KDP:

ModeKDP runsThe installerStatus
Bring your own KDPWherever you already run it, KDP 1.2.1 or newer.Sets KubeV up for your KDP. Its kdp connect command then registers KubeV in KDP, with a kcp administrator’s kubeconfig.Supported
Same layerOn the KubeV cluster, next to KubeV.Installs kcp and KDP, registers the KubeV service and enables it in every project.Supported
Nested clusterIn its own Kubernetes cluster, on KubeVirt VMs on the KubeV cluster.Creates the VMs and the cluster, installs KDP in it, registers the KubeV service, and runs the api-syncagent on the KubeV cluster.Experimental, not for production. No KubeV dashboard.

Installation compares them and lists what every mode needs.

What changes in KDP mode

StandaloneWith KDP
TenancyNamespaces on the KubeV cluster.KDP organizations and projects. Each project is isolated from the others.
Users and rolesKubeV User, KubeVRole and KubeVRoleBinding objects, managed in the KubeV dashboard.KDP members and roles, managed in the KDP dashboard.
Who decides what a user may doThe KubeV API server.kcp, the control plane behind KDP. KubeV forwards each request with the user’s own token.
Where users startThe KubeV dashboard.The KDP dashboard.
Sign-inBasic, OIDC or none.OIDC only, through the identity provider that KDP and KubeV share.
Where VMs runThe KubeV cluster.The KubeV cluster, in a namespace for each project namespace.

What a project gets

Once KubeV is enabled in a project, the project serves these resources:

AreaResources
ComputeVirtualMachine, VirtualMachineInstance, VirtualMachineInstanceMigration (kubevirt.io), VirtualMachinePool (pool.kubevirt.io)
StorageDataVolume (cdi.kubevirt.io), Image
NetworkingVPC, Subnet, UnderlaySubnet, SecurityGroup, NATGateway, ElasticIP
AccessSSHKey
Data protectionBackupStorageLocation, VMBackup, VMRestore
MigrationProvider, NetworkMap, StorageMap, Plan, Migration (forklift.konveyor.io)

Resources without an API group in brackets belong to virtualization.k8c.io.

Only the platform administrator manages these:

  • edge routers (AZEdgeRouter, EVPNPolicy, EVPNRouteReflector), which projects can’t create or change;
  • cluster instance types and preferences, storage classes, priority classes and nodes, which projects can read but not change.

Where to start

Pages