--- Class[Profile::Kubernetes::Deployment_server::Sophroid_config].orig
+++ Class[Profile::Kubernetes::Deployment_server::Sophroid_config]
@@
- service_catalog => {'apertium': {'description': 'Machine Translation service. apertium.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.11'}, 'eqiad': {'default': '10.2.2.11'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'path': '/listPairs'}], 'port': 4737, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'apertium', 'active_active': True}]}, 'apus': {'description': 'Ceph-backed async-replicated S3 cluster', 'discovery': [{'dnsdisc': 'apus', 'active_active': True}], 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.10'}, 'eqiad': {'default': '10.2.2.10'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'apus', 'service': 'apus'}, 'depool_threshold': 0.3, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://apus.discovery.wmnet/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': True, 'port': 443, 'probes': [{'type': 'http', 'path': '/', 'host': 'apus.discovery.wmnet'}], 'sites': ['codfw', 'eqiad'], 'state': 'production', 'exclude_from_switchover': True}, 'aux-k8s-ctrl': {'description': 'Kubernetes API service for aux cluster', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.74'}, 'codfw': {'default': '10.2.1.74'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'aux-k8s', 'service': 'kubemaster'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 6443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'k8s-ingress-aux': {'description': 'istio-ingresscontroller on aux-k8s. k8s-ingress-aux-(ro|rw).discovery.wmnet', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'aux-k8s', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'tcp-notls'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'page': False, 'discovery': [{'dnsdisc': 'k8s-ingress-aux-ro', 'active_active': True}, {'dnsdisc': 'k8s-ingress-aux-rw', 'active_active': False}]}, 'jaeger-collector-http': {'description': 'Jaeger tracing, collector (HTTP)', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'page': False, 'probes': [{'type': 'tcp'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'production'}, 'jaeger-collector-grpc': {'description': 'Jaeger tracing, collector (GRPC)', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'page': False, 'probes': [{'type': 'tcp'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'production'}, 'jaeger-query': {'description': 'Jaeger tracing, query UI', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'page': False, 'probes': [{'type': 'tcp'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'production'}, 'citoid': {'description': 'Citation lookup service, citoid.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.19'}, 'eqiad': {'default': '10.2.2.19'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4003, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'citoid', 'active_active': True}]}, 'cloudelastic-chi-https': {'description': 'Elasticsearch prod replica for WMF Cloud (Chi Cluster) - Prod MW AppServer Port - HTTPS', 'encryption': True, 'ip': {'eqiad': {'cloudelasticlb': '208.80.154.241', 'cloudelasticlb6': '2620:0:861:ed1a::3:241'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cloudelastic', 'service': 'cloudelastic-chi-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad']}, 'port': 9243, 'sites': ['eqiad'], 'state': 'production'}, 'cloudelastic-chi-https-public': {'description': 'Elasticsearch prod replica for WMF Cloud (Chi Cluster) - Public Internet Port - HTTPS', 'encryption': True, 'ip': {'eqiad': {'cloudelasticlb': '208.80.154.241', 'cloudelasticlb6': '2620:0:861:ed1a::3:241'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cloudelastic', 'service': 'cloudelastic-chi-ssl-public'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad']}, 'port': 8243, 'sites': ['eqiad'], 'state': 'production'}, 'cloudelastic-omega-https': {'description': 'Elasticsearch prod replica for WMF Cloud (Omega Cluster) - Prod MW AppServer Port - HTTPS', 'encryption': True, 'ip': {'eqiad': {'cloudelasticlb': '208.80.154.241', 'cloudelasticlb6': '2620:0:861:ed1a::3:241'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cloudelastic', 'service': 'cloudelastic-omega-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad']}, 'port': 9443, 'sites': ['eqiad'], 'state': 'production'}, 'cloudelastic-omega-https-public': {'description': 'Elasticsearch prod replica for WMF Cloud (Omega Cluster) - Public Internet Port - HTTPS', 'encryption': True, 'ip': {'eqiad': {'cloudelasticlb': '208.80.154.241', 'cloudelasticlb6': '2620:0:861:ed1a::3:241'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cloudelastic', 'service': 'cloudelastic-omega-ssl-public'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad']}, 'port': 8443, 'sites': ['eqiad'], 'state': 'production'}, 'cloudelastic-psi-https': {'description': 'Elasticsearch prod replica for WMF Cloud (Psi Cluster) - Prod MW AppServer Port - HTTPS', 'encryption': True, 'ip': {'eqiad': {'cloudelasticlb': '208.80.154.241', 'cloudelasticlb6': '2620:0:861:ed1a::3:241'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cloudelastic', 'service': 'cloudelastic-psi-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad']}, 'port': 9643, 'sites': ['eqiad'], 'state': 'production'}, 'cloudelastic-psi-https-public': {'description': 'Elasticsearch prod replica for WMF Cloud (Psi Cluster) - Public Internet Port - HTTPS', 'encryption': True, 'ip': {'eqiad': {'cloudelasticlb': '208.80.154.241', 'cloudelasticlb6': '2620:0:861:ed1a::3:241'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cloudelastic', 'service': 'cloudelastic-psi-ssl-public'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad']}, 'port': 8643, 'sites': ['eqiad'], 'state': 'production'}, 'cxserver': {'description': 'Content Translation service, cxserver.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.18'}, 'eqiad': {'default': '10.2.2.18'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4002, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'cxserver', 'active_active': True}]}, 'datahubsearch': {'description': 'Search cluster serving DataHub', 'encryption': False, 'ip': {'eqiad': {'default': '10.2.2.71'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'datahubsearch', 'service': 'opensearch'}, 'depool_threshold': 0.5, 'enabled': False, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad']}, 'probes': [{'type': 'http'}], 'port': 9200, 'sites': ['eqiad'], 'state': 'production', 'page': False}, 'docker-registry': {'description': 'docker registry service', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.44'}, 'eqiad': {'default': '10.2.2.44'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'docker-registry', 'service': 'docker-registry'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http', 'path': '/v2/'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'docker-registry', 'active_active': False}], 'exclude_from_switchover': True}, 'druid-public-broker': {'description': 'Broker query service for the Druid Public Cluster', 'encryption': False, 'ip': {'eqiad': {'default': '10.2.2.38'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'druid-public', 'service': 'druid-public-broker'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['http://localhost/status']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad']}, 'page': False, 'probes': [{'type': 'http', 'path': '/status'}], 'port': 8082, 'sites': ['eqiad'], 'state': 'production'}, 'druid-public-coordinator': {'description': 'Coordinator query service for the Druid Public Cluster', 'encryption': False, 'ip': {'eqiad': {'default': '10.2.2.15'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'druid-public', 'service': 'druid-public-coordinator'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['http://localhost/status']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad']}, 'page': False, 'probes': [{'type': 'http', 'path': '/status'}], 'port': 8081, 'sites': ['eqiad'], 'state': 'production'}, 'echostore': {'description': 'Echo store, echostore.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.49'}, 'eqiad': {'default': '10.2.2.49'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}, {'type': 'swagger', 'params': {'spec_segment': '/openapi'}}], 'port': 8082, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'echostore', 'active_active': True}]}, 'eventgate-analytics': {'description': 'EventGate Analytics endpoint, TLS enabled. https://eventgate-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.42'}, 'eqiad': {'default': '10.2.2.42'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4592, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'eventgate-analytics', 'active_active': True}]}, 'eventgate-logging-external': {'description': 'EventGate logging endpoint, eventgate-logging-external.discovery.wmnet and intake-logging.wikimedia.org', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.50'}, 'eqiad': {'default': '10.2.2.50'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4392, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'eventgate-logging-external', 'active_active': True}]}, 'eventgate-analytics-external': {'description': 'EventGate analytics external endpoint, eventgate-analytics-external.discovery.wmnet and intake-analytics.wikimedia.org', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.52'}, 'eqiad': {'default': '10.2.2.52'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4692, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'eventgate-analytics-external', 'active_active': True}]}, 'eventgate-main': {'description': 'EventGate main endpoint, TLS enabled, https://eventgate-main.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.45'}, 'eqiad': {'default': '10.2.2.45'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4492, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'eventgate-main', 'active_active': True}]}, 'eventstreams': {'description': 'Public streams of events via HTTP + SSE, backed by Kafka. eventstreams.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.34'}, 'eqiad': {'default': '10.2.2.34'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4892, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'eventstreams', 'active_active': True}]}, 'eventstreams-internal': {'description': 'Internal streams of events via HTTP + SSE, backed by Kafka. eventstreams-internal.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.35'}, 'eqiad': {'default': '10.2.2.35'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4992, 'sites': ['eqiad', 'codfw'], 'state': 'service_setup', 'discovery': [{'dnsdisc': 'eventstreams-internal', 'active_active': True}]}, 'k8s-ingress-staging': {'description': 'istio-ingresscontroller on kubernetes staging. k8s-ingress-staging.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.69'}, 'eqiad': {'default': '10.2.2.69'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes-staging', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'tcp-notls'}], 'port': 30443, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'k8s-ingress-staging', 'active_active': False}], 'exclude_from_switchover': True}, 'k8s-ingress-wikikube': {'description': 'istio-ingresscontroller on kubernetes. k8s-ingress-wikikube.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': True, 'probes': [{'type': 'tcp-notls'}], 'port': 30443, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'k8s-ingress-wikikube-ro', 'active_active': True}, {'dnsdisc': 'k8s-ingress-wikikube-rw', 'active_active': False}]}, 'k8s-ingress-ml-staging': {'description': 'istio-ingresscontroller on kubernetes ML staging. k8s-ingress-ml-staging.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.83'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'ml_staging', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'tcp-notls'}], 'port': 31443, 'sites': ['codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'k8s-ingress-ml-staging', 'active_active': False}], 'exclude_from_switchover': True}, 'k8s-ingress-ml-serve': {'description': 'istio-ingresscontroller on kubernetes. k8s-ingress-ml-serve.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.84'}, 'eqiad': {'default': '10.2.2.84'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'ml_serve', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'tcp-notls'}], 'port': 31443, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'k8s-ingress-ml-serve', 'active_active': True}]}, 'k8s-ingress-dse': {'description': 'istio-ingresscontroller on kubernetes. k8s-ingress-dse.discovery.wmnet', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'dse-k8s', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'tcp-notls'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'k8s-ingress-dse', 'active_active': False}, {'dnsdisc': 'k8s-ingress-dse-aa', 'active_active': True}], 'exclude_from_switchover': True}, 'kartotherian-k8s-ssl': {'description': 'Kartotherian, kartotherian.discovery.wmnet - HTTPS on K8s', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.13'}, 'eqiad': {'default': '10.2.2.13'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'path': '/osm-intl/6/23/24.png'}], 'port': 6543, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'kartotherian', 'active_active': True}]}, 'kibana7': {'description': 'Kibana v7 env - HTTPS', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.48'}, 'eqiad': {'default': '10.2.2.48'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kibana7', 'service': 'kibana7'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://logstash.wikimedia.org/api/status']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http', 'path': '/api/status', 'host': 'logstash.wikimedia.org'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'logstash', 'active_active': False}], 'role': 'opensearch::collector', 'public_endpoint': 'logstash', 'exclude_from_switchover': True}, 'kubemaster': {'description': 'Kubernetes master service. kubemaster.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.8'}, 'eqiad': {'default': '10.2.2.8'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubemaster'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 6443, 'sites': ['eqiad', 'codfw'], 'role': 'kubernetes::master_stacked', 'state': 'production'}, 'kubestagemaster': {'description': 'Kubernetes staging master service. kubestagemaster.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.86'}, 'eqiad': {'default': '10.2.2.86'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes-staging', 'service': 'kubemaster'}, 'depool_threshold': 0.2, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 6443, 'sites': ['eqiad', 'codfw'], 'role': 'kubernetes::staging::master_stacked', 'state': 'production'}, 'labweb-ssl': {'description': 'lvs for cloudweb services: horizon, striker - HTTPS', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.40'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'cloudweb', 'service': 'cloudweb-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 30, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'http_status': 200, 'url': ['https://toolsadmin.wikimedia.org/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad']}, 'probes': [{'type': 'http', 'host': 'toolsadmin.wikimedia.org'}], 'page': True, 'team': 'wmcs', 'port': 7443, 'sites': ['eqiad'], 'state': 'production', 'aliases': ['labweb']}, 'ldap-ro': {'description': 'Ldap for cloud and developer accounts', 'encryption': False, 'ip': {'codfw': {'default': '208.80.153.252'}, 'eqiad': {'default': '208.80.154.252'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'ldap-ro', 'service': 'ldap-ro'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 30, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 389, 'probes': [{'type': 'tcp'}], 'sites': ['codfw', 'eqiad'], 'state': 'production'}, 'ldap-ro-ssl': {'description': 'Ldap for cloud and developer accounts (ssl access)', 'encryption': True, 'ip': {'codfw': {'default': '208.80.153.252'}, 'eqiad': {'default': '208.80.154.252'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'ldap-ro', 'service': 'ldap-ro-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 30, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 636, 'probes': [{'type': 'tcp', 'host': 'ldap-ro.eqiad.wikimedia.org'}], 'sites': ['codfw', 'eqiad'], 'state': 'production'}, 'mathoid': {'description': 'Mathematical rendering service, mathoid.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.20'}, 'eqiad': {'default': '10.2.2.20'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4001, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mathoid', 'active_active': True}]}, 'miscweb': {'description': 'Misc static sites, miscweb.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'static-bugzilla.wikimedia.org'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'dse-k8s-ctrl': {'description': 'Kubernetes master service for DSE cluster. dse-k8s-ctrl.discovery.wmnet', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.73'}, 'codfw': {'default': '10.2.1.73'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'dse-k8s', 'service': 'kubemaster'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 6443, 'sites': ['eqiad', 'codfw'], 'state': 'lvs_setup'}, 'ml-ctrl': {'description': 'Kubernetes master service for ML cluster. ml-ctrl.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.39'}, 'eqiad': {'default': '10.2.2.39'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'ml_serve', 'service': 'kubemaster'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'port': 6443, 'sites': ['eqiad', 'codfw'], 'state': 'lvs_setup'}, 'ml-staging-ctrl': {'description': 'Kubernetes master service for ML staging cluster. ml-staging-ctrl.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.72'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'ml_staging', 'service': 'kubemaster'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'port': 6443, 'sites': ['codfw'], 'state': 'lvs_setup'}, 'mobileapps': {'description': 'A service for use by mobile apps. Provides DOM manipulation, aggregation, JSON flattening. mobileapps.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.14'}, 'eqiad': {'default': '10.2.2.14'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4102, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mobileapps', 'active_active': True}]}, 'mwdebug': {'description': 'mwdebug, mwdebug.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.59'}, 'eqiad': {'default': '10.2.2.59'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'en.wikipedia.org'}], 'port': 4444, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mwdebug', 'active_active': True}]}, 'mwdebug-next': {'description': 'mwdebug-next, mwdebug-next.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.9'}, 'eqiad': {'default': '10.2.2.9'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'en.wikipedia.org'}], 'port': 4453, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mwdebug-next', 'active_active': True}]}, 'mw-web': {'description': 'mw-web, mw-web.svc.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.75'}, 'eqiad': {'default': '10.2.2.75'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'httpbb_dir': 'appserver', 'page': True, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'en.wikipedia.org'}], 'port': 4450, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mw-web', 'active_active': False}, {'dnsdisc': 'mw-web-ro', 'active_active': True}]}, 'mw-web-next': {'description': 'mw-web-next, mw-web-next.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.6'}, 'eqiad': {'default': '10.2.2.6'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'httpbb_dir': 'appserver', 'page': True, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'en.wikipedia.org'}], 'port': 4454, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mw-web-next', 'active_active': False}, {'dnsdisc': 'mw-web-next-ro', 'active_active': True}]}, 'mw-api-ext': {'description': 'mw-api-ext, mw-api-ext.svc.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.76'}, 'eqiad': {'default': '10.2.2.76'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'httpbb_dir': 'appserver', 'page': True, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'en.wikipedia.org'}], 'port': 4447, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mw-api-ext', 'active_active': False}, {'dnsdisc': 'mw-api-ext-ro', 'active_active': True}]}, 'mw-api-ext-next': {'description': 'mw-api-ext-next, mw-api-ext-next.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.7'}, 'eqiad': {'default': '10.2.2.7'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'httpbb_dir': 'appserver', 'page': True, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'en.wikipedia.org'}], 'port': 4455, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mw-api-ext-next', 'active_active': False}, {'dnsdisc': 'mw-api-ext-next-ro', 'active_active': True}]}, 'mw-api-int': {'description': 'mw-api-int, mw-api-int.svc.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.81'}, 'eqiad': {'default': '10.2.2.81'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'httpbb_dir': 'appserver', 'page': True, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'en.wikipedia.org'}], 'port': 4446, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mw-api-int', 'active_active': False}, {'dnsdisc': 'mw-api-int-ro', 'active_active': True}]}, 'mw-misc': {'description': 'Miscellaneous mediawiki installs, mw-misc.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'service_setup'}, 'mw-jobrunner': {'description': 'mw-jobrunner, mw-jobrunner.svc.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.90'}, 'eqiad': {'default': '10.2.2.90'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'httpbb_dir': 'jobrunner', 'page': False, 'probes': [{'type': 'http', 'path': '/w/health-check.php', 'host': 'mw-jobrunner.discovery.wmnet'}], 'port': 4448, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mw-jobrunner', 'active_active': False}]}, 'mw-wikifunctions': {'description': 'mw-wikifunctions, mw-wikifunctions.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'port': 30443, 'httpbb_dir': 'wikifunctions', 'page': False, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'www.wikifunctions.org'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'ncredir': {'description': 'Non canonical domains redirect service', 'encryption': False, 'ip': {'codfw': {'ncredirlb': '208.80.153.232', 'ncredirlb6': '2620:0:860:ed1a::9'}, 'eqiad': {'ncredirlb': '208.80.154.232', 'ncredirlb6': '2620:0:861:ed1a::9'}, 'esams': {'ncredirlb': '185.15.59.226', 'ncredirlb6': '2a02:ec80:300:ed1a::3'}, 'ulsfo': {'ncredirlb': '198.35.26.226', 'ncredirlb6': '2620:0:863:ed1a::3'}, 'eqsin': {'ncredirlb': '103.102.166.226', 'ncredirlb6': '2001:df2:e500:ed1a::3'}, 'drmrs': {'ncredirlb': '185.15.58.226', 'ncredirlb6': '2a02:ec80:600:ed1a::3'}, 'magru': {'ncredirlb': '195.200.68.226', 'ncredirlb6': '2a02:ec80:700:ed1a::3'}}, 'lvs': {'class': 'high-traffic1', 'conftool': {'cluster': 'ncredir', 'service': 'nginx'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'ProxyFetch': {'url': ['http://en.wikipedia.com/_status']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'page': False, 'probes': [{'type': 'http', 'host': 'en.wikipedia.com', 'path': '/_status'}], 'port': 80, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'ncredir-https': {'description': 'Non canonical redirect service', 'encryption': True, 'ip': {'codfw': {'ncredirlb': '208.80.153.232', 'ncredirlb6': '2620:0:860:ed1a::9'}, 'eqiad': {'ncredirlb': '208.80.154.232', 'ncredirlb6': '2620:0:861:ed1a::9'}, 'esams': {'ncredirlb': '185.15.59.226', 'ncredirlb6': '2a02:ec80:300:ed1a::3'}, 'ulsfo': {'ncredirlb': '198.35.26.226', 'ncredirlb6': '2620:0:863:ed1a::3'}, 'eqsin': {'ncredirlb': '103.102.166.226', 'ncredirlb6': '2001:df2:e500:ed1a::3'}, 'drmrs': {'ncredirlb': '185.15.58.226', 'ncredirlb6': '2a02:ec80:600:ed1a::3'}, 'magru': {'ncredirlb': '195.200.68.226', 'ncredirlb6': '2a02:ec80:700:ed1a::3'}}, 'lvs': {'class': 'high-traffic1', 'conftool': {'cluster': 'ncredir', 'service': 'nginx'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'ProxyFetch': {'url': ['https://en.wikipedia.com/_status']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'page': False, 'probes': [{'type': 'http', 'host': 'en.wikipedia.com', 'path': '/_status'}], 'port': 443, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'prometheus': {'description': 'Prometheus monitoring', 'encryption': False, 'ip': {'codfw': {'default': '10.2.1.25'}, 'eqiad': {'default': '10.2.2.25'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'prometheus', 'service': 'prometheus'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['http://prometheus/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http'}], 'port': 80, 'role': 'prometheus', 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'prometheus-https': {'description': 'prometheus monitoring https', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.25'}, 'eqiad': {'default': '10.2.2.25'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'prometheus', 'service': 'prometheus'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'http_status': 302, 'url': ['https://prometheus-eqiad.wikimedia.org/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http', 'host': 'prometheus-eqiad.wikimedia.org'}], 'port': 443, 'role': 'prometheus', 'sites': ['eqiad', 'codfw'], 'state': 'production', 'page': False, 'public_endpoint': 'prometheus-eqiad', 'public_aliases': ['prometheus-codfw']}, 'proton': {'description': 'Proton PDF rendering service. proton.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.21'}, 'eqiad': {'default': '10.2.2.21'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4030, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'proton', 'active_active': True}]}, 'push-notifications': {'description': 'Push-notifications service push-notifications.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.56'}, 'eqiad': {'default': '10.2.2.56'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info'}], 'port': 4104, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'push-notifications', 'active_active': True}]}, 'recommendation-api': {'description': 'Service for recommendation API. recommendation-api.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.37'}, 'eqiad': {'default': '10.2.2.37'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'port': 4632, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'recommendation-api', 'active_active': True}]}, 'restbase-backend': {'description': 'RESTBase backend, restbase.discovery.wmnet', 'encryption': False, 'ip': {'codfw': {'default': '10.2.1.17'}, 'eqiad': {'default': '10.2.2.17'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'restbase', 'service': 'restbase-backend'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['http://localhost/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 7233, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'restbase-https': {'description': 'RESTBase, restbase.discovery.wmnet - HTTPS', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.17'}, 'eqiad': {'default': '10.2.2.17'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'restbase', 'service': 'restbase-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http'}, {'type': 'swagger'}], 'port': 7443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'restbase', 'active_active': True}, {'dnsdisc': 'restbase-async', 'active_active': True}], 'aliases': ['restbase']}, 'schema': {'description': 'Event Schema HTTP service', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.43'}, 'eqiad': {'default': '10.2.2.43'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'eventschemas', 'service': 'eventschemas'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/repositories/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': True, 'probes': [{'type': 'http', 'path': '/repositories/'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'schema', 'active_active': True}]}, 'search': {'description': 'Elasticsearch search for MediaWiki', 'encryption': False, 'ip': {'codfw': {'default': '10.2.1.30'}, 'eqiad': {'default': '10.2.2.30'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'elasticsearch', 'service': 'elasticsearch'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['http://localhost/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 9200, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'search-https': {'description': 'Elasticsearch search for MediaWiki - HTTPS', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.30'}, 'eqiad': {'default': '10.2.2.30'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'elasticsearch', 'service': 'elasticsearch-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http'}], 'port': 9243, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'search', 'active_active': True}]}, 'search-omega-https': {'description': 'Elasticsearch search for MediaWiki (Omega cluster) - HTTPS', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.30'}, 'eqiad': {'default': '10.2.2.30'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'elasticsearch', 'service': 'elasticsearch-omega-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http'}], 'port': 9443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'aliases': ['search'], 'discovery': [{'dnsdisc': 'search-omega', 'active_active': True}]}, 'search-psi-https': {'description': 'Elasticsearch search for MediaWiki (Psi cluster) - HTTPS', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.30'}, 'eqiad': {'default': '10.2.2.30'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'elasticsearch', 'service': 'elasticsearch-psi-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http'}], 'port': 9643, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'aliases': ['search'], 'discovery': [{'dnsdisc': 'search-psi', 'active_active': True}]}, 'sessionstore': {'description': 'Session store, sessionstore.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.29'}, 'eqiad': {'default': '10.2.2.29'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/healthz'}, {'type': 'swagger', 'params': {'spec_segment': '/openapi'}}], 'port': 8081, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'sessionstore', 'active_active': True}]}, 'shellbox': {'description': 'Shellbox, shellbox.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.51'}, 'eqiad': {'default': '10.2.2.51'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4008, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'shellbox', 'active_active': True}]}, 'shellbox-constraints': {'description': 'Shellbox Constraints, shellbox-constraints.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.61'}, 'eqiad': {'default': '10.2.2.61'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4010, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'shellbox-constraints', 'active_active': True}]}, 'shellbox-media': {'description': 'Shellbox Media, shellbox-media.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.64'}, 'eqiad': {'default': '10.2.2.64'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4015, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'shellbox-media', 'active_active': True}]}, 'shellbox-syntaxhighlight': {'description': 'Shellbox SyntaxHighlight, shellbox-syntaxhighlight.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.65'}, 'eqiad': {'default': '10.2.2.65'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4014, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'shellbox-syntaxhighlight', 'active_active': True}]}, 'shellbox-timeline': {'description': 'Shellbox Timeline, shellbox-timeline.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.66'}, 'eqiad': {'default': '10.2.2.66'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4012, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'shellbox-timeline', 'active_active': True}]}, 'shellbox-video': {'description': 'Shellbox Video, shellbox-video.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.68'}, 'eqiad': {'default': '10.2.2.68'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4080, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'shellbox-video', 'active_active': True}]}, 'sophroid': {'description': 'Service mesh envoy control plane, sophroid.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.41'}, 'eqiad': {'default': '10.2.2.41'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'aux-k8s', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4252, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'sophroid', 'active_active': False}]}, 'swift': {'description': 'Swift media storage', 'encryption': False, 'ip': {'codfw': {'default': '10.2.1.27'}, 'eqiad': {'default': '10.2.2.27'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'swift', 'service': 'swift-fe'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['http://localhost/monitoring/frontend']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 80, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'aliases': ['ms-fe']}, 'swift-https': {'description': 'Swift media storage', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.27'}, 'eqiad': {'default': '10.2.2.27'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'swift', 'service': 'nginx'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/monitoring/frontend']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http', 'path': '/monitoring/frontend'}], 'port': 443, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'swift', 'active_active': True}], 'aliases': ['ms-fe'], 'exclude_from_switchover': True}, 'tegola-vector-tiles': {'description': 'Tegola Vector Tiles, tegola-vector-tiles.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.60'}, 'eqiad': {'default': '10.2.2.60'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/capabilities'}], 'port': 4105, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'tegola-vector-tiles', 'active_active': True}]}, 'thanos-query': {'description': 'Prometheus long-term storage, query service', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.53'}, 'eqiad': {'default': '10.2.2.53'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'thanos', 'service': 'thanos-query'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://thanos-query.discovery.wmnet/-/ready']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http', 'path': '/-/ready'}], 'port': 443, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'thanos-query', 'active_active': True}], 'role': 'titan'}, 'thanos-web': {'description': 'Prometheus long-term storage, web interface', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.77'}, 'eqiad': {'default': '10.2.2.77'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'thanos', 'service': 'thanos-web'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://thanos-query.discovery.wmnet/-/ready']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http', 'path': '/-/ready', 'host': 'thanos-query.discovery.wmnet'}], 'port': 443, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'thanos-web', 'active_active': True}], 'role': 'titan', 'public_endpoint': 'thanos'}, 'thanos-swift': {'description': 'Prometheus long-term storage, object storage (swift) access', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.54'}, 'eqiad': {'default': '10.2.2.54'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'thanos', 'service': 'thanos-swift'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://thanos-swift.discovery.wmnet/healthcheck']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http', 'path': '/healthcheck', 'host': 'thanos-swift.discovery.wmnet'}], 'port': 443, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'thanos-swift', 'active_active': True}], 'role': 'thanos::frontend'}, 'termbox': {'description': 'Wikidata Termbox SSR termbox.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.46'}, 'eqiad': {'default': '10.2.2.46'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4004, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'termbox', 'active_active': True}]}, 'text': {'description': 'Main wiki platform LVS service, text.eqiad.wikimedia.org (Varnish)', 'encryption': False, 'ip': {'eqiad': {'textlb': '208.80.154.224', 'textlb6': '2620:0:861:ed1a::1'}, 'codfw': {'textlb': '208.80.153.224', 'textlb6': '2620:0:860:ed1a::1'}, 'esams': {'textlb': '185.15.59.224', 'textlb6': '2a02:ec80:300:ed1a::1'}, 'ulsfo': {'textlb': '198.35.26.224', 'textlb6': '2620:0:863:ed1a::1'}, 'eqsin': {'textlb': '103.102.166.224', 'textlb6': '2001:df2:e500:ed1a::1'}, 'drmrs': {'textlb': '185.15.58.224', 'textlb6': '2a02:ec80:600:ed1a::1'}, 'magru': {'textlb': '195.200.68.224', 'textlb6': '2a02:ec80:700:ed1a::1'}}, 'lvs': {'class': 'high-traffic1', 'conftool': {'cluster': 'cache_text', 'service': 'cdn'}, 'depool_threshold': 0.66, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'probes': [{'type': 'http', 'host': 'en.wikipedia.org', 'path': '/wiki/Special:BlankPage', 'expect_redirect': True}], 'port': 80, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'text-https': {'description': 'Main wiki platform LVS service, text.eqiad.wikimedia.org (nginx)', 'encryption': True, 'ip': {'eqiad': {'textlb': '208.80.154.224', 'textlb6': '2620:0:861:ed1a::1'}, 'codfw': {'textlb': '208.80.153.224', 'textlb6': '2620:0:860:ed1a::1'}, 'esams': {'textlb': '185.15.59.224', 'textlb6': '2a02:ec80:300:ed1a::1'}, 'ulsfo': {'textlb': '198.35.26.224', 'textlb6': '2620:0:863:ed1a::1'}, 'eqsin': {'textlb': '103.102.166.224', 'textlb6': '2001:df2:e500:ed1a::1'}, 'drmrs': {'textlb': '185.15.58.224', 'textlb6': '2a02:ec80:600:ed1a::1'}, 'magru': {'textlb': '195.200.68.224', 'textlb6': '2a02:ec80:700:ed1a::1'}}, 'lvs': {'class': 'high-traffic1', 'conftool': {'cluster': 'cache_text', 'service': 'cdn'}, 'depool_threshold': 0.66, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://healthcheck.wikimedia.org/varnish-fe']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'probes': [{'type': 'http', 'host': 'en.wikipedia.org', 'path': '/wiki/Special:BlankPage'}], 'port': 443, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'thumbor': {'description': 'Thumbor image scaling', 'encryption': False, 'ip': {'codfw': {'default': '10.2.1.24'}, 'eqiad': {'default': '10.2.2.24'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/healthcheck', 'timeout': '15s'}], 'port': 8800, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'toolhub': {'description': 'Toolhub, toolhub.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.62'}, 'eqiad': {'default': '10.2.2.62'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4011, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'toolhub', 'active_active': False}], 'exclude_from_switchover': True}, 'upload': {'description': 'Images and other media, upload.eqiad.wikimedia.org', 'encryption': False, 'ip': {'eqiad': {'uploadlb': '208.80.154.240', 'uploadlb6': '2620:0:861:ed1a::2:b'}, 'codfw': {'uploadlb': '208.80.153.240', 'uploadlb6': '2620:0:860:ed1a::2:b'}, 'esams': {'uploadlb': '185.15.59.240', 'uploadlb6': '2a02:ec80:300:ed1a::2:b'}, 'ulsfo': {'uploadlb': '198.35.26.240', 'uploadlb6': '2620:0:863:ed1a::2:b'}, 'eqsin': {'uploadlb': '103.102.166.240', 'uploadlb6': '2001:df2:e500:ed1a::2:b'}, 'drmrs': {'uploadlb': '185.15.58.240', 'uploadlb6': '2a02:ec80:600:ed1a::2:b'}, 'magru': {'uploadlb': '195.200.68.240', 'uploadlb6': '2a02:ec80:700:ed1a::2:b'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cache_upload', 'service': 'cdn'}, 'depool_threshold': 0.66, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'probes': [{'type': 'http', 'host': 'upload.wikimedia.org', 'path': '/monitoring/backend', 'expect_redirect': True}], 'port': 80, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'upload-https': {'description': 'Images and other media, upload.eqiad.wikimedia.org', 'encryption': True, 'ip': {'eqiad': {'uploadlb': '208.80.154.240', 'uploadlb6': '2620:0:861:ed1a::2:b'}, 'codfw': {'uploadlb': '208.80.153.240', 'uploadlb6': '2620:0:860:ed1a::2:b'}, 'esams': {'uploadlb': '185.15.59.240', 'uploadlb6': '2a02:ec80:300:ed1a::2:b'}, 'ulsfo': {'uploadlb': '198.35.26.240', 'uploadlb6': '2620:0:863:ed1a::2:b'}, 'eqsin': {'uploadlb': '103.102.166.240', 'uploadlb6': '2001:df2:e500:ed1a::2:b'}, 'drmrs': {'uploadlb': '185.15.58.240', 'uploadlb6': '2a02:ec80:600:ed1a::2:b'}, 'magru': {'uploadlb': '195.200.68.240', 'uploadlb6': '2a02:ec80:700:ed1a::2:b'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cache_upload', 'service': 'cdn'}, 'depool_threshold': 0.66, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://upload.wikimedia.org/varnish-fe-hc-5ebea9']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'probes': [{'type': 'http', 'host': 'upload.wikimedia.org', 'path': '/monitoring/backend'}], 'port': 443, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'wcqs': {'description': 'Wikimedia Commons Query Service', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.67'}, 'eqiad': {'default': '10.2.2.67'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'wcqs', 'service': 'wcqs'}, 'depool_threshold': 0.3, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/readiness-probe']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http', 'path': '/readiness-probe'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'wcqs', 'active_active': True}]}, 'wdqs-internal-main': {'description': 'Wikidata Query Service internal - main', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.93'}, 'codfw': {'default': '10.2.1.93'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'wdqs-internal-main', 'service': 'wdqs-main'}, 'depool_threshold': 0.3, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/readiness-probe']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http', 'path': '/readiness-probe'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'wdqs-internal-main', 'active_active': True}]}, 'wdqs-internal-scholarly': {'description': 'Wikidata Query Service internal - scholarly', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.94'}, 'codfw': {'default': '10.2.1.94'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'wdqs-internal-scholarly', 'service': 'wdqs-scholarly'}, 'depool_threshold': 0.3, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/readiness-probe']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http', 'path': '/readiness-probe'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'wdqs-internal-scholarly', 'active_active': True}]}, 'wdqs-main': {'description': 'Wikidata Query Service - main', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.33'}, 'eqiad': {'default': '10.2.2.33'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'wdqs-main', 'service': 'wdqs-main'}, 'depool_threshold': 0.3, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/readiness-probe']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http', 'path': '/readiness-probe'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'wdqs-main', 'active_active': True}]}, 'wdqs-scholarly': {'description': 'Wikidata Query Service - scholarly', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.36'}, 'eqiad': {'default': '10.2.2.36'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'wdqs-scholarly', 'service': 'wdqs-scholarly'}, 'depool_threshold': 0.3, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/readiness-probe']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http', 'path': '/readiness-probe'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'wdqs-scholarly', 'active_active': True}]}, 'wikifeeds': {'description': 'A node webservice supporting featured wiki content feeds. wikifeeds.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.47'}, 'eqiad': {'default': '10.2.2.47'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4101, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'wikifeeds', 'active_active': True}]}, 'zotero': {'description': 'Zotero, zotero.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.16'}, 'eqiad': {'default': '10.2.2.16'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'post_json': '[{"itemType":"journalArticle"}]', 'path': '/export?format=wikipedia'}], 'port': 4969, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'zotero', 'active_active': True}]}, 'helm-charts': {'description': 'helm-charts', 'encryption': True, 'ip': {'codfw': {'default': '10.192.48.159'}, 'eqiad': {'default': '10.64.48.26'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/health', 'must_contain_regexp': '"healthy".*:.*true'}], 'sites': ['eqiad', 'codfw'], 'port': 443, 'state': 'production', 'discovery': [{'dnsdisc': 'helm-charts', 'active_active': True}], 'exclude_from_switchover': True}, 'releases': {'description': 'MediaWiki, Parsoid, MobileApps and other Wikimedia release files (https://releases.wikimedia.org)', 'encryption': True, 'ip': {'codfw': {'default': '10.192.16.72'}, 'eqiad': {'default': '10.64.48.34'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/mediawiki', 'host': 'releases.wikimedia.org', 'must_contain_regexp': 'MediaWiki'}], 'sites': ['eqiad', 'codfw'], 'port': 443, 'state': 'production', 'discovery': [{'dnsdisc': 'releases', 'active_active': True}], 'exclude_from_switchover': True}, 'api-gateway': {'description': 'API gateway, api-gateway.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.55'}, 'eqiad': {'default': '10.2.2.55'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 8087, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'api-gateway', 'active_active': True}]}, 'linkrecommendation': {'description': 'Link Recommendation, linkrecommendation.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.23'}, 'eqiad': {'default': '10.2.2.23'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4005, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'linkrecommendation', 'active_active': True}]}, 'linkrecommendation-external': {'description': 'Link Recommendation, public release, linkrecommendation.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.23'}, 'eqiad': {'default': '10.2.2.23'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4006, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'linkrecommendation', 'active_active': True}], 'aliases': ['linkrecommendation']}, 'puppetdb-api': {'description': 'Puppetdb api microservice', 'encryption': True, 'ip': {'codfw': {'default': '10.192.48.75'}, 'eqiad': {'default': '10.64.16.87'}}, 'page': False, 'probes': [{'type': 'http'}], 'sites': ['eqiad', 'codfw'], 'port': 8090, 'state': 'production', 'discovery': [{'dnsdisc': 'puppetdb-api', 'active_active': True}], 'exclude_from_switchover': True}, 'alertmanager': {'encryption': True, 'role': 'alerting_host', 'public_endpoint': 'alerts', 'port': 443, 'description': 'Alertmanager service', 'sites': ['codfw', 'eqiad'], 'ip': {'codfw': {'default': '208.80.153.42'}, 'eqiad': {'default': '208.80.154.78'}}, 'state': 'production'}, 'graphite': {'encryption': True, 'role': 'graphite::production', 'public_endpoint': 'graphite', 'port': 443, 'description': 'Graphite metrics platform', 'page': False, 'probes': [{'type': 'http', 'host': 'graphite.wikimedia.org', 'expect_sso': True}], 'sites': ['codfw', 'eqiad'], 'ip': {'codfw': {'default': '10.192.16.37'}, 'eqiad': {'default': '10.64.16.81'}}, 'state': 'production'}, 'grafana': {'encryption': True, 'role': 'grafana', 'public_endpoint': 'grafana', 'public_aliases': ['grafana-rw', 'grafana-next', 'grafana-next-rw'], 'port': 443, 'description': 'Graphing and dashboarding', 'page': False, 'probes': [{'type': 'http', 'host': 'grafana.wikimedia.org'}], 'sites': ['codfw', 'eqiad'], 'ip': {'codfw': {'default': '10.192.0.160'}, 'eqiad': {'default': '10.64.0.119'}}, 'state': 'production'}, 'librenms': {'encryption': True, 'role': 'netmon', 'public_endpoint': 'librenms', 'port': 443, 'description': 'Network device observability', 'page': False, 'probes': [{'type': 'http', 'host': 'librenms.wikimedia.org', 'expect_sso': True}], 'sites': ['codfw', 'eqiad'], 'ip': {'codfw': {'default': '208.80.153.9'}, 'eqiad': {'default': '208.80.154.141'}}, 'state': 'production'}, 'inference': {'description': 'Inference ML service', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.63'}, 'codfw': {'default': '10.2.1.63'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'ml_serve', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'valid_status_codes': [404]}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'inference', 'active_active': True}]}, 'inference-staging': {'description': 'Inference ML service (staging)', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.58'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'ml_staging', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'tcp-notls'}], 'port': 30443, 'sites': ['codfw'], 'state': 'lvs_setup'}, 'inference-staging-grpc': {'description': 'Inference ML service GRPC (staging)', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.58'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'ml_staging', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'tcp-notls'}], 'port': 30051, 'sites': ['codfw'], 'state': 'production'}, 'apt': {'description': 'Internal apt package repository', 'encryption': False, 'ip': {'codfw': {'default': '208.80.153.11'}, 'eqiad': {'default': '208.80.154.10'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'apt.wikimedia.org', 'path': '/wikimedia/'}], 'sites': ['eqiad', 'codfw'], 'port': 80, 'state': 'production', 'discovery': [{'dnsdisc': 'apt', 'active_active': False}], 'exclude_from_switchover': True}, 'puppetboard': {'description': 'Internal production Puppetboard interface', 'encryption': True, 'ip': {'codfw': {'default': '10.192.0.8'}, 'eqiad': {'default': '10.64.32.38'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'puppetboard.wikimedia.org', 'expect_sso': True}], 'sites': ['eqiad', 'codfw'], 'port': 443, 'state': 'production', 'discovery': [{'dnsdisc': 'puppetboard', 'active_active': True}]}, 'data-gateway': {'description': 'data gateway service, data-gateway.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'path': '/healthz'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'data-gateway-staging': {'description': 'data gateway staging service, data-gateway.k8s-staging.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.69'}, 'eqiad': {'default': '10.2.2.69'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'host': 'data-gateway.k8s-staging.discovery.wmnet', 'path': '/healthz'}], 'sites': ['eqiad'], 'state': 'production'}, 'developer-portal': {'description': 'Static documentation site, developer-portal.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'netbox': {'description': 'Netbox Frontend', 'encryption': True, 'ip': {'codfw': {'default': '10.192.0.54'}, 'eqiad': {'default': '10.64.0.103'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'netbox.wikimedia.org', 'expect_sso': True}], 'sites': ['eqiad', 'codfw'], 'port': 443, 'state': 'production', 'discovery': [{'dnsdisc': 'netbox', 'active_active': False}], 'exclude_from_switchover': True}, 'logs-api': {'description': 'API access to opensearch for logs', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.79'}, 'eqiad': {'default': '10.2.2.79'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kibana7', 'service': 'logs-api'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://logs-api.svc.eqiad.wmnet']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http', 'host': 'logs-api.svc.eqiad.wmnet'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'commons-impact-analytics': {'description': 'commons-impact-analytics AQS2 service, commons-impact-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'path': '/healthz'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'device-analytics': {'description': 'device-analytics AQS2 service, device-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.80'}, 'eqiad': {'default': '10.2.2.80'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4972, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'device-analytics', 'active_active': True}]}, 'geo-analytics': {'description': 'geo-analytics AQS2 service, geo-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'path': '/healthz'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'media-analytics': {'description': 'media-analytics AQS2 service, media-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'path': '/healthz'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'page-analytics': {'description': 'page-analytics AQS2 service, page-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'path': '/healthz'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'editor-analytics': {'description': 'editor-analytics AQS2 service, editor-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'path': '/healthz'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'edit-analytics': {'description': 'edit-analytics AQS2 service, edit-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'path': '/healthz'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'pki': {'description': 'PKI service', 'encryption': False, 'ip': {'codfw': {'default': '10.192.16.172'}, 'eqiad': {'default': '10.64.173.2'}}, 'probes': [{'type': 'http', 'path': '/metrics', 'must_contain_regexp': 'signer="discovery2026"'}], 'sites': ['eqiad', 'codfw'], 'port': 80, 'state': 'production', 'page': False, 'discovery': [{'dnsdisc': 'pki', 'active_active': True}]}, 'rest-gateway': {'description': 'REST API gateway, rest-gateway.discovery.wmnet. See REST Gateway page on wikitech for URLs proxied', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.82'}, 'eqiad': {'default': '10.2.2.82'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4113, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'rest-gateway', 'active_active': False}, {'dnsdisc': 'rest-gateway-ro', 'active_active': True}]}, 'machinetranslation': {'description': 'MinT, machinetranslation service backend. Use by cxserver. machinetranslation.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'wikifunctions': {'description': 'Wikifunctions orchestrator, wikifunctions.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'wikifunctions-python-evaluator-staging': {'description': 'Wikifunctions Python evaluator staging endpoint', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.69'}, 'eqiad': {'default': '10.2.2.69'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'host': 'wikifunctions-python-evaluator.k8s-staging.discovery.wmnet', 'path': '/_info'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'wikifunctions-python-evaluator': {'description': 'Wikifunctions Python evaluator endpoint', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info', 'timeout': '10s'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'wikifunctions-javascript-evaluator-staging': {'description': 'Wikifunctions JS evaluator staging endpoint', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.69'}, 'eqiad': {'default': '10.2.2.69'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'host': 'wikifunctions-javascript-evaluator.k8s-staging.discovery.wmnet', 'path': '/_info'}], 'sites': ['eqiad'], 'state': 'production'}, 'wikifunctions-javascript-evaluator': {'description': 'Wikifunctions JS evaluator endpoint', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info', 'timeout': '10s'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'config-master': {'description': 'config-master.wikimedia.org service for browsing configuration data from etcd.', 'encryption': True, 'ip': {'codfw': {'default': '10.192.0.15'}, 'eqiad': {'default': '10.64.0.110'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'config-master', 'active_active': True}]}, 'ipoid': {'description': 'iPoid IP address reputation service ipoid.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'superset-next': {'description': 'Staging superset service, superset-next.wikimedia.org', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/health'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'production'}, 'superset': {'description': 'Production superset service, superset.wikimedia.org', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/health'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'production'}, 'growthbook-api-next': {'description': 'Staging growthbook API service, growthbook-api-next.wikimedia.org', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthcheck'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'production'}, 'growthbook-api': {'description': 'Production growthbook API service, growthbook-api.wikimedia.org', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthcheck'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'production'}, 'test-kitchen': {'description': 'Production test-kitchen service, test-kitchen.wikimedia.org', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'service_setup'}, 'test-kitchen-next': {'description': 'Staging test-kitchen service, test-kitchen-next.wikimedia.org', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'service_setup'}, 'chart-renderer': {'description': 'Stateless microservice that renders charts as SVGs with Apache eCharts, used by https://www.mediawiki.org/wiki/Extension:Chart', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': True, 'probes': [{'type': 'http', 'path': '/_info', 'timeout': '10s'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'blunderbuss': {'description': 'HDFS synchronizer service, see T371994', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'service_setup'}, 'opensearch-test': {'description': 'opensearch on kubernetes test, see T362105', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'opensearch-ipoid': {'description': 'ipoid on opensearch, see T357753', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['codfw', 'eqiad'], 'state': 'production'}, 'opensearch-semantic-search': {'description': 'semantic search for wikis, see T413969', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['codfw', 'eqiad'], 'state': 'production'}, 'opensearch-ttmserver-test': {'description': 'Translatewiki opensearch test server, see T424248', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['codfw', 'eqiad'], 'state': 'service_setup'}, 'opensearch-toolhub-test': {'description': 'Toolhub opensearch test server, see T426073', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['codfw', 'eqiad'], 'state': 'service_setup'}, 'analytics-web': {'encryption': True, 'role': 'analytics_cluster::webserver', 'public_endpoint': 'analytics', 'port': 8443, 'description': 'Dashboards and Data Downloads for Wikimedia Projects', 'page': False, 'probes': [{'type': 'http', 'host': 'analytics.wikimedia.org', 'expect_sso': True}], 'sites': ['eqiad'], 'ip': {'eqiad': {'default': '10.64.21.14'}}, 'state': 'service_setup'}, 'codesearch': {'description': 'UI to search through Wikimedia code repositories', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'codesearch.wikimedia.org'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'service_setup'}, 'zarcillo': {'description': 'DB automation', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'zarcillo.wikimedia.org'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'service_setup'}, 'os-reports': {'description': 'OS Reports', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'os-reports.wikimedia.org'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'service_setup'}, 'wmf-navigator': {'description': 'WMF Navigator', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'wmf-navigator.wikimedia.org'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'service_setup'}, 'gerrit-https': {'description': 'Gerrit Code Review - HTTPS interface', 'encryption': True, 'ip': {'eqiad': {'gerritlb': '208.80.154.225', 'gerritlb6': '2620:0:861:ed1a::2'}, 'codfw': {'gerritlb': '208.80.153.225', 'gerritlb6': '2620:0:860:ed1a::2'}, 'esams': {'gerritlb': '185.15.59.225', 'gerritlb6': '2a02:ec80:300:ed1a::2'}, 'ulsfo': {'gerritlb': '198.35.26.225', 'gerritlb6': '2620:0:863:ed1a::2'}, 'eqsin': {'gerritlb': '103.102.166.225', 'gerritlb6': '2001:df2:e500:ed1a::2'}, 'drmrs': {'gerritlb': '185.15.58.225', 'gerritlb6': '2a02:ec80:600:ed1a::2'}, 'magru': {'gerritlb': '195.200.68.225', 'gerritlb6': '2a02:ec80:700:ed1a::2'}}, 'lvs': {'class': 'high-traffic1', 'conftool': {'cluster': 'cache_text', 'service': 'cdn'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'ProxyFetch': {'url': ['https://healthcheck.wikimedia.org/varnish-fe']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'page': False, 'probes': [{'type': 'http', 'host': 'gerrit.wikimedia.org', 'path': '/r/'}], 'port': 443, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'gerrit-ssh': {'description': 'Gerrit Code Review - SSH interface', 'encryption': False, 'ip': {'eqiad': {'gerritlb': '208.80.154.225', 'gerritlb6': '2620:0:861:ed1a::2'}, 'codfw': {'gerritlb': '208.80.153.225', 'gerritlb6': '2620:0:860:ed1a::2'}, 'esams': {'gerritlb': '185.15.59.225', 'gerritlb6': '2a02:ec80:300:ed1a::2'}, 'ulsfo': {'gerritlb': '198.35.26.225', 'gerritlb6': '2620:0:863:ed1a::2'}, 'eqsin': {'gerritlb': '103.102.166.225', 'gerritlb6': '2001:df2:e500:ed1a::2'}, 'drmrs': {'gerritlb': '185.15.58.225', 'gerritlb6': '2a02:ec80:600:ed1a::2'}, 'magru': {'gerritlb': '195.200.68.225', 'gerritlb6': '2a02:ec80:700:ed1a::2'}}, 'lvs': {'class': 'high-traffic1', 'conftool': {'cluster': 'tcp-proxy', 'service': 'gerrit'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'page': False, 'probes': [{'type': 'tcp'}], 'port': 29418, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'dumps-https': {'description': 'Dump file distribution - HTTPS interface', 'encryption': True, 'ip': {'eqiad': {'dumps-lb': '208.80.154.242', 'dumps-lb6': '2620:0:861:ed1a::3:242'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'dumps', 'service': 'dumps-https'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://dumps.wikimedia.org']}}, 'scheduler': 'mh', 'protocol': 'tcp', 'ipip_encapsulation': ['eqiad']}, 'page': True, 'team': 'wmcs', 'probes': [{'type': 'http', 'host': 'dumps.wikimedia.org', 'path': '/'}], 'port': 443, 'sites': ['eqiad'], 'state': 'production'}, 'dumps-rsync': {'description': 'Dump file distribution - rsync interface', 'encryption': False, 'ip': {'eqiad': {'dumps-lb': '208.80.154.242', 'dumps-lb6': '2620:0:861:ed1a::3:242'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'dumps', 'service': 'dumps-rsync'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'protocol': 'tcp', 'ipip_encapsulation': ['eqiad']}, 'page': True, 'team': 'wmcs', 'probes': [{'type': 'tcp-notls'}], 'port': 873, 'sites': ['eqiad'], 'state': 'production'}, 'recommendation-api-ng': {'description': 'Liftwing recommendation-api-ng service', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.84'}, 'eqiad': {'default': '10.2.2.84'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 31443, 'sites': ['eqiad', 'codfw'], 'state': 'service_setup'}}
+ service_catalog => {'apertium': {'description': 'Machine Translation service. apertium.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.11'}, 'eqiad': {'default': '10.2.2.11'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'path': '/listPairs'}], 'port': 4737, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'apertium', 'active_active': True}]}, 'apus': {'description': 'Ceph-backed async-replicated S3 cluster', 'discovery': [{'dnsdisc': 'apus', 'active_active': True}], 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.10'}, 'eqiad': {'default': '10.2.2.10'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'apus', 'service': 'apus'}, 'depool_threshold': 0.3, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://apus.discovery.wmnet/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': True, 'port': 443, 'probes': [{'type': 'http', 'path': '/', 'host': 'apus.discovery.wmnet'}], 'sites': ['codfw', 'eqiad'], 'state': 'production', 'exclude_from_switchover': True}, 'aux-k8s-ctrl': {'description': 'Kubernetes API service for aux cluster', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.74'}, 'codfw': {'default': '10.2.1.74'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'aux-k8s', 'service': 'kubemaster'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 6443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'k8s-ingress-aux': {'description': 'istio-ingresscontroller on aux-k8s. k8s-ingress-aux-(ro|rw).discovery.wmnet', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'aux-k8s', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'tcp-notls'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'page': False, 'discovery': [{'dnsdisc': 'k8s-ingress-aux-ro', 'active_active': True}, {'dnsdisc': 'k8s-ingress-aux-rw', 'active_active': False}]}, 'jaeger-collector-http': {'description': 'Jaeger tracing, collector (HTTP)', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'page': False, 'probes': [{'type': 'tcp'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'production'}, 'jaeger-collector-grpc': {'description': 'Jaeger tracing, collector (GRPC)', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'page': False, 'probes': [{'type': 'tcp'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'production'}, 'jaeger-query': {'description': 'Jaeger tracing, query UI', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'page': False, 'probes': [{'type': 'tcp'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'production'}, 'citoid': {'description': 'Citation lookup service, citoid.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.19'}, 'eqiad': {'default': '10.2.2.19'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4003, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'citoid', 'active_active': True}]}, 'cloudelastic-chi-https': {'description': 'Elasticsearch prod replica for WMF Cloud (Chi Cluster) - Prod MW AppServer Port - HTTPS', 'encryption': True, 'ip': {'eqiad': {'cloudelasticlb': '208.80.154.241', 'cloudelasticlb6': '2620:0:861:ed1a::3:241'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cloudelastic', 'service': 'cloudelastic-chi-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad']}, 'port': 9243, 'sites': ['eqiad'], 'state': 'production'}, 'cloudelastic-chi-https-public': {'description': 'Elasticsearch prod replica for WMF Cloud (Chi Cluster) - Public Internet Port - HTTPS', 'encryption': True, 'ip': {'eqiad': {'cloudelasticlb': '208.80.154.241', 'cloudelasticlb6': '2620:0:861:ed1a::3:241'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cloudelastic', 'service': 'cloudelastic-chi-ssl-public'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad']}, 'port': 8243, 'sites': ['eqiad'], 'state': 'production'}, 'cloudelastic-omega-https': {'description': 'Elasticsearch prod replica for WMF Cloud (Omega Cluster) - Prod MW AppServer Port - HTTPS', 'encryption': True, 'ip': {'eqiad': {'cloudelasticlb': '208.80.154.241', 'cloudelasticlb6': '2620:0:861:ed1a::3:241'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cloudelastic', 'service': 'cloudelastic-omega-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad']}, 'port': 9443, 'sites': ['eqiad'], 'state': 'production'}, 'cloudelastic-omega-https-public': {'description': 'Elasticsearch prod replica for WMF Cloud (Omega Cluster) - Public Internet Port - HTTPS', 'encryption': True, 'ip': {'eqiad': {'cloudelasticlb': '208.80.154.241', 'cloudelasticlb6': '2620:0:861:ed1a::3:241'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cloudelastic', 'service': 'cloudelastic-omega-ssl-public'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad']}, 'port': 8443, 'sites': ['eqiad'], 'state': 'production'}, 'cloudelastic-psi-https': {'description': 'Elasticsearch prod replica for WMF Cloud (Psi Cluster) - Prod MW AppServer Port - HTTPS', 'encryption': True, 'ip': {'eqiad': {'cloudelasticlb': '208.80.154.241', 'cloudelasticlb6': '2620:0:861:ed1a::3:241'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cloudelastic', 'service': 'cloudelastic-psi-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad']}, 'port': 9643, 'sites': ['eqiad'], 'state': 'production'}, 'cloudelastic-psi-https-public': {'description': 'Elasticsearch prod replica for WMF Cloud (Psi Cluster) - Public Internet Port - HTTPS', 'encryption': True, 'ip': {'eqiad': {'cloudelasticlb': '208.80.154.241', 'cloudelasticlb6': '2620:0:861:ed1a::3:241'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cloudelastic', 'service': 'cloudelastic-psi-ssl-public'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad']}, 'port': 8643, 'sites': ['eqiad'], 'state': 'production'}, 'cxserver': {'description': 'Content Translation service, cxserver.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.18'}, 'eqiad': {'default': '10.2.2.18'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4002, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'cxserver', 'active_active': True}]}, 'datahubsearch': {'description': 'Search cluster serving DataHub', 'encryption': False, 'ip': {'eqiad': {'default': '10.2.2.71'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'datahubsearch', 'service': 'opensearch'}, 'depool_threshold': 0.5, 'enabled': False, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad']}, 'probes': [{'type': 'http'}], 'port': 9200, 'sites': ['eqiad'], 'state': 'production', 'page': False}, 'docker-registry': {'description': 'docker registry service', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.44'}, 'eqiad': {'default': '10.2.2.44'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'docker-registry', 'service': 'docker-registry'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http', 'path': '/v2/'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'docker-registry', 'active_active': False}], 'exclude_from_switchover': True}, 'druid-public-broker': {'description': 'Broker query service for the Druid Public Cluster', 'encryption': False, 'ip': {'eqiad': {'default': '10.2.2.38'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'druid-public', 'service': 'druid-public-broker'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['http://localhost/status']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad']}, 'page': False, 'probes': [{'type': 'http', 'path': '/status'}], 'port': 8082, 'sites': ['eqiad'], 'state': 'production'}, 'druid-public-coordinator': {'description': 'Coordinator query service for the Druid Public Cluster', 'encryption': False, 'ip': {'eqiad': {'default': '10.2.2.15'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'druid-public', 'service': 'druid-public-coordinator'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['http://localhost/status']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad']}, 'page': False, 'probes': [{'type': 'http', 'path': '/status'}], 'port': 8081, 'sites': ['eqiad'], 'state': 'production'}, 'echostore': {'description': 'Echo store, echostore.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.49'}, 'eqiad': {'default': '10.2.2.49'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}, {'type': 'swagger', 'params': {'spec_segment': '/openapi'}}], 'port': 8082, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'echostore', 'active_active': True}]}, 'eventgate-analytics': {'description': 'EventGate Analytics endpoint, TLS enabled. https://eventgate-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.42'}, 'eqiad': {'default': '10.2.2.42'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4592, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'eventgate-analytics', 'active_active': True}]}, 'eventgate-logging-external': {'description': 'EventGate logging endpoint, eventgate-logging-external.discovery.wmnet and intake-logging.wikimedia.org', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.50'}, 'eqiad': {'default': '10.2.2.50'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4392, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'eventgate-logging-external', 'active_active': True}]}, 'eventgate-analytics-external': {'description': 'EventGate analytics external endpoint, eventgate-analytics-external.discovery.wmnet and intake-analytics.wikimedia.org', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.52'}, 'eqiad': {'default': '10.2.2.52'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4692, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'eventgate-analytics-external', 'active_active': True}]}, 'eventgate-main': {'description': 'EventGate main endpoint, TLS enabled, https://eventgate-main.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.45'}, 'eqiad': {'default': '10.2.2.45'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4492, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'eventgate-main', 'active_active': True}]}, 'eventstreams': {'description': 'Public streams of events via HTTP + SSE, backed by Kafka. eventstreams.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.34'}, 'eqiad': {'default': '10.2.2.34'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4892, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'eventstreams', 'active_active': True}]}, 'k8s-ingress-staging': {'description': 'istio-ingresscontroller on kubernetes staging. k8s-ingress-staging.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.69'}, 'eqiad': {'default': '10.2.2.69'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes-staging', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'tcp-notls'}], 'port': 30443, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'k8s-ingress-staging', 'active_active': False}], 'exclude_from_switchover': True}, 'k8s-ingress-wikikube': {'description': 'istio-ingresscontroller on kubernetes. k8s-ingress-wikikube.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': True, 'probes': [{'type': 'tcp-notls'}], 'port': 30443, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'k8s-ingress-wikikube-ro', 'active_active': True}, {'dnsdisc': 'k8s-ingress-wikikube-rw', 'active_active': False}]}, 'k8s-ingress-ml-staging': {'description': 'istio-ingresscontroller on kubernetes ML staging. k8s-ingress-ml-staging.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.83'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'ml_staging', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'tcp-notls'}], 'port': 31443, 'sites': ['codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'k8s-ingress-ml-staging', 'active_active': False}], 'exclude_from_switchover': True}, 'k8s-ingress-ml-serve': {'description': 'istio-ingresscontroller on kubernetes. k8s-ingress-ml-serve.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.84'}, 'eqiad': {'default': '10.2.2.84'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'ml_serve', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'tcp-notls'}], 'port': 31443, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'k8s-ingress-ml-serve', 'active_active': True}]}, 'k8s-ingress-dse': {'description': 'istio-ingresscontroller on kubernetes. k8s-ingress-dse.discovery.wmnet', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'dse-k8s', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'tcp-notls'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'k8s-ingress-dse', 'active_active': False}, {'dnsdisc': 'k8s-ingress-dse-aa', 'active_active': True}], 'exclude_from_switchover': True}, 'kartotherian-k8s-ssl': {'description': 'Kartotherian, kartotherian.discovery.wmnet - HTTPS on K8s', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.13'}, 'eqiad': {'default': '10.2.2.13'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'path': '/osm-intl/6/23/24.png'}], 'port': 6543, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'kartotherian', 'active_active': True}]}, 'kibana7': {'description': 'Kibana v7 env - HTTPS', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.48'}, 'eqiad': {'default': '10.2.2.48'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kibana7', 'service': 'kibana7'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://logstash.wikimedia.org/api/status']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http', 'path': '/api/status', 'host': 'logstash.wikimedia.org'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'logstash', 'active_active': False}], 'role': 'opensearch::collector', 'public_endpoint': 'logstash', 'exclude_from_switchover': True}, 'kubemaster': {'description': 'Kubernetes master service. kubemaster.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.8'}, 'eqiad': {'default': '10.2.2.8'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubemaster'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 6443, 'sites': ['eqiad', 'codfw'], 'role': 'kubernetes::master_stacked', 'state': 'production'}, 'kubestagemaster': {'description': 'Kubernetes staging master service. kubestagemaster.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.86'}, 'eqiad': {'default': '10.2.2.86'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes-staging', 'service': 'kubemaster'}, 'depool_threshold': 0.2, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 6443, 'sites': ['eqiad', 'codfw'], 'role': 'kubernetes::staging::master_stacked', 'state': 'production'}, 'labweb-ssl': {'description': 'lvs for cloudweb services: horizon, striker - HTTPS', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.40'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'cloudweb', 'service': 'cloudweb-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 30, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'http_status': 200, 'url': ['https://toolsadmin.wikimedia.org/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad']}, 'probes': [{'type': 'http', 'host': 'toolsadmin.wikimedia.org'}], 'page': True, 'team': 'wmcs', 'port': 7443, 'sites': ['eqiad'], 'state': 'production', 'aliases': ['labweb']}, 'ldap-ro': {'description': 'Ldap for cloud and developer accounts', 'encryption': False, 'ip': {'codfw': {'default': '208.80.153.252'}, 'eqiad': {'default': '208.80.154.252'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'ldap-ro', 'service': 'ldap-ro'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 30, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 389, 'probes': [{'type': 'tcp'}], 'sites': ['codfw', 'eqiad'], 'state': 'production'}, 'ldap-ro-ssl': {'description': 'Ldap for cloud and developer accounts (ssl access)', 'encryption': True, 'ip': {'codfw': {'default': '208.80.153.252'}, 'eqiad': {'default': '208.80.154.252'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'ldap-ro', 'service': 'ldap-ro-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 30, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 636, 'probes': [{'type': 'tcp', 'host': 'ldap-ro.eqiad.wikimedia.org'}], 'sites': ['codfw', 'eqiad'], 'state': 'production'}, 'mathoid': {'description': 'Mathematical rendering service, mathoid.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.20'}, 'eqiad': {'default': '10.2.2.20'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4001, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mathoid', 'active_active': True}]}, 'miscweb': {'description': 'Misc static sites, miscweb.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'static-bugzilla.wikimedia.org'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'dse-k8s-ctrl': {'description': 'Kubernetes master service for DSE cluster. dse-k8s-ctrl.discovery.wmnet', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.73'}, 'codfw': {'default': '10.2.1.73'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'dse-k8s', 'service': 'kubemaster'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 6443, 'sites': ['eqiad', 'codfw'], 'state': 'lvs_setup'}, 'ml-ctrl': {'description': 'Kubernetes master service for ML cluster. ml-ctrl.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.39'}, 'eqiad': {'default': '10.2.2.39'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'ml_serve', 'service': 'kubemaster'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'port': 6443, 'sites': ['eqiad', 'codfw'], 'state': 'lvs_setup'}, 'ml-staging-ctrl': {'description': 'Kubernetes master service for ML staging cluster. ml-staging-ctrl.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.72'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'ml_staging', 'service': 'kubemaster'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'port': 6443, 'sites': ['codfw'], 'state': 'lvs_setup'}, 'mobileapps': {'description': 'A service for use by mobile apps. Provides DOM manipulation, aggregation, JSON flattening. mobileapps.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.14'}, 'eqiad': {'default': '10.2.2.14'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4102, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mobileapps', 'active_active': True}]}, 'mwdebug': {'description': 'mwdebug, mwdebug.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.59'}, 'eqiad': {'default': '10.2.2.59'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'en.wikipedia.org'}], 'port': 4444, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mwdebug', 'active_active': True}]}, 'mwdebug-next': {'description': 'mwdebug-next, mwdebug-next.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.9'}, 'eqiad': {'default': '10.2.2.9'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'en.wikipedia.org'}], 'port': 4453, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mwdebug-next', 'active_active': True}]}, 'mw-web': {'description': 'mw-web, mw-web.svc.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.75'}, 'eqiad': {'default': '10.2.2.75'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'httpbb_dir': 'appserver', 'page': True, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'en.wikipedia.org'}], 'port': 4450, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mw-web', 'active_active': False}, {'dnsdisc': 'mw-web-ro', 'active_active': True}]}, 'mw-web-next': {'description': 'mw-web-next, mw-web-next.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.6'}, 'eqiad': {'default': '10.2.2.6'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'httpbb_dir': 'appserver', 'page': True, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'en.wikipedia.org'}], 'port': 4454, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mw-web-next', 'active_active': False}, {'dnsdisc': 'mw-web-next-ro', 'active_active': True}]}, 'mw-api-ext': {'description': 'mw-api-ext, mw-api-ext.svc.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.76'}, 'eqiad': {'default': '10.2.2.76'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'httpbb_dir': 'appserver', 'page': True, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'en.wikipedia.org'}], 'port': 4447, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mw-api-ext', 'active_active': False}, {'dnsdisc': 'mw-api-ext-ro', 'active_active': True}]}, 'mw-api-ext-next': {'description': 'mw-api-ext-next, mw-api-ext-next.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.7'}, 'eqiad': {'default': '10.2.2.7'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'httpbb_dir': 'appserver', 'page': True, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'en.wikipedia.org'}], 'port': 4455, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mw-api-ext-next', 'active_active': False}, {'dnsdisc': 'mw-api-ext-next-ro', 'active_active': True}]}, 'mw-api-int': {'description': 'mw-api-int, mw-api-int.svc.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.81'}, 'eqiad': {'default': '10.2.2.81'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'httpbb_dir': 'appserver', 'page': True, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'en.wikipedia.org'}], 'port': 4446, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mw-api-int', 'active_active': False}, {'dnsdisc': 'mw-api-int-ro', 'active_active': True}]}, 'mw-misc': {'description': 'Miscellaneous mediawiki installs, mw-misc.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'service_setup'}, 'mw-jobrunner': {'description': 'mw-jobrunner, mw-jobrunner.svc.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.90'}, 'eqiad': {'default': '10.2.2.90'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'httpbb_dir': 'jobrunner', 'page': False, 'probes': [{'type': 'http', 'path': '/w/health-check.php', 'host': 'mw-jobrunner.discovery.wmnet'}], 'port': 4448, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'mw-jobrunner', 'active_active': False}]}, 'mw-wikifunctions': {'description': 'mw-wikifunctions, mw-wikifunctions.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'port': 30443, 'httpbb_dir': 'wikifunctions', 'page': False, 'probes': [{'type': 'http', 'path': '/wiki/Special:BlankPage', 'host': 'www.wikifunctions.org'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'ncredir': {'description': 'Non canonical domains redirect service', 'encryption': False, 'ip': {'codfw': {'ncredirlb': '208.80.153.232', 'ncredirlb6': '2620:0:860:ed1a::9'}, 'eqiad': {'ncredirlb': '208.80.154.232', 'ncredirlb6': '2620:0:861:ed1a::9'}, 'esams': {'ncredirlb': '185.15.59.226', 'ncredirlb6': '2a02:ec80:300:ed1a::3'}, 'ulsfo': {'ncredirlb': '198.35.26.226', 'ncredirlb6': '2620:0:863:ed1a::3'}, 'eqsin': {'ncredirlb': '103.102.166.226', 'ncredirlb6': '2001:df2:e500:ed1a::3'}, 'drmrs': {'ncredirlb': '185.15.58.226', 'ncredirlb6': '2a02:ec80:600:ed1a::3'}, 'magru': {'ncredirlb': '195.200.68.226', 'ncredirlb6': '2a02:ec80:700:ed1a::3'}}, 'lvs': {'class': 'high-traffic1', 'conftool': {'cluster': 'ncredir', 'service': 'nginx'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'ProxyFetch': {'url': ['http://en.wikipedia.com/_status']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'page': False, 'probes': [{'type': 'http', 'host': 'en.wikipedia.com', 'path': '/_status'}], 'port': 80, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'ncredir-https': {'description': 'Non canonical redirect service', 'encryption': True, 'ip': {'codfw': {'ncredirlb': '208.80.153.232', 'ncredirlb6': '2620:0:860:ed1a::9'}, 'eqiad': {'ncredirlb': '208.80.154.232', 'ncredirlb6': '2620:0:861:ed1a::9'}, 'esams': {'ncredirlb': '185.15.59.226', 'ncredirlb6': '2a02:ec80:300:ed1a::3'}, 'ulsfo': {'ncredirlb': '198.35.26.226', 'ncredirlb6': '2620:0:863:ed1a::3'}, 'eqsin': {'ncredirlb': '103.102.166.226', 'ncredirlb6': '2001:df2:e500:ed1a::3'}, 'drmrs': {'ncredirlb': '185.15.58.226', 'ncredirlb6': '2a02:ec80:600:ed1a::3'}, 'magru': {'ncredirlb': '195.200.68.226', 'ncredirlb6': '2a02:ec80:700:ed1a::3'}}, 'lvs': {'class': 'high-traffic1', 'conftool': {'cluster': 'ncredir', 'service': 'nginx'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'ProxyFetch': {'url': ['https://en.wikipedia.com/_status']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'page': False, 'probes': [{'type': 'http', 'host': 'en.wikipedia.com', 'path': '/_status'}], 'port': 443, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'prometheus': {'description': 'Prometheus monitoring', 'encryption': False, 'ip': {'codfw': {'default': '10.2.1.25'}, 'eqiad': {'default': '10.2.2.25'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'prometheus', 'service': 'prometheus'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['http://prometheus/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http'}], 'port': 80, 'role': 'prometheus', 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'prometheus-https': {'description': 'prometheus monitoring https', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.25'}, 'eqiad': {'default': '10.2.2.25'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'prometheus', 'service': 'prometheus'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'http_status': 302, 'url': ['https://prometheus-eqiad.wikimedia.org/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http', 'host': 'prometheus-eqiad.wikimedia.org'}], 'port': 443, 'role': 'prometheus', 'sites': ['eqiad', 'codfw'], 'state': 'production', 'page': False, 'public_endpoint': 'prometheus-eqiad', 'public_aliases': ['prometheus-codfw']}, 'proton': {'description': 'Proton PDF rendering service. proton.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.21'}, 'eqiad': {'default': '10.2.2.21'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4030, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'proton', 'active_active': True}]}, 'push-notifications': {'description': 'Push-notifications service push-notifications.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.56'}, 'eqiad': {'default': '10.2.2.56'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info'}], 'port': 4104, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'push-notifications', 'active_active': True}]}, 'recommendation-api': {'description': 'Service for recommendation API. recommendation-api.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.37'}, 'eqiad': {'default': '10.2.2.37'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'port': 4632, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'recommendation-api', 'active_active': True}]}, 'restbase-backend': {'description': 'RESTBase backend, restbase.discovery.wmnet', 'encryption': False, 'ip': {'codfw': {'default': '10.2.1.17'}, 'eqiad': {'default': '10.2.2.17'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'restbase', 'service': 'restbase-backend'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['http://localhost/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 7233, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'restbase-https': {'description': 'RESTBase, restbase.discovery.wmnet - HTTPS', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.17'}, 'eqiad': {'default': '10.2.2.17'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'restbase', 'service': 'restbase-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http'}, {'type': 'swagger'}], 'port': 7443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'restbase', 'active_active': True}, {'dnsdisc': 'restbase-async', 'active_active': True}], 'aliases': ['restbase']}, 'schema': {'description': 'Event Schema HTTP service', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.43'}, 'eqiad': {'default': '10.2.2.43'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'eventschemas', 'service': 'eventschemas'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/repositories/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': True, 'probes': [{'type': 'http', 'path': '/repositories/'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'schema', 'active_active': True}]}, 'search': {'description': 'Elasticsearch search for MediaWiki', 'encryption': False, 'ip': {'codfw': {'default': '10.2.1.30'}, 'eqiad': {'default': '10.2.2.30'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'elasticsearch', 'service': 'elasticsearch'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['http://localhost/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 9200, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'search-https': {'description': 'Elasticsearch search for MediaWiki - HTTPS', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.30'}, 'eqiad': {'default': '10.2.2.30'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'elasticsearch', 'service': 'elasticsearch-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http'}], 'port': 9243, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'search', 'active_active': True}]}, 'search-omega-https': {'description': 'Elasticsearch search for MediaWiki (Omega cluster) - HTTPS', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.30'}, 'eqiad': {'default': '10.2.2.30'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'elasticsearch', 'service': 'elasticsearch-omega-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http'}], 'port': 9443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'aliases': ['search'], 'discovery': [{'dnsdisc': 'search-omega', 'active_active': True}]}, 'search-psi-https': {'description': 'Elasticsearch search for MediaWiki (Psi cluster) - HTTPS', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.30'}, 'eqiad': {'default': '10.2.2.30'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'elasticsearch', 'service': 'elasticsearch-psi-ssl'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http'}], 'port': 9643, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'aliases': ['search'], 'discovery': [{'dnsdisc': 'search-psi', 'active_active': True}]}, 'sessionstore': {'description': 'Session store, sessionstore.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.29'}, 'eqiad': {'default': '10.2.2.29'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/healthz'}, {'type': 'swagger', 'params': {'spec_segment': '/openapi'}}], 'port': 8081, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'sessionstore', 'active_active': True}]}, 'shellbox': {'description': 'Shellbox, shellbox.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.51'}, 'eqiad': {'default': '10.2.2.51'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4008, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'shellbox', 'active_active': True}]}, 'shellbox-constraints': {'description': 'Shellbox Constraints, shellbox-constraints.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.61'}, 'eqiad': {'default': '10.2.2.61'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4010, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'shellbox-constraints', 'active_active': True}]}, 'shellbox-media': {'description': 'Shellbox Media, shellbox-media.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.64'}, 'eqiad': {'default': '10.2.2.64'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4015, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'shellbox-media', 'active_active': True}]}, 'shellbox-syntaxhighlight': {'description': 'Shellbox SyntaxHighlight, shellbox-syntaxhighlight.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.65'}, 'eqiad': {'default': '10.2.2.65'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4014, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'shellbox-syntaxhighlight', 'active_active': True}]}, 'shellbox-timeline': {'description': 'Shellbox Timeline, shellbox-timeline.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.66'}, 'eqiad': {'default': '10.2.2.66'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4012, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'shellbox-timeline', 'active_active': True}]}, 'shellbox-video': {'description': 'Shellbox Video, shellbox-video.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.68'}, 'eqiad': {'default': '10.2.2.68'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4080, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'shellbox-video', 'active_active': True}]}, 'sophroid': {'description': 'Service mesh envoy control plane, sophroid.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.41'}, 'eqiad': {'default': '10.2.2.41'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'aux-k8s', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4252, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'sophroid', 'active_active': False}]}, 'swift': {'description': 'Swift media storage', 'encryption': False, 'ip': {'codfw': {'default': '10.2.1.27'}, 'eqiad': {'default': '10.2.2.27'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'swift', 'service': 'swift-fe'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['http://localhost/monitoring/frontend']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'port': 80, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'aliases': ['ms-fe']}, 'swift-https': {'description': 'Swift media storage', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.27'}, 'eqiad': {'default': '10.2.2.27'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'swift', 'service': 'nginx'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/monitoring/frontend']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http', 'path': '/monitoring/frontend'}], 'port': 443, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'swift', 'active_active': True}], 'aliases': ['ms-fe'], 'exclude_from_switchover': True}, 'tegola-vector-tiles': {'description': 'Tegola Vector Tiles, tegola-vector-tiles.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.60'}, 'eqiad': {'default': '10.2.2.60'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/capabilities'}], 'port': 4105, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'tegola-vector-tiles', 'active_active': True}]}, 'thanos-query': {'description': 'Prometheus long-term storage, query service', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.53'}, 'eqiad': {'default': '10.2.2.53'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'thanos', 'service': 'thanos-query'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://thanos-query.discovery.wmnet/-/ready']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http', 'path': '/-/ready'}], 'port': 443, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'thanos-query', 'active_active': True}], 'role': 'titan'}, 'thanos-web': {'description': 'Prometheus long-term storage, web interface', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.77'}, 'eqiad': {'default': '10.2.2.77'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'thanos', 'service': 'thanos-web'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://thanos-query.discovery.wmnet/-/ready']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http', 'path': '/-/ready', 'host': 'thanos-query.discovery.wmnet'}], 'port': 443, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'thanos-web', 'active_active': True}], 'role': 'titan', 'public_endpoint': 'thanos'}, 'thanos-swift': {'description': 'Prometheus long-term storage, object storage (swift) access', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.54'}, 'eqiad': {'default': '10.2.2.54'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'thanos', 'service': 'thanos-swift'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://thanos-swift.discovery.wmnet/healthcheck']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http', 'path': '/healthcheck', 'host': 'thanos-swift.discovery.wmnet'}], 'port': 443, 'sites': ['codfw', 'eqiad'], 'state': 'production', 'discovery': [{'dnsdisc': 'thanos-swift', 'active_active': True}], 'role': 'thanos::frontend'}, 'termbox': {'description': 'Wikidata Termbox SSR termbox.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.46'}, 'eqiad': {'default': '10.2.2.46'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4004, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'termbox', 'active_active': True}]}, 'text': {'description': 'Main wiki platform LVS service, text.eqiad.wikimedia.org (Varnish)', 'encryption': False, 'ip': {'eqiad': {'textlb': '208.80.154.224', 'textlb6': '2620:0:861:ed1a::1'}, 'codfw': {'textlb': '208.80.153.224', 'textlb6': '2620:0:860:ed1a::1'}, 'esams': {'textlb': '185.15.59.224', 'textlb6': '2a02:ec80:300:ed1a::1'}, 'ulsfo': {'textlb': '198.35.26.224', 'textlb6': '2620:0:863:ed1a::1'}, 'eqsin': {'textlb': '103.102.166.224', 'textlb6': '2001:df2:e500:ed1a::1'}, 'drmrs': {'textlb': '185.15.58.224', 'textlb6': '2a02:ec80:600:ed1a::1'}, 'magru': {'textlb': '195.200.68.224', 'textlb6': '2a02:ec80:700:ed1a::1'}}, 'lvs': {'class': 'high-traffic1', 'conftool': {'cluster': 'cache_text', 'service': 'cdn'}, 'depool_threshold': 0.66, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'probes': [{'type': 'http', 'host': 'en.wikipedia.org', 'path': '/wiki/Special:BlankPage', 'expect_redirect': True}], 'port': 80, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'text-https': {'description': 'Main wiki platform LVS service, text.eqiad.wikimedia.org (nginx)', 'encryption': True, 'ip': {'eqiad': {'textlb': '208.80.154.224', 'textlb6': '2620:0:861:ed1a::1'}, 'codfw': {'textlb': '208.80.153.224', 'textlb6': '2620:0:860:ed1a::1'}, 'esams': {'textlb': '185.15.59.224', 'textlb6': '2a02:ec80:300:ed1a::1'}, 'ulsfo': {'textlb': '198.35.26.224', 'textlb6': '2620:0:863:ed1a::1'}, 'eqsin': {'textlb': '103.102.166.224', 'textlb6': '2001:df2:e500:ed1a::1'}, 'drmrs': {'textlb': '185.15.58.224', 'textlb6': '2a02:ec80:600:ed1a::1'}, 'magru': {'textlb': '195.200.68.224', 'textlb6': '2a02:ec80:700:ed1a::1'}}, 'lvs': {'class': 'high-traffic1', 'conftool': {'cluster': 'cache_text', 'service': 'cdn'}, 'depool_threshold': 0.66, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://healthcheck.wikimedia.org/varnish-fe']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'probes': [{'type': 'http', 'host': 'en.wikipedia.org', 'path': '/wiki/Special:BlankPage'}], 'port': 443, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'thumbor': {'description': 'Thumbor image scaling', 'encryption': False, 'ip': {'codfw': {'default': '10.2.1.24'}, 'eqiad': {'default': '10.2.2.24'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/healthcheck', 'timeout': '15s'}], 'port': 8800, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'toolhub': {'description': 'Toolhub, toolhub.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.62'}, 'eqiad': {'default': '10.2.2.62'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4011, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'toolhub', 'active_active': False}], 'exclude_from_switchover': True}, 'upload': {'description': 'Images and other media, upload.eqiad.wikimedia.org', 'encryption': False, 'ip': {'eqiad': {'uploadlb': '208.80.154.240', 'uploadlb6': '2620:0:861:ed1a::2:b'}, 'codfw': {'uploadlb': '208.80.153.240', 'uploadlb6': '2620:0:860:ed1a::2:b'}, 'esams': {'uploadlb': '185.15.59.240', 'uploadlb6': '2a02:ec80:300:ed1a::2:b'}, 'ulsfo': {'uploadlb': '198.35.26.240', 'uploadlb6': '2620:0:863:ed1a::2:b'}, 'eqsin': {'uploadlb': '103.102.166.240', 'uploadlb6': '2001:df2:e500:ed1a::2:b'}, 'drmrs': {'uploadlb': '185.15.58.240', 'uploadlb6': '2a02:ec80:600:ed1a::2:b'}, 'magru': {'uploadlb': '195.200.68.240', 'uploadlb6': '2a02:ec80:700:ed1a::2:b'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cache_upload', 'service': 'cdn'}, 'depool_threshold': 0.66, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'probes': [{'type': 'http', 'host': 'upload.wikimedia.org', 'path': '/monitoring/backend', 'expect_redirect': True}], 'port': 80, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'upload-https': {'description': 'Images and other media, upload.eqiad.wikimedia.org', 'encryption': True, 'ip': {'eqiad': {'uploadlb': '208.80.154.240', 'uploadlb6': '2620:0:861:ed1a::2:b'}, 'codfw': {'uploadlb': '208.80.153.240', 'uploadlb6': '2620:0:860:ed1a::2:b'}, 'esams': {'uploadlb': '185.15.59.240', 'uploadlb6': '2a02:ec80:300:ed1a::2:b'}, 'ulsfo': {'uploadlb': '198.35.26.240', 'uploadlb6': '2620:0:863:ed1a::2:b'}, 'eqsin': {'uploadlb': '103.102.166.240', 'uploadlb6': '2001:df2:e500:ed1a::2:b'}, 'drmrs': {'uploadlb': '185.15.58.240', 'uploadlb6': '2a02:ec80:600:ed1a::2:b'}, 'magru': {'uploadlb': '195.200.68.240', 'uploadlb6': '2a02:ec80:700:ed1a::2:b'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'cache_upload', 'service': 'cdn'}, 'depool_threshold': 0.66, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://upload.wikimedia.org/varnish-fe-hc-5ebea9']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'probes': [{'type': 'http', 'host': 'upload.wikimedia.org', 'path': '/monitoring/backend'}], 'port': 443, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'wcqs': {'description': 'Wikimedia Commons Query Service', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.67'}, 'eqiad': {'default': '10.2.2.67'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'wcqs', 'service': 'wcqs'}, 'depool_threshold': 0.3, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/readiness-probe']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http', 'path': '/readiness-probe'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'wcqs', 'active_active': True}]}, 'wdqs-internal-main': {'description': 'Wikidata Query Service internal - main', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.93'}, 'codfw': {'default': '10.2.1.93'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'wdqs-internal-main', 'service': 'wdqs-main'}, 'depool_threshold': 0.3, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/readiness-probe']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http', 'path': '/readiness-probe'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'wdqs-internal-main', 'active_active': True}]}, 'wdqs-internal-scholarly': {'description': 'Wikidata Query Service internal - scholarly', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.94'}, 'codfw': {'default': '10.2.1.94'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'wdqs-internal-scholarly', 'service': 'wdqs-scholarly'}, 'depool_threshold': 0.3, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/readiness-probe']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http', 'path': '/readiness-probe'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'wdqs-internal-scholarly', 'active_active': True}]}, 'wdqs-main': {'description': 'Wikidata Query Service - main', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.33'}, 'eqiad': {'default': '10.2.2.33'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'wdqs-main', 'service': 'wdqs-main'}, 'depool_threshold': 0.3, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/readiness-probe']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http', 'path': '/readiness-probe'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'wdqs-main', 'active_active': True}]}, 'wdqs-scholarly': {'description': 'Wikidata Query Service - scholarly', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.36'}, 'eqiad': {'default': '10.2.2.36'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'wdqs-scholarly', 'service': 'wdqs-scholarly'}, 'depool_threshold': 0.3, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://localhost/readiness-probe']}}, 'scheduler': 'mh', 'scheduler_flag': 'mh-port', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'page': False, 'probes': [{'type': 'http', 'path': '/readiness-probe'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'wdqs-scholarly', 'active_active': True}]}, 'wikifeeds': {'description': 'A node webservice supporting featured wiki content feeds. wikifeeds.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.47'}, 'eqiad': {'default': '10.2.2.47'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'path': '/_info'}, {'type': 'swagger'}], 'port': 4101, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'wikifeeds', 'active_active': True}]}, 'zotero': {'description': 'Zotero, zotero.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.16'}, 'eqiad': {'default': '10.2.2.16'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'probes': [{'type': 'http', 'post_json': '[{"itemType":"journalArticle"}]', 'path': '/export?format=wikipedia'}], 'port': 4969, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'zotero', 'active_active': True}]}, 'helm-charts': {'description': 'helm-charts', 'encryption': True, 'ip': {'codfw': {'default': '10.192.48.159'}, 'eqiad': {'default': '10.64.48.26'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/health', 'must_contain_regexp': '"healthy".*:.*true'}], 'sites': ['eqiad', 'codfw'], 'port': 443, 'state': 'production', 'discovery': [{'dnsdisc': 'helm-charts', 'active_active': True}], 'exclude_from_switchover': True}, 'releases': {'description': 'MediaWiki, Parsoid, MobileApps and other Wikimedia release files (https://releases.wikimedia.org)', 'encryption': True, 'ip': {'codfw': {'default': '10.192.16.72'}, 'eqiad': {'default': '10.64.48.34'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/mediawiki', 'host': 'releases.wikimedia.org', 'must_contain_regexp': 'MediaWiki'}], 'sites': ['eqiad', 'codfw'], 'port': 443, 'state': 'production', 'discovery': [{'dnsdisc': 'releases', 'active_active': True}], 'exclude_from_switchover': True}, 'api-gateway': {'description': 'API gateway, api-gateway.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.55'}, 'eqiad': {'default': '10.2.2.55'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 8087, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'api-gateway', 'active_active': True}]}, 'linkrecommendation': {'description': 'Link Recommendation, linkrecommendation.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.23'}, 'eqiad': {'default': '10.2.2.23'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4005, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'linkrecommendation', 'active_active': True}]}, 'linkrecommendation-external': {'description': 'Link Recommendation, public release, linkrecommendation.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.23'}, 'eqiad': {'default': '10.2.2.23'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4006, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'linkrecommendation', 'active_active': True}], 'aliases': ['linkrecommendation']}, 'puppetdb-api': {'description': 'Puppetdb api microservice', 'encryption': True, 'ip': {'codfw': {'default': '10.192.48.75'}, 'eqiad': {'default': '10.64.16.87'}}, 'page': False, 'probes': [{'type': 'http'}], 'sites': ['eqiad', 'codfw'], 'port': 8090, 'state': 'production', 'discovery': [{'dnsdisc': 'puppetdb-api', 'active_active': True}], 'exclude_from_switchover': True}, 'alertmanager': {'encryption': True, 'role': 'alerting_host', 'public_endpoint': 'alerts', 'port': 443, 'description': 'Alertmanager service', 'sites': ['codfw', 'eqiad'], 'ip': {'codfw': {'default': '208.80.153.42'}, 'eqiad': {'default': '208.80.154.78'}}, 'state': 'production'}, 'graphite': {'encryption': True, 'role': 'graphite::production', 'public_endpoint': 'graphite', 'port': 443, 'description': 'Graphite metrics platform', 'page': False, 'probes': [{'type': 'http', 'host': 'graphite.wikimedia.org', 'expect_sso': True}], 'sites': ['codfw', 'eqiad'], 'ip': {'codfw': {'default': '10.192.16.37'}, 'eqiad': {'default': '10.64.16.81'}}, 'state': 'production'}, 'grafana': {'encryption': True, 'role': 'grafana', 'public_endpoint': 'grafana', 'public_aliases': ['grafana-rw', 'grafana-next', 'grafana-next-rw'], 'port': 443, 'description': 'Graphing and dashboarding', 'page': False, 'probes': [{'type': 'http', 'host': 'grafana.wikimedia.org'}], 'sites': ['codfw', 'eqiad'], 'ip': {'codfw': {'default': '10.192.0.160'}, 'eqiad': {'default': '10.64.0.119'}}, 'state': 'production'}, 'librenms': {'encryption': True, 'role': 'netmon', 'public_endpoint': 'librenms', 'port': 443, 'description': 'Network device observability', 'page': False, 'probes': [{'type': 'http', 'host': 'librenms.wikimedia.org', 'expect_sso': True}], 'sites': ['codfw', 'eqiad'], 'ip': {'codfw': {'default': '208.80.153.9'}, 'eqiad': {'default': '208.80.154.141'}}, 'state': 'production'}, 'inference': {'description': 'Inference ML service', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.63'}, 'codfw': {'default': '10.2.1.63'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'ml_serve', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'http', 'valid_status_codes': [404]}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'inference', 'active_active': True}]}, 'inference-staging': {'description': 'Inference ML service (staging)', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.58'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'ml_staging', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'tcp-notls'}], 'port': 30443, 'sites': ['codfw'], 'state': 'lvs_setup'}, 'inference-staging-grpc': {'description': 'Inference ML service GRPC (staging)', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.58'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'ml_staging', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr'}, 'page': False, 'probes': [{'type': 'tcp-notls'}], 'port': 30051, 'sites': ['codfw'], 'state': 'production'}, 'apt': {'description': 'Internal apt package repository', 'encryption': False, 'ip': {'codfw': {'default': '208.80.153.11'}, 'eqiad': {'default': '208.80.154.10'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'apt.wikimedia.org', 'path': '/wikimedia/'}], 'sites': ['eqiad', 'codfw'], 'port': 80, 'state': 'production', 'discovery': [{'dnsdisc': 'apt', 'active_active': False}], 'exclude_from_switchover': True}, 'puppetboard': {'description': 'Internal production Puppetboard interface', 'encryption': True, 'ip': {'codfw': {'default': '10.192.0.8'}, 'eqiad': {'default': '10.64.32.38'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'puppetboard.wikimedia.org', 'expect_sso': True}], 'sites': ['eqiad', 'codfw'], 'port': 443, 'state': 'production', 'discovery': [{'dnsdisc': 'puppetboard', 'active_active': True}]}, 'data-gateway': {'description': 'data gateway service, data-gateway.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'path': '/healthz'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'data-gateway-staging': {'description': 'data gateway staging service, data-gateway.k8s-staging.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.69'}, 'eqiad': {'default': '10.2.2.69'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'host': 'data-gateway.k8s-staging.discovery.wmnet', 'path': '/healthz'}], 'sites': ['eqiad'], 'state': 'production'}, 'developer-portal': {'description': 'Static documentation site, developer-portal.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'netbox': {'description': 'Netbox Frontend', 'encryption': True, 'ip': {'codfw': {'default': '10.192.0.54'}, 'eqiad': {'default': '10.64.0.103'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'netbox.wikimedia.org', 'expect_sso': True}], 'sites': ['eqiad', 'codfw'], 'port': 443, 'state': 'production', 'discovery': [{'dnsdisc': 'netbox', 'active_active': False}], 'exclude_from_switchover': True}, 'logs-api': {'description': 'API access to opensearch for logs', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.79'}, 'eqiad': {'default': '10.2.2.79'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kibana7', 'service': 'logs-api'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://logs-api.svc.eqiad.wmnet']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw']}, 'probes': [{'type': 'http', 'host': 'logs-api.svc.eqiad.wmnet'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'commons-impact-analytics': {'description': 'commons-impact-analytics AQS2 service, commons-impact-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'path': '/healthz'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'device-analytics': {'description': 'device-analytics AQS2 service, device-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.80'}, 'eqiad': {'default': '10.2.2.80'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4972, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'device-analytics', 'active_active': True}]}, 'geo-analytics': {'description': 'geo-analytics AQS2 service, geo-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'path': '/healthz'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'media-analytics': {'description': 'media-analytics AQS2 service, media-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'path': '/healthz'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'page-analytics': {'description': 'page-analytics AQS2 service, page-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'path': '/healthz'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'editor-analytics': {'description': 'editor-analytics AQS2 service, editor-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'path': '/healthz'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'edit-analytics': {'description': 'edit-analytics AQS2 service, edit-analytics.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'path': '/healthz'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'pki': {'description': 'PKI service', 'encryption': False, 'ip': {'codfw': {'default': '10.192.16.172'}, 'eqiad': {'default': '10.64.173.2'}}, 'probes': [{'type': 'http', 'path': '/metrics', 'must_contain_regexp': 'signer="discovery2026"'}], 'sites': ['eqiad', 'codfw'], 'port': 80, 'state': 'production', 'page': False, 'discovery': [{'dnsdisc': 'pki', 'active_active': True}]}, 'rest-gateway': {'description': 'REST API gateway, rest-gateway.discovery.wmnet. See REST Gateway page on wikitech for URLs proxied', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.82'}, 'eqiad': {'default': '10.2.2.82'}}, 'lvs': {'class': 'low-traffic', 'conftool': {'cluster': 'kubernetes', 'service': 'kubesvc'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'wrr', 'protocol': 'tcp'}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 4113, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'rest-gateway', 'active_active': False}, {'dnsdisc': 'rest-gateway-ro', 'active_active': True}]}, 'machinetranslation': {'description': 'MinT, machinetranslation service backend. Use by cxserver. machinetranslation.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthz'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'wikifunctions': {'description': 'Wikifunctions orchestrator, wikifunctions.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'wikifunctions-python-evaluator-staging': {'description': 'Wikifunctions Python evaluator staging endpoint', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.69'}, 'eqiad': {'default': '10.2.2.69'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'host': 'wikifunctions-python-evaluator.k8s-staging.discovery.wmnet', 'path': '/_info'}], 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'wikifunctions-python-evaluator': {'description': 'Wikifunctions Python evaluator endpoint', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info', 'timeout': '10s'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'wikifunctions-javascript-evaluator-staging': {'description': 'Wikifunctions JS evaluator staging endpoint', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.69'}, 'eqiad': {'default': '10.2.2.69'}}, 'page': False, 'port': 30443, 'probes': [{'type': 'http', 'host': 'wikifunctions-javascript-evaluator.k8s-staging.discovery.wmnet', 'path': '/_info'}], 'sites': ['eqiad'], 'state': 'production'}, 'wikifunctions-javascript-evaluator': {'description': 'Wikifunctions JS evaluator endpoint', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info', 'timeout': '10s'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'config-master': {'description': 'config-master.wikimedia.org service for browsing configuration data from etcd.', 'encryption': True, 'ip': {'codfw': {'default': '10.192.0.15'}, 'eqiad': {'default': '10.64.0.110'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 443, 'sites': ['eqiad', 'codfw'], 'state': 'production', 'discovery': [{'dnsdisc': 'config-master', 'active_active': True}]}, 'ipoid': {'description': 'iPoid IP address reputation service ipoid.discovery.wmnet', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/_info'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'superset-next': {'description': 'Staging superset service, superset-next.wikimedia.org', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/health'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'production'}, 'superset': {'description': 'Production superset service, superset.wikimedia.org', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/health'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'production'}, 'growthbook-api-next': {'description': 'Staging growthbook API service, growthbook-api-next.wikimedia.org', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthcheck'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'production'}, 'growthbook-api': {'description': 'Production growthbook API service, growthbook-api.wikimedia.org', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http', 'path': '/healthcheck'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'production'}, 'test-kitchen': {'description': 'Production test-kitchen service, test-kitchen.wikimedia.org', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'service_setup'}, 'test-kitchen-next': {'description': 'Staging test-kitchen service, test-kitchen-next.wikimedia.org', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'service_setup'}, 'chart-renderer': {'description': 'Stateless microservice that renders charts as SVGs with Apache eCharts, used by https://www.mediawiki.org/wiki/Extension:Chart', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.70'}, 'eqiad': {'default': '10.2.2.70'}}, 'page': True, 'probes': [{'type': 'http', 'path': '/_info', 'timeout': '10s'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'blunderbuss': {'description': 'HDFS synchronizer service, see T371994', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'service_setup'}, 'opensearch-test': {'description': 'opensearch on kubernetes test, see T362105', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'production'}, 'opensearch-ipoid': {'description': 'ipoid on opensearch, see T357753', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['codfw', 'eqiad'], 'state': 'production'}, 'opensearch-semantic-search': {'description': 'semantic search for wikis, see T413969', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['codfw', 'eqiad'], 'state': 'production'}, 'opensearch-ttmserver-test': {'description': 'Translatewiki opensearch test server, see T424248', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['codfw', 'eqiad'], 'state': 'service_setup'}, 'opensearch-toolhub-test': {'description': 'Toolhub opensearch test server, see T426073', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['codfw', 'eqiad'], 'state': 'service_setup'}, 'eventstreams-internal': {'description': 'Internal streams of events via HTTP + SSE, backed by Kafka. eventstreams-internal.discovery.wmnet', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.91'}, 'codfw': {'default': '10.2.1.91'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'production'}, 'analytics-web': {'encryption': True, 'role': 'analytics_cluster::webserver', 'public_endpoint': 'analytics', 'port': 8443, 'description': 'Dashboards and Data Downloads for Wikimedia Projects', 'page': False, 'probes': [{'type': 'http', 'host': 'analytics.wikimedia.org', 'expect_sso': True}], 'sites': ['eqiad'], 'ip': {'eqiad': {'default': '10.64.21.14'}}, 'state': 'service_setup'}, 'codesearch': {'description': 'UI to search through Wikimedia code repositories', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'codesearch.wikimedia.org'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'service_setup'}, 'zarcillo': {'description': 'DB automation', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'zarcillo.wikimedia.org'}], 'port': 30443, 'sites': ['eqiad'], 'state': 'service_setup'}, 'os-reports': {'description': 'OS Reports', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'os-reports.wikimedia.org'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'service_setup'}, 'wmf-navigator': {'description': 'WMF Navigator', 'encryption': True, 'ip': {'eqiad': {'default': '10.2.2.78'}, 'codfw': {'default': '10.2.1.78'}}, 'page': False, 'probes': [{'type': 'http', 'host': 'wmf-navigator.wikimedia.org'}], 'port': 30443, 'sites': ['eqiad', 'codfw'], 'state': 'service_setup'}, 'gerrit-https': {'description': 'Gerrit Code Review - HTTPS interface', 'encryption': True, 'ip': {'eqiad': {'gerritlb': '208.80.154.225', 'gerritlb6': '2620:0:861:ed1a::2'}, 'codfw': {'gerritlb': '208.80.153.225', 'gerritlb6': '2620:0:860:ed1a::2'}, 'esams': {'gerritlb': '185.15.59.225', 'gerritlb6': '2a02:ec80:300:ed1a::2'}, 'ulsfo': {'gerritlb': '198.35.26.225', 'gerritlb6': '2620:0:863:ed1a::2'}, 'eqsin': {'gerritlb': '103.102.166.225', 'gerritlb6': '2001:df2:e500:ed1a::2'}, 'drmrs': {'gerritlb': '185.15.58.225', 'gerritlb6': '2a02:ec80:600:ed1a::2'}, 'magru': {'gerritlb': '195.200.68.225', 'gerritlb6': '2a02:ec80:700:ed1a::2'}}, 'lvs': {'class': 'high-traffic1', 'conftool': {'cluster': 'cache_text', 'service': 'cdn'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'ProxyFetch': {'url': ['https://healthcheck.wikimedia.org/varnish-fe']}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'page': False, 'probes': [{'type': 'http', 'host': 'gerrit.wikimedia.org', 'path': '/r/'}], 'port': 443, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'gerrit-ssh': {'description': 'Gerrit Code Review - SSH interface', 'encryption': False, 'ip': {'eqiad': {'gerritlb': '208.80.154.225', 'gerritlb6': '2620:0:861:ed1a::2'}, 'codfw': {'gerritlb': '208.80.153.225', 'gerritlb6': '2620:0:860:ed1a::2'}, 'esams': {'gerritlb': '185.15.59.225', 'gerritlb6': '2a02:ec80:300:ed1a::2'}, 'ulsfo': {'gerritlb': '198.35.26.225', 'gerritlb6': '2620:0:863:ed1a::2'}, 'eqsin': {'gerritlb': '103.102.166.225', 'gerritlb6': '2001:df2:e500:ed1a::2'}, 'drmrs': {'gerritlb': '185.15.58.225', 'gerritlb6': '2a02:ec80:600:ed1a::2'}, 'magru': {'gerritlb': '195.200.68.225', 'gerritlb6': '2a02:ec80:700:ed1a::2'}}, 'lvs': {'class': 'high-traffic1', 'conftool': {'cluster': 'tcp-proxy', 'service': 'gerrit'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'ipip_encapsulation': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru']}, 'page': False, 'probes': [{'type': 'tcp'}], 'port': 29418, 'sites': ['eqiad', 'codfw', 'esams', 'ulsfo', 'eqsin', 'drmrs', 'magru'], 'state': 'production'}, 'dumps-https': {'description': 'Dump file distribution - HTTPS interface', 'encryption': True, 'ip': {'eqiad': {'dumps-lb': '208.80.154.242', 'dumps-lb6': '2620:0:861:ed1a::3:242'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'dumps', 'service': 'dumps-https'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}, 'ProxyFetch': {'url': ['https://dumps.wikimedia.org']}}, 'scheduler': 'mh', 'protocol': 'tcp', 'ipip_encapsulation': ['eqiad']}, 'page': True, 'team': 'wmcs', 'probes': [{'type': 'http', 'host': 'dumps.wikimedia.org', 'path': '/'}], 'port': 443, 'sites': ['eqiad'], 'state': 'production'}, 'dumps-rsync': {'description': 'Dump file distribution - rsync interface', 'encryption': False, 'ip': {'eqiad': {'dumps-lb': '208.80.154.242', 'dumps-lb6': '2620:0:861:ed1a::3:242'}}, 'lvs': {'class': 'high-traffic2', 'conftool': {'cluster': 'dumps', 'service': 'dumps-rsync'}, 'depool_threshold': 0.5, 'enabled': True, 'monitors': {'IdleConnection': {'max-delay': 300, 'timeout-clean-reconnect': 3}}, 'scheduler': 'mh', 'protocol': 'tcp', 'ipip_encapsulation': ['eqiad']}, 'page': True, 'team': 'wmcs', 'probes': [{'type': 'tcp-notls'}], 'port': 873, 'sites': ['eqiad'], 'state': 'production'}, 'recommendation-api-ng': {'description': 'Liftwing recommendation-api-ng service', 'encryption': True, 'ip': {'codfw': {'default': '10.2.1.84'}, 'eqiad': {'default': '10.2.2.84'}}, 'page': False, 'probes': [{'type': 'http'}], 'port': 31443, 'sites': ['eqiad', 'codfw'], 'state': 'service_setup'}}
Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]
- Parameters differences:
--- Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr].orig
+++ Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]
- common_name => eventstreams-internal-deploy
- key => {'algo': 'ecdsa', 'size': 256}
- ensure => present
- hosts => []
- names => [{'organisation': 'view'}, {'organisation': 'deploy'}]
- Exec[Generate cert wikikube_staging__eventstreams-internal]
- Parameters differences:
--- Exec[Generate cert wikikube_staging__eventstreams-internal].orig
+++ Exec[Generate cert wikikube_staging__eventstreams-internal]
- unless => /usr/bin/test "$(/usr/bin/openssl x509 -in /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem -noout -pubkey 2>&1)" == "$(/usr/bin/openssl pkey -pubout -in /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem 2>&1)"
- command => /usr/bin/cfssl gencert -config /etc/cfssl/client-cfssl.conf -tls-remote-ca /etc/ssl/certs/wmf-ca-certificates.crt -mutual-tls-client-cert /etc/cfssl/mutual_tls_client_cert.pem -mutual-tls-client-key /var/lib/puppet/ssl/private_keys/deploy1003.eqiad.wmnet.pem -label wikikube_staging /etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr | /usr/bin/cfssljson -bare /etc/kubernetes/pki/wikikube_staging__eventstreams-internal
- require => Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr]
- environment => ['GODEBUG=x509ignoreCN=0']
- Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]
- Parameters differences:
--- Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal.csr].orig
+++ Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]
- common_name => eventstreams-internal
- key => {'algo': 'ecdsa', 'size': 256}
- ensure => present
- hosts => []
- names => [{'organisation': 'view'}]
- Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]
- Parameters differences:
--- Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem].orig
+++ Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]
- unless => /usr/bin/test "$(/bin/cat /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem | sha512sum)" == "$(/bin/cat /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chained.pem | sha512sum)"
- command => /bin/cat /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem > /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chained.pem
- require => Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh on intermediate ca change]
- subscribe => ['Exec[renew certificate - wikikube_staging__eventstreams-internal-deploy]', 'File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]', 'File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem]']
- File[/etc/helmfile-defaults/services-staging.yaml]
- Content differences:
--- /etc/helmfile-defaults/services-staging.yaml.orig
+++ /etc/helmfile-defaults/services-staging.yaml
@@ -84,10 +84,6 @@
usernames:
- name: eventstreams
- name: eventstreams-deploy
- eventstreams-internal:
- usernames:
- - name: eventstreams-internal
- - name: eventstreams-internal-deploy
failoid-ng:
usernames:
- name: failoid-ng
- File[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config]
- Parameters differences:
--- File[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config].orig
+++ File[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config]
- group => deployment
- owner => mwdeploy
- mode => 0640
- ensure => present
- Content differences:
--- /etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config.orig
+++ /etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config
@@ -1,19 +0,0 @@
-apiVersion: v1
-kind: Config
-preferences: {}
-current-context: default-system
-contexts:
-- name: default-system
- context:
- cluster: default-cluster
- user: eventstreams-internal-deploy
- namespace: eventstreams-internal
-clusters:
-- name: default-cluster
- cluster:
- server: https://kubestagemaster.svc.codfw.wmnet:6443
-users:
-- name: eventstreams-internal-deploy
- user:
- client-certificate: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem
- client-key: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem
- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]
- Parameters differences:
--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem].orig
+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]
- owner => mwdeploy
- mode => 0440
- ensure => file
- group => deployment
- source => puppet:///modules/profile/pki/intermediates/wikikube_staging-cert.pem
- Exec[Generate cert wikikube__eventstreams-internal-deploy refresh on intermediate ca change]
- Parameters differences:
--- Exec[Generate cert wikikube__eventstreams-internal-deploy refresh on intermediate ca change].orig
+++ Exec[Generate cert wikikube__eventstreams-internal-deploy refresh on intermediate ca change]
- command => /usr/bin/cfssl gencert -config /etc/cfssl/client-cfssl.conf -tls-remote-ca /etc/ssl/certs/wmf-ca-certificates.crt -mutual-tls-client-cert /etc/cfssl/mutual_tls_client_cert.pem -mutual-tls-client-key /var/lib/puppet/ssl/private_keys/deploy1003.eqiad.wmnet.pem -label wikikube /etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr | /usr/bin/cfssljson -bare /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy
- subscribe => File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]
- refreshonly => True
- require => Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]
- environment => ['GODEBUG=x509ignoreCN=0']
- Exec[renew certificate - wikikube_staging__eventstreams-internal-deploy]
- Parameters differences:
--- Exec[renew certificate - wikikube_staging__eventstreams-internal-deploy].orig
+++ Exec[renew certificate - wikikube_staging__eventstreams-internal-deploy]
- unless => /usr/bin/openssl x509 -in /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem -checkend 172800
- command => /usr/bin/cfssl sign -config /etc/cfssl/client-cfssl.conf -tls-remote-ca /etc/ssl/certs/wmf-ca-certificates.crt -mutual-tls-client-cert /etc/cfssl/mutual_tls_client_cert.pem -mutual-tls-client-key /var/lib/puppet/ssl/private_keys/deploy1003.eqiad.wmnet.pem -label wikikube_staging /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.csr | /usr/bin/cfssljson -bare /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy
- require => Exec[Generate cert wikikube_staging__eventstreams-internal-deploy]
- environment => ['GODEBUG=x509ignoreCN=0']
- Exec[Generate cert wikikube__eventstreams-internal-deploy]
- Parameters differences:
--- Exec[Generate cert wikikube__eventstreams-internal-deploy].orig
+++ Exec[Generate cert wikikube__eventstreams-internal-deploy]
- unless => /usr/bin/test "$(/usr/bin/openssl x509 -in /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem -noout -pubkey 2>&1)" == "$(/usr/bin/openssl pkey -pubout -in /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy-key.pem 2>&1)"
- command => /usr/bin/cfssl gencert -config /etc/cfssl/client-cfssl.conf -tls-remote-ca /etc/ssl/certs/wmf-ca-certificates.crt -mutual-tls-client-cert /etc/cfssl/mutual_tls_client_cert.pem -mutual-tls-client-key /var/lib/puppet/ssl/private_keys/deploy1003.eqiad.wmnet.pem -label wikikube /etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr | /usr/bin/cfssljson -bare /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy
- require => Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]
- environment => ['GODEBUG=x509ignoreCN=0']
- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem]
- Parameters differences:
--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem].orig
+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem]
- owner => mwdeploy
- backup => False
- show_diff => False
- mode => 0440
- ensure => file
- group => deployment
- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging.config]
- Parameters differences:
--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging.config].orig
+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging.config]
- owner => mwdeploy
- mode => 0640
- namespace => eventstreams-internal
- group => deployment
- username => eventstreams-internal-deploy
- master_host => kubestagemaster.svc.eqiad.wmnet
- ensure => present
- auth_cert => {'cert': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem', 'key': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem', 'chain': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem', 'chained': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chained.pem'}
- require => ['Class[K8s::Base_dirs]']
- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging-codfw.config]
- Parameters differences:
--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging-codfw.config].orig
+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging-codfw.config]
- owner => mwdeploy
- mode => 0640
- namespace => eventstreams-internal
- group => deployment
- username => eventstreams-internal
- master_host => kubestagemaster.svc.codfw.wmnet
- ensure => present
- auth_cert => {'cert': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem', 'key': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem', 'chain': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem', 'chained': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chained.pem'}
- require => ['Class[K8s::Base_dirs]']
- File[/etc/kubernetes/eventstreams-internal-staging-eqiad.config]
- Parameters differences:
--- File[/etc/kubernetes/eventstreams-internal-staging-eqiad.config].orig
+++ File[/etc/kubernetes/eventstreams-internal-staging-eqiad.config]
- group => deployment
- owner => mwdeploy
- mode => 0640
- ensure => present
- Content differences:
--- /etc/kubernetes/eventstreams-internal-staging-eqiad.config.orig
+++ /etc/kubernetes/eventstreams-internal-staging-eqiad.config
@@ -1,19 +0,0 @@
-apiVersion: v1
-kind: Config
-preferences: {}
-current-context: default-system
-contexts:
-- name: default-system
- context:
- cluster: default-cluster
- user: eventstreams-internal
- namespace: eventstreams-internal
-clusters:
-- name: default-cluster
- cluster:
- server: https://kubestagemaster.svc.eqiad.wmnet:6443
-users:
-- name: eventstreams-internal
- user:
- client-certificate: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem
- client-key: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem
- Class[Profile::Kubernetes::Deployment_server::Helmfile]
- Parameters differences:
--- Class[Profile::Kubernetes::Deployment_server::Helmfile].orig
+++ Class[Profile::Kubernetes::Deployment_server::Helmfile]
@@
- services => {'main': {'apertium': {'usernames': [{'name': 'apertium'}, {'name': 'apertium-deploy'}]}, 'api-gateway': {'usernames': [{'name': 'api-gateway'}, {'name': 'api-gateway-deploy'}]}, 'benthos-cache-invalidator': {'usernames': [{'name': 'benthos-cache-invalidator'}, {'name': 'benthos-cache-invalidator-deploy'}]}, 'changeprop': {'usernames': [{'name': 'changeprop'}, {'name': 'changeprop-deploy'}]}, 'changeprop-jobqueue': {'usernames': [{'name': 'changeprop-jobqueue'}, {'name': 'changeprop-jobqueue-deploy'}]}, 'chart-renderer': {'usernames': [{'name': 'chart-renderer'}, {'name': 'chart-renderer-deploy'}]}, 'cirrus-streaming-updater': {'usernames': [{'name': 'cirrus-streaming-updater'}, {'name': 'cirrus-streaming-updater-deploy'}]}, 'citoid': {'usernames': [{'name': 'citoid'}, {'name': 'citoid-deploy'}]}, 'commons-impact-analytics': {'usernames': [{'name': 'commons-impact-analytics'}, {'name': 'commons-impact-analytics-deploy'}]}, 'cxserver': {'usernames': [{'name': 'cxserver'}, {'name': 'cxserver-deploy'}]}, 'data-gateway': {'usernames': [{'name': 'data-gateway'}, {'name': 'data-gateway-deploy'}]}, 'developer-portal': {'usernames': [{'name': 'developer-portal'}, {'name': 'developer-portal-deploy'}]}, 'device-analytics': {'usernames': [{'name': 'device-analytics'}, {'name': 'device-analytics-deploy'}]}, 'echostore': {'usernames': [{'name': 'echostore'}, {'name': 'echostore-deploy'}]}, 'edit-analytics': {'usernames': [{'name': 'edit-analytics'}, {'name': 'edit-analytics-deploy'}]}, 'editor-analytics': {'usernames': [{'name': 'editor-analytics'}, {'name': 'editor-analytics-deploy'}]}, 'eventgate-analytics': {'usernames': [{'name': 'eventgate-analytics'}, {'name': 'eventgate-analytics-deploy'}]}, 'eventgate-analytics-external': {'usernames': [{'name': 'eventgate-analytics-external'}, {'name': 'eventgate-analytics-external-deploy'}]}, 'eventgate-logging-external': {'usernames': [{'name': 'eventgate-logging-external'}, {'name': 'eventgate-logging-external-deploy'}]}, 'eventgate-main': {'usernames': [{'name': 'eventgate-main'}, {'name': 'eventgate-main-deploy'}]}, 'eventstreams': {'usernames': [{'name': 'eventstreams'}, {'name': 'eventstreams-deploy'}]}, 'eventstreams-internal': {'usernames': [{'name': 'eventstreams-internal'}, {'name': 'eventstreams-internal-deploy'}]}, 'failoid-ng': {'usernames': [{'name': 'failoid-ng'}, {'name': 'failoid-ng-deploy'}]}, 'geo-analytics': {'usernames': [{'name': 'geo-analytics'}, {'name': 'geo-analytics-deploy'}]}, 'ipoid': {'usernames': [{'name': 'ipoid'}, {'name': 'ipoid-deploy'}]}, 'kartotherian': {'usernames': [{'name': 'kartotherian'}, {'name': 'kartotherian-deploy'}]}, 'linked-artifacts': {'usernames': [{'name': 'linked-artifacts'}, {'name': 'linked-artifacts-deploy'}]}, 'linkrecommendation': {'usernames': [{'name': 'linkrecommendation'}, {'name': 'linkrecommendation-deploy'}]}, 'machinetranslation': {'usernames': [{'name': 'machinetranslation'}, {'name': 'machinetranslation-deploy'}]}, 'mathoid': {'usernames': [{'name': 'mathoid'}, {'name': 'mathoid-deploy'}]}, 'media-analytics': {'usernames': [{'name': 'media-analytics'}, {'name': 'media-analytics-deploy'}]}, 'miscweb': {'usernames': [{'name': 'miscweb'}, {'name': 'miscweb-deploy'}]}, 'mobileapps': {'usernames': [{'name': 'mobileapps'}, {'name': 'mobileapps-deploy'}]}, 'mw-api-ext': {'usernames': [{'name': 'mw-api-ext'}, {'name': 'mw-api-ext-deploy'}]}, 'mw-api-int': {'usernames': [{'name': 'mw-api-int'}, {'name': 'mw-api-int-deploy'}]}, 'mw-cron': {'usernames': [{'name': 'mw-cron'}, {'name': 'mw-cron-deploy'}, {'group': 'restricted', 'name': 'mw-cron-restricted'}, {'group': 'restricted', 'name': 'mw-cron-restricted-deploy'}]}, 'mw-debug': {'usernames': [{'name': 'mw-debug'}, {'name': 'mw-debug-deploy'}]}, 'mw-experimental': {'usernames': [{'name': 'mw-experimental'}, {'name': 'mw-experimental-deploy'}]}, 'mw-jobrunner': {'usernames': [{'name': 'mw-jobrunner'}, {'name': 'mw-jobrunner-deploy'}]}, 'mw-mcrouter': {'usernames': [{'name': 'mw-mcrouter'}, {'name': 'mw-mcrouter-deploy'}]}, 'mw-misc': {'usernames': [{'name': 'mw-misc'}, {'name': 'mw-misc-deploy'}]}, 'mw-page-content-change-enrich': {'usernames': [{'name': 'mw-page-content-change-enrich'}, {'name': 'mw-page-content-change-enrich-deploy'}]}, 'mw-parsoid': {'usernames': [{'name': 'mw-parsoid'}, {'name': 'mw-parsoid-deploy'}]}, 'mw-script': {'usernames': [{'name': 'mw-script'}, {'name': 'mw-script-deploy'}, {'group': 'restricted', 'name': 'mw-script-restricted'}, {'group': 'restricted', 'name': 'mw-script-restricted-deploy'}]}, 'mw-videoscaler': {'usernames': [{'name': 'mw-videoscaler'}, {'name': 'mw-videoscaler-deploy'}]}, 'mw-web': {'usernames': [{'name': 'mw-web'}, {'name': 'mw-web-deploy'}]}, 'mw-wikifunctions': {'usernames': [{'name': 'mw-wikifunctions'}, {'name': 'mw-wikifunctions-deploy'}]}, 'opentelemetry-collector': {'usernames': [{'name': 'opentelemetry-collector'}, {'name': 'opentelemetry-collector-deploy'}]}, 'page-analytics': {'usernames': [{'name': 'page-analytics'}, {'name': 'page-analytics-deploy'}]}, 'proton': {'usernames': [{'name': 'proton'}, {'name': 'proton-deploy'}]}, 'push-notifications': {'usernames': [{'name': 'push-notifications'}, {'name': 'push-notifications-deploy'}]}, 'ratelimit': {'usernames': [{'name': 'ratelimit'}, {'name': 'ratelimit-deploy'}]}, 'rdf-streaming-updater': {'usernames': [{'name': 'rdf-streaming-updater'}, {'name': 'rdf-streaming-updater-deploy'}]}, 'recommendation-api': {'usernames': [{'name': 'recommendation-api'}, {'name': 'recommendation-api-deploy'}]}, 'rest-gateway': {'usernames': [{'name': 'rest-gateway'}, {'name': 'rest-gateway-deploy'}]}, 'sessionstore': {'usernames': [{'name': 'sessionstore'}, {'name': 'sessionstore-deploy'}]}, 'shellbox': {'usernames': [{'name': 'shellbox'}, {'name': 'shellbox-deploy'}]}, 'shellbox-constraints': {'usernames': [{'name': 'shellbox-constraints'}, {'name': 'shellbox-constraints-deploy'}]}, 'shellbox-media': {'usernames': [{'name': 'shellbox-media'}, {'name': 'shellbox-media-deploy'}]}, 'shellbox-syntaxhighlight': {'usernames': [{'name': 'shellbox-syntaxhighlight'}, {'name': 'shellbox-syntaxhighlight-deploy'}]}, 'shellbox-timeline': {'usernames': [{'name': 'shellbox-timeline'}, {'name': 'shellbox-timeline-deploy'}]}, 'shellbox-video': {'usernames': [{'name': 'shellbox-video'}, {'name': 'shellbox-video-deploy'}]}, 'tegola-vector-tiles': {'usernames': [{'name': 'tegola-vector-tiles'}, {'name': 'tegola-vector-tiles-deploy'}]}, 'termbox': {'usernames': [{'name': 'termbox'}, {'name': 'termbox-deploy'}]}, 'thumbor': {'usernames': [{'name': 'thumbor'}, {'name': 'thumbor-deploy'}]}, 'toolhub': {'usernames': [{'name': 'toolhub'}, {'name': 'toolhub-deploy'}]}, 'wikidata-query-gui': {'usernames': [{'name': 'wikidata-query-gui'}, {'name': 'wikidata-query-gui-deploy'}]}, 'wikifeeds': {'usernames': [{'name': 'wikifeeds'}, {'name': 'wikifeeds-deploy'}]}, 'wikifunctions': {'usernames': [{'name': 'wikifunctions'}, {'name': 'wikifunctions-deploy'}]}, 'zotero': {'usernames': [{'name': 'zotero'}, {'name': 'zotero-deploy'}]}}, 'ml-serve': {'article-descriptions': {'usernames': [{'group': 'deploy-ml-service', 'name': 'article-descriptions', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'article-descriptions-deploy', 'owner': 'root'}]}, 'article-models': {'usernames': [{'group': 'deploy-ml-service', 'name': 'article-models', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'article-models-deploy', 'owner': 'root'}]}, 'articletopic-outlink': {'usernames': [{'group': 'deploy-ml-service', 'name': 'articletopic-outlink', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'articletopic-outlink-deploy', 'owner': 'root'}]}, 'edit-check': {'usernames': [{'group': 'deploy-ml-service', 'name': 'edit-check', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'edit-check-deploy', 'owner': 'root'}]}, 'experimental': {'usernames': [{'group': 'deploy-ml-service', 'name': 'experimental', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'experimental-deploy', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'experimental-debug', 'owner': 'root'}]}, 'llm': {'usernames': [{'group': 'deploy-ml-service', 'name': 'llm', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'llm-deploy', 'owner': 'root'}]}, 'logo-detection': {'usernames': [{'group': 'deploy-ml-service', 'name': 'logo-detection', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'logo-detection-deploy', 'owner': 'root'}]}, 'ores-legacy': {'usernames': [{'group': 'deploy-ml-service', 'name': 'ores-legacy', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'ores-legacy-deploy', 'owner': 'root'}]}, 'readability': {'usernames': [{'group': 'deploy-ml-service', 'name': 'readability', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'readability-deploy', 'owner': 'root'}]}, 'recommendation-api-ng': {'usernames': [{'group': 'deploy-ml-service', 'name': 'recommendation-api-ng', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'recommendation-api-ng-deploy', 'owner': 'root'}]}, 'revertrisk': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revertrisk', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revertrisk-deploy', 'owner': 'root'}]}, 'revise-tone-task-generator': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revise-tone-task-generator', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revise-tone-task-generator-deploy', 'owner': 'root'}]}, 'revision-models': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revision-models', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revision-models-deploy', 'owner': 'root'}]}, 'revscoring-articlequality': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-articlequality', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-articlequality-deploy', 'owner': 'root'}]}, 'revscoring-articletopic': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-articletopic', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-articletopic-deploy', 'owner': 'root'}]}, 'revscoring-draftquality': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-draftquality', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-draftquality-deploy', 'owner': 'root'}]}, 'revscoring-drafttopic': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-drafttopic', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-drafttopic-deploy', 'owner': 'root'}]}, 'revscoring-editquality-damaging': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-editquality-damaging', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-editquality-damaging-deploy', 'owner': 'root'}]}, 'revscoring-editquality-goodfaith': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-editquality-goodfaith', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-editquality-goodfaith-deploy', 'owner': 'root'}]}, 'revscoring-editquality-reverted': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-editquality-reverted', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-editquality-reverted-deploy', 'owner': 'root'}]}}, 'dse-k8s': {'analytics': {'usernames': [{'group': 'analytics-deployers', 'name': 'analytics', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'analytics-deploy', 'owner': 'root'}]}, 'analytics-test': {'usernames': [{'group': 'analytics-deployers', 'name': 'analytics-test', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'analytics-test-deploy', 'owner': 'root'}]}, 'kafka-mirrormaker': {'usernames': [{'name': 'kafka-mirrormaker'}, {'name': 'kafka-mirrormaker-deploy'}]}, 'opensearch-ipoid': {'usernames': [{'name': 'opensearch-ipoid'}, {'name': 'opensearch-ipoid-deploy'}]}, 'opensearch-ipoid-test': {'usernames': [{'name': 'opensearch-ipoid-test'}, {'name': 'opensearch-ipoid-test-deploy'}]}, 'opensearch-operator': {'usernames': [{'name': 'opensearch-operator'}, {'name': 'opensearch-operator-deploy'}]}, 'opensearch-operator-3': {'usernames': [{'name': 'opensearch-operator-3'}, {'name': 'opensearch-operator-3-deploy'}]}, 'opensearch-semantic-search': {'usernames': [{'name': 'opensearch-semantic-search'}, {'name': 'opensearch-semantic-search-deploy'}]}, 'opensearch-semantic-search-test': {'usernames': [{'name': 'opensearch-semantic-search-test'}, {'name': 'opensearch-semantic-search-test-deploy'}]}, 'opensearch-test': {'usernames': [{'name': 'opensearch-test'}, {'name': 'opensearch-test-deploy'}]}, 'opensearch-toolhub': {'usernames': [{'name': 'opensearch-toolhub'}, {'name': 'opensearch-toolhub-deploy'}]}, 'opensearch-toolhub-test': {'usernames': [{'name': 'opensearch-toolhub-test'}, {'name': 'opensearch-toolhub-test-deploy'}]}, 'opensearch-apifeatureusage': {'usernames': [{'name': 'opensearch-apifeatureusage'}, {'name': 'opensearch-apifeatureusage-deploy'}]}, 'opensearch-apifeatureusage-test': {'usernames': [{'name': 'opensearch-apifeatureusage-test'}, {'name': 'opensearch-apifeatureusage-test-deploy'}]}, 'opensearch-ttmserver': {'usernames': [{'name': 'opensearch-ttmserver'}, {'name': 'opensearch-ttmserver-deploy'}]}, 'opensearch-ttmserver-test': {'usernames': [{'name': 'opensearch-ttmserver-test'}, {'name': 'opensearch-ttmserver-test-deploy'}]}, 'wdqs-internal': {'usernames': [{'name': 'wdqs-internal'}, {'name': 'wdqs-internal-deploy'}]}, 'wdqs-internal-next': {'usernames': [{'name': 'wdqs-internal-next'}, {'name': 'wdqs-internal-next-deploy'}]}, 'wdqs-external': {'usernames': [{'name': 'wdqs-external'}, {'name': 'wdqs-external-deploy'}]}, 'wdqs-external-next': {'usernames': [{'name': 'wdqs-external-next'}, {'name': 'wdqs-external-next-deploy'}]}}, 'dse-k8s-codfw': {'echoserver': {'usernames': [{'name': 'echoserver'}, {'name': 'echoserver-deploy'}]}}, 'dse-k8s-eqiad': {'airflow-analytics-product': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-analytics-product', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-analytics-product-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-product', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-product-deploy', 'owner': 'root'}]}, 'airflow-analytics-test': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-analytics-test', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-analytics-test-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-test', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-test-deploy', 'owner': 'root'}]}, 'airflow-dev': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-dev', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-dev-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-dev', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-dev-deploy', 'owner': 'root'}]}, 'airflow-fr-tech': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-fr-tech', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-fr-tech-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-fr-tech', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-fr-tech-deploy', 'owner': 'root'}]}, 'airflow-main': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-main', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-main-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-main', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-main-deploy', 'owner': 'root'}]}, 'airflow-ml': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-ml', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-ml-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-ml', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-ml-deploy', 'owner': 'root'}]}, 'airflow-platform-eng': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-platform-eng', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-platform-eng-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-platform-eng', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-platform-eng-deploy', 'owner': 'root'}]}, 'airflow-research': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-research', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-research-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-research', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-research-deploy', 'owner': 'root'}]}, 'airflow-search': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-search', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-search-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-search', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-search-deploy', 'owner': 'root'}]}, 'airflow-sre': {'private_files': {'group': 'ops', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-sre', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-sre-deploy', 'owner': 'root'}, {'group': 'ops', 'name': 'airflow-sre', 'owner': 'root'}, {'group': 'ops', 'name': 'airflow-sre-deploy', 'owner': 'root'}]}, 'airflow-test-k8s': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-test-k8s', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-test-k8s-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-test-k8s', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-test-k8s-deploy', 'owner': 'root'}]}, 'airflow-wikidata': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-wikidata', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-wikidata-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wikidata', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wikidata-deploy', 'owner': 'root'}]}, 'airflow-wmde': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-wmde', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-wmde-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wmde', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wmde-deploy', 'owner': 'root'}]}, 'blunderbuss': {'usernames': [{'name': 'blunderbuss'}, {'name': 'blunderbuss-deploy'}]}, 'datahub': {'usernames': [{'name': 'datahub'}, {'name': 'datahub-deploy'}]}, 'datahub-next': {'usernames': [{'name': 'datahub-next'}, {'name': 'datahub-next-deploy'}]}, 'datasets-config': {'usernames': [{'name': 'datasets-config'}, {'name': 'datasets-config-deploy'}]}, 'datasets-config-next': {'usernames': [{'name': 'datasets-config-next'}, {'name': 'datasets-config-next-deploy'}]}, 'eventstreams-internal': {'usernames': [{'name': 'eventstreams-internal'}, {'name': 'eventstreams-internal-deploy'}]}, 'growthbook': {'usernames': [{'group': 'root', 'name': 'postgresql-growthbook', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-growthbook-deploy', 'owner': 'root'}, {'name': 'growthbook'}, {'name': 'growthbook-deploy'}]}, 'growthbook-next': {'usernames': [{'group': 'root', 'name': 'postgresql-growthbook-next', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-growthbook-next-deploy', 'owner': 'root'}, {'name': 'growthbook-next'}, {'name': 'growthbook-next-deploy'}]}, 'llm-inference': {'usernames': [{'group': 'research-deployers', 'name': 'llm-inference', 'owner': 'root'}, {'group': 'research-deployers', 'name': 'llm-inference-deploy', 'owner': 'root'}]}, 'mediawiki-dumps-legacy': {'usernames': [{'name': 'mediawiki-dumps-legacy'}, {'name': 'mediawiki-dumps-legacy-deploy'}]}, 'mw-content-history-reconcile-enrich': {'usernames': [{'name': 'mw-content-history-reconcile-enrich'}, {'name': 'mw-content-history-reconcile-enrich-deploy'}]}, 'mw-content-history-reconcile-enrich-next': {'usernames': [{'name': 'mw-content-history-reconcile-enrich-next'}, {'name': 'mw-content-history-reconcile-enrich-next-deploy'}]}, 'mw-dump-rev-content-reconcile-enrich': {'usernames': [{'name': 'mw-dump-rev-content-reconcile-enrich'}, {'name': 'mw-dump-rev-content-reconcile-enrich-deploy'}]}, 'mw-dump-rev-content-reconcile-enrich-next': {'usernames': [{'name': 'mw-dump-rev-content-reconcile-enrich-next'}, {'name': 'mw-dump-rev-content-reconcile-enrich-next-deploy'}]}, 'mw-page-html-content-change-enrich': {'usernames': [{'name': 'mw-page-html-content-change-enrich'}, {'name': 'mw-page-html-content-change-enrich-deploy'}]}, 'mw-page-html-content-change-enrich-next': {'usernames': [{'name': 'mw-page-html-content-change-enrich-next'}, {'name': 'mw-page-html-content-change-enrich-next-deploy'}]}, 'mw-page-html-feature-counts-change-enrich': {'usernames': [{'name': 'mw-page-html-feature-counts-change-enrich'}, {'name': 'mw-page-html-feature-counts-change-enrich-deploy'}]}, 'mw-page-html-feature-counts-change-enrich-next': {'usernames': [{'name': 'mw-page-html-feature-counts-change-enrich-next'}, {'name': 'mw-page-html-feature-counts-change-enrich-next-deploy'}]}, 'rdf-streaming-updater': {'usernames': [{'name': 'rdf-streaming-updater'}, {'name': 'rdf-streaming-updater-deploy'}]}, 'spark': {'usernames': [{'name': 'spark'}, {'name': 'spark-deploy'}]}, 'spark-history': {'usernames': [{'group': 'analytics-deployers', 'name': 'spark-history', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'spark-history-deploy', 'owner': 'root'}]}, 'spark-history-test': {'usernames': [{'group': 'analytics-deployers', 'name': 'spark-history-test', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'spark-history-test-deploy', 'owner': 'root'}]}, 'superset': {'usernames': [{'group': 'analytics-deployers', 'name': 'superset', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'superset-deploy', 'owner': 'root'}]}, 'superset-next': {'usernames': [{'group': 'analytics-deployers', 'name': 'superset-next', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'superset-next-deploy', 'owner': 'root'}]}, 'test-kitchen': {'usernames': [{'name': 'test-kitchen'}, {'name': 'test-kitchen-deploy'}]}, 'test-kitchen-next': {'usernames': [{'name': 'test-kitchen-next'}, {'name': 'test-kitchen-next-deploy'}]}, 'turnilo': {'usernames': [{'name': 'turnilo'}, {'name': 'turnilo-deploy'}]}, 'turnilo-next': {'usernames': [{'name': 'turnilo-next'}, {'name': 'turnilo-next-deploy'}]}, 'webrequest-page-view': {'usernames': [{'name': 'webrequest-page-view'}, {'name': 'webrequest-page-view-deploy'}]}, 'webrequest-page-view-next': {'usernames': [{'name': 'webrequest-page-view-next'}, {'name': 'webrequest-page-view-next-deploy'}]}, 'wdqs-queryhammer': {'usernames': [{'name': 'wdqs-queryhammer'}, {'name': 'wdqs-queryhammer-deploy'}]}}, 'aux-k8s': {'codesearch': {'usernames': [{'name': 'codesearch'}, {'name': 'codesearch-deploy'}]}, 'jaeger': {'usernames': [{'name': 'jaeger'}, {'name': 'jaeger-deploy'}]}, 'kafka-mirrormaker': {'usernames': [{'name': 'kafka-mirrormaker'}, {'name': 'kafka-mirrormaker-deploy'}]}, 'miscweb': {'usernames': [{'name': 'miscweb'}, {'name': 'miscweb-deploy'}]}, 'redioscope': {'usernames': [{'name': 'redioscope'}, {'name': 'redioscope-deploy'}]}, 'sophroid': {'usernames': [{'name': 'sophroid'}, {'name': 'sophroid-deploy'}]}, 'zarcillo': {'usernames': [{'name': 'zarcillo'}, {'name': 'zarcillo-deploy'}]}}}
+ services => {'main': {'apertium': {'usernames': [{'name': 'apertium'}, {'name': 'apertium-deploy'}]}, 'api-gateway': {'usernames': [{'name': 'api-gateway'}, {'name': 'api-gateway-deploy'}]}, 'benthos-cache-invalidator': {'usernames': [{'name': 'benthos-cache-invalidator'}, {'name': 'benthos-cache-invalidator-deploy'}]}, 'changeprop': {'usernames': [{'name': 'changeprop'}, {'name': 'changeprop-deploy'}]}, 'changeprop-jobqueue': {'usernames': [{'name': 'changeprop-jobqueue'}, {'name': 'changeprop-jobqueue-deploy'}]}, 'chart-renderer': {'usernames': [{'name': 'chart-renderer'}, {'name': 'chart-renderer-deploy'}]}, 'cirrus-streaming-updater': {'usernames': [{'name': 'cirrus-streaming-updater'}, {'name': 'cirrus-streaming-updater-deploy'}]}, 'citoid': {'usernames': [{'name': 'citoid'}, {'name': 'citoid-deploy'}]}, 'commons-impact-analytics': {'usernames': [{'name': 'commons-impact-analytics'}, {'name': 'commons-impact-analytics-deploy'}]}, 'cxserver': {'usernames': [{'name': 'cxserver'}, {'name': 'cxserver-deploy'}]}, 'data-gateway': {'usernames': [{'name': 'data-gateway'}, {'name': 'data-gateway-deploy'}]}, 'developer-portal': {'usernames': [{'name': 'developer-portal'}, {'name': 'developer-portal-deploy'}]}, 'device-analytics': {'usernames': [{'name': 'device-analytics'}, {'name': 'device-analytics-deploy'}]}, 'echostore': {'usernames': [{'name': 'echostore'}, {'name': 'echostore-deploy'}]}, 'edit-analytics': {'usernames': [{'name': 'edit-analytics'}, {'name': 'edit-analytics-deploy'}]}, 'editor-analytics': {'usernames': [{'name': 'editor-analytics'}, {'name': 'editor-analytics-deploy'}]}, 'eventgate-analytics': {'usernames': [{'name': 'eventgate-analytics'}, {'name': 'eventgate-analytics-deploy'}]}, 'eventgate-analytics-external': {'usernames': [{'name': 'eventgate-analytics-external'}, {'name': 'eventgate-analytics-external-deploy'}]}, 'eventgate-logging-external': {'usernames': [{'name': 'eventgate-logging-external'}, {'name': 'eventgate-logging-external-deploy'}]}, 'eventgate-main': {'usernames': [{'name': 'eventgate-main'}, {'name': 'eventgate-main-deploy'}]}, 'eventstreams': {'usernames': [{'name': 'eventstreams'}, {'name': 'eventstreams-deploy'}]}, 'failoid-ng': {'usernames': [{'name': 'failoid-ng'}, {'name': 'failoid-ng-deploy'}]}, 'geo-analytics': {'usernames': [{'name': 'geo-analytics'}, {'name': 'geo-analytics-deploy'}]}, 'ipoid': {'usernames': [{'name': 'ipoid'}, {'name': 'ipoid-deploy'}]}, 'kartotherian': {'usernames': [{'name': 'kartotherian'}, {'name': 'kartotherian-deploy'}]}, 'linked-artifacts': {'usernames': [{'name': 'linked-artifacts'}, {'name': 'linked-artifacts-deploy'}]}, 'linkrecommendation': {'usernames': [{'name': 'linkrecommendation'}, {'name': 'linkrecommendation-deploy'}]}, 'machinetranslation': {'usernames': [{'name': 'machinetranslation'}, {'name': 'machinetranslation-deploy'}]}, 'mathoid': {'usernames': [{'name': 'mathoid'}, {'name': 'mathoid-deploy'}]}, 'media-analytics': {'usernames': [{'name': 'media-analytics'}, {'name': 'media-analytics-deploy'}]}, 'miscweb': {'usernames': [{'name': 'miscweb'}, {'name': 'miscweb-deploy'}]}, 'mobileapps': {'usernames': [{'name': 'mobileapps'}, {'name': 'mobileapps-deploy'}]}, 'mw-api-ext': {'usernames': [{'name': 'mw-api-ext'}, {'name': 'mw-api-ext-deploy'}]}, 'mw-api-int': {'usernames': [{'name': 'mw-api-int'}, {'name': 'mw-api-int-deploy'}]}, 'mw-cron': {'usernames': [{'name': 'mw-cron'}, {'name': 'mw-cron-deploy'}, {'group': 'restricted', 'name': 'mw-cron-restricted'}, {'group': 'restricted', 'name': 'mw-cron-restricted-deploy'}]}, 'mw-debug': {'usernames': [{'name': 'mw-debug'}, {'name': 'mw-debug-deploy'}]}, 'mw-experimental': {'usernames': [{'name': 'mw-experimental'}, {'name': 'mw-experimental-deploy'}]}, 'mw-jobrunner': {'usernames': [{'name': 'mw-jobrunner'}, {'name': 'mw-jobrunner-deploy'}]}, 'mw-mcrouter': {'usernames': [{'name': 'mw-mcrouter'}, {'name': 'mw-mcrouter-deploy'}]}, 'mw-misc': {'usernames': [{'name': 'mw-misc'}, {'name': 'mw-misc-deploy'}]}, 'mw-page-content-change-enrich': {'usernames': [{'name': 'mw-page-content-change-enrich'}, {'name': 'mw-page-content-change-enrich-deploy'}]}, 'mw-parsoid': {'usernames': [{'name': 'mw-parsoid'}, {'name': 'mw-parsoid-deploy'}]}, 'mw-script': {'usernames': [{'name': 'mw-script'}, {'name': 'mw-script-deploy'}, {'group': 'restricted', 'name': 'mw-script-restricted'}, {'group': 'restricted', 'name': 'mw-script-restricted-deploy'}]}, 'mw-videoscaler': {'usernames': [{'name': 'mw-videoscaler'}, {'name': 'mw-videoscaler-deploy'}]}, 'mw-web': {'usernames': [{'name': 'mw-web'}, {'name': 'mw-web-deploy'}]}, 'mw-wikifunctions': {'usernames': [{'name': 'mw-wikifunctions'}, {'name': 'mw-wikifunctions-deploy'}]}, 'opentelemetry-collector': {'usernames': [{'name': 'opentelemetry-collector'}, {'name': 'opentelemetry-collector-deploy'}]}, 'page-analytics': {'usernames': [{'name': 'page-analytics'}, {'name': 'page-analytics-deploy'}]}, 'proton': {'usernames': [{'name': 'proton'}, {'name': 'proton-deploy'}]}, 'push-notifications': {'usernames': [{'name': 'push-notifications'}, {'name': 'push-notifications-deploy'}]}, 'ratelimit': {'usernames': [{'name': 'ratelimit'}, {'name': 'ratelimit-deploy'}]}, 'rdf-streaming-updater': {'usernames': [{'name': 'rdf-streaming-updater'}, {'name': 'rdf-streaming-updater-deploy'}]}, 'recommendation-api': {'usernames': [{'name': 'recommendation-api'}, {'name': 'recommendation-api-deploy'}]}, 'rest-gateway': {'usernames': [{'name': 'rest-gateway'}, {'name': 'rest-gateway-deploy'}]}, 'sessionstore': {'usernames': [{'name': 'sessionstore'}, {'name': 'sessionstore-deploy'}]}, 'shellbox': {'usernames': [{'name': 'shellbox'}, {'name': 'shellbox-deploy'}]}, 'shellbox-constraints': {'usernames': [{'name': 'shellbox-constraints'}, {'name': 'shellbox-constraints-deploy'}]}, 'shellbox-media': {'usernames': [{'name': 'shellbox-media'}, {'name': 'shellbox-media-deploy'}]}, 'shellbox-syntaxhighlight': {'usernames': [{'name': 'shellbox-syntaxhighlight'}, {'name': 'shellbox-syntaxhighlight-deploy'}]}, 'shellbox-timeline': {'usernames': [{'name': 'shellbox-timeline'}, {'name': 'shellbox-timeline-deploy'}]}, 'shellbox-video': {'usernames': [{'name': 'shellbox-video'}, {'name': 'shellbox-video-deploy'}]}, 'tegola-vector-tiles': {'usernames': [{'name': 'tegola-vector-tiles'}, {'name': 'tegola-vector-tiles-deploy'}]}, 'termbox': {'usernames': [{'name': 'termbox'}, {'name': 'termbox-deploy'}]}, 'thumbor': {'usernames': [{'name': 'thumbor'}, {'name': 'thumbor-deploy'}]}, 'toolhub': {'usernames': [{'name': 'toolhub'}, {'name': 'toolhub-deploy'}]}, 'wikidata-query-gui': {'usernames': [{'name': 'wikidata-query-gui'}, {'name': 'wikidata-query-gui-deploy'}]}, 'wikifeeds': {'usernames': [{'name': 'wikifeeds'}, {'name': 'wikifeeds-deploy'}]}, 'wikifunctions': {'usernames': [{'name': 'wikifunctions'}, {'name': 'wikifunctions-deploy'}]}, 'zotero': {'usernames': [{'name': 'zotero'}, {'name': 'zotero-deploy'}]}}, 'ml-serve': {'article-descriptions': {'usernames': [{'group': 'deploy-ml-service', 'name': 'article-descriptions', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'article-descriptions-deploy', 'owner': 'root'}]}, 'article-models': {'usernames': [{'group': 'deploy-ml-service', 'name': 'article-models', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'article-models-deploy', 'owner': 'root'}]}, 'articletopic-outlink': {'usernames': [{'group': 'deploy-ml-service', 'name': 'articletopic-outlink', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'articletopic-outlink-deploy', 'owner': 'root'}]}, 'edit-check': {'usernames': [{'group': 'deploy-ml-service', 'name': 'edit-check', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'edit-check-deploy', 'owner': 'root'}]}, 'experimental': {'usernames': [{'group': 'deploy-ml-service', 'name': 'experimental', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'experimental-deploy', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'experimental-debug', 'owner': 'root'}]}, 'llm': {'usernames': [{'group': 'deploy-ml-service', 'name': 'llm', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'llm-deploy', 'owner': 'root'}]}, 'logo-detection': {'usernames': [{'group': 'deploy-ml-service', 'name': 'logo-detection', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'logo-detection-deploy', 'owner': 'root'}]}, 'ores-legacy': {'usernames': [{'group': 'deploy-ml-service', 'name': 'ores-legacy', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'ores-legacy-deploy', 'owner': 'root'}]}, 'readability': {'usernames': [{'group': 'deploy-ml-service', 'name': 'readability', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'readability-deploy', 'owner': 'root'}]}, 'recommendation-api-ng': {'usernames': [{'group': 'deploy-ml-service', 'name': 'recommendation-api-ng', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'recommendation-api-ng-deploy', 'owner': 'root'}]}, 'revertrisk': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revertrisk', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revertrisk-deploy', 'owner': 'root'}]}, 'revise-tone-task-generator': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revise-tone-task-generator', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revise-tone-task-generator-deploy', 'owner': 'root'}]}, 'revision-models': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revision-models', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revision-models-deploy', 'owner': 'root'}]}, 'revscoring-articlequality': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-articlequality', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-articlequality-deploy', 'owner': 'root'}]}, 'revscoring-articletopic': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-articletopic', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-articletopic-deploy', 'owner': 'root'}]}, 'revscoring-draftquality': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-draftquality', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-draftquality-deploy', 'owner': 'root'}]}, 'revscoring-drafttopic': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-drafttopic', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-drafttopic-deploy', 'owner': 'root'}]}, 'revscoring-editquality-damaging': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-editquality-damaging', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-editquality-damaging-deploy', 'owner': 'root'}]}, 'revscoring-editquality-goodfaith': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-editquality-goodfaith', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-editquality-goodfaith-deploy', 'owner': 'root'}]}, 'revscoring-editquality-reverted': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-editquality-reverted', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-editquality-reverted-deploy', 'owner': 'root'}]}}, 'dse-k8s': {'analytics': {'usernames': [{'group': 'analytics-deployers', 'name': 'analytics', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'analytics-deploy', 'owner': 'root'}]}, 'analytics-test': {'usernames': [{'group': 'analytics-deployers', 'name': 'analytics-test', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'analytics-test-deploy', 'owner': 'root'}]}, 'kafka-mirrormaker': {'usernames': [{'name': 'kafka-mirrormaker'}, {'name': 'kafka-mirrormaker-deploy'}]}, 'opensearch-ipoid': {'usernames': [{'name': 'opensearch-ipoid'}, {'name': 'opensearch-ipoid-deploy'}]}, 'opensearch-ipoid-test': {'usernames': [{'name': 'opensearch-ipoid-test'}, {'name': 'opensearch-ipoid-test-deploy'}]}, 'opensearch-operator': {'usernames': [{'name': 'opensearch-operator'}, {'name': 'opensearch-operator-deploy'}]}, 'opensearch-operator-3': {'usernames': [{'name': 'opensearch-operator-3'}, {'name': 'opensearch-operator-3-deploy'}]}, 'opensearch-semantic-search': {'usernames': [{'name': 'opensearch-semantic-search'}, {'name': 'opensearch-semantic-search-deploy'}]}, 'opensearch-semantic-search-test': {'usernames': [{'name': 'opensearch-semantic-search-test'}, {'name': 'opensearch-semantic-search-test-deploy'}]}, 'opensearch-test': {'usernames': [{'name': 'opensearch-test'}, {'name': 'opensearch-test-deploy'}]}, 'opensearch-toolhub': {'usernames': [{'name': 'opensearch-toolhub'}, {'name': 'opensearch-toolhub-deploy'}]}, 'opensearch-toolhub-test': {'usernames': [{'name': 'opensearch-toolhub-test'}, {'name': 'opensearch-toolhub-test-deploy'}]}, 'opensearch-apifeatureusage': {'usernames': [{'name': 'opensearch-apifeatureusage'}, {'name': 'opensearch-apifeatureusage-deploy'}]}, 'opensearch-apifeatureusage-test': {'usernames': [{'name': 'opensearch-apifeatureusage-test'}, {'name': 'opensearch-apifeatureusage-test-deploy'}]}, 'opensearch-ttmserver': {'usernames': [{'name': 'opensearch-ttmserver'}, {'name': 'opensearch-ttmserver-deploy'}]}, 'opensearch-ttmserver-test': {'usernames': [{'name': 'opensearch-ttmserver-test'}, {'name': 'opensearch-ttmserver-test-deploy'}]}, 'wdqs-internal': {'usernames': [{'name': 'wdqs-internal'}, {'name': 'wdqs-internal-deploy'}]}, 'wdqs-internal-next': {'usernames': [{'name': 'wdqs-internal-next'}, {'name': 'wdqs-internal-next-deploy'}]}, 'wdqs-external': {'usernames': [{'name': 'wdqs-external'}, {'name': 'wdqs-external-deploy'}]}, 'wdqs-external-next': {'usernames': [{'name': 'wdqs-external-next'}, {'name': 'wdqs-external-next-deploy'}]}}, 'dse-k8s-codfw': {'echoserver': {'usernames': [{'name': 'echoserver'}, {'name': 'echoserver-deploy'}]}}, 'dse-k8s-eqiad': {'airflow-analytics-product': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-analytics-product', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-analytics-product-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-product', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-product-deploy', 'owner': 'root'}]}, 'airflow-analytics-test': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-analytics-test', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-analytics-test-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-test', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-test-deploy', 'owner': 'root'}]}, 'airflow-dev': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-dev', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-dev-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-dev', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-dev-deploy', 'owner': 'root'}]}, 'airflow-fr-tech': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-fr-tech', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-fr-tech-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-fr-tech', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-fr-tech-deploy', 'owner': 'root'}]}, 'airflow-main': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-main', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-main-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-main', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-main-deploy', 'owner': 'root'}]}, 'airflow-ml': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-ml', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-ml-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-ml', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-ml-deploy', 'owner': 'root'}]}, 'airflow-platform-eng': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-platform-eng', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-platform-eng-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-platform-eng', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-platform-eng-deploy', 'owner': 'root'}]}, 'airflow-research': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-research', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-research-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-research', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-research-deploy', 'owner': 'root'}]}, 'airflow-search': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-search', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-search-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-search', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-search-deploy', 'owner': 'root'}]}, 'airflow-sre': {'private_files': {'group': 'ops', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-sre', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-sre-deploy', 'owner': 'root'}, {'group': 'ops', 'name': 'airflow-sre', 'owner': 'root'}, {'group': 'ops', 'name': 'airflow-sre-deploy', 'owner': 'root'}]}, 'airflow-test-k8s': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-test-k8s', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-test-k8s-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-test-k8s', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-test-k8s-deploy', 'owner': 'root'}]}, 'airflow-wikidata': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-wikidata', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-wikidata-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wikidata', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wikidata-deploy', 'owner': 'root'}]}, 'airflow-wmde': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-wmde', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-wmde-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wmde', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wmde-deploy', 'owner': 'root'}]}, 'blunderbuss': {'usernames': [{'name': 'blunderbuss'}, {'name': 'blunderbuss-deploy'}]}, 'datahub': {'usernames': [{'name': 'datahub'}, {'name': 'datahub-deploy'}]}, 'datahub-next': {'usernames': [{'name': 'datahub-next'}, {'name': 'datahub-next-deploy'}]}, 'datasets-config': {'usernames': [{'name': 'datasets-config'}, {'name': 'datasets-config-deploy'}]}, 'datasets-config-next': {'usernames': [{'name': 'datasets-config-next'}, {'name': 'datasets-config-next-deploy'}]}, 'eventstreams-internal': {'usernames': [{'name': 'eventstreams-internal'}, {'name': 'eventstreams-internal-deploy'}]}, 'growthbook': {'usernames': [{'group': 'root', 'name': 'postgresql-growthbook', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-growthbook-deploy', 'owner': 'root'}, {'name': 'growthbook'}, {'name': 'growthbook-deploy'}]}, 'growthbook-next': {'usernames': [{'group': 'root', 'name': 'postgresql-growthbook-next', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-growthbook-next-deploy', 'owner': 'root'}, {'name': 'growthbook-next'}, {'name': 'growthbook-next-deploy'}]}, 'llm-inference': {'usernames': [{'group': 'research-deployers', 'name': 'llm-inference', 'owner': 'root'}, {'group': 'research-deployers', 'name': 'llm-inference-deploy', 'owner': 'root'}]}, 'mediawiki-dumps-legacy': {'usernames': [{'name': 'mediawiki-dumps-legacy'}, {'name': 'mediawiki-dumps-legacy-deploy'}]}, 'mw-content-history-reconcile-enrich': {'usernames': [{'name': 'mw-content-history-reconcile-enrich'}, {'name': 'mw-content-history-reconcile-enrich-deploy'}]}, 'mw-content-history-reconcile-enrich-next': {'usernames': [{'name': 'mw-content-history-reconcile-enrich-next'}, {'name': 'mw-content-history-reconcile-enrich-next-deploy'}]}, 'mw-dump-rev-content-reconcile-enrich': {'usernames': [{'name': 'mw-dump-rev-content-reconcile-enrich'}, {'name': 'mw-dump-rev-content-reconcile-enrich-deploy'}]}, 'mw-dump-rev-content-reconcile-enrich-next': {'usernames': [{'name': 'mw-dump-rev-content-reconcile-enrich-next'}, {'name': 'mw-dump-rev-content-reconcile-enrich-next-deploy'}]}, 'mw-page-html-content-change-enrich': {'usernames': [{'name': 'mw-page-html-content-change-enrich'}, {'name': 'mw-page-html-content-change-enrich-deploy'}]}, 'mw-page-html-content-change-enrich-next': {'usernames': [{'name': 'mw-page-html-content-change-enrich-next'}, {'name': 'mw-page-html-content-change-enrich-next-deploy'}]}, 'mw-page-html-feature-counts-change-enrich': {'usernames': [{'name': 'mw-page-html-feature-counts-change-enrich'}, {'name': 'mw-page-html-feature-counts-change-enrich-deploy'}]}, 'mw-page-html-feature-counts-change-enrich-next': {'usernames': [{'name': 'mw-page-html-feature-counts-change-enrich-next'}, {'name': 'mw-page-html-feature-counts-change-enrich-next-deploy'}]}, 'rdf-streaming-updater': {'usernames': [{'name': 'rdf-streaming-updater'}, {'name': 'rdf-streaming-updater-deploy'}]}, 'spark': {'usernames': [{'name': 'spark'}, {'name': 'spark-deploy'}]}, 'spark-history': {'usernames': [{'group': 'analytics-deployers', 'name': 'spark-history', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'spark-history-deploy', 'owner': 'root'}]}, 'spark-history-test': {'usernames': [{'group': 'analytics-deployers', 'name': 'spark-history-test', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'spark-history-test-deploy', 'owner': 'root'}]}, 'superset': {'usernames': [{'group': 'analytics-deployers', 'name': 'superset', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'superset-deploy', 'owner': 'root'}]}, 'superset-next': {'usernames': [{'group': 'analytics-deployers', 'name': 'superset-next', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'superset-next-deploy', 'owner': 'root'}]}, 'test-kitchen': {'usernames': [{'name': 'test-kitchen'}, {'name': 'test-kitchen-deploy'}]}, 'test-kitchen-next': {'usernames': [{'name': 'test-kitchen-next'}, {'name': 'test-kitchen-next-deploy'}]}, 'turnilo': {'usernames': [{'name': 'turnilo'}, {'name': 'turnilo-deploy'}]}, 'turnilo-next': {'usernames': [{'name': 'turnilo-next'}, {'name': 'turnilo-next-deploy'}]}, 'webrequest-page-view': {'usernames': [{'name': 'webrequest-page-view'}, {'name': 'webrequest-page-view-deploy'}]}, 'webrequest-page-view-next': {'usernames': [{'name': 'webrequest-page-view-next'}, {'name': 'webrequest-page-view-next-deploy'}]}, 'wdqs-queryhammer': {'usernames': [{'name': 'wdqs-queryhammer'}, {'name': 'wdqs-queryhammer-deploy'}]}}, 'aux-k8s': {'codesearch': {'usernames': [{'name': 'codesearch'}, {'name': 'codesearch-deploy'}]}, 'jaeger': {'usernames': [{'name': 'jaeger'}, {'name': 'jaeger-deploy'}]}, 'kafka-mirrormaker': {'usernames': [{'name': 'kafka-mirrormaker'}, {'name': 'kafka-mirrormaker-deploy'}]}, 'miscweb': {'usernames': [{'name': 'miscweb'}, {'name': 'miscweb-deploy'}]}, 'redioscope': {'usernames': [{'name': 'redioscope'}, {'name': 'redioscope-deploy'}]}, 'sophroid': {'usernames': [{'name': 'sophroid'}, {'name': 'sophroid-deploy'}]}, 'zarcillo': {'usernames': [{'name': 'zarcillo'}, {'name': 'zarcillo-deploy'}]}}}
- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chained.pem]
- Parameters differences:
--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chained.pem].orig
+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chained.pem]
- group => deployment
- owner => mwdeploy
- require => Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]
- ensure => file
- Exec[Generate cert wikikube_staging__eventstreams-internal-deploy]
- Parameters differences:
--- Exec[Generate cert wikikube_staging__eventstreams-internal-deploy].orig
+++ Exec[Generate cert wikikube_staging__eventstreams-internal-deploy]
- unless => /usr/bin/test "$(/usr/bin/openssl x509 -in /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem -noout -pubkey 2>&1)" == "$(/usr/bin/openssl pkey -pubout -in /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem 2>&1)"
- command => /usr/bin/cfssl gencert -config /etc/cfssl/client-cfssl.conf -tls-remote-ca /etc/ssl/certs/wmf-ca-certificates.crt -mutual-tls-client-cert /etc/cfssl/mutual_tls_client_cert.pem -mutual-tls-client-key /var/lib/puppet/ssl/private_keys/deploy1003.eqiad.wmnet.pem -label wikikube_staging /etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr | /usr/bin/cfssljson -bare /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy
- require => Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]
- environment => ['GODEBUG=x509ignoreCN=0']
- File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem]
- Parameters differences:
--- File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem].orig
+++ File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem]
- group => deployment
- owner => mwdeploy
- mode => 0440
- ensure => file
- File[/etc/helmfile-defaults/services-staging-eqiad.yaml]
- Content differences:
--- /etc/helmfile-defaults/services-staging-eqiad.yaml.orig
+++ /etc/helmfile-defaults/services-staging-eqiad.yaml
@@ -84,10 +84,6 @@
usernames:
- name: eventstreams
- name: eventstreams-deploy
- eventstreams-internal:
- usernames:
- - name: eventstreams-internal
- - name: eventstreams-internal-deploy
failoid-ng:
usernames:
- name: failoid-ng
- File[/etc/kubernetes/pki/wikikube__eventstreams-internal.csr]
- Parameters differences:
--- File[/etc/kubernetes/pki/wikikube__eventstreams-internal.csr].orig
+++ File[/etc/kubernetes/pki/wikikube__eventstreams-internal.csr]
- group => deployment
- owner => mwdeploy
- mode => 0440
- ensure => file
- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-eqiad.config]
- Parameters differences:
--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-eqiad.config].orig
+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-eqiad.config]
- owner => mwdeploy
- mode => 0640
- namespace => eventstreams-internal
- group => deployment
- username => eventstreams-internal
- master_host => kubemaster.svc.eqiad.wmnet
- ensure => present
- auth_cert => {'cert': '/etc/kubernetes/pki/wikikube__eventstreams-internal.pem', 'key': '/etc/kubernetes/pki/wikikube__eventstreams-internal-key.pem', 'chain': '/etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem', 'chained': '/etc/kubernetes/pki/wikikube__eventstreams-internal.chained.pem'}
- require => ['Class[K8s::Base_dirs]']
- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chained.pem]
- Parameters differences:
--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chained.pem].orig
+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chained.pem]
- group => deployment
- owner => mwdeploy
- require => Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]
- ensure => file
- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem]
- Parameters differences:
--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem].orig
+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem]
- group => deployment
- owner => mwdeploy
- mode => 0440
- ensure => file
- File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chained.pem]
- Parameters differences:
--- File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chained.pem].orig
+++ File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chained.pem]
- group => deployment
- owner => mwdeploy
- require => Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem]
- ensure => file
- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem]
- Parameters differences:
--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem].orig
+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem]
- group => deployment
- owner => mwdeploy
- mode => 0440
- ensure => file
- Exec[Generate cert wikikube__eventstreams-internal refresh]
- Parameters differences:
--- Exec[Generate cert wikikube__eventstreams-internal refresh].orig
+++ Exec[Generate cert wikikube__eventstreams-internal refresh]
- refreshonly => True
- command => /usr/bin/cfssl gencert -config /etc/cfssl/client-cfssl.conf -tls-remote-ca /etc/ssl/certs/wmf-ca-certificates.crt -mutual-tls-client-cert /etc/cfssl/mutual_tls_client_cert.pem -mutual-tls-client-key /var/lib/puppet/ssl/private_keys/deploy1003.eqiad.wmnet.pem -label wikikube /etc/cfssl/csr/wikikube__eventstreams-internal.csr | /usr/bin/cfssljson -bare /etc/kubernetes/pki/wikikube__eventstreams-internal
- subscribe => File[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]
- environment => ['GODEBUG=x509ignoreCN=0']
- Class[Profile::Kubernetes::Deployment_server]
- Parameters differences:
--- Class[Profile::Kubernetes::Deployment_server].orig
+++ Class[Profile::Kubernetes::Deployment_server]
@@
- services => {'main': {'apertium': {'usernames': [{'name': 'apertium'}, {'name': 'apertium-deploy'}]}, 'api-gateway': {'usernames': [{'name': 'api-gateway'}, {'name': 'api-gateway-deploy'}]}, 'benthos-cache-invalidator': {'usernames': [{'name': 'benthos-cache-invalidator'}, {'name': 'benthos-cache-invalidator-deploy'}]}, 'changeprop': {'usernames': [{'name': 'changeprop'}, {'name': 'changeprop-deploy'}]}, 'changeprop-jobqueue': {'usernames': [{'name': 'changeprop-jobqueue'}, {'name': 'changeprop-jobqueue-deploy'}]}, 'chart-renderer': {'usernames': [{'name': 'chart-renderer'}, {'name': 'chart-renderer-deploy'}]}, 'cirrus-streaming-updater': {'usernames': [{'name': 'cirrus-streaming-updater'}, {'name': 'cirrus-streaming-updater-deploy'}]}, 'citoid': {'usernames': [{'name': 'citoid'}, {'name': 'citoid-deploy'}]}, 'commons-impact-analytics': {'usernames': [{'name': 'commons-impact-analytics'}, {'name': 'commons-impact-analytics-deploy'}]}, 'cxserver': {'usernames': [{'name': 'cxserver'}, {'name': 'cxserver-deploy'}]}, 'data-gateway': {'usernames': [{'name': 'data-gateway'}, {'name': 'data-gateway-deploy'}]}, 'developer-portal': {'usernames': [{'name': 'developer-portal'}, {'name': 'developer-portal-deploy'}]}, 'device-analytics': {'usernames': [{'name': 'device-analytics'}, {'name': 'device-analytics-deploy'}]}, 'echostore': {'usernames': [{'name': 'echostore'}, {'name': 'echostore-deploy'}]}, 'edit-analytics': {'usernames': [{'name': 'edit-analytics'}, {'name': 'edit-analytics-deploy'}]}, 'editor-analytics': {'usernames': [{'name': 'editor-analytics'}, {'name': 'editor-analytics-deploy'}]}, 'eventgate-analytics': {'usernames': [{'name': 'eventgate-analytics'}, {'name': 'eventgate-analytics-deploy'}]}, 'eventgate-analytics-external': {'usernames': [{'name': 'eventgate-analytics-external'}, {'name': 'eventgate-analytics-external-deploy'}]}, 'eventgate-logging-external': {'usernames': [{'name': 'eventgate-logging-external'}, {'name': 'eventgate-logging-external-deploy'}]}, 'eventgate-main': {'usernames': [{'name': 'eventgate-main'}, {'name': 'eventgate-main-deploy'}]}, 'eventstreams': {'usernames': [{'name': 'eventstreams'}, {'name': 'eventstreams-deploy'}]}, 'eventstreams-internal': {'usernames': [{'name': 'eventstreams-internal'}, {'name': 'eventstreams-internal-deploy'}]}, 'failoid-ng': {'usernames': [{'name': 'failoid-ng'}, {'name': 'failoid-ng-deploy'}]}, 'geo-analytics': {'usernames': [{'name': 'geo-analytics'}, {'name': 'geo-analytics-deploy'}]}, 'ipoid': {'usernames': [{'name': 'ipoid'}, {'name': 'ipoid-deploy'}]}, 'kartotherian': {'usernames': [{'name': 'kartotherian'}, {'name': 'kartotherian-deploy'}]}, 'linked-artifacts': {'usernames': [{'name': 'linked-artifacts'}, {'name': 'linked-artifacts-deploy'}]}, 'linkrecommendation': {'usernames': [{'name': 'linkrecommendation'}, {'name': 'linkrecommendation-deploy'}]}, 'machinetranslation': {'usernames': [{'name': 'machinetranslation'}, {'name': 'machinetranslation-deploy'}]}, 'mathoid': {'usernames': [{'name': 'mathoid'}, {'name': 'mathoid-deploy'}]}, 'media-analytics': {'usernames': [{'name': 'media-analytics'}, {'name': 'media-analytics-deploy'}]}, 'miscweb': {'usernames': [{'name': 'miscweb'}, {'name': 'miscweb-deploy'}]}, 'mobileapps': {'usernames': [{'name': 'mobileapps'}, {'name': 'mobileapps-deploy'}]}, 'mw-api-ext': {'usernames': [{'name': 'mw-api-ext'}, {'name': 'mw-api-ext-deploy'}]}, 'mw-api-int': {'usernames': [{'name': 'mw-api-int'}, {'name': 'mw-api-int-deploy'}]}, 'mw-cron': {'usernames': [{'name': 'mw-cron'}, {'name': 'mw-cron-deploy'}, {'group': 'restricted', 'name': 'mw-cron-restricted'}, {'group': 'restricted', 'name': 'mw-cron-restricted-deploy'}]}, 'mw-debug': {'usernames': [{'name': 'mw-debug'}, {'name': 'mw-debug-deploy'}]}, 'mw-experimental': {'usernames': [{'name': 'mw-experimental'}, {'name': 'mw-experimental-deploy'}]}, 'mw-jobrunner': {'usernames': [{'name': 'mw-jobrunner'}, {'name': 'mw-jobrunner-deploy'}]}, 'mw-mcrouter': {'usernames': [{'name': 'mw-mcrouter'}, {'name': 'mw-mcrouter-deploy'}]}, 'mw-misc': {'usernames': [{'name': 'mw-misc'}, {'name': 'mw-misc-deploy'}]}, 'mw-page-content-change-enrich': {'usernames': [{'name': 'mw-page-content-change-enrich'}, {'name': 'mw-page-content-change-enrich-deploy'}]}, 'mw-parsoid': {'usernames': [{'name': 'mw-parsoid'}, {'name': 'mw-parsoid-deploy'}]}, 'mw-script': {'usernames': [{'name': 'mw-script'}, {'name': 'mw-script-deploy'}, {'group': 'restricted', 'name': 'mw-script-restricted'}, {'group': 'restricted', 'name': 'mw-script-restricted-deploy'}]}, 'mw-videoscaler': {'usernames': [{'name': 'mw-videoscaler'}, {'name': 'mw-videoscaler-deploy'}]}, 'mw-web': {'usernames': [{'name': 'mw-web'}, {'name': 'mw-web-deploy'}]}, 'mw-wikifunctions': {'usernames': [{'name': 'mw-wikifunctions'}, {'name': 'mw-wikifunctions-deploy'}]}, 'opentelemetry-collector': {'usernames': [{'name': 'opentelemetry-collector'}, {'name': 'opentelemetry-collector-deploy'}]}, 'page-analytics': {'usernames': [{'name': 'page-analytics'}, {'name': 'page-analytics-deploy'}]}, 'proton': {'usernames': [{'name': 'proton'}, {'name': 'proton-deploy'}]}, 'push-notifications': {'usernames': [{'name': 'push-notifications'}, {'name': 'push-notifications-deploy'}]}, 'ratelimit': {'usernames': [{'name': 'ratelimit'}, {'name': 'ratelimit-deploy'}]}, 'rdf-streaming-updater': {'usernames': [{'name': 'rdf-streaming-updater'}, {'name': 'rdf-streaming-updater-deploy'}]}, 'recommendation-api': {'usernames': [{'name': 'recommendation-api'}, {'name': 'recommendation-api-deploy'}]}, 'rest-gateway': {'usernames': [{'name': 'rest-gateway'}, {'name': 'rest-gateway-deploy'}]}, 'sessionstore': {'usernames': [{'name': 'sessionstore'}, {'name': 'sessionstore-deploy'}]}, 'shellbox': {'usernames': [{'name': 'shellbox'}, {'name': 'shellbox-deploy'}]}, 'shellbox-constraints': {'usernames': [{'name': 'shellbox-constraints'}, {'name': 'shellbox-constraints-deploy'}]}, 'shellbox-media': {'usernames': [{'name': 'shellbox-media'}, {'name': 'shellbox-media-deploy'}]}, 'shellbox-syntaxhighlight': {'usernames': [{'name': 'shellbox-syntaxhighlight'}, {'name': 'shellbox-syntaxhighlight-deploy'}]}, 'shellbox-timeline': {'usernames': [{'name': 'shellbox-timeline'}, {'name': 'shellbox-timeline-deploy'}]}, 'shellbox-video': {'usernames': [{'name': 'shellbox-video'}, {'name': 'shellbox-video-deploy'}]}, 'tegola-vector-tiles': {'usernames': [{'name': 'tegola-vector-tiles'}, {'name': 'tegola-vector-tiles-deploy'}]}, 'termbox': {'usernames': [{'name': 'termbox'}, {'name': 'termbox-deploy'}]}, 'thumbor': {'usernames': [{'name': 'thumbor'}, {'name': 'thumbor-deploy'}]}, 'toolhub': {'usernames': [{'name': 'toolhub'}, {'name': 'toolhub-deploy'}]}, 'wikidata-query-gui': {'usernames': [{'name': 'wikidata-query-gui'}, {'name': 'wikidata-query-gui-deploy'}]}, 'wikifeeds': {'usernames': [{'name': 'wikifeeds'}, {'name': 'wikifeeds-deploy'}]}, 'wikifunctions': {'usernames': [{'name': 'wikifunctions'}, {'name': 'wikifunctions-deploy'}]}, 'zotero': {'usernames': [{'name': 'zotero'}, {'name': 'zotero-deploy'}]}}, 'ml-serve': {'article-descriptions': {'usernames': [{'group': 'deploy-ml-service', 'name': 'article-descriptions', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'article-descriptions-deploy', 'owner': 'root'}]}, 'article-models': {'usernames': [{'group': 'deploy-ml-service', 'name': 'article-models', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'article-models-deploy', 'owner': 'root'}]}, 'articletopic-outlink': {'usernames': [{'group': 'deploy-ml-service', 'name': 'articletopic-outlink', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'articletopic-outlink-deploy', 'owner': 'root'}]}, 'edit-check': {'usernames': [{'group': 'deploy-ml-service', 'name': 'edit-check', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'edit-check-deploy', 'owner': 'root'}]}, 'experimental': {'usernames': [{'group': 'deploy-ml-service', 'name': 'experimental', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'experimental-deploy', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'experimental-debug', 'owner': 'root'}]}, 'llm': {'usernames': [{'group': 'deploy-ml-service', 'name': 'llm', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'llm-deploy', 'owner': 'root'}]}, 'logo-detection': {'usernames': [{'group': 'deploy-ml-service', 'name': 'logo-detection', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'logo-detection-deploy', 'owner': 'root'}]}, 'ores-legacy': {'usernames': [{'group': 'deploy-ml-service', 'name': 'ores-legacy', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'ores-legacy-deploy', 'owner': 'root'}]}, 'readability': {'usernames': [{'group': 'deploy-ml-service', 'name': 'readability', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'readability-deploy', 'owner': 'root'}]}, 'recommendation-api-ng': {'usernames': [{'group': 'deploy-ml-service', 'name': 'recommendation-api-ng', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'recommendation-api-ng-deploy', 'owner': 'root'}]}, 'revertrisk': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revertrisk', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revertrisk-deploy', 'owner': 'root'}]}, 'revise-tone-task-generator': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revise-tone-task-generator', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revise-tone-task-generator-deploy', 'owner': 'root'}]}, 'revision-models': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revision-models', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revision-models-deploy', 'owner': 'root'}]}, 'revscoring-articlequality': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-articlequality', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-articlequality-deploy', 'owner': 'root'}]}, 'revscoring-articletopic': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-articletopic', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-articletopic-deploy', 'owner': 'root'}]}, 'revscoring-draftquality': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-draftquality', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-draftquality-deploy', 'owner': 'root'}]}, 'revscoring-drafttopic': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-drafttopic', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-drafttopic-deploy', 'owner': 'root'}]}, 'revscoring-editquality-damaging': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-editquality-damaging', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-editquality-damaging-deploy', 'owner': 'root'}]}, 'revscoring-editquality-goodfaith': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-editquality-goodfaith', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-editquality-goodfaith-deploy', 'owner': 'root'}]}, 'revscoring-editquality-reverted': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-editquality-reverted', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-editquality-reverted-deploy', 'owner': 'root'}]}}, 'dse-k8s': {'analytics': {'usernames': [{'group': 'analytics-deployers', 'name': 'analytics', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'analytics-deploy', 'owner': 'root'}]}, 'analytics-test': {'usernames': [{'group': 'analytics-deployers', 'name': 'analytics-test', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'analytics-test-deploy', 'owner': 'root'}]}, 'kafka-mirrormaker': {'usernames': [{'name': 'kafka-mirrormaker'}, {'name': 'kafka-mirrormaker-deploy'}]}, 'opensearch-ipoid': {'usernames': [{'name': 'opensearch-ipoid'}, {'name': 'opensearch-ipoid-deploy'}]}, 'opensearch-ipoid-test': {'usernames': [{'name': 'opensearch-ipoid-test'}, {'name': 'opensearch-ipoid-test-deploy'}]}, 'opensearch-operator': {'usernames': [{'name': 'opensearch-operator'}, {'name': 'opensearch-operator-deploy'}]}, 'opensearch-operator-3': {'usernames': [{'name': 'opensearch-operator-3'}, {'name': 'opensearch-operator-3-deploy'}]}, 'opensearch-semantic-search': {'usernames': [{'name': 'opensearch-semantic-search'}, {'name': 'opensearch-semantic-search-deploy'}]}, 'opensearch-semantic-search-test': {'usernames': [{'name': 'opensearch-semantic-search-test'}, {'name': 'opensearch-semantic-search-test-deploy'}]}, 'opensearch-test': {'usernames': [{'name': 'opensearch-test'}, {'name': 'opensearch-test-deploy'}]}, 'opensearch-toolhub': {'usernames': [{'name': 'opensearch-toolhub'}, {'name': 'opensearch-toolhub-deploy'}]}, 'opensearch-toolhub-test': {'usernames': [{'name': 'opensearch-toolhub-test'}, {'name': 'opensearch-toolhub-test-deploy'}]}, 'opensearch-apifeatureusage': {'usernames': [{'name': 'opensearch-apifeatureusage'}, {'name': 'opensearch-apifeatureusage-deploy'}]}, 'opensearch-apifeatureusage-test': {'usernames': [{'name': 'opensearch-apifeatureusage-test'}, {'name': 'opensearch-apifeatureusage-test-deploy'}]}, 'opensearch-ttmserver': {'usernames': [{'name': 'opensearch-ttmserver'}, {'name': 'opensearch-ttmserver-deploy'}]}, 'opensearch-ttmserver-test': {'usernames': [{'name': 'opensearch-ttmserver-test'}, {'name': 'opensearch-ttmserver-test-deploy'}]}, 'wdqs-internal': {'usernames': [{'name': 'wdqs-internal'}, {'name': 'wdqs-internal-deploy'}]}, 'wdqs-internal-next': {'usernames': [{'name': 'wdqs-internal-next'}, {'name': 'wdqs-internal-next-deploy'}]}, 'wdqs-external': {'usernames': [{'name': 'wdqs-external'}, {'name': 'wdqs-external-deploy'}]}, 'wdqs-external-next': {'usernames': [{'name': 'wdqs-external-next'}, {'name': 'wdqs-external-next-deploy'}]}}, 'dse-k8s-codfw': {'echoserver': {'usernames': [{'name': 'echoserver'}, {'name': 'echoserver-deploy'}]}}, 'dse-k8s-eqiad': {'airflow-analytics-product': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-analytics-product', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-analytics-product-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-product', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-product-deploy', 'owner': 'root'}]}, 'airflow-analytics-test': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-analytics-test', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-analytics-test-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-test', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-test-deploy', 'owner': 'root'}]}, 'airflow-dev': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-dev', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-dev-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-dev', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-dev-deploy', 'owner': 'root'}]}, 'airflow-fr-tech': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-fr-tech', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-fr-tech-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-fr-tech', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-fr-tech-deploy', 'owner': 'root'}]}, 'airflow-main': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-main', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-main-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-main', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-main-deploy', 'owner': 'root'}]}, 'airflow-ml': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-ml', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-ml-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-ml', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-ml-deploy', 'owner': 'root'}]}, 'airflow-platform-eng': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-platform-eng', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-platform-eng-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-platform-eng', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-platform-eng-deploy', 'owner': 'root'}]}, 'airflow-research': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-research', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-research-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-research', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-research-deploy', 'owner': 'root'}]}, 'airflow-search': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-search', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-search-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-search', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-search-deploy', 'owner': 'root'}]}, 'airflow-sre': {'private_files': {'group': 'ops', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-sre', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-sre-deploy', 'owner': 'root'}, {'group': 'ops', 'name': 'airflow-sre', 'owner': 'root'}, {'group': 'ops', 'name': 'airflow-sre-deploy', 'owner': 'root'}]}, 'airflow-test-k8s': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-test-k8s', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-test-k8s-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-test-k8s', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-test-k8s-deploy', 'owner': 'root'}]}, 'airflow-wikidata': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-wikidata', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-wikidata-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wikidata', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wikidata-deploy', 'owner': 'root'}]}, 'airflow-wmde': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-wmde', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-wmde-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wmde', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wmde-deploy', 'owner': 'root'}]}, 'blunderbuss': {'usernames': [{'name': 'blunderbuss'}, {'name': 'blunderbuss-deploy'}]}, 'datahub': {'usernames': [{'name': 'datahub'}, {'name': 'datahub-deploy'}]}, 'datahub-next': {'usernames': [{'name': 'datahub-next'}, {'name': 'datahub-next-deploy'}]}, 'datasets-config': {'usernames': [{'name': 'datasets-config'}, {'name': 'datasets-config-deploy'}]}, 'datasets-config-next': {'usernames': [{'name': 'datasets-config-next'}, {'name': 'datasets-config-next-deploy'}]}, 'eventstreams-internal': {'usernames': [{'name': 'eventstreams-internal'}, {'name': 'eventstreams-internal-deploy'}]}, 'growthbook': {'usernames': [{'group': 'root', 'name': 'postgresql-growthbook', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-growthbook-deploy', 'owner': 'root'}, {'name': 'growthbook'}, {'name': 'growthbook-deploy'}]}, 'growthbook-next': {'usernames': [{'group': 'root', 'name': 'postgresql-growthbook-next', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-growthbook-next-deploy', 'owner': 'root'}, {'name': 'growthbook-next'}, {'name': 'growthbook-next-deploy'}]}, 'llm-inference': {'usernames': [{'group': 'research-deployers', 'name': 'llm-inference', 'owner': 'root'}, {'group': 'research-deployers', 'name': 'llm-inference-deploy', 'owner': 'root'}]}, 'mediawiki-dumps-legacy': {'usernames': [{'name': 'mediawiki-dumps-legacy'}, {'name': 'mediawiki-dumps-legacy-deploy'}]}, 'mw-content-history-reconcile-enrich': {'usernames': [{'name': 'mw-content-history-reconcile-enrich'}, {'name': 'mw-content-history-reconcile-enrich-deploy'}]}, 'mw-content-history-reconcile-enrich-next': {'usernames': [{'name': 'mw-content-history-reconcile-enrich-next'}, {'name': 'mw-content-history-reconcile-enrich-next-deploy'}]}, 'mw-dump-rev-content-reconcile-enrich': {'usernames': [{'name': 'mw-dump-rev-content-reconcile-enrich'}, {'name': 'mw-dump-rev-content-reconcile-enrich-deploy'}]}, 'mw-dump-rev-content-reconcile-enrich-next': {'usernames': [{'name': 'mw-dump-rev-content-reconcile-enrich-next'}, {'name': 'mw-dump-rev-content-reconcile-enrich-next-deploy'}]}, 'mw-page-html-content-change-enrich': {'usernames': [{'name': 'mw-page-html-content-change-enrich'}, {'name': 'mw-page-html-content-change-enrich-deploy'}]}, 'mw-page-html-content-change-enrich-next': {'usernames': [{'name': 'mw-page-html-content-change-enrich-next'}, {'name': 'mw-page-html-content-change-enrich-next-deploy'}]}, 'mw-page-html-feature-counts-change-enrich': {'usernames': [{'name': 'mw-page-html-feature-counts-change-enrich'}, {'name': 'mw-page-html-feature-counts-change-enrich-deploy'}]}, 'mw-page-html-feature-counts-change-enrich-next': {'usernames': [{'name': 'mw-page-html-feature-counts-change-enrich-next'}, {'name': 'mw-page-html-feature-counts-change-enrich-next-deploy'}]}, 'rdf-streaming-updater': {'usernames': [{'name': 'rdf-streaming-updater'}, {'name': 'rdf-streaming-updater-deploy'}]}, 'spark': {'usernames': [{'name': 'spark'}, {'name': 'spark-deploy'}]}, 'spark-history': {'usernames': [{'group': 'analytics-deployers', 'name': 'spark-history', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'spark-history-deploy', 'owner': 'root'}]}, 'spark-history-test': {'usernames': [{'group': 'analytics-deployers', 'name': 'spark-history-test', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'spark-history-test-deploy', 'owner': 'root'}]}, 'superset': {'usernames': [{'group': 'analytics-deployers', 'name': 'superset', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'superset-deploy', 'owner': 'root'}]}, 'superset-next': {'usernames': [{'group': 'analytics-deployers', 'name': 'superset-next', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'superset-next-deploy', 'owner': 'root'}]}, 'test-kitchen': {'usernames': [{'name': 'test-kitchen'}, {'name': 'test-kitchen-deploy'}]}, 'test-kitchen-next': {'usernames': [{'name': 'test-kitchen-next'}, {'name': 'test-kitchen-next-deploy'}]}, 'turnilo': {'usernames': [{'name': 'turnilo'}, {'name': 'turnilo-deploy'}]}, 'turnilo-next': {'usernames': [{'name': 'turnilo-next'}, {'name': 'turnilo-next-deploy'}]}, 'webrequest-page-view': {'usernames': [{'name': 'webrequest-page-view'}, {'name': 'webrequest-page-view-deploy'}]}, 'webrequest-page-view-next': {'usernames': [{'name': 'webrequest-page-view-next'}, {'name': 'webrequest-page-view-next-deploy'}]}, 'wdqs-queryhammer': {'usernames': [{'name': 'wdqs-queryhammer'}, {'name': 'wdqs-queryhammer-deploy'}]}}, 'aux-k8s': {'codesearch': {'usernames': [{'name': 'codesearch'}, {'name': 'codesearch-deploy'}]}, 'jaeger': {'usernames': [{'name': 'jaeger'}, {'name': 'jaeger-deploy'}]}, 'kafka-mirrormaker': {'usernames': [{'name': 'kafka-mirrormaker'}, {'name': 'kafka-mirrormaker-deploy'}]}, 'miscweb': {'usernames': [{'name': 'miscweb'}, {'name': 'miscweb-deploy'}]}, 'redioscope': {'usernames': [{'name': 'redioscope'}, {'name': 'redioscope-deploy'}]}, 'sophroid': {'usernames': [{'name': 'sophroid'}, {'name': 'sophroid-deploy'}]}, 'zarcillo': {'usernames': [{'name': 'zarcillo'}, {'name': 'zarcillo-deploy'}]}}}
+ services => {'main': {'apertium': {'usernames': [{'name': 'apertium'}, {'name': 'apertium-deploy'}]}, 'api-gateway': {'usernames': [{'name': 'api-gateway'}, {'name': 'api-gateway-deploy'}]}, 'benthos-cache-invalidator': {'usernames': [{'name': 'benthos-cache-invalidator'}, {'name': 'benthos-cache-invalidator-deploy'}]}, 'changeprop': {'usernames': [{'name': 'changeprop'}, {'name': 'changeprop-deploy'}]}, 'changeprop-jobqueue': {'usernames': [{'name': 'changeprop-jobqueue'}, {'name': 'changeprop-jobqueue-deploy'}]}, 'chart-renderer': {'usernames': [{'name': 'chart-renderer'}, {'name': 'chart-renderer-deploy'}]}, 'cirrus-streaming-updater': {'usernames': [{'name': 'cirrus-streaming-updater'}, {'name': 'cirrus-streaming-updater-deploy'}]}, 'citoid': {'usernames': [{'name': 'citoid'}, {'name': 'citoid-deploy'}]}, 'commons-impact-analytics': {'usernames': [{'name': 'commons-impact-analytics'}, {'name': 'commons-impact-analytics-deploy'}]}, 'cxserver': {'usernames': [{'name': 'cxserver'}, {'name': 'cxserver-deploy'}]}, 'data-gateway': {'usernames': [{'name': 'data-gateway'}, {'name': 'data-gateway-deploy'}]}, 'developer-portal': {'usernames': [{'name': 'developer-portal'}, {'name': 'developer-portal-deploy'}]}, 'device-analytics': {'usernames': [{'name': 'device-analytics'}, {'name': 'device-analytics-deploy'}]}, 'echostore': {'usernames': [{'name': 'echostore'}, {'name': 'echostore-deploy'}]}, 'edit-analytics': {'usernames': [{'name': 'edit-analytics'}, {'name': 'edit-analytics-deploy'}]}, 'editor-analytics': {'usernames': [{'name': 'editor-analytics'}, {'name': 'editor-analytics-deploy'}]}, 'eventgate-analytics': {'usernames': [{'name': 'eventgate-analytics'}, {'name': 'eventgate-analytics-deploy'}]}, 'eventgate-analytics-external': {'usernames': [{'name': 'eventgate-analytics-external'}, {'name': 'eventgate-analytics-external-deploy'}]}, 'eventgate-logging-external': {'usernames': [{'name': 'eventgate-logging-external'}, {'name': 'eventgate-logging-external-deploy'}]}, 'eventgate-main': {'usernames': [{'name': 'eventgate-main'}, {'name': 'eventgate-main-deploy'}]}, 'eventstreams': {'usernames': [{'name': 'eventstreams'}, {'name': 'eventstreams-deploy'}]}, 'failoid-ng': {'usernames': [{'name': 'failoid-ng'}, {'name': 'failoid-ng-deploy'}]}, 'geo-analytics': {'usernames': [{'name': 'geo-analytics'}, {'name': 'geo-analytics-deploy'}]}, 'ipoid': {'usernames': [{'name': 'ipoid'}, {'name': 'ipoid-deploy'}]}, 'kartotherian': {'usernames': [{'name': 'kartotherian'}, {'name': 'kartotherian-deploy'}]}, 'linked-artifacts': {'usernames': [{'name': 'linked-artifacts'}, {'name': 'linked-artifacts-deploy'}]}, 'linkrecommendation': {'usernames': [{'name': 'linkrecommendation'}, {'name': 'linkrecommendation-deploy'}]}, 'machinetranslation': {'usernames': [{'name': 'machinetranslation'}, {'name': 'machinetranslation-deploy'}]}, 'mathoid': {'usernames': [{'name': 'mathoid'}, {'name': 'mathoid-deploy'}]}, 'media-analytics': {'usernames': [{'name': 'media-analytics'}, {'name': 'media-analytics-deploy'}]}, 'miscweb': {'usernames': [{'name': 'miscweb'}, {'name': 'miscweb-deploy'}]}, 'mobileapps': {'usernames': [{'name': 'mobileapps'}, {'name': 'mobileapps-deploy'}]}, 'mw-api-ext': {'usernames': [{'name': 'mw-api-ext'}, {'name': 'mw-api-ext-deploy'}]}, 'mw-api-int': {'usernames': [{'name': 'mw-api-int'}, {'name': 'mw-api-int-deploy'}]}, 'mw-cron': {'usernames': [{'name': 'mw-cron'}, {'name': 'mw-cron-deploy'}, {'group': 'restricted', 'name': 'mw-cron-restricted'}, {'group': 'restricted', 'name': 'mw-cron-restricted-deploy'}]}, 'mw-debug': {'usernames': [{'name': 'mw-debug'}, {'name': 'mw-debug-deploy'}]}, 'mw-experimental': {'usernames': [{'name': 'mw-experimental'}, {'name': 'mw-experimental-deploy'}]}, 'mw-jobrunner': {'usernames': [{'name': 'mw-jobrunner'}, {'name': 'mw-jobrunner-deploy'}]}, 'mw-mcrouter': {'usernames': [{'name': 'mw-mcrouter'}, {'name': 'mw-mcrouter-deploy'}]}, 'mw-misc': {'usernames': [{'name': 'mw-misc'}, {'name': 'mw-misc-deploy'}]}, 'mw-page-content-change-enrich': {'usernames': [{'name': 'mw-page-content-change-enrich'}, {'name': 'mw-page-content-change-enrich-deploy'}]}, 'mw-parsoid': {'usernames': [{'name': 'mw-parsoid'}, {'name': 'mw-parsoid-deploy'}]}, 'mw-script': {'usernames': [{'name': 'mw-script'}, {'name': 'mw-script-deploy'}, {'group': 'restricted', 'name': 'mw-script-restricted'}, {'group': 'restricted', 'name': 'mw-script-restricted-deploy'}]}, 'mw-videoscaler': {'usernames': [{'name': 'mw-videoscaler'}, {'name': 'mw-videoscaler-deploy'}]}, 'mw-web': {'usernames': [{'name': 'mw-web'}, {'name': 'mw-web-deploy'}]}, 'mw-wikifunctions': {'usernames': [{'name': 'mw-wikifunctions'}, {'name': 'mw-wikifunctions-deploy'}]}, 'opentelemetry-collector': {'usernames': [{'name': 'opentelemetry-collector'}, {'name': 'opentelemetry-collector-deploy'}]}, 'page-analytics': {'usernames': [{'name': 'page-analytics'}, {'name': 'page-analytics-deploy'}]}, 'proton': {'usernames': [{'name': 'proton'}, {'name': 'proton-deploy'}]}, 'push-notifications': {'usernames': [{'name': 'push-notifications'}, {'name': 'push-notifications-deploy'}]}, 'ratelimit': {'usernames': [{'name': 'ratelimit'}, {'name': 'ratelimit-deploy'}]}, 'rdf-streaming-updater': {'usernames': [{'name': 'rdf-streaming-updater'}, {'name': 'rdf-streaming-updater-deploy'}]}, 'recommendation-api': {'usernames': [{'name': 'recommendation-api'}, {'name': 'recommendation-api-deploy'}]}, 'rest-gateway': {'usernames': [{'name': 'rest-gateway'}, {'name': 'rest-gateway-deploy'}]}, 'sessionstore': {'usernames': [{'name': 'sessionstore'}, {'name': 'sessionstore-deploy'}]}, 'shellbox': {'usernames': [{'name': 'shellbox'}, {'name': 'shellbox-deploy'}]}, 'shellbox-constraints': {'usernames': [{'name': 'shellbox-constraints'}, {'name': 'shellbox-constraints-deploy'}]}, 'shellbox-media': {'usernames': [{'name': 'shellbox-media'}, {'name': 'shellbox-media-deploy'}]}, 'shellbox-syntaxhighlight': {'usernames': [{'name': 'shellbox-syntaxhighlight'}, {'name': 'shellbox-syntaxhighlight-deploy'}]}, 'shellbox-timeline': {'usernames': [{'name': 'shellbox-timeline'}, {'name': 'shellbox-timeline-deploy'}]}, 'shellbox-video': {'usernames': [{'name': 'shellbox-video'}, {'name': 'shellbox-video-deploy'}]}, 'tegola-vector-tiles': {'usernames': [{'name': 'tegola-vector-tiles'}, {'name': 'tegola-vector-tiles-deploy'}]}, 'termbox': {'usernames': [{'name': 'termbox'}, {'name': 'termbox-deploy'}]}, 'thumbor': {'usernames': [{'name': 'thumbor'}, {'name': 'thumbor-deploy'}]}, 'toolhub': {'usernames': [{'name': 'toolhub'}, {'name': 'toolhub-deploy'}]}, 'wikidata-query-gui': {'usernames': [{'name': 'wikidata-query-gui'}, {'name': 'wikidata-query-gui-deploy'}]}, 'wikifeeds': {'usernames': [{'name': 'wikifeeds'}, {'name': 'wikifeeds-deploy'}]}, 'wikifunctions': {'usernames': [{'name': 'wikifunctions'}, {'name': 'wikifunctions-deploy'}]}, 'zotero': {'usernames': [{'name': 'zotero'}, {'name': 'zotero-deploy'}]}}, 'ml-serve': {'article-descriptions': {'usernames': [{'group': 'deploy-ml-service', 'name': 'article-descriptions', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'article-descriptions-deploy', 'owner': 'root'}]}, 'article-models': {'usernames': [{'group': 'deploy-ml-service', 'name': 'article-models', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'article-models-deploy', 'owner': 'root'}]}, 'articletopic-outlink': {'usernames': [{'group': 'deploy-ml-service', 'name': 'articletopic-outlink', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'articletopic-outlink-deploy', 'owner': 'root'}]}, 'edit-check': {'usernames': [{'group': 'deploy-ml-service', 'name': 'edit-check', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'edit-check-deploy', 'owner': 'root'}]}, 'experimental': {'usernames': [{'group': 'deploy-ml-service', 'name': 'experimental', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'experimental-deploy', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'experimental-debug', 'owner': 'root'}]}, 'llm': {'usernames': [{'group': 'deploy-ml-service', 'name': 'llm', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'llm-deploy', 'owner': 'root'}]}, 'logo-detection': {'usernames': [{'group': 'deploy-ml-service', 'name': 'logo-detection', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'logo-detection-deploy', 'owner': 'root'}]}, 'ores-legacy': {'usernames': [{'group': 'deploy-ml-service', 'name': 'ores-legacy', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'ores-legacy-deploy', 'owner': 'root'}]}, 'readability': {'usernames': [{'group': 'deploy-ml-service', 'name': 'readability', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'readability-deploy', 'owner': 'root'}]}, 'recommendation-api-ng': {'usernames': [{'group': 'deploy-ml-service', 'name': 'recommendation-api-ng', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'recommendation-api-ng-deploy', 'owner': 'root'}]}, 'revertrisk': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revertrisk', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revertrisk-deploy', 'owner': 'root'}]}, 'revise-tone-task-generator': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revise-tone-task-generator', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revise-tone-task-generator-deploy', 'owner': 'root'}]}, 'revision-models': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revision-models', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revision-models-deploy', 'owner': 'root'}]}, 'revscoring-articlequality': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-articlequality', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-articlequality-deploy', 'owner': 'root'}]}, 'revscoring-articletopic': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-articletopic', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-articletopic-deploy', 'owner': 'root'}]}, 'revscoring-draftquality': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-draftquality', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-draftquality-deploy', 'owner': 'root'}]}, 'revscoring-drafttopic': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-drafttopic', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-drafttopic-deploy', 'owner': 'root'}]}, 'revscoring-editquality-damaging': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-editquality-damaging', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-editquality-damaging-deploy', 'owner': 'root'}]}, 'revscoring-editquality-goodfaith': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-editquality-goodfaith', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-editquality-goodfaith-deploy', 'owner': 'root'}]}, 'revscoring-editquality-reverted': {'usernames': [{'group': 'deploy-ml-service', 'name': 'revscoring-editquality-reverted', 'owner': 'root'}, {'group': 'deploy-ml-service', 'name': 'revscoring-editquality-reverted-deploy', 'owner': 'root'}]}}, 'dse-k8s': {'analytics': {'usernames': [{'group': 'analytics-deployers', 'name': 'analytics', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'analytics-deploy', 'owner': 'root'}]}, 'analytics-test': {'usernames': [{'group': 'analytics-deployers', 'name': 'analytics-test', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'analytics-test-deploy', 'owner': 'root'}]}, 'kafka-mirrormaker': {'usernames': [{'name': 'kafka-mirrormaker'}, {'name': 'kafka-mirrormaker-deploy'}]}, 'opensearch-ipoid': {'usernames': [{'name': 'opensearch-ipoid'}, {'name': 'opensearch-ipoid-deploy'}]}, 'opensearch-ipoid-test': {'usernames': [{'name': 'opensearch-ipoid-test'}, {'name': 'opensearch-ipoid-test-deploy'}]}, 'opensearch-operator': {'usernames': [{'name': 'opensearch-operator'}, {'name': 'opensearch-operator-deploy'}]}, 'opensearch-operator-3': {'usernames': [{'name': 'opensearch-operator-3'}, {'name': 'opensearch-operator-3-deploy'}]}, 'opensearch-semantic-search': {'usernames': [{'name': 'opensearch-semantic-search'}, {'name': 'opensearch-semantic-search-deploy'}]}, 'opensearch-semantic-search-test': {'usernames': [{'name': 'opensearch-semantic-search-test'}, {'name': 'opensearch-semantic-search-test-deploy'}]}, 'opensearch-test': {'usernames': [{'name': 'opensearch-test'}, {'name': 'opensearch-test-deploy'}]}, 'opensearch-toolhub': {'usernames': [{'name': 'opensearch-toolhub'}, {'name': 'opensearch-toolhub-deploy'}]}, 'opensearch-toolhub-test': {'usernames': [{'name': 'opensearch-toolhub-test'}, {'name': 'opensearch-toolhub-test-deploy'}]}, 'opensearch-apifeatureusage': {'usernames': [{'name': 'opensearch-apifeatureusage'}, {'name': 'opensearch-apifeatureusage-deploy'}]}, 'opensearch-apifeatureusage-test': {'usernames': [{'name': 'opensearch-apifeatureusage-test'}, {'name': 'opensearch-apifeatureusage-test-deploy'}]}, 'opensearch-ttmserver': {'usernames': [{'name': 'opensearch-ttmserver'}, {'name': 'opensearch-ttmserver-deploy'}]}, 'opensearch-ttmserver-test': {'usernames': [{'name': 'opensearch-ttmserver-test'}, {'name': 'opensearch-ttmserver-test-deploy'}]}, 'wdqs-internal': {'usernames': [{'name': 'wdqs-internal'}, {'name': 'wdqs-internal-deploy'}]}, 'wdqs-internal-next': {'usernames': [{'name': 'wdqs-internal-next'}, {'name': 'wdqs-internal-next-deploy'}]}, 'wdqs-external': {'usernames': [{'name': 'wdqs-external'}, {'name': 'wdqs-external-deploy'}]}, 'wdqs-external-next': {'usernames': [{'name': 'wdqs-external-next'}, {'name': 'wdqs-external-next-deploy'}]}}, 'dse-k8s-codfw': {'echoserver': {'usernames': [{'name': 'echoserver'}, {'name': 'echoserver-deploy'}]}}, 'dse-k8s-eqiad': {'airflow-analytics-product': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-analytics-product', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-analytics-product-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-product', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-product-deploy', 'owner': 'root'}]}, 'airflow-analytics-test': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-analytics-test', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-analytics-test-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-test', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-analytics-test-deploy', 'owner': 'root'}]}, 'airflow-dev': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-dev', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-dev-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-dev', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-dev-deploy', 'owner': 'root'}]}, 'airflow-fr-tech': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-fr-tech', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-fr-tech-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-fr-tech', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-fr-tech-deploy', 'owner': 'root'}]}, 'airflow-main': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-main', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-main-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-main', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-main-deploy', 'owner': 'root'}]}, 'airflow-ml': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-ml', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-ml-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-ml', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-ml-deploy', 'owner': 'root'}]}, 'airflow-platform-eng': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-platform-eng', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-platform-eng-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-platform-eng', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-platform-eng-deploy', 'owner': 'root'}]}, 'airflow-research': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-research', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-research-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-research', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-research-deploy', 'owner': 'root'}]}, 'airflow-search': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-search', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-search-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-search', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-search-deploy', 'owner': 'root'}]}, 'airflow-sre': {'private_files': {'group': 'ops', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-sre', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-sre-deploy', 'owner': 'root'}, {'group': 'ops', 'name': 'airflow-sre', 'owner': 'root'}, {'group': 'ops', 'name': 'airflow-sre-deploy', 'owner': 'root'}]}, 'airflow-test-k8s': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-test-k8s', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-test-k8s-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-test-k8s', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-test-k8s-deploy', 'owner': 'root'}]}, 'airflow-wikidata': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-wikidata', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-wikidata-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wikidata', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wikidata-deploy', 'owner': 'root'}]}, 'airflow-wmde': {'private_files': {'group': 'airflow-deployers', 'mode': '0640', 'owner': 'root'}, 'usernames': [{'group': 'root', 'name': 'postgresql-airflow-wmde', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-airflow-wmde-deploy', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wmde', 'owner': 'root'}, {'group': 'airflow-deployers', 'name': 'airflow-wmde-deploy', 'owner': 'root'}]}, 'blunderbuss': {'usernames': [{'name': 'blunderbuss'}, {'name': 'blunderbuss-deploy'}]}, 'datahub': {'usernames': [{'name': 'datahub'}, {'name': 'datahub-deploy'}]}, 'datahub-next': {'usernames': [{'name': 'datahub-next'}, {'name': 'datahub-next-deploy'}]}, 'datasets-config': {'usernames': [{'name': 'datasets-config'}, {'name': 'datasets-config-deploy'}]}, 'datasets-config-next': {'usernames': [{'name': 'datasets-config-next'}, {'name': 'datasets-config-next-deploy'}]}, 'eventstreams-internal': {'usernames': [{'name': 'eventstreams-internal'}, {'name': 'eventstreams-internal-deploy'}]}, 'growthbook': {'usernames': [{'group': 'root', 'name': 'postgresql-growthbook', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-growthbook-deploy', 'owner': 'root'}, {'name': 'growthbook'}, {'name': 'growthbook-deploy'}]}, 'growthbook-next': {'usernames': [{'group': 'root', 'name': 'postgresql-growthbook-next', 'owner': 'root'}, {'group': 'root', 'name': 'postgresql-growthbook-next-deploy', 'owner': 'root'}, {'name': 'growthbook-next'}, {'name': 'growthbook-next-deploy'}]}, 'llm-inference': {'usernames': [{'group': 'research-deployers', 'name': 'llm-inference', 'owner': 'root'}, {'group': 'research-deployers', 'name': 'llm-inference-deploy', 'owner': 'root'}]}, 'mediawiki-dumps-legacy': {'usernames': [{'name': 'mediawiki-dumps-legacy'}, {'name': 'mediawiki-dumps-legacy-deploy'}]}, 'mw-content-history-reconcile-enrich': {'usernames': [{'name': 'mw-content-history-reconcile-enrich'}, {'name': 'mw-content-history-reconcile-enrich-deploy'}]}, 'mw-content-history-reconcile-enrich-next': {'usernames': [{'name': 'mw-content-history-reconcile-enrich-next'}, {'name': 'mw-content-history-reconcile-enrich-next-deploy'}]}, 'mw-dump-rev-content-reconcile-enrich': {'usernames': [{'name': 'mw-dump-rev-content-reconcile-enrich'}, {'name': 'mw-dump-rev-content-reconcile-enrich-deploy'}]}, 'mw-dump-rev-content-reconcile-enrich-next': {'usernames': [{'name': 'mw-dump-rev-content-reconcile-enrich-next'}, {'name': 'mw-dump-rev-content-reconcile-enrich-next-deploy'}]}, 'mw-page-html-content-change-enrich': {'usernames': [{'name': 'mw-page-html-content-change-enrich'}, {'name': 'mw-page-html-content-change-enrich-deploy'}]}, 'mw-page-html-content-change-enrich-next': {'usernames': [{'name': 'mw-page-html-content-change-enrich-next'}, {'name': 'mw-page-html-content-change-enrich-next-deploy'}]}, 'mw-page-html-feature-counts-change-enrich': {'usernames': [{'name': 'mw-page-html-feature-counts-change-enrich'}, {'name': 'mw-page-html-feature-counts-change-enrich-deploy'}]}, 'mw-page-html-feature-counts-change-enrich-next': {'usernames': [{'name': 'mw-page-html-feature-counts-change-enrich-next'}, {'name': 'mw-page-html-feature-counts-change-enrich-next-deploy'}]}, 'rdf-streaming-updater': {'usernames': [{'name': 'rdf-streaming-updater'}, {'name': 'rdf-streaming-updater-deploy'}]}, 'spark': {'usernames': [{'name': 'spark'}, {'name': 'spark-deploy'}]}, 'spark-history': {'usernames': [{'group': 'analytics-deployers', 'name': 'spark-history', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'spark-history-deploy', 'owner': 'root'}]}, 'spark-history-test': {'usernames': [{'group': 'analytics-deployers', 'name': 'spark-history-test', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'spark-history-test-deploy', 'owner': 'root'}]}, 'superset': {'usernames': [{'group': 'analytics-deployers', 'name': 'superset', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'superset-deploy', 'owner': 'root'}]}, 'superset-next': {'usernames': [{'group': 'analytics-deployers', 'name': 'superset-next', 'owner': 'root'}, {'group': 'analytics-deployers', 'name': 'superset-next-deploy', 'owner': 'root'}]}, 'test-kitchen': {'usernames': [{'name': 'test-kitchen'}, {'name': 'test-kitchen-deploy'}]}, 'test-kitchen-next': {'usernames': [{'name': 'test-kitchen-next'}, {'name': 'test-kitchen-next-deploy'}]}, 'turnilo': {'usernames': [{'name': 'turnilo'}, {'name': 'turnilo-deploy'}]}, 'turnilo-next': {'usernames': [{'name': 'turnilo-next'}, {'name': 'turnilo-next-deploy'}]}, 'webrequest-page-view': {'usernames': [{'name': 'webrequest-page-view'}, {'name': 'webrequest-page-view-deploy'}]}, 'webrequest-page-view-next': {'usernames': [{'name': 'webrequest-page-view-next'}, {'name': 'webrequest-page-view-next-deploy'}]}, 'wdqs-queryhammer': {'usernames': [{'name': 'wdqs-queryhammer'}, {'name': 'wdqs-queryhammer-deploy'}]}}, 'aux-k8s': {'codesearch': {'usernames': [{'name': 'codesearch'}, {'name': 'codesearch-deploy'}]}, 'jaeger': {'usernames': [{'name': 'jaeger'}, {'name': 'jaeger-deploy'}]}, 'kafka-mirrormaker': {'usernames': [{'name': 'kafka-mirrormaker'}, {'name': 'kafka-mirrormaker-deploy'}]}, 'miscweb': {'usernames': [{'name': 'miscweb'}, {'name': 'miscweb-deploy'}]}, 'redioscope': {'usernames': [{'name': 'redioscope'}, {'name': 'redioscope-deploy'}]}, 'sophroid': {'usernames': [{'name': 'sophroid'}, {'name': 'sophroid-deploy'}]}, 'zarcillo': {'usernames': [{'name': 'zarcillo'}, {'name': 'zarcillo-deploy'}]}}}
- File[/etc/helmfile-defaults/sophroid/service.yaml]
- Content differences:
--- /etc/helmfile-defaults/sophroid/service.yaml.orig
+++ /etc/helmfile-defaults/sophroid/service.yaml
@@ -750,39 +750,6 @@
state: production
discovery:
- dnsdisc: eventstreams
- active_active: true
- eventstreams-internal:
- description: Internal streams of events via HTTP + SSE, backed by Kafka. eventstreams-internal.discovery.wmnet
- encryption: true
- ip:
- codfw:
- default: 10.2.1.35
- eqiad:
- default: 10.2.2.35
- lvs:
- class: low-traffic
- conftool:
- cluster: kubernetes
- service: kubesvc
- depool_threshold: 0.5
- enabled: true
- monitors:
- IdleConnection:
- max-delay: 300
- timeout-clean-reconnect: 3
- scheduler: wrr
- page: false
- probes:
- - type: http
- path: "/_info"
- - type: swagger
- port: 4992
- sites:
- - eqiad
- - codfw
- state: service_setup
- discovery:
- - dnsdisc: eventstreams-internal
active_active: true
k8s-ingress-staging:
description: istio-ingresscontroller on kubernetes staging. k8s-ingress-staging.discovery.wmnet
@@ -4318,6 +4285,21 @@
- codfw
- eqiad
state: service_setup
+ eventstreams-internal:
+ description: Internal streams of events via HTTP + SSE, backed by Kafka. eventstreams-internal.discovery.wmnet
+ encryption: true
+ ip:
+ eqiad:
+ default: 10.2.2.91
+ codfw:
+ default: 10.2.1.91
+ page: false
+ probes:
+ - type: http
+ port: 30443
+ sites:
+ - eqiad
+ state: production
analytics-web:
encryption: true
role: analytics_cluster::webserver
- Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]
- Parameters differences:
--- Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem].orig
+++ Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]
- unless => /usr/bin/test "$(/bin/cat /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem | sha512sum)" == "$(/bin/cat /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chained.pem | sha512sum)"
- command => /bin/cat /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem > /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chained.pem
- require => Exec[Generate cert wikikube__eventstreams-internal-deploy refresh on intermediate ca change]
- subscribe => ['Exec[renew certificate - wikikube__eventstreams-internal-deploy]', 'File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]', 'File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem]']
- Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh on intermediate ca change]
- Parameters differences:
--- Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh on intermediate ca change].orig
+++ Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh on intermediate ca change]
- command => /usr/bin/cfssl gencert -config /etc/cfssl/client-cfssl.conf -tls-remote-ca /etc/ssl/certs/wmf-ca-certificates.crt -mutual-tls-client-cert /etc/cfssl/mutual_tls_client_cert.pem -mutual-tls-client-key /var/lib/puppet/ssl/private_keys/deploy1003.eqiad.wmnet.pem -label wikikube_staging /etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr | /usr/bin/cfssljson -bare /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy
- subscribe => File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]
- refreshonly => True
- require => Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]
- environment => ['GODEBUG=x509ignoreCN=0']
- Exec[Generate cert wikikube__eventstreams-internal refresh on intermediate ca change]
- Parameters differences:
--- Exec[Generate cert wikikube__eventstreams-internal refresh on intermediate ca change].orig
+++ Exec[Generate cert wikikube__eventstreams-internal refresh on intermediate ca change]
- command => /usr/bin/cfssl gencert -config /etc/cfssl/client-cfssl.conf -tls-remote-ca /etc/ssl/certs/wmf-ca-certificates.crt -mutual-tls-client-cert /etc/cfssl/mutual_tls_client_cert.pem -mutual-tls-client-key /var/lib/puppet/ssl/private_keys/deploy1003.eqiad.wmnet.pem -label wikikube /etc/cfssl/csr/wikikube__eventstreams-internal.csr | /usr/bin/cfssljson -bare /etc/kubernetes/pki/wikikube__eventstreams-internal
- subscribe => File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem]
- refreshonly => True
- require => Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]
- environment => ['GODEBUG=x509ignoreCN=0']
- File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chained.pem]
- Parameters differences:
--- File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chained.pem].orig
+++ File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chained.pem]
- group => deployment
- owner => mwdeploy
- require => Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]
- ensure => file
- File[/etc/kubernetes/eventstreams-internal-staging.config]
- Parameters differences:
--- File[/etc/kubernetes/eventstreams-internal-staging.config].orig
+++ File[/etc/kubernetes/eventstreams-internal-staging.config]
- group => deployment
- owner => mwdeploy
- mode => 0640
- ensure => present
- Content differences:
--- /etc/kubernetes/eventstreams-internal-staging.config.orig
+++ /etc/kubernetes/eventstreams-internal-staging.config
@@ -1,19 +0,0 @@
-apiVersion: v1
-kind: Config
-preferences: {}
-current-context: default-system
-contexts:
-- name: default-system
- context:
- cluster: default-cluster
- user: eventstreams-internal
- namespace: eventstreams-internal
-clusters:
-- name: default-cluster
- cluster:
- server: https://kubestagemaster.svc.eqiad.wmnet:6443
-users:
-- name: eventstreams-internal
- user:
- client-certificate: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem
- client-key: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem
- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging.config]
- Parameters differences:
--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging.config].orig
+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging.config]
- owner => mwdeploy
- mode => 0640
- namespace => eventstreams-internal
- group => deployment
- username => eventstreams-internal
- master_host => kubestagemaster.svc.eqiad.wmnet
- ensure => present
- auth_cert => {'cert': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem', 'key': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem', 'chain': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem', 'chained': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chained.pem'}
- require => ['Class[K8s::Base_dirs]']
- Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]
- Parameters differences:
--- Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr].orig
+++ Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]
- common_name => eventstreams-internal-deploy
- key => {'algo': 'ecdsa', 'size': 256}
- ensure => present
- hosts => []
- names => [{'organisation': 'view'}, {'organisation': 'deploy'}]
- File[/etc/kubernetes/eventstreams-internal-deploy-codfw.config]
- Parameters differences:
--- File[/etc/kubernetes/eventstreams-internal-deploy-codfw.config].orig
+++ File[/etc/kubernetes/eventstreams-internal-deploy-codfw.config]
- group => deployment
- owner => mwdeploy
- mode => 0640
- ensure => present
- Content differences:
--- /etc/kubernetes/eventstreams-internal-deploy-codfw.config.orig
+++ /etc/kubernetes/eventstreams-internal-deploy-codfw.config
@@ -1,19 +0,0 @@
-apiVersion: v1
-kind: Config
-preferences: {}
-current-context: default-system
-contexts:
-- name: default-system
- context:
- cluster: default-cluster
- user: eventstreams-internal-deploy
- namespace: eventstreams-internal
-clusters:
-- name: default-cluster
- cluster:
- server: https://kubemaster.svc.codfw.wmnet:6443
-users:
-- name: eventstreams-internal-deploy
- user:
- client-certificate: /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem
- client-key: /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy-key.pem
- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-eqiad.config]
- Parameters differences:
--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-eqiad.config].orig
+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-eqiad.config]
- owner => mwdeploy
- mode => 0640
- namespace => eventstreams-internal
- group => deployment
- username => eventstreams-internal-deploy
- master_host => kubemaster.svc.eqiad.wmnet
- ensure => present
- auth_cert => {'cert': '/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem', 'key': '/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy-key.pem', 'chain': '/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem', 'chained': '/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chained.pem'}
- require => ['Class[K8s::Base_dirs]']
- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.csr]
- Parameters differences:
--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.csr].orig
+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.csr]
- group => deployment
- owner => mwdeploy
- mode => 0440
- ensure => file
- File[/etc/kubernetes/eventstreams-internal-eqiad.config]
- Parameters differences:
--- File[/etc/kubernetes/eventstreams-internal-eqiad.config].orig
+++ File[/etc/kubernetes/eventstreams-internal-eqiad.config]
- group => deployment
- owner => mwdeploy
- mode => 0640
- ensure => present
- Content differences:
--- /etc/kubernetes/eventstreams-internal-eqiad.config.orig
+++ /etc/kubernetes/eventstreams-internal-eqiad.config
@@ -1,19 +0,0 @@
-apiVersion: v1
-kind: Config
-preferences: {}
-current-context: default-system
-contexts:
-- name: default-system
- context:
- cluster: default-cluster
- user: eventstreams-internal
- namespace: eventstreams-internal
-clusters:
-- name: default-cluster
- cluster:
- server: https://kubemaster.svc.eqiad.wmnet:6443
-users:
-- name: eventstreams-internal
- user:
- client-certificate: /etc/kubernetes/pki/wikikube__eventstreams-internal.pem
- client-key: /etc/kubernetes/pki/wikikube__eventstreams-internal-key.pem
- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.csr]
- Parameters differences:
--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.csr].orig
+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.csr]
- group => deployment
- owner => mwdeploy
- mode => 0440
- ensure => file
- File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/staging.yaml]
- Parameters differences:
--- File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/staging.yaml].orig
+++ File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/staging.yaml]
- owner => mwdeploy
- mode => 0640
- ensure => present
- group => deployment
- require => File[/etc/helmfile-defaults/private/main_services/eventstreams-internal]
- Content differences:
--- /etc/helmfile-defaults/private/main_services/eventstreams-internal/staging.yaml.orig
+++ /etc/helmfile-defaults/private/main_services/eventstreams-internal/staging.yaml
@@ -1,2 +0,0 @@
----
-defaultsecret: muchdefault
- Exec[renew certificate - wikikube__eventstreams-internal]
- Parameters differences:
--- Exec[renew certificate - wikikube__eventstreams-internal].orig
+++ Exec[renew certificate - wikikube__eventstreams-internal]
- unless => /usr/bin/openssl x509 -in /etc/kubernetes/pki/wikikube__eventstreams-internal.pem -checkend 952200
- command => /usr/bin/cfssl sign -config /etc/cfssl/client-cfssl.conf -tls-remote-ca /etc/ssl/certs/wmf-ca-certificates.crt -mutual-tls-client-cert /etc/cfssl/mutual_tls_client_cert.pem -mutual-tls-client-key /var/lib/puppet/ssl/private_keys/deploy1003.eqiad.wmnet.pem -label wikikube /etc/kubernetes/pki/wikikube__eventstreams-internal.csr | /usr/bin/cfssljson -bare /etc/kubernetes/pki/wikikube__eventstreams-internal
- require => Exec[Generate cert wikikube__eventstreams-internal]
- environment => ['GODEBUG=x509ignoreCN=0']
- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]
- Parameters differences:
--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem].orig
+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]
- owner => mwdeploy
- mode => 0440
- ensure => file
- group => deployment
- source => puppet:///modules/profile/pki/intermediates/wikikube_staging-cert.pem
- Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr]
- Parameters differences:
--- Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr].orig
+++ Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr]
- common_name => eventstreams-internal
- key => {'algo': 'ecdsa', 'size': 256}
- ensure => present
- hosts => []
- names => [{'organisation': 'view'}]
- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config]
- Parameters differences:
--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config].orig
+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config]
- owner => mwdeploy
- mode => 0640
- namespace => eventstreams-internal
- group => deployment
- username => eventstreams-internal-deploy
- master_host => kubestagemaster.svc.codfw.wmnet
- ensure => present
- auth_cert => {'cert': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem', 'key': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem', 'chain': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem', 'chained': '/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chained.pem'}
- require => ['Class[K8s::Base_dirs]']
- File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/codfw.yaml]
- Parameters differences:
--- File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/codfw.yaml].orig
+++ File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/codfw.yaml]
- owner => mwdeploy
- mode => 0640
- ensure => present
- group => deployment
- require => File[/etc/helmfile-defaults/private/main_services/eventstreams-internal]
- Content differences:
--- /etc/helmfile-defaults/private/main_services/eventstreams-internal/codfw.yaml.orig
+++ /etc/helmfile-defaults/private/main_services/eventstreams-internal/codfw.yaml
@@ -1,4 +0,0 @@
----
-main_app:
- redis:
- defaultsecret: muchdefault
- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem]
- Parameters differences:
--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem].orig
+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem]
- owner => mwdeploy
- backup => False
- show_diff => False
- mode => 0440
- ensure => file
- group => deployment
- File[/etc/kubernetes/pki/wikikube__eventstreams-internal-key.pem]
- Parameters differences: