Page MenuHomePhabricator

Have puppet create Prometheus LVs
Closed, DeclinedPublic

Description

We have Prometheus baremetal in place with T148408, puppet though still doesn't create the required LVs by itself and it should via the lvm module. Namely:

  • Remove the dummy placeholder LV
  • Create LVs for each prometheus instance with an initial size
  • ext4-format and mount under /srv/prometheus/<instance> and the fstab entry

Manual instructions: https://wikitech.wikimedia.org/wiki/Prometheus#Add_filesystems_for_a_new_instance

Event Timeline

Mentioned in SAL (#wikimedia-operations) [2017-12-20T11:50:29Z] <godog> create k8s-staging LVs in prometheus/eqiad - T163692

This task has been assigned to the same task owner for more than two years. Resetting task assignee due to inactivity, to decrease task cookie-licking and to get a slightly more realistic overview of plans. Please feel free to assign this task to yourself again if you still realistically work or plan to work on this task - it would be welcome!

For tips how to manage individual work in Phabricator (noisy notifications, lists of task, etc.), see https://phabricator.wikimedia.org/T228575#6237124 for available options.
(For the records, two emails were sent to assignee addresses before resetting assignees. See T228575 for more info and for potential feedback. Thanks!)

The lvm puppet module is a bit problematic. It's been released under the GPL-2 license whereas per T67270 we want to move to Apache2 for that repo. So in the long scheme of things, we probably want to rip it from our repo.

The only user I am aware of is profile::docker::storage and profile::docker::storage::thinpool. Both of which essentially use the module to achieve the same thing that is described in the task what is described here. Force removal of the dummy placeholder LV and setup an LV that is destined for docker work.

However, per T269684 we are moving away from docker eventually for production use cases so we should be able to to ditch the module after that. Hopefully in the 3 years that have passed since then, partman has evolved a bit and allows us perhaps to specify LV names + sizes?

The lvm puppet module is a bit problematic. It's been released under the GPL-2 license whereas per T67270 we want to move to Apache2 for that repo. So in the long scheme of things, we probably want to rip it from our repo.

Good point re: the licensing!

The only user I am aware of is profile::docker::storage and profile::docker::storage::thinpool. Both of which essentially use the module to achieve the same thing that is described in the task what is described here. Force removal of the dummy placeholder LV and setup an LV that is destined for docker work.

However, per T269684 we are moving away from docker eventually for production use cases so we should be able to to ditch the module after that. Hopefully in the 3 years that have passed since then, partman has evolved a bit and allows us perhaps to specify LV names + sizes?

I think that's achievable via partman for sure, although we want puppet automation anyways because we're likely to add prometheus instances post-reimage as well (i.e. as we've been doing)

I'm declining this for now since the lvm module is going to go from the puppet repo and as a middle ground solution I have published modules/prometheus/files/provision-fs.sh