Page MenuHomePhabricator

RFC: What to do about wikitech per-project puppet config?
Closed, ResolvedPublic

Description

VPS puppet config is almost entirely managed by Horizon and the labspuppet backend now -- the only exception is legacy project-wide puppet config pages like this one:

https://wikitech.wikimedia.org/wiki/Hiera:Tools

Those pages are loaded by the puppet enc before the horizon puppet is included.

Should those pages be abolished?

Against wikitech puppet:

  1. It's really obscure to have some hidden extra puppet config on a whole other website for a few projects.
  1. Because those configs are handled differently by the puppetmaster, config from those pages aren't aggregated by openstack-browser.
  1. This is a weird duplication of the project/prefix puppet handling that Horizon handles perfectly well.

For wikitech puppet:

  1. Because those pages are wiki pages, they have version history. I'm not likely to re-implement wiki-style editing in Horizon.

Event Timeline

Andrew renamed this task from What to do about wikitech per-project puppet config? to RFC: What to do about wikitech per-project puppet config?.Jul 18 2017, 3:40 PM

Implementing full wiki styled editing would probably be a bridge too far, but it honestly would be nice to have a changelog for horizon puppet/hiera config changes. Off the top of my head I can't think of a trivially easy way to add this in since the backend for this is not itself version aware.

I have not looked at the stored configs, but there are quite a few projects with Hiera: namespace pages that would need to be moved. We can probably figure out a way to make a one time transfer easier. These pages should map directly to the project wide or instance specific config that Horizon exposes.

Count me in for Horizon over continuing to use Wikitech. Everything is moving to Horizon, it makes zero sense to have two places for this.

Implementing full wiki styled editing would probably be a bridge too far, but it honestly would be nice to have a changelog for horizon puppet/hiera config changes. Off the top of my head I can't think of a trivially easy way to add this in since the backend for this is not itself version aware.

If there's some sort of hook in Horizon, we could replicate the data over to Wikitech (and make them non-editable locally). Then you can reference config without logging into Hiera (useful), but they won't diverge. If the on-wiki pages continue to exist, we should also look at using ContentHandler so we can start getting stuff like syntax highlighting (it's just yaml)

I have not looked at the stored configs, but there are quite a few projects with Hiera: namespace pages that would need to be moved. We can probably figure out a way to make a one time transfer easier. These pages should map directly to the project wide or instance specific config that Horizon exposes.

A one-time migration is probably trivial. We should also audit that namespace -- a lot of pages could possibly be deleted.

See also T161675 which has a larger scope. That ticket also covers forking manifests, but has lot of proposals related to Hiera.

My 0.02€ are:

  • Wikitech has the history but lacks an interface to easily navigate the hierarchy. It is legacy anyway
  • Horizon lacks history which makes it hard to figure out who/why a setting has been changed. I also find the navigation and the way to apply roles to be rather confusing.

I usually favor the /hieradata hierarch in git. But maybe I am too old school or that is due to my addiction to grep.

Side note: what I usually do to debug hiera lookups is to head to the deployment-puppetmaster02 and then play with /utils/hiera_lookup. Example: P5758

Andrew claimed this task.

this is resolved with the new git backend for horizon puppet config.