Mobrovac has uploaded a new change for review. https://gerrit.wikimedia.org/r/309979
Change subject: Change-Prop: Use Scap3 for config deploys ...................................................................... Change-Prop: Use Scap3 for config deploys Bug: T144595 Change-Id: Ibadfbfac4f680c56bf1d875e3e28ebf152d25fee --- M hieradata/labs/deployment-prep/common.yaml M modules/changeprop/manifests/init.pp D modules/changeprop/templates/config.yaml.erb 3 files changed, 17 insertions(+), 501 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/puppet refs/changes/79/309979/1 diff --git a/hieradata/labs/deployment-prep/common.yaml b/hieradata/labs/deployment-prep/common.yaml index 5702c9d..3d489d1 100644 --- a/hieradata/labs/deployment-prep/common.yaml +++ b/hieradata/labs/deployment-prep/common.yaml @@ -18,7 +18,6 @@ citoid::zotero_host: deployment-zotero01.deployment-prep.eqiad.wmflabs citoid::zotero_port: 1969 changeprop::purge_host: deployment-cache-text04.deployment-prep.eqiad.wmflabs -changeprop::concurrency: 20 changeprop::ores_uri: http://deployment-sca03.deployment-prep.eqiad.wmflabs:8081 graphoid::allowed_domains: http: diff --git a/modules/changeprop/manifests/init.pp b/modules/changeprop/manifests/init.pp index 7b6122b..c61a7bd 100644 --- a/modules/changeprop/manifests/init.pp +++ b/modules/changeprop/manifests/init.pp @@ -18,39 +18,35 @@ # [*ores_uri*] # The host where ORES service is running. Default: http://ores.svc.eqiad.wmnet:8081 # -# [*concurrency*] -# The maximum number of tasks the service can execute at any given point in -# time. Default: 30 -# - class changeprop( $broker_list, $purge_host = '239.128.0.112', $ores_uri = 'http://ores.svc.eqiad.wmnet:8081', $purge_port = 4827, - $concurrency = 50, ) { include ::service::configuration require ::changeprop::packages - $restbase_uri = $::service::configuration::restbase_uri - $mwapi_uri = $::service::configuration::mwapi_uri - service::node { 'changeprop': - enable => true, - port => 7272, - heap_limit => 750, - config => template('changeprop/config.yaml.erb'), - no_workers => 8, # TEMP - starter_module => 'hyperswitch', - healthcheck_url => '', - has_spec => true, - deployment => 'scap3', - auto_refresh => false, - init_restart => false, - environment => { + enable => true, + port => 7272, + healthcheck_url => '', + has_spec => true, + deployment => 'scap3', + deployment_config => true, + deployment_vars => { + broker_list => $broker_list, + mwapi_uri => $::service::configuration::mwapi_uri, + restbase_uri => $::service::configuration::restbase_uri, + ores_uri => $ores_uri, + purge_host => $purge_host, + purge_port => $purge_port, + }, + auto_refresh => false, + init_restart => false, + environment => { 'UV_THREADPOOL_SIZE' => 128 }, } diff --git a/modules/changeprop/templates/config.yaml.erb b/modules/changeprop/templates/config.yaml.erb deleted file mode 100644 index 56e0cf1..0000000 --- a/modules/changeprop/templates/config.yaml.erb +++ /dev/null @@ -1,479 +0,0 @@ -user_agent: ChangePropagation/WMF -spec: - x-sub-request-filters: - - type: default - name: http - options: - allow: - - pattern: /^https?:\/\// - forward_headers: - user-agent: true - title: The Change Propagation root - paths: - /{api:sys}/purge: - x-modules: - - path: src/sys/purge.js - options: - host: <%= @purge_host %> - port: <%= @purge_port %> - /{api:sys}/links: - x-modules: - - path: src/sys/dep_updates.js - options: - templates: - mw_api: - uri: <%= @mwapi_uri %> - headers: - host: '{{message.meta.domain}}' - body: - formatversion: 2 - /{api:sys}/queue: - x-modules: - - path: src/sys/kafka.js - options: - metadata_broker_list: <%= @broker_list %> - dc_name: <%= scope.lookupvar('::site') %> - concurrency: <%= @concurrency %> - startup_delay: 60000 - templates: - summary_rerender: - topic: resource_change - match: - meta: - uri: '/^https?:\/\/[^\/]+\/api\/rest_v1\/page\/html\/([^\/]+)$/' - tags: - - restbase - match_not: - meta: - domain: '/wiktionary\.org$/' - exec: - method: get - # Don't encode title since it should be already encoded - uri: '<%= @restbase_uri %>/{{message.meta.domain}}/v1/page/summary/{{match.meta.uri[1]}}' - query: - redirect: false - headers: - cache-control: no-cache - - definition_rerender: - topic: resource_change - match: - meta: - # These URIs are coming from RESTBase, so we know that article titles will be normalized - # and main namespace articles will not have : (uri-encoded, so %3a or %3A) - uri: '/^https?:\/\/[^\/]+\/api\/rest_v1\/page\/html\/((?:(?!%3a|%3A|\/).)+)$/' - domain: '/^en\.wiktionary\.org$/' - tags: - - restbase - exec: - method: get - # Don't encode title since it should be already encoded - uri: '<%= @restbase_uri %>/{{message.meta.domain}}/v1/page/definition/{{match.meta.uri[1]}}' - query: - redirect: false - headers: - cache-control: no-cache - - mobile_rerender: - topic: resource_change - match: - meta: - uri: '/^https?:\/\/[^\/]+\/api\/rest_v1\/page\/html\/([^/]+)$/' - tags: - - restbase - exec: - method: get - # Don't encode title since it should be already encoded - uri: '<%= @restbase_uri %>/{{message.meta.domain}}/v1/page/mobile-sections/{{match.meta.uri[1]}}' - query: - redirect: false - headers: - cache-control: no-cache - - purge_varnish: - topic: resource_change - match: - meta: - uri: '/^https?:\/\/[^\/]+\/api\/rest_v1\/(?<title>.+)$/' - tags: - - restbase - exec: - method: post - uri: '/sys/purge/' - body: - - meta: - uri: '//{{message.meta.domain}}/api/rest_v1/{{match.meta.uri.title}}' - - # RESTBase update jobs - mw_purge: - topic: resource_change - match: - meta: - uri: '/^https?:\/\/[^\/]+\/wiki\/(?<title>.+)$/' - tags: - - purge - exec: - method: get - uri: '<%= @restbase_uri %>/{{message.meta.domain}}/v1/page/html/{{match.meta.uri.title}}' - headers: - cache-control: no-cache - if-unmodified-since: '{{date(message.meta.dt)}}' - query: - redirect: false - - null_edit: - topic: resource_change - ignore: - status: - - 403 # Ignoring 403 since some of the pages with high number of null_edit events are blacklisted - - 412 - match: - meta: - uri: '/^https?:\/\/[^\/]+\/wiki\/(?<title>.+)$/' - tags: - - null_edit - exec: - method: get - uri: '<%= @restbase_uri %>/{{message.meta.domain}}/v1/page/html/{{match.meta.uri.title}}' - headers: - cache-control: no-cache - if-unmodified-since: '{{date(message.meta.dt)}}' - query: - redirect: false - - page_edit: - topic: mediawiki.revision_create - retry_on: - status: - - '5xx' - - 404 # Sometimes occasional 404s happen because of the mysql replication lag, so retry - exec: - method: get - uri: '<%= @restbase_uri %>/{{message.meta.domain}}/v1/page/html/{message.page_title}/{{message.rev_id}}' - headers: - cache-control: no-cache - x-restbase-parentrevision: '{{message.rev_parent_id}}' - if-unmodified-since: '{{date(message.meta.dt)}}' - query: - redirect: false - - revision_visibility_change: - topic: mediawiki.revision_visibility_set - ignore: - status: - - 403 # When the revision is hidden 403 will be returned by RESTBase, it's a valid situation - - 412 - exec: - method: get - uri: '<%= @restbase_uri %>/{{message.meta.domain}}/v1/page/revision/{{message.revision_id}}' - headers: - cache-control: no-cache - query: - redirect: false - - page_delete: - topic: mediawiki.page_delete - ignore: - status: - - 404 # 404 is a normal response for page deletion - - 412 - exec: - method: get - uri: '<%= @restbase_uri %>/{{message.meta.domain}}/v1/page/title/{message.title}' - headers: - cache-control: no-cache - query: - redirect: false - - page_restore: - topic: mediawiki.page_restore - exec: - method: get - uri: '<%= @restbase_uri %>/{{message.meta.domain}}/v1/page/html/{message.title}' - headers: - cache-control: no-cache - query: - redirect: false - - page_move: - topic: mediawiki.page_move - exec: - - method: get - uri: '<%= @restbase_uri %>/{{message.meta.domain}}/v1/page/html/{message.new_title}/{{message.new_revision_id}}' - headers: - cache-control: no-cache - if-unmodified-since: '{{date(message.meta.dt)}}' - query: - redirect: false - - method: get - uri: '<%= @restbase_uri %>/{{message.meta.domain}}/v1/page/title/{message.old_title}' - headers: - cache-control: no-cache - query: - redirect: false - - transclusion_update: - topic: mediawiki.revision_create - exec: - method: 'post' - uri: '/sys/links/transcludes/{message.page_title}' - body: '{{globals.message}}' - - on_transclusion_update: - concurrency: <%= @concurrency.to_i * 3 %> - topic: resource_change - match: - meta: - uri: '/https?:\/\/[^\/]+\/wiki\/(?<title>.+)/' - tags: [ 'change-prop', 'transcludes' ] - exec: - method: get - uri: '<%= @restbase_uri %>/{{message.meta.domain}}/v1/page/html/{{match.meta.uri.title}}' - headers: - cache-control: no-cache - if-unmodified-since: '{{date(message.meta.dt)}}' - query: - redirect: false - - # ORES caching updates - ores_cache: - topic: mediawiki.revision_create - concurrency: 15 - ignore: - status: - - 503 - cases: - - match: - meta: - domain: ar.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/arwiki/' - query: - models: 'reverted' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: cs.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/cswiki/' - query: - models: 'reverted' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: en.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/enwiki/' - query: - models: 'reverted|damaging|goodfaith' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: en.wiktionary.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/enwiktionary/' - query: - models: 'reverted' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: es.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/eswiki/' - query: - models: 'reverted' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: et.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/etwiki/' - query: - models: 'reverted' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: fa.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/fawiki/' - query: - models: 'reverted|damaging|goodfaith' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: fr.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/frwiki/' - query: - models: 'reverted' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: he.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/hewiki/' - query: - models: 'reverted' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: hu.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/huwiki/' - query: - models: 'reverted' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: id.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/idwiki/' - query: - models: 'reverted' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: it.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/itwiki/' - query: - models: 'reverted' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: nl.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/nlwiki/' - query: - models: 'reverted|damaging|goodfaith' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: pl.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/plwiki/' - query: - models: 'reverted|damaging|goodfaith' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: pt.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/ptwiki/' - query: - models: 'reverted|damaging|goodfaith' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: ru.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/ruwiki/' - query: - models: 'reverted|damaging|goodfaith' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: tr.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/trwiki/' - query: - models: 'reverted|damaging|goodfaith' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: uk.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/ukwiki/' - query: - models: 'reverted' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: vi.wikipedia.org - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/viwiki/' - query: - models: 'reverted' - revids: '{{message.rev_id}}' - precache: true - - match: - meta: - domain: wikidata.org - page_namespace: 0 - rev_by_bot: false - exec: - uri: '<%= @ores_uri %>/v2/scores/wikidatawiki/' - query: - models: 'reverted|damaging|goodfaith' - revids: '{{message.rev_id}}' - precache: true - - # Re-renders summary on WikiData item update - wikidata_description: - topic: mediawiki.revision_create - match: - meta: - domain: www.wikidata.org - match_not: - page_title: /:/ - exec: - method: 'post' - uri: '/sys/links/wikidata_descriptions' - body: '{{globals.message}}' - - on_wikidata_description_change: - topic: resource_change - match: - meta: - uri: '/https?:\/\/[^\/]+\/wiki\/(?<title>.+)/' - tags: [ 'change-prop', 'wikidata' ] - exec: - - method: get - uri: '<%= @restbase_uri %>/{{message.meta.domain}}/v1/page/summary/{{match.meta.uri.title}}' - headers: - cache-control: no-cache - query: - redirect: false - - method: get - uri: '<%= @restbase_uri %>/{{message.meta.domain}}/v1/page/mobile-sections/{{match.meta.uri.title}}' - headers: - cache-control: no-cache - query: - redirect: false -- To view, visit https://gerrit.wikimedia.org/r/309979 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ibadfbfac4f680c56bf1d875e3e28ebf152d25fee Gerrit-PatchSet: 1 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Mobrovac <mobro...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits