spicerack.ServiceLVS based cookbooks are failing because of the wikireplicas services having their monitors commented out (see https://gerrit.wikimedia.org/r/c/operations/puppet/+/924342 and T337446: Rebuild sanitarium hosts for context)
cgoubert@cumin1001:~$ sudo cookbook sre.discovery.datacenter status eqiad [978/978] Exception raised while initializing the Cookbook sre.discovery.datacenter: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/spicerack/_menu.py", line 197, in run runner = self.instance.get_runner(args) File "/srv/deployment/spicerack/cookbooks/sre/discovery/datacenter.py", line 214, in get_runner return DiscoveryDcRouteRunner(args, self.spicerack) File "/srv/deployment/spicerack/cookbooks/sre/discovery/datacenter.py", line 230, in __init__ self.discovery_records = self._get_all_services() File "/srv/deployment/spicerack/cookbooks/sre/discovery/datacenter.py", line 472, in _get_all_services for service in self.catalog: File "/usr/lib/python3/dist-packages/spicerack/service.py", line 552, in <genexpr> return (self.get(name) for name in self._catalog) File "/usr/lib/python3/dist-packages/spicerack/service.py", line 607, in get params["lvs"] = ServiceLVS(**params["lvs"]) TypeError: __init__() missing 1 required positional argument: 'monitors'
Digging into it, spicerack's dataclass for ServiceLVS has monitors as a mandatory field, when puppet's modules/wmflib/types/service/lvs.pp describes it as optional.