public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Christoph Heiss <c.heiss@proxmox.com>
To: Stefan Hanreich <s.hanreich@proxmox.com>
Cc: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH installer 00/14] fix #5536: implement post-(auto-)installation notification mechanism
Date: Fri, 12 Jul 2024 11:11:48 +0200	[thread overview]
Message-ID: <v3pvdn7biqybuyfheleapsdfq6xfmivn4b4fcprndwncj4uiro@v7ajt624very> (raw)
In-Reply-To: <059dcd9d-97cb-4fa7-9cb8-465eab2730d4@proxmox.com>

On Thu, Jul 11, 2024 at 06:49:28PM GMT, Stefan Hanreich wrote:
> Did a quick smoke test of this series by creating an ISO with an answer
> file baked in and checking the response via `nc -l`. Review is inline.

Thanks for the review & testing!

From a quick glance all the comments make sense, I'll address them in a
v2.

>
> Consider this:
>
> Tested-By: Stefan Hanreich <s.hanreich@proxmox.com>
> Reviewed-By: Stefan Hanreich <s.hanreich@proxmox.com>
>
>
> On 7/10/24 15:27, Christoph Heiss wrote:
> > This implements a mechanism for post-installation "notifications" via a
> > POST request [0] when using the auto-installer.
> >
> > It's implemented as a separate, small utility to facilitate separation
> > of concerns and make the information gathering easier by having it
> > isolated in one place.
> >
> > Patches #1 through #10 are simply clean-ups, refactors, etc. that were
> > done along the way, which do not impact functionality in any way.
> >
> > Most interesting here will be patch #12, which adds the actual
> > implementation of the post-hook. (Bind-)mounting the installed host
> > system is done using the existing `proxmox-chroot` utility, and the HTTP
> > POST functionality can fortunately be re-used 1:1 from
> > `proxmox-fetch-answer`.
> >
> > I've also included an example of how the JSON body (pretty-printed for
> > readability) of such a post-installation request would look like below,
> > for reference.
> >
> > Tested this with both PVE and PBS ISOs, PMG did not (yet) have a
> > release with an auto-installation capable ISO. The only product-specific
> > code is the version detection in `proxmox-post-hook`, which - since it
> > works the same for PVE and PMG - be no obstacle.
> >
> > [0] https://bugzilla.proxmox.com/show_bug.cgi?id=5536
> >
> > {
> >   "debian-version": "12.5",
> >   "product-version": "pve-manager/8.2.2/9355359cd7afbae4",
> >   "kernel-version": "proxmox-kernel-6.8.4-2-pve-signed",
> >   "boot-type": "bios",
> >   "filesystem": "zfs (RAID1)",
> >   "fqdn": "host.domain",
> >   "machine-id": "f4bf9711783248b7aaffe3ccbca3e3dc",
> >   "bootdisk": [
> >     {
> >       "size": 8589934592,
> >       "udev-properties": {
> >         "DEVNAME": "/dev/vda", [..]
> >       }
> >     },
> >     {
> >       "size": 8589934592,
> >       "udev-properties": {
> >         "DEVNAME": "/dev/vdb", [..]
> >       }
> >     }
> >   ],
> >   "management-nic": {
> >     "mac": "de:ad:f0:0d:12:34",
> >     "address": "10.0.0.10/24",
> >     "udev-properties": {
> >       "INTERFACE": "enp6s18", [..]
> >     }
> >   },
> >   "ssh-public-host-keys": {
> >     "ecdsa": "ecdsa-sha2-nistp256 [..] root@host",
> >     "ed25519": "ssh-ed25519 [..] root@host",
> >     "rsa": "ssh-rsa [..] root@host",
> >   }
> > }
> >
> > Christoph Heiss (14):  chroot: print full anyhow message
> >   tree-wide: fix some typos
> >   tree-wide: collect hardcoded installer runtime directory strings into
> >     constant
> >   common: simplify filesystem type serializing & Display trait impl
> >   common: setup: serialize `target_hd` as string explicitly
> >   common: split out installer setup files loading functionality
> >   debian: strip unused library dependencies
> >   fetch-answer: move http-related code to gated module in
> >     installer-common
> >   tree-wide: convert some more crates to use workspace dependencies
> >   auto-installer: tests: replace left/right with got/expected in output
> >   auto-installer: answer: add `posthook` section
> >   fix #5536: add post-hook utility for sending notifications after
> >     auto-install
> >   fix #5536: post-hook: add some unit tests
> >   unconfigured.sh: run proxmox-post-hook after successful auto-install
> >
> >  Cargo.toml                                    |  11 +
> >  Makefile                                      |   8 +-
> >  debian/control                                |   1 +
> >  debian/install                                |   1 +
> >  debian/rules                                  |   9 +
> >  proxmox-auto-install-assistant/Cargo.toml     |  14 +-
> >  proxmox-auto-installer/Cargo.toml             |  15 +-
> >  proxmox-auto-installer/src/answer.rs          |  27 +-
> >  .../src/bin/proxmox-auto-installer.rs         |  15 +-
> >  proxmox-auto-installer/src/sysinfo.rs         |  10 +-
> >  proxmox-auto-installer/src/utils.rs           |  15 +-
> >  proxmox-auto-installer/tests/parse-answer.rs  |  42 +-
> >  proxmox-chroot/Cargo.toml                     |   8 +-
> >  proxmox-chroot/src/main.rs                    |  19 +-
> >  proxmox-fetch-answer/Cargo.toml               |  17 +-
> >  .../src/fetch_plugins/http.rs                 | 100 +---
> >  .../src/fetch_plugins/partition.rs            |  14 +-
> >  proxmox-installer-common/Cargo.toml           |  26 +-
> >  proxmox-installer-common/src/http.rs          |  94 ++++
> >  proxmox-installer-common/src/lib.rs           |   5 +
> >  proxmox-installer-common/src/options.rs       | 109 ++--
> >  proxmox-installer-common/src/setup.rs         | 108 +---
> >  proxmox-installer-common/src/utils.rs         |   2 +
> >  proxmox-post-hook/Cargo.toml                  |  19 +
> >  proxmox-post-hook/src/main.rs                 | 498 ++++++++++++++++++
> >  proxmox-tui-installer/Cargo.toml              |   8 +-
> >  proxmox-tui-installer/src/setup.rs            |   2 +-
> >  unconfigured.sh                               |   7 +-
> >  28 files changed, 862 insertions(+), 342 deletions(-)
> >  create mode 100644 proxmox-installer-common/src/http.rs
> >  create mode 100644 proxmox-post-hook/Cargo.toml
> >  create mode 100644 proxmox-post-hook/src/main.rs
> >


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


  reply	other threads:[~2024-07-12  9:11 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-10 13:27 Christoph Heiss
2024-07-10 13:27 ` [pve-devel] [PATCH installer 01/14] chroot: print full anyhow message Christoph Heiss
2024-07-10 13:27 ` [pve-devel] [PATCH installer 02/14] tree-wide: fix some typos Christoph Heiss
2024-07-10 13:27 ` [pve-devel] [PATCH installer 03/14] tree-wide: collect hardcoded installer runtime directory strings into constant Christoph Heiss
2024-07-10 13:27 ` [pve-devel] [PATCH installer 04/14] common: simplify filesystem type serializing & Display trait impl Christoph Heiss
2024-07-11 14:32   ` Stefan Hanreich
2024-07-10 13:27 ` [pve-devel] [PATCH installer 05/14] common: setup: serialize `target_hd` as string explicitly Christoph Heiss
2024-07-10 13:27 ` [pve-devel] [PATCH installer 06/14] common: split out installer setup files loading functionality Christoph Heiss
2024-07-11 15:06   ` Stefan Hanreich
2024-07-10 13:27 ` [pve-devel] [PATCH installer 07/14] debian: strip unused library dependencies Christoph Heiss
2024-07-10 13:27 ` [pve-devel] [PATCH installer 08/14] fetch-answer: move http-related code to gated module in installer-common Christoph Heiss
2024-07-10 13:27 ` [pve-devel] [PATCH installer 09/14] tree-wide: convert some more crates to use workspace dependencies Christoph Heiss
2024-07-10 13:27 ` [pve-devel] [PATCH installer 10/14] auto-installer: tests: replace left/right with got/expected in output Christoph Heiss
2024-07-11 15:03   ` Stefan Hanreich
2024-07-10 13:27 ` [pve-devel] [PATCH installer 11/14] auto-installer: answer: add `posthook` section Christoph Heiss
2024-07-10 13:27 ` [pve-devel] [PATCH installer 12/14] fix #5536: add post-hook utility for sending notifications after auto-install Christoph Heiss
2024-07-11 15:54   ` Stefan Hanreich
2024-07-10 13:27 ` [pve-devel] [PATCH installer 13/14] fix #5536: post-hook: add some unit tests Christoph Heiss
2024-07-10 13:27 ` [pve-devel] [PATCH installer 14/14] unconfigured.sh: run proxmox-post-hook after successful auto-install Christoph Heiss
2024-07-11 16:49 ` [pve-devel] [PATCH installer 00/14] fix #5536: implement post-(auto-)installation notification mechanism Stefan Hanreich
2024-07-12  9:11   ` Christoph Heiss [this message]
2024-07-15 10:42 ` Thomas Lamprecht
2024-07-15 14:31   ` Christoph Heiss
2024-07-16 16:09     ` Thomas Lamprecht
2024-07-17  7:25       ` Christoph Heiss

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=v3pvdn7biqybuyfheleapsdfq6xfmivn4b4fcprndwncj4uiro@v7ajt624very \
    --to=c.heiss@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    --cc=s.hanreich@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