From: "Christoph Heiss" <c.heiss@proxmox.com>
To: "Proxmox Datacenter Manager development discussion"
<pdm-devel@lists.proxmox.com>
Subject: Re: [pdm-devel] [PATCH proxmox/datacenter-manager 00/13] initial auto-installer integration
Date: Fri, 05 Dec 2025 12:26:49 +0100 [thread overview]
Message-ID: <DEQ8W2VEZIF8.2MVXEWI894AFO@proxmox.com> (raw)
In-Reply-To: <20251204125122.945961-1-c.heiss@proxmox.com>
v2 posted: https://lore.proxmox.com/pdm-devel/20251205112528.373387-1-c.heiss@proxmox.com/
On Thu Dec 4, 2025 at 1:51 PM CET, Christoph Heiss wrote:
> This series adds integration with our automated installer [0] for all our
> products. With this, Proxmox Datacenter Manager can be used for serving
> answer files via HTTP(S) in an automated fashion.
>
> It provides two new panels:
>
> - Automated Installations: List all past and currently ongoing
> installations.
> - Prepared Answers: Enables users to do the whole CRUD cycle for
> prepared answers, i.e. create new answers (from scratch or based on
> existing ones), edit and delete.
>
> Permission-wise, everything is currently scoped on
> /system/auto-installation.
>
> UI
> ==
>
> Happy about feedback regarding the UI, especially the editing dialog! By
> the nature of it, the auto-installer has a lot more options than the
> standard GUI/TUI installer, and it's kind of hard to not fully cramp up
> the UI while still providing all options.
>
> TOML API
> ========
>
> The auto-installer (currently) only supports TOML as input format for
> the answer, so we need to hack around a bit to serve TOML in the API.
> This is done in patch #12, by implementing the api method
> directly.
>
> Serving TOML from an endpoint under /api2/json/ obviously is rather
> wrong, so I'm definitely open for suggestions.
> We probably also don't want to implement `/api2/toml/` if I'd have to
> guess (or would that be possible selectively, i.e. just for this one
> endpoint?).
>
> Adding JSON support to proxmox-fetch-answer is on my list, but this
> would still be needed if we want to keep compatibility with older ISOs.
>
> Other future work
> =================
>
> - Switch the installer to use the `proxmox-installer-types` crate too
> Left this out for now (though I have a mostly-done branch locally
> already), to ease review.
>
> - Target filter selection by dropdown.
> Based on the system information schema, a list of all possible
> JSON pointers could be generated and displayed to the user, in a form
> consisting of the key, a text input for the value/glob to match and a
> set of add/remove buttons for each filter.
>
> - Display/saving the installation progress/log. The progress log
> generated by the auto-installer can be sent to PDM, showing it there
> similar to tasks.
> Requires changes to the auto-installer, so this would not be
> backwards-compatible with older ISOs.
>
> - Implement a "wait for answer"-ish system. Core idea here is that the
> installer waits for PDM to provide in answer by implemented e.g. an
> retry system. The use case is for to be able to effectively install
> systems on demand, without the need for preparations.
> Again requires changes to the auto-installer and wouldn't be
> backwards-compatible.
>
> [0] https://pve.proxmox.com/wiki/Automated_Installation
>
> Diffstat
> ========
>
> proxmox:
>
> Christoph Heiss (8):
> api-macro: allow $ in identifier name
> network-types: move `Fqdn` type from proxmox-installer-common
> network-types: implement api type for Fqdn
> network-types: cidr: add family-independent constructor and access
> network-types: add api wrapper type for std::net::IpAddr
> installer-types: add common types used by the installer
> installer-types: add types used by the auto-installer
> installer-types: implement api type for all externally-used types
>
> Cargo.toml | 1 +
> proxmox-api-macro/src/util.rs | 2 +-
> proxmox-installer-types/Cargo.toml | 26 +
> proxmox-installer-types/debian/changelog | 5 +
> proxmox-installer-types/debian/control | 67 ++
> proxmox-installer-types/debian/debcargo.toml | 7 +
> proxmox-installer-types/src/answer.rs | 1017 ++++++++++++++++++
> proxmox-installer-types/src/lib.rs | 183 ++++
> proxmox-installer-types/src/post_hook.rs | 239 ++++
> proxmox-network-types/Cargo.toml | 3 +-
> proxmox-network-types/debian/control | 2 +
> proxmox-network-types/src/fqdn.rs | 262 +++++
> proxmox-network-types/src/ip_address.rs | 98 +-
> proxmox-network-types/src/lib.rs | 1 +
> 14 files changed, 1909 insertions(+), 4 deletions(-)
> create mode 100644 proxmox-installer-types/Cargo.toml
> create mode 100644 proxmox-installer-types/debian/changelog
> create mode 100644 proxmox-installer-types/debian/control
> create mode 100644 proxmox-installer-types/debian/debcargo.toml
> create mode 100644 proxmox-installer-types/src/answer.rs
> create mode 100644 proxmox-installer-types/src/lib.rs
> create mode 100644 proxmox-installer-types/src/post_hook.rs
> create mode 100644 proxmox-network-types/src/fqdn.rs
>
> proxmox-datacenter-manager:
>
> Christoph Heiss (6):
> api-types: add api types for auto-installer integration
> config: add auto-installer configuration module
> acl: wire up new /system/auto-installation acl path
> server: api: add auto-installer integration module
> ui: auto-installer: add installations overview panel
> ui: auto-installer: add prepared answer configuration panel
>
> Cargo.toml | 6 +
> debian/control | 5 +
> lib/pdm-api-types/Cargo.toml | 3 +
> lib/pdm-api-types/src/acl.rs | 4 +-
> lib/pdm-api-types/src/auto_installer.rs | 441 +++++++++
> lib/pdm-api-types/src/lib.rs | 1 +
> lib/pdm-config/Cargo.toml | 2 +
> lib/pdm-config/src/auto_install.rs | 85 ++
> lib/pdm-config/src/lib.rs | 1 +
> lib/pdm-config/src/setup.rs | 7 +
> server/Cargo.toml | 4 +
> server/src/api/auto_installer/mod.rs | 654 ++++++++++++++
> server/src/api/mod.rs | 2 +
> ui/Cargo.toml | 4 +
> ui/src/auto_installer/add_wizard.rs | 142 +++
> ui/src/auto_installer/answer_form.rs | 849 ++++++++++++++++++
> ui/src/auto_installer/edit_window.rs | 105 +++
> ui/src/auto_installer/installations_panel.rs | 289 ++++++
> ui/src/auto_installer/mod.rs | 15 +
> .../auto_installer/prepared_answers_panel.rs | 233 +++++
> .../configuration/permission_path_selector.rs | 1 +
> ui/src/lib.rs | 2 +
> ui/src/main_menu.rs | 22 +
> 23 files changed, 2875 insertions(+), 2 deletions(-)
> create mode 100644 lib/pdm-api-types/src/auto_installer.rs
> create mode 100644 lib/pdm-config/src/auto_install.rs
> create mode 100644 server/src/api/auto_installer/mod.rs
> create mode 100644 ui/src/auto_installer/add_wizard.rs
> create mode 100644 ui/src/auto_installer/answer_form.rs
> create mode 100644 ui/src/auto_installer/edit_window.rs
> create mode 100644 ui/src/auto_installer/installations_panel.rs
> create mode 100644 ui/src/auto_installer/mod.rs
> create mode 100644 ui/src/auto_installer/prepared_answers_panel.rs
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
prev parent reply other threads:[~2025-12-05 11:26 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-04 12:51 Christoph Heiss
2025-12-04 12:51 ` [pdm-devel] [PATCH proxmox 01/13] api-macro: allow $ in identifier name Christoph Heiss
2025-12-04 12:51 ` [pdm-devel] [PATCH proxmox 02/13] network-types: move `Fqdn` type from proxmox-installer-common Christoph Heiss
2025-12-04 12:51 ` [pdm-devel] [PATCH proxmox 03/13] network-types: implement api type for Fqdn Christoph Heiss
2025-12-04 12:51 ` [pdm-devel] [PATCH proxmox 04/13] network-types: add api wrapper type for std::net::IpAddr Christoph Heiss
2025-12-04 12:51 ` [pdm-devel] [PATCH proxmox 05/13] installer-types: add common types used by the installer Christoph Heiss
2025-12-04 12:51 ` [pdm-devel] [PATCH proxmox 06/13] installer-types: add types used by the auto-installer Christoph Heiss
2025-12-04 12:51 ` [pdm-devel] [PATCH proxmox 07/13] installer-types: implement api type for all externally-used types Christoph Heiss
2025-12-04 12:51 ` [pdm-devel] [PATCH datacenter-manager 08/13] api-types: add api types for auto-installer integration Christoph Heiss
2025-12-04 12:51 ` [pdm-devel] [PATCH datacenter-manager 09/13] config: add auto-installer configuration module Christoph Heiss
2025-12-04 12:51 ` [pdm-devel] [PATCH datacenter-manager 10/13] acl: wire up new /system/auto-installation acl path Christoph Heiss
2025-12-04 12:51 ` [pdm-devel] [PATCH datacenter-manager 11/13] server: api: add auto-installer integration module Christoph Heiss
2025-12-04 12:51 ` [pdm-devel] [PATCH datacenter-manager 12/13] ui: auto-installer: add installations overview panel Christoph Heiss
2025-12-04 12:51 ` [pdm-devel] [PATCH datacenter-manager 13/13] ui: auto-installer: add prepared answer configuration panel Christoph Heiss
2025-12-04 14:17 ` [pdm-devel] [PATCH proxmox/datacenter-manager 00/13] initial auto-installer integration Lukas Wagner
2025-12-04 15:06 ` Christoph Heiss
2025-12-05 11:26 ` Christoph Heiss [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DEQ8W2VEZIF8.2MVXEWI894AFO@proxmox.com \
--to=c.heiss@proxmox.com \
--cc=pdm-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox