Skip to main content
RunBook Academy

Proxmox VEXXV · Proxmox Datacenter ManagerSecurity and boundaries

When PDM is the wrong answer

Advanced⏱ ~26 minproxmox-datacenter-manager-admin

What you'll learn

  • Explain why a single-cluster estate rarely benefits from PDM, and name the exception
  • Argue why an automation pipeline should target the PVE API rather than route through PDM
  • Identify the duplicate-source-of-truth problem PDM creates alongside an existing orchestration layer
  • State the full cost of adopting PDM: a host, a credential store, a backup, a log, and a version to track
  • Decide adoption with a short framework, and un-adopt cleanly when the answer changes

Prerequisites

Verified against Proxmox VE 9.2.4 · Proxmox Backup Server 4.2.5 · Ceph Squid / Tentacle · Debian 13 (Trixie) · Linux kernel 7.0 (PVE 9.2 default) · 2026-08-12

Not yet marked complete on this device.

Five lessons of capability, and now the lesson that decides whether any of it applies to you.

This is not a ritual disclaimer. PDM solves one specific problem — humans losing track of an estate spread across several independent clusters — and it solves it well. Estates that do not have that problem, or that have already solved it another way, get a new host to patch, a new credential store to protect, and a second place where the numbers might disagree.

Three situations where the answer is no.

Wrong answer one: you have one cluster

A Proxmox VE cluster already has a unified interface. Log into any node and you see every node, every guest, every storage, one task log, one ACL database, one set of users, one subscription view, one updates panel. That interface is live, not collected, and it can do everything — create guests, edit configuration, manage Ceph, edit firewall rules, configure HA, define backup jobs — where PDM can do a documented subset.

Put PDM in front of a single cluster and you get, honestly, a worse version of what you already have:

The cluster’s own interfacePDM in front of one cluster
FreshnessLiveCollected, with a last-seen fallback
Guest creationYesNot offered
CephFull managementRead-only
FirewallFull managementView only
Backup jobsFull managementNot offered
HA configurationFull managementNot offered
Roles availableMany, plus custom rolesThree, no custom roles
Additional hosts to runNoneOne
Additional credential storesNoneOne, holding a cluster token

There is one genuine exception, and it is worth knowing because it is the only thing PDM does that a single cluster cannot: views granted without resource access. If you need to give a NOC, an application team or a manager a dashboard over the cluster without giving them an account on the cluster, PDM’s /views/{id} permission model does that cleanly and PVE has no direct equivalent.

Weigh it honestly, though. A PVE account with PVEAuditor scoped through a resource pool covers a large fraction of the same need without a new host. Reach for PDM here when the read-only consumers genuinely must not have a cluster account at all — a contractual boundary, an auditor, an external support partner — and not merely because a custom dashboard would be nice.

The other legitimate reason is anticipation: you have one cluster today and a funded plan for the second one this quarter. Standing PDM up early, against one remote, is a reasonable way to have the trust model settled before it matters.

Wrong answer two: your provisioning is scripted

Part XX built a different answer to the multi-cluster problem: talk to the API. pvesh, the REST API directly, Proxmox modules for Ansible, Terraform against each cluster’s provider, Python through a client library. If that is how your estate is built, routing anything through PDM makes it worse in four specific ways.

PDM cannot create. No documented guest-creation workflow exists in 1.1.7, and “basic guest configuration beyond snapshots, lifecycle and migration” is a roadmap item. Your provisioning must talk to PVE regardless. PDM would be an additional path, not a replacement one.

PDM is a cache. Lesson 3 established that everything you read from PDM comes from a collection run whose interval is not documented, with a last-seen fallback for unreachable remotes. Automation that makes decisions from cached inventory makes decisions from the past. A script that reads “VM 141 is stopped” from PDM and acts on it is acting on a photograph. Read state from the cluster that owns it.

PDM collapses attribution. Every action PDM takes on a cluster arrives as the single token in remotes.cfg. A pipeline that talks to PVE directly can give each system its own privilege-separated token — terraform@pve!prod, ansible@pve!patching, backup-verify@pve!nightly — and the cluster task log then says which system did what. Route them through PDM and every one of them becomes the same identity in the cluster’s log.

PDM adds an indirection with no capability gain. Two APIs to learn, two credential lifecycles to manage, two things to version-track, in exchange for functionality that already exists one layer down.

Wrong answer three: you already have an orchestration layer

The third case is the expensive one, because it fails slowly.

An estate with Terraform or a similar tool for provisioning, Ansible for configuration, a CMDB or asset register, Prometheus and Grafana for metrics and alerting, a log pipeline, and a ticketing system with change records has already built answers to every question PDM answers. Adding PDM does not remove any of those. It adds a parallel answer.

Parallel answers do not stay equal:

