{"host": "deploy1003.eqiad.wmnet", "state": "core_diff", "description": "Differences to core resources", "diff": {"full": {"total": 17444, "only_in_self": ["Cfssl::Cert[wikikube__eventstreams-internal-deploy]", "Cfssl::Cert[wikikube__eventstreams-internal]", "Cfssl::Cert[wikikube_staging__eventstreams-internal-deploy]", "Cfssl::Cert[wikikube_staging__eventstreams-internal]", "Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]", "Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]", "Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]", "Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr]", "Exec[Generate cert wikikube__eventstreams-internal refresh on intermediate ca change]", "Exec[Generate cert wikikube__eventstreams-internal refresh]", "Exec[Generate cert wikikube__eventstreams-internal-deploy refresh on intermediate ca change]", "Exec[Generate cert wikikube__eventstreams-internal-deploy refresh]", "Exec[Generate cert wikikube__eventstreams-internal-deploy]", "Exec[Generate cert wikikube__eventstreams-internal]", "Exec[Generate cert wikikube_staging__eventstreams-internal refresh on intermediate ca change]", "Exec[Generate cert wikikube_staging__eventstreams-internal refresh]", "Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh on intermediate ca change]", "Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh]", "Exec[Generate cert wikikube_staging__eventstreams-internal-deploy]", "Exec[Generate cert wikikube_staging__eventstreams-internal]", "Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]", "Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem]", "Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]", "Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]", "Exec[renew certificate - wikikube__eventstreams-internal-deploy]", "Exec[renew certificate - wikikube__eventstreams-internal]", "Exec[renew certificate - wikikube_staging__eventstreams-internal-deploy]", "Exec[renew certificate - wikikube_staging__eventstreams-internal]", "File[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]", "File[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]", "File[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]", "File[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr]", "File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/codfw.yaml]", "File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/staging.yaml]", "File[/etc/helmfile-defaults/private/main_services/eventstreams-internal]", "File[/etc/kubernetes/eventstreams-internal-codfw.config]", "File[/etc/kubernetes/eventstreams-internal-deploy-codfw.config]", "File[/etc/kubernetes/eventstreams-internal-deploy-eqiad.config]", "File[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config]", "File[/etc/kubernetes/eventstreams-internal-deploy-staging-eqiad.config]", "File[/etc/kubernetes/eventstreams-internal-deploy-staging.config]", "File[/etc/kubernetes/eventstreams-internal-eqiad.config]", "File[/etc/kubernetes/eventstreams-internal-staging-codfw.config]", "File[/etc/kubernetes/eventstreams-internal-staging-eqiad.config]", "File[/etc/kubernetes/eventstreams-internal-staging.config]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy-key.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chained.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.csr]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-key.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chained.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.csr]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chained.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.csr]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chained.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.csr]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-codfw.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-codfw.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-eqiad.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging-eqiad.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-eqiad.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging-codfw.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging-eqiad.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging.config]"], "only_in_other": [], "resource_diffs": [{"resource": "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]\n\n-    owner  => mwdeploy\n-    mode   => 0440\n-    ensure => file\n-    group  => deployment\n-    source => puppet:///modules/profile/pki/intermediates/wikikube-cert.pem\n"}, {"resource": "File[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]", "content": "--- /etc/cfssl/csr/wikikube__eventstreams-internal.csr.orig\n+++ /etc/cfssl/csr/wikikube__eventstreams-internal.csr\n@@ -1,19 +0,0 @@\n-{\n-  \"CN\": \"eventstreams-internal\",\n-  \"hosts\": [\n-    \"eventstreams-internal\"\n-  ],\n-  \"key\": {\n-    \"algo\": \"ecdsa\",\n-    \"size\": 256\n-  },\n-  \"names\": [\n-    {\n-      \"C\": null,\n-      \"L\": null,\n-      \"O\": \"view\",\n-      \"OU\": null,\n-      \"S\": null\n-    }\n-  ]\n-}", "parameters": "--- File[/etc/cfssl/csr/wikikube__eventstreams-internal.csr].orig\n+++ File[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]\n\n-    group  => root\n-    owner  => root\n-    mode   => 0400\n-    ensure => file\n"}, {"resource": "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging-eqiad.config]", "parameters": "--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging-eqiad.config].orig\n+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging-eqiad.config]\n\n-    owner       => mwdeploy\n-    mode        => 0640\n-    namespace   => eventstreams-internal\n-    group       => deployment\n-    username    => eventstreams-internal\n-    master_host => kubestagemaster.svc.eqiad.wmnet\n-    ensure      => present\n-    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'}\n-    require     => ['Class[K8s::Base_dirs]']\n"}, {"resource": "Cfssl::Cert[wikikube__eventstreams-internal-deploy]", "parameters": "--- Cfssl::Cert[wikikube__eventstreams-internal-deploy].orig\n+++ Cfssl::Cert[wikikube__eventstreams-internal-deploy]\n\n-    owner           => mwdeploy\n-    hosts           => []\n-    before_services => []\n-    notify_services => []\n-    group           => deployment\n-    key             => {'algo': 'ecdsa', 'size': 256}\n-    environment     => ['GODEBUG=x509ignoreCN=0']\n-    outdir          => /etc/kubernetes/pki\n-    mode            => 0740\n-    label           => wikikube\n-    renew_seconds   => 952200\n-    common_name     => eventstreams-internal-deploy\n-    provide_chain   => True\n-    auto_renew      => True\n-    ensure          => present\n-    names           => [{'organisation': 'view'}, {'organisation': 'deploy'}]\n"}, {"resource": "Exec[Generate cert wikikube__eventstreams-internal-deploy refresh]", "parameters": "--- Exec[Generate cert wikikube__eventstreams-internal-deploy refresh].orig\n+++ Exec[Generate cert wikikube__eventstreams-internal-deploy refresh]\n\n-    refreshonly => True\n-    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\n\n-    subscribe   => File[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "Class[Profile::Kubernetes::Deployment_server::Sophroid_config]", "parameters": "--- Class[Profile::Kubernetes::Deployment_server::Sophroid_config].orig\n+++ Class[Profile::Kubernetes::Deployment_server::Sophroid_config]\n\n@@\n-    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'}}\n+    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'}}\n"}, {"resource": "Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]", "parameters": "--- Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr].orig\n+++ Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]\n\n-    common_name => eventstreams-internal-deploy\n-    key         => {'algo': 'ecdsa', 'size': 256}\n-    ensure      => present\n-    hosts       => []\n-    names       => [{'organisation': 'view'}, {'organisation': 'deploy'}]\n"}, {"resource": "Exec[Generate cert wikikube_staging__eventstreams-internal]", "parameters": "--- Exec[Generate cert wikikube_staging__eventstreams-internal].orig\n+++ Exec[Generate cert wikikube_staging__eventstreams-internal]\n\n-    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)\"\n\n-    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\n\n-    require     => Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]", "parameters": "--- Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal.csr].orig\n+++ Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]\n\n-    common_name => eventstreams-internal\n-    key         => {'algo': 'ecdsa', 'size': 256}\n-    ensure      => present\n-    hosts       => []\n-    names       => [{'organisation': 'view'}]\n"}, {"resource": "Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]", "parameters": "--- Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem].orig\n+++ Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]\n\n-    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)\"\n\n-    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\n-    require   => Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh on intermediate ca change]\n-    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]']\n"}, {"resource": "File[/etc/helmfile-defaults/services-staging.yaml]", "content": "--- /etc/helmfile-defaults/services-staging.yaml.orig\n+++ /etc/helmfile-defaults/services-staging.yaml\n@@ -84,10 +84,6 @@\n     usernames:\n     - name: eventstreams\n     - name: eventstreams-deploy\n-  eventstreams-internal:\n-    usernames:\n-    - name: eventstreams-internal\n-    - name: eventstreams-internal-deploy\n   failoid-ng:\n     usernames:\n     - name: failoid-ng"}, {"resource": "File[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config]", "content": "--- /etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config.orig\n+++ /etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config\n@@ -1,19 +0,0 @@\n-apiVersion: v1\n-kind: Config\n-preferences: {}\n-current-context: default-system\n-contexts:\n-- name: default-system\n-  context:\n-    cluster: default-cluster\n-    user: eventstreams-internal-deploy\n-    namespace: eventstreams-internal\n-clusters:\n-- name: default-cluster\n-  cluster:\n-    server: https://kubestagemaster.svc.codfw.wmnet:6443\n-users:\n-- name: eventstreams-internal-deploy\n-  user:\n-    client-certificate: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem\n-    client-key: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem", "parameters": "--- File[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config].orig\n+++ File[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0640\n-    ensure => present\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]\n\n-    owner  => mwdeploy\n-    mode   => 0440\n-    ensure => file\n-    group  => deployment\n-    source => puppet:///modules/profile/pki/intermediates/wikikube_staging-cert.pem\n"}, {"resource": "Exec[Generate cert wikikube__eventstreams-internal-deploy refresh on intermediate ca change]", "parameters": "--- Exec[Generate cert wikikube__eventstreams-internal-deploy refresh on intermediate ca change].orig\n+++ Exec[Generate cert wikikube__eventstreams-internal-deploy refresh on intermediate ca change]\n\n-    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\n\n-    subscribe   => File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]\n-    refreshonly => True\n-    require     => Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "Exec[renew certificate - wikikube_staging__eventstreams-internal-deploy]", "parameters": "--- Exec[renew certificate - wikikube_staging__eventstreams-internal-deploy].orig\n+++ Exec[renew certificate - wikikube_staging__eventstreams-internal-deploy]\n\n-    unless      => /usr/bin/openssl x509 -in /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem -checkend 172800\n-    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\n\n-    require     => Exec[Generate cert wikikube_staging__eventstreams-internal-deploy]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "Exec[Generate cert wikikube__eventstreams-internal-deploy]", "parameters": "--- Exec[Generate cert wikikube__eventstreams-internal-deploy].orig\n+++ Exec[Generate cert wikikube__eventstreams-internal-deploy]\n\n-    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)\"\n\n-    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\n\n-    require     => Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem]\n\n-    owner     => mwdeploy\n-    backup    => False\n-    show_diff => False\n-    mode      => 0440\n-    ensure    => file\n-    group     => deployment\n"}, {"resource": "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging.config]", "parameters": "--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging.config].orig\n+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging.config]\n\n-    owner       => mwdeploy\n-    mode        => 0640\n-    namespace   => eventstreams-internal\n-    group       => deployment\n-    username    => eventstreams-internal-deploy\n-    master_host => kubestagemaster.svc.eqiad.wmnet\n-    ensure      => present\n-    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'}\n-    require     => ['Class[K8s::Base_dirs]']\n"}, {"resource": "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging-codfw.config]", "parameters": "--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging-codfw.config].orig\n+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging-codfw.config]\n\n-    owner       => mwdeploy\n-    mode        => 0640\n-    namespace   => eventstreams-internal\n-    group       => deployment\n-    username    => eventstreams-internal\n-    master_host => kubestagemaster.svc.codfw.wmnet\n-    ensure      => present\n-    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'}\n-    require     => ['Class[K8s::Base_dirs]']\n"}, {"resource": "File[/etc/kubernetes/eventstreams-internal-staging-eqiad.config]", "content": "--- /etc/kubernetes/eventstreams-internal-staging-eqiad.config.orig\n+++ /etc/kubernetes/eventstreams-internal-staging-eqiad.config\n@@ -1,19 +0,0 @@\n-apiVersion: v1\n-kind: Config\n-preferences: {}\n-current-context: default-system\n-contexts:\n-- name: default-system\n-  context:\n-    cluster: default-cluster\n-    user: eventstreams-internal\n-    namespace: eventstreams-internal\n-clusters:\n-- name: default-cluster\n-  cluster:\n-    server: https://kubestagemaster.svc.eqiad.wmnet:6443\n-users:\n-- name: eventstreams-internal\n-  user:\n-    client-certificate: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem\n-    client-key: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem", "parameters": "--- File[/etc/kubernetes/eventstreams-internal-staging-eqiad.config].orig\n+++ File[/etc/kubernetes/eventstreams-internal-staging-eqiad.config]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0640\n-    ensure => present\n"}, {"resource": "Class[Profile::Kubernetes::Deployment_server::Helmfile]", "parameters": "--- Class[Profile::Kubernetes::Deployment_server::Helmfile].orig\n+++ Class[Profile::Kubernetes::Deployment_server::Helmfile]\n\n@@\n-    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'}]}}}\n+    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'}]}}}\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chained.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chained.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chained.pem]\n\n-    group   => deployment\n-    owner   => mwdeploy\n-    require => Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]\n-    ensure  => file\n"}, {"resource": "Exec[Generate cert wikikube_staging__eventstreams-internal-deploy]", "parameters": "--- Exec[Generate cert wikikube_staging__eventstreams-internal-deploy].orig\n+++ Exec[Generate cert wikikube_staging__eventstreams-internal-deploy]\n\n-    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)\"\n\n-    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\n\n-    require     => Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0440\n-    ensure => file\n"}, {"resource": "File[/etc/helmfile-defaults/services-staging-eqiad.yaml]", "content": "--- /etc/helmfile-defaults/services-staging-eqiad.yaml.orig\n+++ /etc/helmfile-defaults/services-staging-eqiad.yaml\n@@ -84,10 +84,6 @@\n     usernames:\n     - name: eventstreams\n     - name: eventstreams-deploy\n-  eventstreams-internal:\n-    usernames:\n-    - name: eventstreams-internal\n-    - name: eventstreams-internal-deploy\n   failoid-ng:\n     usernames:\n     - name: failoid-ng"}, {"resource": "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.csr]", "parameters": "--- File[/etc/kubernetes/pki/wikikube__eventstreams-internal.csr].orig\n+++ File[/etc/kubernetes/pki/wikikube__eventstreams-internal.csr]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0440\n-    ensure => file\n"}, {"resource": "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-eqiad.config]", "parameters": "--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-eqiad.config].orig\n+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-eqiad.config]\n\n-    owner       => mwdeploy\n-    mode        => 0640\n-    namespace   => eventstreams-internal\n-    group       => deployment\n-    username    => eventstreams-internal\n-    master_host => kubemaster.svc.eqiad.wmnet\n-    ensure      => present\n-    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'}\n-    require     => ['Class[K8s::Base_dirs]']\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chained.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chained.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chained.pem]\n\n-    group   => deployment\n-    owner   => mwdeploy\n-    require => Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]\n-    ensure  => file\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0440\n-    ensure => file\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chained.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chained.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chained.pem]\n\n-    group   => deployment\n-    owner   => mwdeploy\n-    require => Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem]\n-    ensure  => file\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0440\n-    ensure => file\n"}, {"resource": "Exec[Generate cert wikikube__eventstreams-internal refresh]", "parameters": "--- Exec[Generate cert wikikube__eventstreams-internal refresh].orig\n+++ Exec[Generate cert wikikube__eventstreams-internal refresh]\n\n-    refreshonly => True\n-    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\n\n-    subscribe   => File[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "Class[Profile::Kubernetes::Deployment_server]", "parameters": "--- Class[Profile::Kubernetes::Deployment_server].orig\n+++ Class[Profile::Kubernetes::Deployment_server]\n\n@@\n-    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'}]}}}\n+    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'}]}}}\n"}, {"resource": "File[/etc/helmfile-defaults/sophroid/service.yaml]", "content": "--- /etc/helmfile-defaults/sophroid/service.yaml.orig\n+++ /etc/helmfile-defaults/sophroid/service.yaml\n@@ -750,39 +750,6 @@\n     state: production\n     discovery:\n     - dnsdisc: eventstreams\n-      active_active: true\n-  eventstreams-internal:\n-    description: Internal streams of events via HTTP + SSE, backed by Kafka. eventstreams-internal.discovery.wmnet\n-    encryption: true\n-    ip:\n-      codfw:\n-        default: 10.2.1.35\n-      eqiad:\n-        default: 10.2.2.35\n-    lvs:\n-      class: low-traffic\n-      conftool:\n-        cluster: kubernetes\n-        service: kubesvc\n-      depool_threshold: 0.5\n-      enabled: true\n-      monitors:\n-        IdleConnection:\n-          max-delay: 300\n-          timeout-clean-reconnect: 3\n-      scheduler: wrr\n-    page: false\n-    probes:\n-    - type: http\n-      path: \"/_info\"\n-    - type: swagger\n-    port: 4992\n-    sites:\n-    - eqiad\n-    - codfw\n-    state: service_setup\n-    discovery:\n-    - dnsdisc: eventstreams-internal\n       active_active: true\n   k8s-ingress-staging:\n     description: istio-ingresscontroller on kubernetes staging. k8s-ingress-staging.discovery.wmnet\n@@ -4318,6 +4285,21 @@\n     - codfw\n     - eqiad\n     state: service_setup\n+  eventstreams-internal:\n+    description: Internal streams of events via HTTP + SSE, backed by Kafka. eventstreams-internal.discovery.wmnet\n+    encryption: true\n+    ip:\n+      eqiad:\n+        default: 10.2.2.91\n+      codfw:\n+        default: 10.2.1.91\n+    page: false\n+    probes:\n+    - type: http\n+    port: 30443\n+    sites:\n+    - eqiad\n+    state: production\n   analytics-web:\n     encryption: true\n     role: analytics_cluster::webserver"}, {"resource": "Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]", "parameters": "--- Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem].orig\n+++ Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]\n\n-    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)\"\n\n-    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\n-    require   => Exec[Generate cert wikikube__eventstreams-internal-deploy refresh on intermediate ca change]\n-    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]']\n"}, {"resource": "Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh on intermediate ca change]", "parameters": "--- Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh on intermediate ca change].orig\n+++ Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh on intermediate ca change]\n\n-    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\n\n-    subscribe   => File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]\n-    refreshonly => True\n-    require     => Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "Exec[Generate cert wikikube__eventstreams-internal refresh on intermediate ca change]", "parameters": "--- Exec[Generate cert wikikube__eventstreams-internal refresh on intermediate ca change].orig\n+++ Exec[Generate cert wikikube__eventstreams-internal refresh on intermediate ca change]\n\n-    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\n\n-    subscribe   => File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem]\n-    refreshonly => True\n-    require     => Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chained.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chained.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chained.pem]\n\n-    group   => deployment\n-    owner   => mwdeploy\n-    require => Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]\n-    ensure  => file\n"}, {"resource": "File[/etc/kubernetes/eventstreams-internal-staging.config]", "content": "--- /etc/kubernetes/eventstreams-internal-staging.config.orig\n+++ /etc/kubernetes/eventstreams-internal-staging.config\n@@ -1,19 +0,0 @@\n-apiVersion: v1\n-kind: Config\n-preferences: {}\n-current-context: default-system\n-contexts:\n-- name: default-system\n-  context:\n-    cluster: default-cluster\n-    user: eventstreams-internal\n-    namespace: eventstreams-internal\n-clusters:\n-- name: default-cluster\n-  cluster:\n-    server: https://kubestagemaster.svc.eqiad.wmnet:6443\n-users:\n-- name: eventstreams-internal\n-  user:\n-    client-certificate: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem\n-    client-key: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem", "parameters": "--- File[/etc/kubernetes/eventstreams-internal-staging.config].orig\n+++ File[/etc/kubernetes/eventstreams-internal-staging.config]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0640\n-    ensure => present\n"}, {"resource": "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging.config]", "parameters": "--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging.config].orig\n+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging.config]\n\n-    owner       => mwdeploy\n-    mode        => 0640\n-    namespace   => eventstreams-internal\n-    group       => deployment\n-    username    => eventstreams-internal\n-    master_host => kubestagemaster.svc.eqiad.wmnet\n-    ensure      => present\n-    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'}\n-    require     => ['Class[K8s::Base_dirs]']\n"}, {"resource": "Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]", "parameters": "--- Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr].orig\n+++ Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]\n\n-    common_name => eventstreams-internal-deploy\n-    key         => {'algo': 'ecdsa', 'size': 256}\n-    ensure      => present\n-    hosts       => []\n-    names       => [{'organisation': 'view'}, {'organisation': 'deploy'}]\n"}, {"resource": "File[/etc/kubernetes/eventstreams-internal-deploy-codfw.config]", "content": "--- /etc/kubernetes/eventstreams-internal-deploy-codfw.config.orig\n+++ /etc/kubernetes/eventstreams-internal-deploy-codfw.config\n@@ -1,19 +0,0 @@\n-apiVersion: v1\n-kind: Config\n-preferences: {}\n-current-context: default-system\n-contexts:\n-- name: default-system\n-  context:\n-    cluster: default-cluster\n-    user: eventstreams-internal-deploy\n-    namespace: eventstreams-internal\n-clusters:\n-- name: default-cluster\n-  cluster:\n-    server: https://kubemaster.svc.codfw.wmnet:6443\n-users:\n-- name: eventstreams-internal-deploy\n-  user:\n-    client-certificate: /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem\n-    client-key: /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy-key.pem", "parameters": "--- File[/etc/kubernetes/eventstreams-internal-deploy-codfw.config].orig\n+++ File[/etc/kubernetes/eventstreams-internal-deploy-codfw.config]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0640\n-    ensure => present\n"}, {"resource": "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-eqiad.config]", "parameters": "--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-eqiad.config].orig\n+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-eqiad.config]\n\n-    owner       => mwdeploy\n-    mode        => 0640\n-    namespace   => eventstreams-internal\n-    group       => deployment\n-    username    => eventstreams-internal-deploy\n-    master_host => kubemaster.svc.eqiad.wmnet\n-    ensure      => present\n-    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'}\n-    require     => ['Class[K8s::Base_dirs]']\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.csr]", "parameters": "--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.csr].orig\n+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.csr]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0440\n-    ensure => file\n"}, {"resource": "File[/etc/kubernetes/eventstreams-internal-eqiad.config]", "content": "--- /etc/kubernetes/eventstreams-internal-eqiad.config.orig\n+++ /etc/kubernetes/eventstreams-internal-eqiad.config\n@@ -1,19 +0,0 @@\n-apiVersion: v1\n-kind: Config\n-preferences: {}\n-current-context: default-system\n-contexts:\n-- name: default-system\n-  context:\n-    cluster: default-cluster\n-    user: eventstreams-internal\n-    namespace: eventstreams-internal\n-clusters:\n-- name: default-cluster\n-  cluster:\n-    server: https://kubemaster.svc.eqiad.wmnet:6443\n-users:\n-- name: eventstreams-internal\n-  user:\n-    client-certificate: /etc/kubernetes/pki/wikikube__eventstreams-internal.pem\n-    client-key: /etc/kubernetes/pki/wikikube__eventstreams-internal-key.pem", "parameters": "--- File[/etc/kubernetes/eventstreams-internal-eqiad.config].orig\n+++ File[/etc/kubernetes/eventstreams-internal-eqiad.config]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0640\n-    ensure => present\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.csr]", "parameters": "--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.csr].orig\n+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.csr]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0440\n-    ensure => file\n"}, {"resource": "File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/staging.yaml]", "content": "--- /etc/helmfile-defaults/private/main_services/eventstreams-internal/staging.yaml.orig\n+++ /etc/helmfile-defaults/private/main_services/eventstreams-internal/staging.yaml\n@@ -1,2 +0,0 @@\n----\n-defaultsecret: muchdefault", "parameters": "--- File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/staging.yaml].orig\n+++ File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/staging.yaml]\n\n-    owner   => mwdeploy\n-    mode    => 0640\n-    ensure  => present\n-    group   => deployment\n-    require => File[/etc/helmfile-defaults/private/main_services/eventstreams-internal]\n"}, {"resource": "Exec[renew certificate - wikikube__eventstreams-internal]", "parameters": "--- Exec[renew certificate - wikikube__eventstreams-internal].orig\n+++ Exec[renew certificate - wikikube__eventstreams-internal]\n\n-    unless      => /usr/bin/openssl x509 -in /etc/kubernetes/pki/wikikube__eventstreams-internal.pem -checkend 952200\n-    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\n\n-    require     => Exec[Generate cert wikikube__eventstreams-internal]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]\n\n-    owner  => mwdeploy\n-    mode   => 0440\n-    ensure => file\n-    group  => deployment\n-    source => puppet:///modules/profile/pki/intermediates/wikikube_staging-cert.pem\n"}, {"resource": "Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr]", "parameters": "--- Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr].orig\n+++ Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr]\n\n-    common_name => eventstreams-internal\n-    key         => {'algo': 'ecdsa', 'size': 256}\n-    ensure      => present\n-    hosts       => []\n-    names       => [{'organisation': 'view'}]\n"}, {"resource": "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config]", "parameters": "--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config].orig\n+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config]\n\n-    owner       => mwdeploy\n-    mode        => 0640\n-    namespace   => eventstreams-internal\n-    group       => deployment\n-    username    => eventstreams-internal-deploy\n-    master_host => kubestagemaster.svc.codfw.wmnet\n-    ensure      => present\n-    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'}\n-    require     => ['Class[K8s::Base_dirs]']\n"}, {"resource": "File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/codfw.yaml]", "content": "--- /etc/helmfile-defaults/private/main_services/eventstreams-internal/codfw.yaml.orig\n+++ /etc/helmfile-defaults/private/main_services/eventstreams-internal/codfw.yaml\n@@ -1,4 +0,0 @@\n----\n-main_app:\n-  redis:\n-    defaultsecret: muchdefault", "parameters": "--- File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/codfw.yaml].orig\n+++ File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/codfw.yaml]\n\n-    owner   => mwdeploy\n-    mode    => 0640\n-    ensure  => present\n-    group   => deployment\n-    require => File[/etc/helmfile-defaults/private/main_services/eventstreams-internal]\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem]\n\n-    owner     => mwdeploy\n-    backup    => False\n-    show_diff => False\n-    mode      => 0440\n-    ensure    => file\n-    group     => deployment\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-key.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube__eventstreams-internal-key.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube__eventstreams-internal-key.pem]\n\n-    owner     => mwdeploy\n-    backup    => False\n-    show_diff => False\n-    mode      => 0440\n-    ensure    => file\n-    group     => deployment\n"}, {"resource": "File[/etc/kubernetes/eventstreams-internal-codfw.config]", "content": "--- /etc/kubernetes/eventstreams-internal-codfw.config.orig\n+++ /etc/kubernetes/eventstreams-internal-codfw.config\n@@ -1,19 +0,0 @@\n-apiVersion: v1\n-kind: Config\n-preferences: {}\n-current-context: default-system\n-contexts:\n-- name: default-system\n-  context:\n-    cluster: default-cluster\n-    user: eventstreams-internal\n-    namespace: eventstreams-internal\n-clusters:\n-- name: default-cluster\n-  cluster:\n-    server: https://kubemaster.svc.codfw.wmnet:6443\n-users:\n-- name: eventstreams-internal\n-  user:\n-    client-certificate: /etc/kubernetes/pki/wikikube__eventstreams-internal.pem\n-    client-key: /etc/kubernetes/pki/wikikube__eventstreams-internal-key.pem", "parameters": "--- File[/etc/kubernetes/eventstreams-internal-codfw.config].orig\n+++ File[/etc/kubernetes/eventstreams-internal-codfw.config]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0640\n-    ensure => present\n"}, {"resource": "File[/etc/helmfile-defaults/private/main_services/eventstreams-internal]", "parameters": "--- File[/etc/helmfile-defaults/private/main_services/eventstreams-internal].orig\n+++ File[/etc/helmfile-defaults/private/main_services/eventstreams-internal]\n\n-    owner   => mwdeploy\n-    recurse => True\n-    mode    => 0751\n-    ensure  => directory\n-    group   => deployment\n-    force   => True\n"}, {"resource": "Cfssl::Cert[wikikube_staging__eventstreams-internal]", "parameters": "--- Cfssl::Cert[wikikube_staging__eventstreams-internal].orig\n+++ Cfssl::Cert[wikikube_staging__eventstreams-internal]\n\n-    owner           => mwdeploy\n-    hosts           => []\n-    before_services => []\n-    notify_services => []\n-    group           => deployment\n-    key             => {'algo': 'ecdsa', 'size': 256}\n-    environment     => ['GODEBUG=x509ignoreCN=0']\n-    outdir          => /etc/kubernetes/pki\n-    mode            => 0740\n-    label           => wikikube_staging\n-    renew_seconds   => 172800\n-    common_name     => eventstreams-internal\n-    provide_chain   => True\n-    auto_renew      => True\n-    ensure          => present\n-    names           => [{'organisation': 'view'}]\n"}, {"resource": "Exec[Generate cert wikikube__eventstreams-internal]", "parameters": "--- Exec[Generate cert wikikube__eventstreams-internal].orig\n+++ Exec[Generate cert wikikube__eventstreams-internal]\n\n-    unless      => /usr/bin/test \"$(/usr/bin/openssl x509 -in /etc/kubernetes/pki/wikikube__eventstreams-internal.pem -noout -pubkey 2>&1)\" == \"$(/usr/bin/openssl pkey -pubout -in /etc/kubernetes/pki/wikikube__eventstreams-internal-key.pem 2>&1)\"\n\n-    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\n\n-    require     => Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "Cfssl::Cert[wikikube__eventstreams-internal]", "parameters": "--- Cfssl::Cert[wikikube__eventstreams-internal].orig\n+++ Cfssl::Cert[wikikube__eventstreams-internal]\n\n-    owner           => mwdeploy\n-    hosts           => []\n-    before_services => []\n-    notify_services => []\n-    group           => deployment\n-    key             => {'algo': 'ecdsa', 'size': 256}\n-    environment     => ['GODEBUG=x509ignoreCN=0']\n-    outdir          => /etc/kubernetes/pki\n-    mode            => 0740\n-    label           => wikikube\n-    renew_seconds   => 952200\n-    common_name     => eventstreams-internal\n-    provide_chain   => True\n-    auto_renew      => True\n-    ensure          => present\n-    names           => [{'organisation': 'view'}]\n"}, {"resource": "Exec[Generate cert wikikube_staging__eventstreams-internal refresh on intermediate ca change]", "parameters": "--- Exec[Generate cert wikikube_staging__eventstreams-internal refresh on intermediate ca change].orig\n+++ Exec[Generate cert wikikube_staging__eventstreams-internal refresh on intermediate ca change]\n\n-    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\n\n-    subscribe   => File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]\n-    refreshonly => True\n-    require     => Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "File[/etc/kubernetes/eventstreams-internal-deploy-eqiad.config]", "content": "--- /etc/kubernetes/eventstreams-internal-deploy-eqiad.config.orig\n+++ /etc/kubernetes/eventstreams-internal-deploy-eqiad.config\n@@ -1,19 +0,0 @@\n-apiVersion: v1\n-kind: Config\n-preferences: {}\n-current-context: default-system\n-contexts:\n-- name: default-system\n-  context:\n-    cluster: default-cluster\n-    user: eventstreams-internal-deploy\n-    namespace: eventstreams-internal\n-clusters:\n-- name: default-cluster\n-  cluster:\n-    server: https://kubemaster.svc.eqiad.wmnet:6443\n-users:\n-- name: eventstreams-internal-deploy\n-  user:\n-    client-certificate: /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem\n-    client-key: /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy-key.pem", "parameters": "--- File[/etc/kubernetes/eventstreams-internal-deploy-eqiad.config].orig\n+++ File[/etc/kubernetes/eventstreams-internal-deploy-eqiad.config]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0640\n-    ensure => present\n"}, {"resource": "File[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]", "content": "--- /etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr.orig\n+++ /etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr\n@@ -1,26 +0,0 @@\n-{\n-  \"CN\": \"eventstreams-internal-deploy\",\n-  \"hosts\": [\n-    \"eventstreams-internal-deploy\"\n-  ],\n-  \"key\": {\n-    \"algo\": \"ecdsa\",\n-    \"size\": 256\n-  },\n-  \"names\": [\n-    {\n-      \"C\": null,\n-      \"L\": null,\n-      \"O\": \"view\",\n-      \"OU\": null,\n-      \"S\": null\n-    },\n-    {\n-      \"C\": null,\n-      \"L\": null,\n-      \"O\": \"deploy\",\n-      \"OU\": null,\n-      \"S\": null\n-    }\n-  ]\n-}", "parameters": "--- File[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr].orig\n+++ File[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]\n\n-    group  => root\n-    owner  => root\n-    mode   => 0400\n-    ensure => file\n"}, {"resource": "Cfssl::Cert[wikikube_staging__eventstreams-internal-deploy]", "parameters": "--- Cfssl::Cert[wikikube_staging__eventstreams-internal-deploy].orig\n+++ Cfssl::Cert[wikikube_staging__eventstreams-internal-deploy]\n\n-    owner           => mwdeploy\n-    hosts           => []\n-    before_services => []\n-    notify_services => []\n-    group           => deployment\n-    key             => {'algo': 'ecdsa', 'size': 256}\n-    environment     => ['GODEBUG=x509ignoreCN=0']\n-    outdir          => /etc/kubernetes/pki\n-    mode            => 0740\n-    label           => wikikube_staging\n-    renew_seconds   => 172800\n-    common_name     => eventstreams-internal-deploy\n-    provide_chain   => True\n-    auto_renew      => True\n-    ensure          => present\n-    names           => [{'organisation': 'view'}, {'organisation': 'deploy'}]\n"}, {"resource": "File[/etc/helmfile-defaults/services-eqiad.yaml]", "content": "--- /etc/helmfile-defaults/services-eqiad.yaml.orig\n+++ /etc/helmfile-defaults/services-eqiad.yaml\n@@ -84,10 +84,6 @@\n     usernames:\n     - name: eventstreams\n     - name: eventstreams-deploy\n-  eventstreams-internal:\n-    usernames:\n-    - name: eventstreams-internal\n-    - name: eventstreams-internal-deploy\n   failoid-ng:\n     usernames:\n     - name: failoid-ng"}, {"resource": "File[/etc/kubernetes/eventstreams-internal-deploy-staging.config]", "content": "--- /etc/kubernetes/eventstreams-internal-deploy-staging.config.orig\n+++ /etc/kubernetes/eventstreams-internal-deploy-staging.config\n@@ -1,19 +0,0 @@\n-apiVersion: v1\n-kind: Config\n-preferences: {}\n-current-context: default-system\n-contexts:\n-- name: default-system\n-  context:\n-    cluster: default-cluster\n-    user: eventstreams-internal-deploy\n-    namespace: eventstreams-internal\n-clusters:\n-- name: default-cluster\n-  cluster:\n-    server: https://kubestagemaster.svc.eqiad.wmnet:6443\n-users:\n-- name: eventstreams-internal-deploy\n-  user:\n-    client-certificate: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem\n-    client-key: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem", "parameters": "--- File[/etc/kubernetes/eventstreams-internal-deploy-staging.config].orig\n+++ File[/etc/kubernetes/eventstreams-internal-deploy-staging.config]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0640\n-    ensure => present\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy-key.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy-key.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy-key.pem]\n\n-    owner     => mwdeploy\n-    backup    => False\n-    show_diff => False\n-    mode      => 0440\n-    ensure    => file\n-    group     => deployment\n"}, {"resource": "Exec[renew certificate - wikikube__eventstreams-internal-deploy]", "parameters": "--- Exec[renew certificate - wikikube__eventstreams-internal-deploy].orig\n+++ Exec[renew certificate - wikikube__eventstreams-internal-deploy]\n\n-    unless      => /usr/bin/openssl x509 -in /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem -checkend 952200\n-    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-deploy.csr | /usr/bin/cfssljson -bare /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy\n\n-    require     => Exec[Generate cert wikikube__eventstreams-internal-deploy]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-codfw.config]", "parameters": "--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-codfw.config].orig\n+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-codfw.config]\n\n-    owner       => mwdeploy\n-    mode        => 0640\n-    namespace   => eventstreams-internal\n-    group       => deployment\n-    username    => eventstreams-internal\n-    master_host => kubemaster.svc.codfw.wmnet\n-    ensure      => present\n-    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'}\n-    require     => ['Class[K8s::Base_dirs]']\n"}, {"resource": "File[/etc/kubernetes/eventstreams-internal-staging-codfw.config]", "content": "--- /etc/kubernetes/eventstreams-internal-staging-codfw.config.orig\n+++ /etc/kubernetes/eventstreams-internal-staging-codfw.config\n@@ -1,19 +0,0 @@\n-apiVersion: v1\n-kind: Config\n-preferences: {}\n-current-context: default-system\n-contexts:\n-- name: default-system\n-  context:\n-    cluster: default-cluster\n-    user: eventstreams-internal\n-    namespace: eventstreams-internal\n-clusters:\n-- name: default-cluster\n-  cluster:\n-    server: https://kubestagemaster.svc.codfw.wmnet:6443\n-users:\n-- name: eventstreams-internal\n-  user:\n-    client-certificate: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem\n-    client-key: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem", "parameters": "--- File[/etc/kubernetes/eventstreams-internal-staging-codfw.config].orig\n+++ File[/etc/kubernetes/eventstreams-internal-staging-codfw.config]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0640\n-    ensure => present\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube__eventstreams-internal.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube__eventstreams-internal.pem]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0440\n-    ensure => file\n"}, {"resource": "Exec[Generate cert wikikube_staging__eventstreams-internal refresh]", "parameters": "--- Exec[Generate cert wikikube_staging__eventstreams-internal refresh].orig\n+++ Exec[Generate cert wikikube_staging__eventstreams-internal refresh]\n\n-    refreshonly => True\n-    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\n\n-    subscribe   => File[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "File[/etc/helmfile-defaults/services-staging-codfw.yaml]", "content": "--- /etc/helmfile-defaults/services-staging-codfw.yaml.orig\n+++ /etc/helmfile-defaults/services-staging-codfw.yaml\n@@ -84,10 +84,6 @@\n     usernames:\n     - name: eventstreams\n     - name: eventstreams-deploy\n-  eventstreams-internal:\n-    usernames:\n-    - name: eventstreams-internal\n-    - name: eventstreams-internal-deploy\n   failoid-ng:\n     usernames:\n     - name: failoid-ng"}, {"resource": "File[/etc/profile.d/kube-conf.sh]", "content": "--- /etc/profile.d/kube-conf.sh.orig\n+++ /etc/profile.d/kube-conf.sh\n@@ -3,7 +3,7 @@\n \n # kube environments\n export KUBE_ENV_ENVIRONMENTS=\"eqiad codfw staging staging-eqiad staging-codfw ml-serve-eqiad ml-serve-codfw ml-staging-codfw dse-k8s-eqiad dse-k8s-codfw aux-k8s-eqiad aux-k8s-codfw\"\n-export KUBE_ENV_SERVICES=\"admin apertium api-gateway benthos-cache-invalidator changeprop changeprop-jobqueue chart-renderer cirrus-streaming-updater citoid commons-impact-analytics cxserver data-gateway developer-portal device-analytics echostore edit-analytics editor-analytics eventgate-analytics eventgate-analytics-external eventgate-logging-external eventgate-main eventstreams eventstreams-internal failoid-ng geo-analytics ipoid kartotherian linked-artifacts linkrecommendation machinetranslation mathoid media-analytics miscweb mobileapps mw-api-ext mw-api-int mw-cron mw-debug mw-experimental mw-jobrunner mw-mcrouter mw-misc mw-page-content-change-enrich mw-parsoid mw-script mw-videoscaler mw-web mw-wikifunctions opentelemetry-collector page-analytics proton push-notifications ratelimit rdf-streaming-updater recommendation-api rest-gateway sessionstore shellbox shellbox-constraints shellbox-media shellbox-syntaxhighlight shellbox-timeline shellbox-video tegola-vector-tiles termbox thumbor toolhub wikidata-query-gui wikifeeds wikifunctions zotero article-descriptions article-models articletopic-outlink edit-check experimental llm logo-detection ores-legacy readability recommendation-api-ng revertrisk revise-tone-task-generator revision-models revscoring-articlequality revscoring-articletopic revscoring-draftquality revscoring-drafttopic revscoring-editquality-damaging revscoring-editquality-goodfaith revscoring-editquality-reverted analytics analytics-test kafka-mirrormaker opensearch-ipoid opensearch-ipoid-test opensearch-operator opensearch-operator-3 opensearch-semantic-search opensearch-semantic-search-test opensearch-test opensearch-toolhub opensearch-toolhub-test opensearch-apifeatureusage opensearch-apifeatureusage-test opensearch-ttmserver opensearch-ttmserver-test wdqs-internal wdqs-internal-next wdqs-external wdqs-external-next echoserver airflow-analytics-product airflow-analytics-test airflow-dev airflow-fr-tech airflow-main airflow-ml airflow-platform-eng airflow-research airflow-search airflow-sre airflow-test-k8s airflow-wikidata airflow-wmde blunderbuss datahub datahub-next datasets-config datasets-config-next growthbook growthbook-next llm-inference mediawiki-dumps-legacy mw-content-history-reconcile-enrich mw-content-history-reconcile-enrich-next mw-dump-rev-content-reconcile-enrich mw-dump-rev-content-reconcile-enrich-next mw-page-html-content-change-enrich mw-page-html-content-change-enrich-next mw-page-html-feature-counts-change-enrich mw-page-html-feature-counts-change-enrich-next spark spark-history spark-history-test superset superset-next test-kitchen test-kitchen-next turnilo turnilo-next webrequest-page-view webrequest-page-view-next wdqs-queryhammer codesearch jaeger redioscope sophroid zarcillo\"\n+export KUBE_ENV_SERVICES=\"admin apertium api-gateway benthos-cache-invalidator changeprop changeprop-jobqueue chart-renderer cirrus-streaming-updater citoid commons-impact-analytics cxserver data-gateway developer-portal device-analytics echostore edit-analytics editor-analytics eventgate-analytics eventgate-analytics-external eventgate-logging-external eventgate-main eventstreams failoid-ng geo-analytics ipoid kartotherian linked-artifacts linkrecommendation machinetranslation mathoid media-analytics miscweb mobileapps mw-api-ext mw-api-int mw-cron mw-debug mw-experimental mw-jobrunner mw-mcrouter mw-misc mw-page-content-change-enrich mw-parsoid mw-script mw-videoscaler mw-web mw-wikifunctions opentelemetry-collector page-analytics proton push-notifications ratelimit rdf-streaming-updater recommendation-api rest-gateway sessionstore shellbox shellbox-constraints shellbox-media shellbox-syntaxhighlight shellbox-timeline shellbox-video tegola-vector-tiles termbox thumbor toolhub wikidata-query-gui wikifeeds wikifunctions zotero article-descriptions article-models articletopic-outlink edit-check experimental llm logo-detection ores-legacy readability recommendation-api-ng revertrisk revise-tone-task-generator revision-models revscoring-articlequality revscoring-articletopic revscoring-draftquality revscoring-drafttopic revscoring-editquality-damaging revscoring-editquality-goodfaith revscoring-editquality-reverted analytics analytics-test kafka-mirrormaker opensearch-ipoid opensearch-ipoid-test opensearch-operator opensearch-operator-3 opensearch-semantic-search opensearch-semantic-search-test opensearch-test opensearch-toolhub opensearch-toolhub-test opensearch-apifeatureusage opensearch-apifeatureusage-test opensearch-ttmserver opensearch-ttmserver-test wdqs-internal wdqs-internal-next wdqs-external wdqs-external-next echoserver airflow-analytics-product airflow-analytics-test airflow-dev airflow-fr-tech airflow-main airflow-ml airflow-platform-eng airflow-research airflow-search airflow-sre airflow-test-k8s airflow-wikidata airflow-wmde blunderbuss datahub datahub-next datasets-config datasets-config-next eventstreams-internal growthbook growthbook-next llm-inference mediawiki-dumps-legacy mw-content-history-reconcile-enrich mw-content-history-reconcile-enrich-next mw-dump-rev-content-reconcile-enrich mw-dump-rev-content-reconcile-enrich-next mw-page-html-content-change-enrich mw-page-html-content-change-enrich-next mw-page-html-feature-counts-change-enrich mw-page-html-feature-counts-change-enrich-next spark spark-history spark-history-test superset superset-next test-kitchen test-kitchen-next turnilo turnilo-next webrequest-page-view webrequest-page-view-next wdqs-queryhammer codesearch jaeger redioscope sophroid zarcillo\"\n \n # Array that maps kubernetes environments to their respective versions\n # This duplicated information from KUBE_ENV_ENVIRONMENTS, but I did not want to break existing scripts"}, {"resource": "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging-eqiad.config]", "parameters": "--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging-eqiad.config].orig\n+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging-eqiad.config]\n\n-    owner       => mwdeploy\n-    mode        => 0640\n-    namespace   => eventstreams-internal\n-    group       => deployment\n-    username    => eventstreams-internal-deploy\n-    master_host => kubestagemaster.svc.eqiad.wmnet\n-    ensure      => present\n-    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'}\n-    require     => ['Class[K8s::Base_dirs]']\n"}, {"resource": "Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem]", "parameters": "--- Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem].orig\n+++ Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem]\n\n-    unless    => /usr/bin/test \"$(/bin/cat /etc/kubernetes/pki/wikikube__eventstreams-internal.pem /etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem | sha512sum)\" == \"$(/bin/cat /etc/kubernetes/pki/wikikube__eventstreams-internal.chained.pem | sha512sum)\"\n\n-    command   => /bin/cat /etc/kubernetes/pki/wikikube__eventstreams-internal.pem /etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem > /etc/kubernetes/pki/wikikube__eventstreams-internal.chained.pem\n-    require   => Exec[Generate cert wikikube__eventstreams-internal refresh on intermediate ca change]\n-    subscribe => ['Exec[renew certificate - wikikube__eventstreams-internal]', 'File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem]', 'File[/etc/kubernetes/pki/wikikube__eventstreams-internal.pem]']\n"}, {"resource": "File[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr]", "content": "--- /etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr.orig\n+++ /etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr\n@@ -1,19 +0,0 @@\n-{\n-  \"CN\": \"eventstreams-internal\",\n-  \"hosts\": [\n-    \"eventstreams-internal\"\n-  ],\n-  \"key\": {\n-    \"algo\": \"ecdsa\",\n-    \"size\": 256\n-  },\n-  \"names\": [\n-    {\n-      \"C\": null,\n-      \"L\": null,\n-      \"O\": \"view\",\n-      \"OU\": null,\n-      \"S\": null\n-    }\n-  ]\n-}", "parameters": "--- File[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr].orig\n+++ File[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr]\n\n-    group  => root\n-    owner  => root\n-    mode   => 0400\n-    ensure => file\n"}, {"resource": "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-codfw.config]", "parameters": "--- K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-codfw.config].orig\n+++ K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-codfw.config]\n\n-    owner       => mwdeploy\n-    mode        => 0640\n-    namespace   => eventstreams-internal\n-    group       => deployment\n-    username    => eventstreams-internal-deploy\n-    master_host => kubemaster.svc.codfw.wmnet\n-    ensure      => present\n-    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'}\n-    require     => ['Class[K8s::Base_dirs]']\n"}, {"resource": "File[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]", "content": "--- /etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr.orig\n+++ /etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr\n@@ -1,26 +0,0 @@\n-{\n-  \"CN\": \"eventstreams-internal-deploy\",\n-  \"hosts\": [\n-    \"eventstreams-internal-deploy\"\n-  ],\n-  \"key\": {\n-    \"algo\": \"ecdsa\",\n-    \"size\": 256\n-  },\n-  \"names\": [\n-    {\n-      \"C\": null,\n-      \"L\": null,\n-      \"O\": \"view\",\n-      \"OU\": null,\n-      \"S\": null\n-    },\n-    {\n-      \"C\": null,\n-      \"L\": null,\n-      \"O\": \"deploy\",\n-      \"OU\": null,\n-      \"S\": null\n-    }\n-  ]\n-}", "parameters": "--- File[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr].orig\n+++ File[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]\n\n-    group  => root\n-    owner  => root\n-    mode   => 0400\n-    ensure => file\n"}, {"resource": "File[/etc/helmfile-defaults/services-codfw.yaml]", "content": "--- /etc/helmfile-defaults/services-codfw.yaml.orig\n+++ /etc/helmfile-defaults/services-codfw.yaml\n@@ -84,10 +84,6 @@\n     usernames:\n     - name: eventstreams\n     - name: eventstreams-deploy\n-  eventstreams-internal:\n-    usernames:\n-    - name: eventstreams-internal\n-    - name: eventstreams-internal-deploy\n   failoid-ng:\n     usernames:\n     - name: failoid-ng"}, {"resource": "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.csr]", "parameters": "--- File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.csr].orig\n+++ File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.csr]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0440\n-    ensure => file\n"}, {"resource": "Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh]", "parameters": "--- Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh].orig\n+++ Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh]\n\n-    refreshonly => True\n-    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\n\n-    subscribe   => File[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem]", "parameters": "--- File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem].orig\n+++ File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem]\n\n-    owner  => mwdeploy\n-    mode   => 0440\n-    ensure => file\n-    group  => deployment\n-    source => puppet:///modules/profile/pki/intermediates/wikikube-cert.pem\n"}, {"resource": "Exec[renew certificate - wikikube_staging__eventstreams-internal]", "parameters": "--- Exec[renew certificate - wikikube_staging__eventstreams-internal].orig\n+++ Exec[renew certificate - wikikube_staging__eventstreams-internal]\n\n-    unless      => /usr/bin/openssl x509 -in /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem -checkend 172800\n-    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.csr | /usr/bin/cfssljson -bare /etc/kubernetes/pki/wikikube_staging__eventstreams-internal\n\n-    require     => Exec[Generate cert wikikube_staging__eventstreams-internal]\n-    environment => ['GODEBUG=x509ignoreCN=0']\n"}, {"resource": "File[/etc/kubernetes/eventstreams-internal-deploy-staging-eqiad.config]", "content": "--- /etc/kubernetes/eventstreams-internal-deploy-staging-eqiad.config.orig\n+++ /etc/kubernetes/eventstreams-internal-deploy-staging-eqiad.config\n@@ -1,19 +0,0 @@\n-apiVersion: v1\n-kind: Config\n-preferences: {}\n-current-context: default-system\n-contexts:\n-- name: default-system\n-  context:\n-    cluster: default-cluster\n-    user: eventstreams-internal-deploy\n-    namespace: eventstreams-internal\n-clusters:\n-- name: default-cluster\n-  cluster:\n-    server: https://kubestagemaster.svc.eqiad.wmnet:6443\n-users:\n-- name: eventstreams-internal-deploy\n-  user:\n-    client-certificate: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem\n-    client-key: /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem", "parameters": "--- File[/etc/kubernetes/eventstreams-internal-deploy-staging-eqiad.config].orig\n+++ File[/etc/kubernetes/eventstreams-internal-deploy-staging-eqiad.config]\n\n-    group  => deployment\n-    owner  => mwdeploy\n-    mode   => 0640\n-    ensure => present\n"}, {"resource": "Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]", "parameters": "--- Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem].orig\n+++ Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]\n\n-    unless    => /usr/bin/test \"$(/bin/cat /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem | sha512sum)\" == \"$(/bin/cat /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chained.pem | sha512sum)\"\n\n-    command   => /bin/cat /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem > /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chained.pem\n-    require   => Exec[Generate cert wikikube_staging__eventstreams-internal refresh on intermediate ca change]\n-    subscribe => ['Exec[renew certificate - wikikube_staging__eventstreams-internal]', 'File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]', 'File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem]']\n"}], "perc_changed": "0.92%"}, "core": {"total": 17444, "only_in_self": ["Exec[Generate cert wikikube__eventstreams-internal refresh on intermediate ca change]", "Exec[Generate cert wikikube__eventstreams-internal refresh]", "Exec[Generate cert wikikube__eventstreams-internal-deploy refresh on intermediate ca change]", "Exec[Generate cert wikikube__eventstreams-internal-deploy refresh]", "Exec[Generate cert wikikube__eventstreams-internal-deploy]", "Exec[Generate cert wikikube__eventstreams-internal]", "Exec[Generate cert wikikube_staging__eventstreams-internal refresh on intermediate ca change]", "Exec[Generate cert wikikube_staging__eventstreams-internal refresh]", "Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh on intermediate ca change]", "Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh]", "Exec[Generate cert wikikube_staging__eventstreams-internal-deploy]", "Exec[Generate cert wikikube_staging__eventstreams-internal]", "Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]", "Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem]", "Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]", "Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]", "Exec[renew certificate - wikikube__eventstreams-internal-deploy]", "Exec[renew certificate - wikikube__eventstreams-internal]", "Exec[renew certificate - wikikube_staging__eventstreams-internal-deploy]", "Exec[renew certificate - wikikube_staging__eventstreams-internal]", "File[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]", "File[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]", "File[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]", "File[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr]", "File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/codfw.yaml]", "File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/staging.yaml]", "File[/etc/helmfile-defaults/private/main_services/eventstreams-internal]", "File[/etc/kubernetes/eventstreams-internal-codfw.config]", "File[/etc/kubernetes/eventstreams-internal-deploy-codfw.config]", "File[/etc/kubernetes/eventstreams-internal-deploy-eqiad.config]", "File[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config]", "File[/etc/kubernetes/eventstreams-internal-deploy-staging-eqiad.config]", "File[/etc/kubernetes/eventstreams-internal-deploy-staging.config]", "File[/etc/kubernetes/eventstreams-internal-eqiad.config]", "File[/etc/kubernetes/eventstreams-internal-staging-codfw.config]", "File[/etc/kubernetes/eventstreams-internal-staging-eqiad.config]", "File[/etc/kubernetes/eventstreams-internal-staging.config]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy-key.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chained.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.csr]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-key.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chained.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.csr]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chained.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.csr]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chained.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.csr]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem]"], "only_in_other": [], "resource_diffs": [{"resource": "File[/etc/helmfile-defaults/services-staging.yaml]", "content": "--- /etc/helmfile-defaults/services-staging.yaml.orig\n+++ /etc/helmfile-defaults/services-staging.yaml\n@@ -84,10 +84,6 @@\n     usernames:\n     - name: eventstreams\n     - name: eventstreams-deploy\n-  eventstreams-internal:\n-    usernames:\n-    - name: eventstreams-internal\n-    - name: eventstreams-internal-deploy\n   failoid-ng:\n     usernames:\n     - name: failoid-ng"}, {"resource": "File[/etc/helmfile-defaults/services-eqiad.yaml]", "content": "--- /etc/helmfile-defaults/services-eqiad.yaml.orig\n+++ /etc/helmfile-defaults/services-eqiad.yaml\n@@ -84,10 +84,6 @@\n     usernames:\n     - name: eventstreams\n     - name: eventstreams-deploy\n-  eventstreams-internal:\n-    usernames:\n-    - name: eventstreams-internal\n-    - name: eventstreams-internal-deploy\n   failoid-ng:\n     usernames:\n     - name: failoid-ng"}, {"resource": "File[/etc/helmfile-defaults/services-staging-codfw.yaml]", "content": "--- /etc/helmfile-defaults/services-staging-codfw.yaml.orig\n+++ /etc/helmfile-defaults/services-staging-codfw.yaml\n@@ -84,10 +84,6 @@\n     usernames:\n     - name: eventstreams\n     - name: eventstreams-deploy\n-  eventstreams-internal:\n-    usernames:\n-    - name: eventstreams-internal\n-    - name: eventstreams-internal-deploy\n   failoid-ng:\n     usernames:\n     - name: failoid-ng"}, {"resource": "File[/etc/profile.d/kube-conf.sh]", "content": "--- /etc/profile.d/kube-conf.sh.orig\n+++ /etc/profile.d/kube-conf.sh\n@@ -3,7 +3,7 @@\n \n # kube environments\n export KUBE_ENV_ENVIRONMENTS=\"eqiad codfw staging staging-eqiad staging-codfw ml-serve-eqiad ml-serve-codfw ml-staging-codfw dse-k8s-eqiad dse-k8s-codfw aux-k8s-eqiad aux-k8s-codfw\"\n-export KUBE_ENV_SERVICES=\"admin apertium api-gateway benthos-cache-invalidator changeprop changeprop-jobqueue chart-renderer cirrus-streaming-updater citoid commons-impact-analytics cxserver data-gateway developer-portal device-analytics echostore edit-analytics editor-analytics eventgate-analytics eventgate-analytics-external eventgate-logging-external eventgate-main eventstreams eventstreams-internal failoid-ng geo-analytics ipoid kartotherian linked-artifacts linkrecommendation machinetranslation mathoid media-analytics miscweb mobileapps mw-api-ext mw-api-int mw-cron mw-debug mw-experimental mw-jobrunner mw-mcrouter mw-misc mw-page-content-change-enrich mw-parsoid mw-script mw-videoscaler mw-web mw-wikifunctions opentelemetry-collector page-analytics proton push-notifications ratelimit rdf-streaming-updater recommendation-api rest-gateway sessionstore shellbox shellbox-constraints shellbox-media shellbox-syntaxhighlight shellbox-timeline shellbox-video tegola-vector-tiles termbox thumbor toolhub wikidata-query-gui wikifeeds wikifunctions zotero article-descriptions article-models articletopic-outlink edit-check experimental llm logo-detection ores-legacy readability recommendation-api-ng revertrisk revise-tone-task-generator revision-models revscoring-articlequality revscoring-articletopic revscoring-draftquality revscoring-drafttopic revscoring-editquality-damaging revscoring-editquality-goodfaith revscoring-editquality-reverted analytics analytics-test kafka-mirrormaker opensearch-ipoid opensearch-ipoid-test opensearch-operator opensearch-operator-3 opensearch-semantic-search opensearch-semantic-search-test opensearch-test opensearch-toolhub opensearch-toolhub-test opensearch-apifeatureusage opensearch-apifeatureusage-test opensearch-ttmserver opensearch-ttmserver-test wdqs-internal wdqs-internal-next wdqs-external wdqs-external-next echoserver airflow-analytics-product airflow-analytics-test airflow-dev airflow-fr-tech airflow-main airflow-ml airflow-platform-eng airflow-research airflow-search airflow-sre airflow-test-k8s airflow-wikidata airflow-wmde blunderbuss datahub datahub-next datasets-config datasets-config-next growthbook growthbook-next llm-inference mediawiki-dumps-legacy mw-content-history-reconcile-enrich mw-content-history-reconcile-enrich-next mw-dump-rev-content-reconcile-enrich mw-dump-rev-content-reconcile-enrich-next mw-page-html-content-change-enrich mw-page-html-content-change-enrich-next mw-page-html-feature-counts-change-enrich mw-page-html-feature-counts-change-enrich-next spark spark-history spark-history-test superset superset-next test-kitchen test-kitchen-next turnilo turnilo-next webrequest-page-view webrequest-page-view-next wdqs-queryhammer codesearch jaeger redioscope sophroid zarcillo\"\n+export KUBE_ENV_SERVICES=\"admin apertium api-gateway benthos-cache-invalidator changeprop changeprop-jobqueue chart-renderer cirrus-streaming-updater citoid commons-impact-analytics cxserver data-gateway developer-portal device-analytics echostore edit-analytics editor-analytics eventgate-analytics eventgate-analytics-external eventgate-logging-external eventgate-main eventstreams failoid-ng geo-analytics ipoid kartotherian linked-artifacts linkrecommendation machinetranslation mathoid media-analytics miscweb mobileapps mw-api-ext mw-api-int mw-cron mw-debug mw-experimental mw-jobrunner mw-mcrouter mw-misc mw-page-content-change-enrich mw-parsoid mw-script mw-videoscaler mw-web mw-wikifunctions opentelemetry-collector page-analytics proton push-notifications ratelimit rdf-streaming-updater recommendation-api rest-gateway sessionstore shellbox shellbox-constraints shellbox-media shellbox-syntaxhighlight shellbox-timeline shellbox-video tegola-vector-tiles termbox thumbor toolhub wikidata-query-gui wikifeeds wikifunctions zotero article-descriptions article-models articletopic-outlink edit-check experimental llm logo-detection ores-legacy readability recommendation-api-ng revertrisk revise-tone-task-generator revision-models revscoring-articlequality revscoring-articletopic revscoring-draftquality revscoring-drafttopic revscoring-editquality-damaging revscoring-editquality-goodfaith revscoring-editquality-reverted analytics analytics-test kafka-mirrormaker opensearch-ipoid opensearch-ipoid-test opensearch-operator opensearch-operator-3 opensearch-semantic-search opensearch-semantic-search-test opensearch-test opensearch-toolhub opensearch-toolhub-test opensearch-apifeatureusage opensearch-apifeatureusage-test opensearch-ttmserver opensearch-ttmserver-test wdqs-internal wdqs-internal-next wdqs-external wdqs-external-next echoserver airflow-analytics-product airflow-analytics-test airflow-dev airflow-fr-tech airflow-main airflow-ml airflow-platform-eng airflow-research airflow-search airflow-sre airflow-test-k8s airflow-wikidata airflow-wmde blunderbuss datahub datahub-next datasets-config datasets-config-next eventstreams-internal growthbook growthbook-next llm-inference mediawiki-dumps-legacy mw-content-history-reconcile-enrich mw-content-history-reconcile-enrich-next mw-dump-rev-content-reconcile-enrich mw-dump-rev-content-reconcile-enrich-next mw-page-html-content-change-enrich mw-page-html-content-change-enrich-next mw-page-html-feature-counts-change-enrich mw-page-html-feature-counts-change-enrich-next spark spark-history spark-history-test superset superset-next test-kitchen test-kitchen-next turnilo turnilo-next webrequest-page-view webrequest-page-view-next wdqs-queryhammer codesearch jaeger redioscope sophroid zarcillo\"\n \n # Array that maps kubernetes environments to their respective versions\n # This duplicated information from KUBE_ENV_ENVIRONMENTS, but I did not want to break existing scripts"}, {"resource": "File[/etc/helmfile-defaults/services-staging-eqiad.yaml]", "content": "--- /etc/helmfile-defaults/services-staging-eqiad.yaml.orig\n+++ /etc/helmfile-defaults/services-staging-eqiad.yaml\n@@ -84,10 +84,6 @@\n     usernames:\n     - name: eventstreams\n     - name: eventstreams-deploy\n-  eventstreams-internal:\n-    usernames:\n-    - name: eventstreams-internal\n-    - name: eventstreams-internal-deploy\n   failoid-ng:\n     usernames:\n     - name: failoid-ng"}, {"resource": "File[/etc/helmfile-defaults/services-codfw.yaml]", "content": "--- /etc/helmfile-defaults/services-codfw.yaml.orig\n+++ /etc/helmfile-defaults/services-codfw.yaml\n@@ -84,10 +84,6 @@\n     usernames:\n     - name: eventstreams\n     - name: eventstreams-deploy\n-  eventstreams-internal:\n-    usernames:\n-    - name: eventstreams-internal\n-    - name: eventstreams-internal-deploy\n   failoid-ng:\n     usernames:\n     - name: failoid-ng"}, {"resource": "File[/etc/helmfile-defaults/sophroid/service.yaml]", "content": "--- /etc/helmfile-defaults/sophroid/service.yaml.orig\n+++ /etc/helmfile-defaults/sophroid/service.yaml\n@@ -750,39 +750,6 @@\n     state: production\n     discovery:\n     - dnsdisc: eventstreams\n-      active_active: true\n-  eventstreams-internal:\n-    description: Internal streams of events via HTTP + SSE, backed by Kafka. eventstreams-internal.discovery.wmnet\n-    encryption: true\n-    ip:\n-      codfw:\n-        default: 10.2.1.35\n-      eqiad:\n-        default: 10.2.2.35\n-    lvs:\n-      class: low-traffic\n-      conftool:\n-        cluster: kubernetes\n-        service: kubesvc\n-      depool_threshold: 0.5\n-      enabled: true\n-      monitors:\n-        IdleConnection:\n-          max-delay: 300\n-          timeout-clean-reconnect: 3\n-      scheduler: wrr\n-    page: false\n-    probes:\n-    - type: http\n-      path: \"/_info\"\n-    - type: swagger\n-    port: 4992\n-    sites:\n-    - eqiad\n-    - codfw\n-    state: service_setup\n-    discovery:\n-    - dnsdisc: eventstreams-internal\n       active_active: true\n   k8s-ingress-staging:\n     description: istio-ingresscontroller on kubernetes staging. k8s-ingress-staging.discovery.wmnet\n@@ -4318,6 +4285,21 @@\n     - codfw\n     - eqiad\n     state: service_setup\n+  eventstreams-internal:\n+    description: Internal streams of events via HTTP + SSE, backed by Kafka. eventstreams-internal.discovery.wmnet\n+    encryption: true\n+    ip:\n+      eqiad:\n+        default: 10.2.2.91\n+      codfw:\n+        default: 10.2.1.91\n+    page: false\n+    probes:\n+    - type: http\n+    port: 30443\n+    sites:\n+    - eqiad\n+    state: production\n   analytics-web:\n     encryption: true\n     role: analytics_cluster::webserver"}], "perc_changed": "0.37%"}, "main": {"total": 17444, "only_in_self": ["Cfssl::Cert[wikikube__eventstreams-internal-deploy]", "Cfssl::Cert[wikikube__eventstreams-internal]", "Cfssl::Cert[wikikube_staging__eventstreams-internal-deploy]", "Cfssl::Cert[wikikube_staging__eventstreams-internal]", "Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]", "Cfssl::Csr[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]", "Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]", "Cfssl::Csr[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr]", "Exec[Generate cert wikikube__eventstreams-internal refresh on intermediate ca change]", "Exec[Generate cert wikikube__eventstreams-internal refresh]", "Exec[Generate cert wikikube__eventstreams-internal-deploy refresh on intermediate ca change]", "Exec[Generate cert wikikube__eventstreams-internal-deploy refresh]", "Exec[Generate cert wikikube__eventstreams-internal-deploy]", "Exec[Generate cert wikikube__eventstreams-internal]", "Exec[Generate cert wikikube_staging__eventstreams-internal refresh on intermediate ca change]", "Exec[Generate cert wikikube_staging__eventstreams-internal refresh]", "Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh on intermediate ca change]", "Exec[Generate cert wikikube_staging__eventstreams-internal-deploy refresh]", "Exec[Generate cert wikikube_staging__eventstreams-internal-deploy]", "Exec[Generate cert wikikube_staging__eventstreams-internal]", "Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]", "Exec[create chained cert /etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem]", "Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]", "Exec[create chained cert /etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]", "Exec[renew certificate - wikikube__eventstreams-internal-deploy]", "Exec[renew certificate - wikikube__eventstreams-internal]", "Exec[renew certificate - wikikube_staging__eventstreams-internal-deploy]", "Exec[renew certificate - wikikube_staging__eventstreams-internal]", "File[/etc/cfssl/csr/wikikube__eventstreams-internal-deploy.csr]", "File[/etc/cfssl/csr/wikikube__eventstreams-internal.csr]", "File[/etc/cfssl/csr/wikikube_staging__eventstreams-internal-deploy.csr]", "File[/etc/cfssl/csr/wikikube_staging__eventstreams-internal.csr]", "File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/codfw.yaml]", "File[/etc/helmfile-defaults/private/main_services/eventstreams-internal/staging.yaml]", "File[/etc/helmfile-defaults/private/main_services/eventstreams-internal]", "File[/etc/kubernetes/eventstreams-internal-codfw.config]", "File[/etc/kubernetes/eventstreams-internal-deploy-codfw.config]", "File[/etc/kubernetes/eventstreams-internal-deploy-eqiad.config]", "File[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config]", "File[/etc/kubernetes/eventstreams-internal-deploy-staging-eqiad.config]", "File[/etc/kubernetes/eventstreams-internal-deploy-staging.config]", "File[/etc/kubernetes/eventstreams-internal-eqiad.config]", "File[/etc/kubernetes/eventstreams-internal-staging-codfw.config]", "File[/etc/kubernetes/eventstreams-internal-staging-eqiad.config]", "File[/etc/kubernetes/eventstreams-internal-staging.config]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy-key.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chain.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.chained.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.csr]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-deploy.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal-key.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chain.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.chained.pem]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.csr]", "File[/etc/kubernetes/pki/wikikube__eventstreams-internal.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy-key.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chain.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.chained.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.csr]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-deploy.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal-key.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chain.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.chained.pem]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.csr]", "File[/etc/kubernetes/pki/wikikube_staging__eventstreams-internal.pem]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-codfw.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-codfw.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-eqiad.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging-codfw.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging-eqiad.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-deploy-staging.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-eqiad.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging-codfw.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging-eqiad.config]", "K8s::Kubeconfig[/etc/kubernetes/eventstreams-internal-staging.config]"], "only_in_other": [], "resource_diffs": [{"resource": "Class[Profile::Kubernetes::Deployment_server::Sophroid_config]", "parameters": "--- Class[Profile::Kubernetes::Deployment_server::Sophroid_config].orig\n+++ Class[Profile::Kubernetes::Deployment_server::Sophroid_config]\n\n@@\n-    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'}}\n+    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'}}\n"}, {"resource": "File[/etc/helmfile-defaults/services-staging.yaml]", "content": "--- /etc/helmfile-defaults/services-staging.yaml.orig\n+++ /etc/helmfile-defaults/services-staging.yaml\n@@ -84,10 +84,6 @@\n     usernames:\n     - name: eventstreams\n     - name: eventstreams-deploy\n-  eventstreams-internal:\n-    usernames:\n-    - name: eventstreams-internal\n-    - name: eventstreams-internal-deploy\n   failoid-ng:\n     usernames:\n     - name: failoid-ng"}, {"resource": "File[/etc/helmfile-defaults/services-eqiad.yaml]", "content": "--- /etc/helmfile-defaults/services-eqiad.yaml.orig\n+++ /etc/helmfile-defaults/services-eqiad.yaml\n@@ -84,10 +84,6 @@\n     usernames:\n     - name: eventstreams\n     - name: eventstreams-deploy\n-  eventstreams-internal:\n-    usernames:\n-    - name: eventstreams-internal\n-    - name: eventstreams-internal-deploy\n   failoid-ng:\n     usernames:\n     - name: failoid-ng"}, {"resource": "Class[Profile::Kubernetes::Deployment_server::Helmfile]", "parameters": "--- Class[Profile::Kubernetes::Deployment_server::Helmfile].orig\n+++ Class[Profile::Kubernetes::Deployment_server::Helmfile]\n\n@@\n-    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'}]}}}\n+    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'}]}}}\n"}, {"resource": "File[/etc/helmfile-defaults/services-staging-codfw.yaml]", "content": "--- /etc/helmfile-defaults/services-staging-codfw.yaml.orig\n+++ /etc/helmfile-defaults/services-staging-codfw.yaml\n@@ -84,10 +84,6 @@\n     usernames:\n     - name: eventstreams\n     - name: eventstreams-deploy\n-  eventstreams-internal:\n-    usernames:\n-    - name: eventstreams-internal\n-    - name: eventstreams-internal-deploy\n   failoid-ng:\n     usernames:\n     - name: failoid-ng"}, {"resource": "File[/etc/profile.d/kube-conf.sh]", "content": "--- /etc/profile.d/kube-conf.sh.orig\n+++ /etc/profile.d/kube-conf.sh\n@@ -3,7 +3,7 @@\n \n # kube environments\n export KUBE_ENV_ENVIRONMENTS=\"eqiad codfw staging staging-eqiad staging-codfw ml-serve-eqiad ml-serve-codfw ml-staging-codfw dse-k8s-eqiad dse-k8s-codfw aux-k8s-eqiad aux-k8s-codfw\"\n-export KUBE_ENV_SERVICES=\"admin apertium api-gateway benthos-cache-invalidator changeprop changeprop-jobqueue chart-renderer cirrus-streaming-updater citoid commons-impact-analytics cxserver data-gateway developer-portal device-analytics echostore edit-analytics editor-analytics eventgate-analytics eventgate-analytics-external eventgate-logging-external eventgate-main eventstreams eventstreams-internal failoid-ng geo-analytics ipoid kartotherian linked-artifacts linkrecommendation machinetranslation mathoid media-analytics miscweb mobileapps mw-api-ext mw-api-int mw-cron mw-debug mw-experimental mw-jobrunner mw-mcrouter mw-misc mw-page-content-change-enrich mw-parsoid mw-script mw-videoscaler mw-web mw-wikifunctions opentelemetry-collector page-analytics proton push-notifications ratelimit rdf-streaming-updater recommendation-api rest-gateway sessionstore shellbox shellbox-constraints shellbox-media shellbox-syntaxhighlight shellbox-timeline shellbox-video tegola-vector-tiles termbox thumbor toolhub wikidata-query-gui wikifeeds wikifunctions zotero article-descriptions article-models articletopic-outlink edit-check experimental llm logo-detection ores-legacy readability recommendation-api-ng revertrisk revise-tone-task-generator revision-models revscoring-articlequality revscoring-articletopic revscoring-draftquality revscoring-drafttopic revscoring-editquality-damaging revscoring-editquality-goodfaith revscoring-editquality-reverted analytics analytics-test kafka-mirrormaker opensearch-ipoid opensearch-ipoid-test opensearch-operator opensearch-operator-3 opensearch-semantic-search opensearch-semantic-search-test opensearch-test opensearch-toolhub opensearch-toolhub-test opensearch-apifeatureusage opensearch-apifeatureusage-test opensearch-ttmserver opensearch-ttmserver-test wdqs-internal wdqs-internal-next wdqs-external wdqs-external-next echoserver airflow-analytics-product airflow-analytics-test airflow-dev airflow-fr-tech airflow-main airflow-ml airflow-platform-eng airflow-research airflow-search airflow-sre airflow-test-k8s airflow-wikidata airflow-wmde blunderbuss datahub datahub-next datasets-config datasets-config-next growthbook growthbook-next llm-inference mediawiki-dumps-legacy mw-content-history-reconcile-enrich mw-content-history-reconcile-enrich-next mw-dump-rev-content-reconcile-enrich mw-dump-rev-content-reconcile-enrich-next mw-page-html-content-change-enrich mw-page-html-content-change-enrich-next mw-page-html-feature-counts-change-enrich mw-page-html-feature-counts-change-enrich-next spark spark-history spark-history-test superset superset-next test-kitchen test-kitchen-next turnilo turnilo-next webrequest-page-view webrequest-page-view-next wdqs-queryhammer codesearch jaeger redioscope sophroid zarcillo\"\n+export KUBE_ENV_SERVICES=\"admin apertium api-gateway benthos-cache-invalidator changeprop changeprop-jobqueue chart-renderer cirrus-streaming-updater citoid commons-impact-analytics cxserver data-gateway developer-portal device-analytics echostore edit-analytics editor-analytics eventgate-analytics eventgate-analytics-external eventgate-logging-external eventgate-main eventstreams failoid-ng geo-analytics ipoid kartotherian linked-artifacts linkrecommendation machinetranslation mathoid media-analytics miscweb mobileapps mw-api-ext mw-api-int mw-cron mw-debug mw-experimental mw-jobrunner mw-mcrouter mw-misc mw-page-content-change-enrich mw-parsoid mw-script mw-videoscaler mw-web mw-wikifunctions opentelemetry-collector page-analytics proton push-notifications ratelimit rdf-streaming-updater recommendation-api rest-gateway sessionstore shellbox shellbox-constraints shellbox-media shellbox-syntaxhighlight shellbox-timeline shellbox-video tegola-vector-tiles termbox thumbor toolhub wikidata-query-gui wikifeeds wikifunctions zotero article-descriptions article-models articletopic-outlink edit-check experimental llm logo-detection ores-legacy readability recommendation-api-ng revertrisk revise-tone-task-generator revision-models revscoring-articlequality revscoring-articletopic revscoring-draftquality revscoring-drafttopic revscoring-editquality-damaging revscoring-editquality-goodfaith revscoring-editquality-reverted analytics analytics-test kafka-mirrormaker opensearch-ipoid opensearch-ipoid-test opensearch-operator opensearch-operator-3 opensearch-semantic-search opensearch-semantic-search-test opensearch-test opensearch-toolhub opensearch-toolhub-test opensearch-apifeatureusage opensearch-apifeatureusage-test opensearch-ttmserver opensearch-ttmserver-test wdqs-internal wdqs-internal-next wdqs-external wdqs-external-next echoserver airflow-analytics-product airflow-analytics-test airflow-dev airflow-fr-tech airflow-main airflow-ml airflow-platform-eng airflow-research airflow-search airflow-sre airflow-test-k8s airflow-wikidata airflow-wmde blunderbuss datahub datahub-next datasets-config datasets-config-next eventstreams-internal growthbook growthbook-next llm-inference mediawiki-dumps-legacy mw-content-history-reconcile-enrich mw-content-history-reconcile-enrich-next mw-dump-rev-content-reconcile-enrich mw-dump-rev-content-reconcile-enrich-next mw-page-html-content-change-enrich mw-page-html-content-change-enrich-next mw-page-html-feature-counts-change-enrich mw-page-html-feature-counts-change-enrich-next spark spark-history spark-history-test superset superset-next test-kitchen test-kitchen-next turnilo turnilo-next webrequest-page-view webrequest-page-view-next wdqs-queryhammer codesearch jaeger redioscope sophroid zarcillo\"\n \n # Array that maps kubernetes environments to their respective versions\n # This duplicated information from KUBE_ENV_ENVIRONMENTS, but I did not want to break existing scripts"}, {"resource": "File[/etc/helmfile-defaults/services-staging-eqiad.yaml]", "content": "--- /etc/helmfile-defaults/services-staging-eqiad.yaml.orig\n+++ /etc/helmfile-defaults/services-staging-eqiad.yaml\n@@ -84,10 +84,6 @@\n     usernames:\n     - name: eventstreams\n     - name: eventstreams-deploy\n-  eventstreams-internal:\n-    usernames:\n-    - name: eventstreams-internal\n-    - name: eventstreams-internal-deploy\n   failoid-ng:\n     usernames:\n     - name: failoid-ng"}, {"resource": "File[/etc/helmfile-defaults/services-codfw.yaml]", "content": "--- /etc/helmfile-defaults/services-codfw.yaml.orig\n+++ /etc/helmfile-defaults/services-codfw.yaml\n@@ -84,10 +84,6 @@\n     usernames:\n     - name: eventstreams\n     - name: eventstreams-deploy\n-  eventstreams-internal:\n-    usernames:\n-    - name: eventstreams-internal\n-    - name: eventstreams-internal-deploy\n   failoid-ng:\n     usernames:\n     - name: failoid-ng"}, {"resource": "Class[Profile::Kubernetes::Deployment_server]", "parameters": "--- Class[Profile::Kubernetes::Deployment_server].orig\n+++ Class[Profile::Kubernetes::Deployment_server]\n\n@@\n-    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'}]}}}\n+    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'}]}}}\n"}, {"resource": "File[/etc/helmfile-defaults/sophroid/service.yaml]", "content": "--- /etc/helmfile-defaults/sophroid/service.yaml.orig\n+++ /etc/helmfile-defaults/sophroid/service.yaml\n@@ -750,39 +750,6 @@\n     state: production\n     discovery:\n     - dnsdisc: eventstreams\n-      active_active: true\n-  eventstreams-internal:\n-    description: Internal streams of events via HTTP + SSE, backed by Kafka. eventstreams-internal.discovery.wmnet\n-    encryption: true\n-    ip:\n-      codfw:\n-        default: 10.2.1.35\n-      eqiad:\n-        default: 10.2.2.35\n-    lvs:\n-      class: low-traffic\n-      conftool:\n-        cluster: kubernetes\n-        service: kubesvc\n-      depool_threshold: 0.5\n-      enabled: true\n-      monitors:\n-        IdleConnection:\n-          max-delay: 300\n-          timeout-clean-reconnect: 3\n-      scheduler: wrr\n-    page: false\n-    probes:\n-    - type: http\n-      path: \"/_info\"\n-    - type: swagger\n-    port: 4992\n-    sites:\n-    - eqiad\n-    - codfw\n-    state: service_setup\n-    discovery:\n-    - dnsdisc: eventstreams-internal\n       active_active: true\n   k8s-ingress-staging:\n     description: istio-ingresscontroller on kubernetes staging. k8s-ingress-staging.discovery.wmnet\n@@ -4318,6 +4285,21 @@\n     - codfw\n     - eqiad\n     state: service_setup\n+  eventstreams-internal:\n+    description: Internal streams of events via HTTP + SSE, backed by Kafka. eventstreams-internal.discovery.wmnet\n+    encryption: true\n+    ip:\n+      eqiad:\n+        default: 10.2.2.91\n+      codfw:\n+        default: 10.2.1.91\n+    page: false\n+    probes:\n+    - type: http\n+    port: 30443\n+    sites:\n+    - eqiad\n+    state: production\n   analytics-web:\n     encryption: true\n     role: analytics_cluster::webserver"}], "perc_changed": "0.49%"}}}