Page MenuHomePhabricator

Deploy versioned maps to the beta cluster
Closed, ResolvedPublic3 Estimated Story Points

Description

This will be necessary for performance review, and will be useful for demonstrating and communicating our changes.

In order to do this, our changes will have to be merged to the master branch and enabled by configuration.

  • Prepare the maps/kartotherian/deploy repo with our changes
  • Deploy kartotherian manually using scap on the beta cluster deployment node. This can be done on a branch to avoid accidental deployment to production. Currently, a branch imposm_beta is deployed. We want the imposm branch.
  • Enable versioned maps feature flags for Kartographer on the beta cluster.
  • Verify that we can disable the kartotherian pass-through by configuration, but leave enabled. (Toggle the switch back and forth.)
  • Demonstrate a beta wiki page with differing revisions of an embedded mapframe.

Demonstration
https://en.wikipedia.beta.wmflabs.org/w/index.php?title=Kartographer_versioned_maps_example&oldid=534876
https://en.wikipedia.beta.wmflabs.org/w/index.php?title=Kartographer_versioned_maps_example&oldid=534875

Event Timeline

TODO: check that German Wikipedia on the beta cluster has FlaggedRevs settings roughly matching production.

WMDE-Fisch renamed this task from [Epic] Deploy versioned maps to the beta cluster to Deploy versioned maps to the beta cluster.Nov 25 2021, 2:26 PM
WMDE-Fisch set the point value for this task to 5.

@MSantos I looked into the process for rebuilding, tagging, and deploying the kartotherian service, and I'm afraid I'll have to leave it to your team. If it makes sense and you have the time, I would be happy to learn, maybe by watching you run through the steps, but I had no success following the existing docs or using the ./server.js build command.

The good news is that the production deployment seems to be up to date with the main branch so our changes can be deployed without a backport. But our next step is to deploy to the beta cluster, and I notice that you have an experimental kartotherian branch imposm_beta deployed there since July. Is it okay if we push our own experimental code to beta?

@awight I think it would be useful to sync with you, because we're not using the deployment-prep instance for maps anymore, instead we've created a new service for the Tilerator replacement with Tegola.

I've realized that I will split the patches for more comfortable code review. They were made by squashing the wmde-maps-revid branch in each repo, but I think the more granular commits still hold some helpful clues.

awight changed the task status from Open to Stalled.Dec 6 2021, 12:12 PM
awight changed the task status from Stalled to Open.Dec 9 2021, 10:57 AM
awight claimed this task.

Change 745490 had a related patch set uploaded (by Awight; author: Awight):

[operations/mediawiki-config@master] beta: enable Kartographer versioned maps

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

Change 745490 merged by jenkins-bot:

[operations/mediawiki-config@master] beta: enable Kartographer versioned maps

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

Observations:

  • The beta cluster isn't configured to fetch maps from the maps-experiment server, kartotherian.wmflabs.org. We need a config patch to do that—but first I'll ask @MSantos to learn more about the context.
  • maps-experiment seems to not be configured to accept requests from the beta domain, for example.
  • The maps-beta.wmflabs.org server is still running, possibly causing confusion. It seems to be malfunctioning.

My next step is to build the kartotherian deployment package using the kartodock image. Unassigning myself for the afternoon, anyone feel free to take over!

awight changed the task status from Open to Stalled.Dec 14 2021, 8:46 AM

Still hoping for some tips on how to properly build the kartotherian-package repository—does this happen on the wmcloud maps-experiment instance? Is there a builder image or instance?

Beta cluster needs some fixups so that I'm working from a known good state.

Now that the production package exists, I can probably deploy to beta myself.

awight changed the task status from Stalled to Open.Dec 17 2021, 1:49 PM

I ran into some blockers last week, but will try again and report back here. So far, what I've found is that the imposm branch of kartotherian is deployed to production, but Beta is now on the master branch. The master branch of the kartotherian-deploy repo was built on an older version of Debian so doesn't run on the cluster. Shared library errors e.g. linking against libboost 1.62 when only 1.67 is available kill the service processes. The least invasive fix is to deploy the imposm branch to deployment-prep and maps-experiments in wmcloud.

This will also require some configuration changes. Considering the deployment freeze over the holidays, noting here that beta deployment only requires a git rebase on the deployment server, but no "scap" should be performed.

There were issues which blocked puppet updates on maps-experiments, the fix was to add and update these lines in maps-puppetmaster02.maps-experiments.eqiad1.wikimedia.cloud:/var/lib/git/labs/private/hieradata/maps-experiments.yaml:

profile::maps::osm_master::eventgate_endpoint: 'http://deployment-eventgate-3.deployment-prep.eqiad.wmflabs:8292/v1/events'
scap::deployment_server: deployment-deploy03.deployment-prep.eqiad1.wikimedia.cloud

Unfortunately, tilerator and tilerator-ui are still repeatedly crashing with this message from the parent process, with no other explanation:

maps-master01 tileratorui[3380]: Parent is shutting down, bye...

Maybe a minor thing or possibly related, I found this failure:

Dec 20 13:00:02 maps-master01 send-tile-expiration-events[15451]: +++ basename '/srv/osm_expire/*'
Dec 20 13:00:02 maps-master01 send-tile-expiration-events[15451]: ++ date -d '*' +%s
Dec 20 13:00:02 maps-master01 send-tile-expiration-events[15451]: date: invalid date ‘*’

I worked around by,

touch /srv/osm_expire/2021-12-20
awight changed the point value for this task from 5 to 2.

@MSantos showed me a bit more about how to build kartotherian, so I'm ready to take another pass at this task.

The released kartotherian 1.1.10 package already includes our versioned maps support. The kartotherian-package and kartotherian-deploy repos are already at this release level.

I've created merge patches from imposm to master for each repo, please feel free to use or change as needed. Merging these is not a requirement for our work.

awight changed the point value for this task from 2 to 5.
WMDE-Fisch changed the point value for this task from 5 to 3.Jan 19 2022, 9:52 AM

Change 755391 had a related patch set uploaded (by Awight; author: Awight):

[operations/mediawiki-config@master] [beta] Maps will be provided by the maps-experiments kartotherian

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

Change 755391 merged by jenkins-bot:

[operations/mediawiki-config@master] [beta] Maps will be provided by the maps-experiments kartotherian

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

awight updated the task description. (Show Details)
awight moved this task from Doing to Demo on the WMDE-TechWish-Sprint-2022-01-19 board.
thiemowmde claimed this task.
thiemowmde moved this task from Demo to Done on the WMDE-TechWish-Sprint-2022-01-19 board.