[systemd-devel] Deployment/environment names [was: Re: [PATCH 2/4] Add ENVIRONMENT to hostnamed]

Josh Triplett josh at joshtriplett.org
Tue Jul 8 18:44:19 PDT 2014


On Wed, Jul 09, 2014 at 01:16:04AM +0000, "Jóhann B. Guðmundsson" wrote:
> 
> On 07/09/2014 01:05 AM, josh at joshtriplett.org wrote:
> >On Tue, Jul 08, 2014 at 10:45:11PM +0000, "Jóhann B. Guðmundsson" wrote:
> >>>
> >>>On 07/08/2014 10:45 PM, Josh Triplett wrote:
> >>>> >[Responding to this version because the latest thread hasn't appeared in
> >>>> >the mbox archives yet.  The comments apply equally well to the latest
> >>>> >version, "Add DEPLOYMENT to hostnamectl".]
> >>>> >
> >>>> >On Tue, Jul 08, 2014 at 12:38:50AM +0000, Jóhann B. Guðmundsson wrote:
> >>>>> >>+static bool valid_environment(const char *environment) {
> >>>>> >>+
> >>>>> >>+        assert(environment);
> >>>>> >>+
> >>>>> >>+        return nulstr_contains(
> >>>>> >>+                        "development\0"
> >>>>> >>+                        "staging\0"
> >>>>> >>+                        "production\0",
> >>>>> >>+                        environment);
> >>>>> >>+}
> >>>> >Can we please*not*  attempt to limit or "standardize" this particular
> >>>> >set of machine roles?  As already demonstrated in the previous thread,
> >>>> >people have all sorts of staged deployment strategies.  Furthermore,
> >>>> >the concept of a machine role shouldn't be limited to service deployment
> >>>> >strategies.
> >>>> >
> >>>
> >>>Roles != the environment they run in.
> >I'm not trying to bikeshed over the naming of the variable itself.  I'm
> >arguing that standardizing this particular bit of metadata won't work
> >well when so many different deployment strategies exist.  Thus, rather
> >than having a fixed set of keywords, I'd propose simply saying "this
> >contains keywords", and leaving the specific keywords up to the admin.
> >If you attempt to standardize production/development/staging, you'll
> >either end up with a model that only works for a small subset of
> >deployments, or you'll end up adding twelve more keywords, at which
> >point you might as well have just said "use whatever keyword you like".
> 
> The 4 tier covers the majority of the models since more or less the entire
> internet recommend three tier model including M$ [1]
> Anyone wanting to extend that further can do so using the "PRETTY_HOSTNAME="

"PRETTY_HOSTNAME" does not equate to "description", and in any case is
not the same thing as a deployment environment.

> This patch is very specific to deployment environment and to solve a very
> specific long standing problem and to achieve that we need to a standardize,
> if we dont we can just as well drop this patch since in the long run we
> cannot introduce something like "ConditionDeployment=" like David mentioned
> and it kinda defeat's my purpose working in this in the firsplace...

Distribution unit files will never use ConditionDeployment; only
admin-created or admin-modified unit files will.  Given that, it will
work perfectly without a standardized set of names.  Just specify that
DEPLOYMENT contains a keyword *such as* (but not limited to)
"production" or "development", and then state that ConditionDeployment
can specify a keyword.  That will work perfectly without limiting the
set of possible keywords.

- Josh Triplett


More information about the systemd-devel mailing list