Proxmox VEXXV · Proxmox Datacenter ManagerSecurity and boundaries
When PDM is the wrong answer
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
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 interface | PDM in front of one cluster | |
|---|---|---|
| Freshness | Live | Collected, with a last-seen fallback |
| Guest creation | Yes | Not offered |
| Ceph | Full management | Read-only |
| Firewall | Full management | View only |
| Backup jobs | Full management | Not offered |
| HA configuration | Full management | Not offered |
| Roles available | Many, plus custom roles | Three, no custom roles |
| Additional hosts to run | None | One |
| Additional credential stores | None | One, 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:
| Question | Existing answer | PDM’s answer | What happens |
|---|---|---|---|
| What exists? | CMDB or Terraform state | Collected inventory | They diverge; nobody knows which is authoritative |
| How is it doing? | Grafana on scraped metrics | Dashboards on collected RRD | Two graphs, different numbers, arguments |
| What happened? | Log pipeline | Aggregated task log | Two timelines to reconcile in an incident |
| Who may do what? | IdP and pipeline permissions | PDM ACL | A second permission surface to review and to leave stale |
| What is patched? | Patch management tooling | Update overview | A 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-upgradebecause a rolling release on Debian breaks underapt upgrade. - A credential store to protect.
remotes.cfgholds 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
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?
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?
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.
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.