QuestionExisting answerPDM’s answerWhat happens
What exists?CMDB or Terraform stateCollected inventoryThey diverge; nobody knows which is authoritative
How is it doing?Grafana on scraped metricsDashboards on collected RRDTwo graphs, different numbers, arguments
What happened?Log pipelineAggregated task logTwo timelines to reconcile in an incident
Who may do what?IdP and pipeline permissionsPDM ACLA second permission surface to review and to leave stale
What is patched?Patch management toolingUpdate overviewA second patch report to explain

None of those is a catastrophe on its own. Together they produce the outcome every experienced operator recognises: a screen somebody trusts that disagrees with a screen somebody else trusts, and thirty minutes of an incident spent establishing which one is right.

The productive move in this situation is not to reject PDM outright but to scope it to its differentiator. Run PDM for the cross-cluster inventory lookup, the delegated views, and cross-cluster migration; leave alerting, provisioning and the system of record where they are; and grant its remote tokens at the visibility level from Lesson 5 unless migration is genuinely needed. That is a small, honest deployment that adds something and duplicates nothing.

Three more things PDM is not

Briefly, because earlier lessons made the arguments:

Not a monitoring system. Notifications for remotes are being evaluated, notifications for the PDM host itself are a roadmap item, and PDM has no high-availability architecture. It cannot page anyone.

Not disaster recovery. Cross-cluster migration requires the source cluster to be healthy enough to read every disk. DR is Part XIV.

Not a compliance boundary. This is the one people get wrong in the dangerous direction. PDM concentrates; it does not separate. If two environments are required not to share a control plane — a regulated environment and a development one, two customers, two security domains — then connecting both to one PDM is a control-plane join, however carefully you configure the ACL. The boundary you were asked for is a second PDM, or no PDM on one side.

The real cost of adoption

Write these into the design document, because the ones nobody wrote down are the ones that surprise a successor:

  • A host to run, patch and monitor, on apt full-upgrade because a rolling release on Debian breaks under apt upgrade.
  • A credential store to protect. remotes.cfg holds a working token for every cluster.
  • A backup with secret-bearing content, encrypted and access controlled.
  • A log to retain, because PDM’s task log is the only record of which human asked for a cluster action.
  • A version to track against remote versions, since feature availability varies by remote version — remote shell needs PVE 9.1 or PBS 4.1.
  • A subscription ratio to watch. Enterprise repository access needs at least 80% of configured remote nodes on Basic or higher, and the denominator includes anything you connect.
  • An unpublished end-of-life. The FAQ lists PDM 1’s EOL as TBA.
  • No high availability for PDM itself, with two side-by-side instances as the documented workaround.

That is not a long list, and none of it is unusual for an infrastructure component. It is simply longer than the list most people have in mind when they describe PDM as “just a dashboard”.

Where PDM is the right answer

To finish honestly, because five lessons of caveats can leave the wrong impression. Adopt PDM when most of this is true:

  • Three or more independent clusters, or clusters plus backup servers, with no plan to consolidate them.
  • Human operators who work across all of them and currently pay a daily tax in tabs, lookups and context switching.
  • Geographic or organisational separation that makes a single cluster impossible rather than merely inconvenient.
  • A need to delegate visibility without access — the views case, which is the cleanest thing in the product.
  • Occasional planned cross-cluster moves, treated as changes with windows and rehearsals.
  • Willingness to own the host properly, including its credential store.

In that estate PDM is genuinely good, and the aggregated task log alone will pay for it during the first multi-cluster incident.

Key takeaways

  • One cluster: the cluster’s own interface is live, more capable, and needs no extra host. The exception is delegated views for people who must not have a cluster account.
  • Scripted estates: machines talk to PVE, humans talk to PDM. Routing automation through PDM costs creation ability, freshness and attribution, and gains nothing.
  • With an existing orchestration and observability stack, PDM creates parallel answers. Scope it to its differentiators and rank it explicitly below the system of record.
  • PDM is not monitoring, not DR, and never a compliance boundary — it concentrates control rather than separating it.
  • Adoption costs a patched host, a protected credential store, an encrypted backup, retained logs, a version to track, a subscription ratio to watch, and an EOL published as TBA.
  • Un-adopt by removing remotes first, with the default token deletion, and verifying on each cluster before destroying the host.

Knowledge check

Knowledge check · 4 questions

  1. Q1. A team runs one twelve-node PVE cluster and proposes deploying PDM in front of it "for a nicer overview". What is the strongest technical objection?

  2. Q2. An estate provisions guests with Terraform, configures them with Ansible, and is considering routing that automation through PDM instead of each cluster API. What is the most consequential problem with that plan?

  3. Q3. A regulated environment and a development environment run on separate clusters and are required not to share a control plane. Connecting both to a single PDM instance satisfies that requirement, provided PDM ACLs prevent development operators from seeing the regulated remote.

  4. Q4. PDM is being decommissioned. Which of these must happen before the PDM host is destroyed? Select all that apply.

Passing score: 75%. Answers are checked in this browser.