[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#60735] [PATCH v2 2/3] system: Deprecate hosts-file.
From: |
Ludovic Courtès |
Subject: |
[bug#60735] [PATCH v2 2/3] system: Deprecate hosts-file. |
Date: |
Tue, 24 Jan 2023 09:53:37 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) |
Hi Bruno!
Bruno Victal <mirai@makinata.eu> skribis:
> On 2023-01-23 22:37, Ludovic Courtès wrote:
>> Bruno Victal <mirai@makinata.eu> skribis:
>>
>>> ---
>>>
>>> WIP, the ganeti tests fail because host-name is added as an alias of
>>> localhost.
>>
>> Before these patches, ‘host-name’ was already an alias of ‘localhost’.
>> Is there something else interfering?
>
> In some cases, it's not desired for host-name to be an alias of localhost.
> The ganeti tests did this by passing a hosts-file file-like object where
> host-name wasn't an alias of localhost.
Oh, I see.
> I've brainstormed a bit on this and here's what I thought:
>
> Approach 1 (DOESN'T WORK):
> * hosts-service-type in essential-services (gnu/systems.scm), default value:
> 127.0.0.1 localhost
> ::1 localhost
> * simple-service extension on base-services (gnu/services/base.scm):
> \\FLOPS since both /etc/hosts and /etc/hostname are provisioned with
> activation-service-type.
> This means we can't write /etc/hosts AFTER /etc/hostname or
> host-name-service-type is ready.
>
> Approach 2:
> * NO /etc/hosts in essential-services (is this possible?)
> * is an absent /etc/hosts (or absent %base-services) a valid OS?
> * Value set in %base-services, hosts-service-type as a ONE-SHOT shepherd
> service.
> * Can be changed with modify-services.
> * It's a one-shot shepherd service since we're depending on
> /etc/hostname which is activation-service-type. (we're depending on either
> etc-service-type or host-name-service-type)
>
> Approach 3:
> * Do not set our hostname as an alias of localhost by default.
> * Manpage doesn't seem to make this mandatory, in fact, our hostname
> can point to any IP. (it says 'often', not 'mandatory')
> * We only set localhost name.
> * Is this mandatory? If not, there might be cases where this
> entry is undesired.
Wait, why don’t we keep ‘hosts-service-type’ in ‘essential-services’,
with the localhost/host-name alias, and have ‘%ganeti-os’ in (gnu tests
ganeti) modify its essential services to get what it wants? As in:
(operating-system
;; …
(essential-services
(modify-services (operation-system-default-essential-services
this-operating-system)
(hosts-service-type config => …))))
Granted, that’s a bit verbose :-), but it should do the job just like
setting ‘hosts-file’ currently in ‘master’, no?
>> It doesn’t matter because it’s removed in the commit that follows I
>> think using ‘string-tokenize’ instead of ‘string-split’ may bring
>> simplifications.
>
> It was added because otherwise the "split" commits would seem to be missing
> some context.
> I can leave it as is, delete it here or try your suggestion.
Yeah leave it as is.
>>> + #:use-module (guix discovery)
>>
>> Do we really need this module?
>
> IIRC this was for the deprecated procedures to work. Can they work without
> this module?
Yes, ‘define-deprecated’ is defined in (guix deprecation).
Thanks!
Ludo’.
- [bug#60735] [PATCH 1/2] services: Add etc-hosts-service-type., (continued)
[bug#60735] [PATCH v2 1/3] services: Add etc-hosts-service-type., Ludovic Courtès, 2023/01/23
[bug#60735] [PATCH v2 1/3] services: Add etc-hosts-service-type., Ludovic Courtès, 2023/01/23
[bug#60735] [PATCH v3 1/3] services: Add hosts-service-type., Bruno Victal, 2023/01/27