Page MenuHomePhabricator

CloudVPS: puppet organization for openstack server/client packages, repos and pinning
Closed, ResolvedPublic

Description

We have several puppet files involved:

  • openstack::cloudrepo modules/openstack/manifests/cloudrepo.pp
  • openstack::clientrepo modules/openstack/manifests/clientrepo.pp
  • openstack::clientlib modules/openstack/manifests/clientlib.pp
  • openstack::jessie_mitaka_client_pinning modules/openstack/manifests/jessie_mitaka_client_pinning.pp

These classes are called from Openstack profiles (base, which is in turn main, eqiad1, labtest, labtestn).
In each file, we have a lot of if/else pollution to match different openstack/operating system combinations.

This makes these files complex to maintain.

I propose we rearrange according to our actual needs:

  • server software repo + apt pinning per Openstack/OS combination
  • client software repo + apt pinning per Openstack/OS combination

An improved model could be something like this:

  • profile::openstack::base::serverpackages <-- do if/else for Openstack version here (server packages aren't installed in this branch, but in component-specific profiles/classes)
    • profile::openstack::base::serverpackages::mitaka <-- do if/else for OperatingSystem here
      • openstack::serverpackages::mitaka::trusty (conditionally included above) install repo
      • openstack::serverpackages::mitaka::jessie (conditionally included above) install repo (in this concrete case, is just jessie-backports)
  • profile::openstack::base::clientpackages <--- do if/else for Openstack version here
    • profile::openstack::base::clientpackages::mitaka <-- do if/else for OperatingSystem here
      • openstack::clientpackages::mitaka::trusty (conditionally included above) install repo + packages + apt pinning
      • openstack::clientpackages::mitaka::jessie (conditionally included above) install repo + packages + apt pinning
      • openstack::clientpackages::mitaka::stretch (conditionally included above) install repo + packages + apt pinning

Event Timeline

aborrero triaged this task as Medium priority.Nov 21 2018, 5:35 PM
aborrero moved this task from Inbox to Doing on the cloud-services-team (Kanban) board.

Change 475326 had a related patch set uploaded (by Arturo Borrero Gonzalez; owner: Arturo Borrero Gonzalez):
[operations/puppet@production] openstack: rearrange repos, packages and pinnings

https://gerrit.wikimedia.org/r/475326

Mentioned in SAL (#wikimedia-operations) [2018-11-22T18:37:59Z] <arturo> disable puppet in all CloudVPS HW servers to test a patch (T209948)

Mentioned in SAL (#wikimedia-operations) [2018-11-27T10:30:31Z] <arturo> T209948 schedule 2h icinga downtime in all WMCS hw servers

Mentioned in SAL (#wikimedia-operations) [2018-11-27T10:36:17Z] <arturo> T209948 disable puppet in all WMCS hw servers

Change 475326 merged by Arturo Borrero Gonzalez:
[operations/puppet@production] openstack: rearrange repos, packages and pinnings

https://gerrit.wikimedia.org/r/475326

Change 475990 had a related patch set uploaded (by Arturo Borrero Gonzalez; owner: Arturo Borrero Gonzalez):
[operations/puppet@production] openstack: relax dependency on virtual-mysql-client

https://gerrit.wikimedia.org/r/475990

Change 475990 merged by Arturo Borrero Gonzalez:
[operations/puppet@production] openstack: relax dependency on virtual-mysql-client

https://gerrit.wikimedia.org/r/475990

Change 475991 had a related patch set uploaded (by Arturo Borrero Gonzalez; owner: Arturo Borrero Gonzalez):
[operations/puppet@production] openstack: serverpackages: fix path to ubuntu cloud repo key

https://gerrit.wikimedia.org/r/475991

Change 475991 merged by Arturo Borrero Gonzalez:
[operations/puppet@production] openstack: serverpackages: fix path to ubuntu cloud repo key

https://gerrit.wikimedia.org/r/475991

Change 476044 had a related patch set uploaded (by Arturo Borrero Gonzalez; owner: Arturo Borrero Gonzalez):
[operations/puppet@production] openstack: clientpackages: introduce support for mitaka/stretch

https://gerrit.wikimedia.org/r/476044

Change 476044 merged by Arturo Borrero Gonzalez:
[operations/puppet@production] openstack: clientpackages: introduce support for mitaka/stretch

https://gerrit.wikimedia.org/r/476044

Reopening. We may need additional refactoring to support more combinations for server packages (T212302: CloudVPS: upgrade: jessie -> stretch & mitaka -> newton).

Change 481194 had a related patch set uploaded (by Arturo Borrero Gonzalez; owner: Arturo Borrero Gonzalez):
[operations/puppet@production] openstack: virt: introduce per-component per-openstack per-distro classes

https://gerrit.wikimedia.org/r/481194

Change 481194 merged by Arturo Borrero Gonzalez:
[operations/puppet@production] openstack: virt: introduce per-component per-openstack per-distro classes

https://gerrit.wikimedia.org/r/481194