From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <m.carrara@proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by lists.proxmox.com (Postfix) with ESMTPS id 9B192BA46A
 for <pve-devel@lists.proxmox.com>; Tue, 19 Mar 2024 17:02:07 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
 by firstgate.proxmox.com (Proxmox) with ESMTP id 7BFB73AC1
 for <pve-devel@lists.proxmox.com>; Tue, 19 Mar 2024 17:01:37 +0100 (CET)
Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com
 [94.136.29.106])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by firstgate.proxmox.com (Proxmox) with ESMTPS
 for <pve-devel@lists.proxmox.com>; Tue, 19 Mar 2024 17:01:33 +0100 (CET)
Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1])
 by proxmox-new.maurer-it.com (Proxmox) with ESMTP id AB11D46683
 for <pve-devel@lists.proxmox.com>; Tue, 19 Mar 2024 17:01:33 +0100 (CET)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Tue, 19 Mar 2024 17:01:32 +0100
Message-Id: <CZXUPDWDJAZD.3OA10BBA87LA8@proxmox.com>
From: "Max Carrara" <m.carrara@proxmox.com>
To: "Proxmox VE development discussion" <pve-devel@lists.proxmox.com>
X-Mailer: aerc 0.17.0-72-g6a84f1331f1c
References: <20240305150758.252669-1-m.carrara@proxmox.com>
 <20240305150758.252669-15-m.carrara@proxmox.com>
 <1710841216.ygaihbiy98.astroid@yuna.none>
In-Reply-To: <1710841216.ygaihbiy98.astroid@yuna.none>
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.527 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DMARC_MISSING             0.1 Missing DMARC policy
 KAM_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible
 spam tricks
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 POISEN_SPAM_PILL          0.1 Meta: its spam
 POISEN_SPAM_PILL_1        0.1 random spam to be learned in bayes
 POISEN_SPAM_PILL_3        0.1 random spam to be learned in bayes
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
 T_SCC_BODY_TEXT_LINE    -0.01 -
Subject: Re: [pve-devel] [PATCH v4 pve-manager 14/16] ceph: introduce
 '/etc/pve/ceph'
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
X-List-Received-Date: Tue, 19 Mar 2024 16:02:07 -0000

On Tue Mar 19, 2024 at 11:04 AM CET, Fabian Gr=C3=BCnbichler wrote:
> On March 5, 2024 4:07 pm, Max Carrara wrote:
> > This commit adds the '/etc/pve/ceph' directory to our overall expected
> > Ceph configuration.
> >=20
> > This directory is meant to store cluster-wide, non-private
> > configuration files used by Ceph applications and services that are
> > executed with lower privileges, such as 'ceph-crash.service'.
> >=20
> > The existence of the directory is now also checked for when checking
> > whether Ceph is configured correctly. This makes it easier for our
> > other tooling to rely on the directory's existence, reducing the
> > number of otherwise needless frequent checking.
> >=20
> > For new clusters: `pveceph init` now creates '/etc/pve/ceph' when
> > called.
> >=20
> > For existing clusters: The 'postinst' hook this commit adds ensures
> > that '/etc/pve/ceph' is created upon update.
> >=20
> > The 'postinst' hook is also version-guarded and does not run when
> > upgrading from pve-manager version 8.1.5 and above.
> >=20
> > Signed-off-by: Max Carrara <m.carrara@proxmox.com>
> > ---
> > Changes v2 --> v3:
> >   * new; originally part of patches 09, 10 of series v2 - decided it's
> >     better to move all this into a separate patch to make context +
> >     intention clearer
> > Changes v3 --> v4:
> >   * none
> >=20
> >  PVE/API2/Ceph.pm  |  5 +++++
> >  PVE/Ceph/Tools.pm | 12 ++++++++++--
> >  debian/postinst   | 12 ++++++++++++
> >  3 files changed, 27 insertions(+), 2 deletions(-)
> >=20
> > diff --git a/PVE/API2/Ceph.pm b/PVE/API2/Ceph.pm
> > index 81c17d6e..7fedb87a 100644
> > --- a/PVE/API2/Ceph.pm
> > +++ b/PVE/API2/Ceph.pm
> > @@ -192,6 +192,11 @@ __PACKAGE__->register_method ({
> >  	    PVE::Ceph::Tools::check_ceph_installed('ceph_bin');
> >  	}
> > =20
> > +	my $pve_ceph_cfgdir =3D PVE::Ceph::Tools::get_config('pve_ceph_cfgdir=
');
> > +	if (! -d $pve_ceph_cfgdir) {
> > +	    File::Path::make_path($pve_ceph_cfgdir);
> > +	}
> > +
> >  	my $auth =3D $param->{disable_cephx} ? 'none' : 'cephx';
> > =20
> >  	# simply load old config if it already exists
> > diff --git a/PVE/Ceph/Tools.pm b/PVE/Ceph/Tools.pm
> > index ee6c515c..735bb116 100644
> > --- a/PVE/Ceph/Tools.pm
> > +++ b/PVE/Ceph/Tools.pm
> > @@ -18,6 +18,7 @@ my $ccname =3D 'ceph'; # ceph cluster name
> >  my $ceph_cfgdir =3D "/etc/ceph";
> >  my $pve_ceph_cfgpath =3D "/etc/pve/$ccname.conf";
> >  my $ceph_cfgpath =3D "$ceph_cfgdir/$ccname.conf";
> > +my $pve_ceph_cfgdir =3D "/etc/pve/ceph";
> > =20
> >  my $pve_mon_key_path =3D "/etc/pve/priv/$ccname.mon.keyring";
> >  my $pve_ckeyring_path =3D "/etc/pve/priv/$ccname.client.admin.keyring"=
;
> > @@ -37,6 +38,7 @@ my $ceph_service =3D {
> > =20
> >  my $config_values =3D {
> >      ccname =3D> $ccname,
> > +    pve_ceph_cfgdir =3D> $pve_ceph_cfgdir,
> >      ceph_mds_data_dir =3D> $ceph_mds_data_dir,
> >      long_rados_timeout =3D> 60,
> >  };
> > @@ -186,8 +188,14 @@ sub check_ceph_inited {
> > =20
> >      return undef if !check_ceph_installed('ceph_mon', $noerr);
> > =20
> > -    if (! -f $pve_ceph_cfgpath) {
> > -	die "pveceph configuration not initialized\n" if !$noerr;
> > +    my @errors;
> > +
> > +    push(@errors, "missing '$pve_ceph_cfgpath'") if ! -f $pve_ceph_cfg=
path;
> > +    push(@errors, "missing '$pve_ceph_cfgdir'") if ! -d $pve_ceph_cfgd=
ir;
> > +
> > +    if (@errors) {
> > +	my $err =3D 'pveceph configuration not initialized - ' . join(', ', @=
errors) . "\n";
> > +	die $err if !$noerr;
> >  	return undef;
> >      }
> > =20
> > diff --git a/debian/postinst b/debian/postinst
> > index 6138ef6d..61b50f97 100755
> > --- a/debian/postinst
> > +++ b/debian/postinst
> > @@ -80,6 +80,14 @@ EOF
> >      fi
> >  }
> > =20
> > +update_ceph_conf() {
> > +    CEPH_CONF_DIR=3D'/etc/pve/ceph'
> > +
> > +    if test ! -d "${CEPH_CONF_DIR}"; then
> > +        mkdir -p "${CEPH_CONF_DIR}"
> > +    fi
> > +}
> > +
> >  migrate_apt_auth_conf() {
> >      output=3D""
> >      removed=3D""
> > @@ -190,6 +198,10 @@ case "$1" in
> > =20
> >      set_lvm_conf
> > =20
> > +    if test -n "$2" && dpkg --compare-versions "$2" 'lt' '8.1.5~'; the=
n
>
> nit: never hard code such versions in patches unless you know they will b=
e
> applied right away ;) instead, have a placeholder here and call it out
> prominently in the patch notes and cover letter.

Thanks, will do!

>
> > +        update_ceph_conf
> > +    fi
> > +
> >      if test ! -e /proxmox_install_mode; then
> >          # modeled after code generated by dh_start
> >          for unit in ${UNITS}; do
> > --=20
> > 2.39.2
> >=20
> >=20
> >=20
> > _______________________________________________
> > pve-devel mailing list
> > pve-devel@lists.proxmox.com
> > https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
> >=20
> >=20
> >=20
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel