public inbox for pdm-devel@lists.proxmox.com
 help / color / mirror / Atom feed
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


      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
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal