<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>This email is only of interest to Labs project admins; Tool-Labs
      users can disregard this entirely.<br>
    </p>
    <p>tl;dr:</p>
    <p>Don't set instance puppet variables using the puppet config page;
      instead use the hiera pages of the form
      <a class="moz-txt-link-freetext"
        href="https://wikitech.wikimedia.org/wiki/Hiera">https://wikitech.wikimedia.org/wiki/Hiera</a>:<project>/host/<instance><br>
    </p>
    <p><br>
    </p>
    <p>The whole story:<br>
    </p>
    <p><br>
      Until recently, the recommended way to specify e.g. a puppet
      server on Labs was via a global variable set on the 'configure'
      panel in Wikitech.</p>
    <p>That panel was designed several Puppet versions ago; modern
      puppet discourages use of global variables.  Instead, we're going
      to configure everything via hiera, which is the built-in cascading
      database puppet uses to configure classes.</p>
    <p>This will have quite a few advantages, but the main one is that
      this gets us a bit closer to being able to adopt the new
      Horizon-based puppet management system that I'm in the process of
      writing.  It's also one of the last steps on the road to
      eliminating a whole pile of ldap dependencies.</p>
    <p>Right now I'm hunting down all the puppet globals currently set,
      removing them, and adding equivalent hiera settings.  In a day or
      two the puppet variable feature on wikitech will disappear
      entirely, but please don't use it in the meantime.  If you're
      hunting for a setting, look on the hiera page for your project or
      instance.</p>
    <p>For project-wide hiera config, pages have this format:</p>
    <p><a class="moz-txt-link-freetext"
        href="https://wikitech.wikimedia.org/wiki/Hiera">https://wikitech.wikimedia.org/wiki/Hiera</a>:<project></p>
    <p>For instance-specific hiera, the url looks like this:</p>
    <p><a class="moz-txt-link-freetext"
        href="https://wikitech.wikimedia.org/wiki/Hiera">https://wikitech.wikimedia.org/wiki/Hiera</a>:<project>/host/<instance></p>
    <p>Those hiera pages are simple yaml, and setting a single param is
      even simpler.  Here's an example, from
      <a class="moz-txt-link-freetext"
href="https://wikitech.wikimedia.org/wiki/Hiera:Ttmserver/host/ttmserver-mediawiki01">https://wikitech.wikimedia.org/wiki/Hiera:Ttmserver/host/ttmserver-mediawiki01</a>:</p>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <pre class="mw-code mw-yaml" dir="ltr">---
"role::salt::minions::salt_master": ttmserver-salt01.eqiad.wmflabs
"role::salt::minions::salt_finger": 42:bb:24:ad:a5:75:86:95:db:da:dd:33:c5:90:5d:3e</pre>
    <p>That's it!</p>
    <p>I realize this is fairly arcane -- don't hesitate to respond with
      questions or find me on IRC if you get stuck.  In a few weeks we
      should be back to having a friendly, web-based system, one that
      should make a bit more sense.</p>
    <p>-Andrew<br>
    </p>
  </body>
</html>