You are browsing a read-only backup copy of Wikitech. The live site can be found at wikitech.wikimedia.org

Portal:Toolforge/Admin/puppet refactor

From Wikitech-static
< Portal:Toolforge‎ | Admin
Revision as of 15:57, 26 October 2018 by imported>Arturo Borrero Gonzalez (select option 2 and mark the others as discarded)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This page contains some notes on the puppet refactor we are doing for Toolforge, specifically some agreements in how we will be organizing the puppet code.

We agree in refactoring away all the old toollabs namespace in favour of the modern toolforge one.
We also agree in using the modern roles/profiles/classes puppet model:

  • a machine has one role
  • this role includes one or more profiles
  • each profile can include/depend on other profiles, or directly call other classes

Concrete examples

Some concrete examples, in this case using the services role.

We have several options for the refactor. For sanity, we should probably follow some practices already established by other of our stuff (i.e, openstack). But still, plenty of options for the resulting organization.

option 1

(AKA: single role, single profile, multiple subclasses)

option 2

(AKA: single role, multiple specific profiles)

main services role:

 role::wmcs::toolforge::services (modules/role/manifests/wmcs/toolforge/services.pp)
 --> from here include several profiles

services profile:

 profile::toolforge::services (modules/profile/manifests/toolforge/services.pp)
 --> configure here all the webservicemonitor stuff, etc

aptly profile:

 profile::toolforge::aptly (modules/profile/manifests/toolforge/aptly.pp)
 --> configure here all the aptly stuff, calling directly aptly::repo

bigbrother profile:

 profile::toolforge::bigbrother (modules/profile/manifests/toolforge/bigbrother.pp)
 --> does the same as the current toollabs::bigbrother at modules/toollabs/manifests/bigbrother.pp

...etc...

option 3

(AKA: single role, single profile which includes more specific profiles)