- Generate a short list of instances to update
- Mark instances as read-only (e.g., T298759)
- Deploy new image in parallel and only route certain instances
- Manually run update scripts
- Allow writing to the instances again
- Test updated instances
- Repeat for all remaining instances
Description
Description
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
Resolved | Evelien_WMDE | T324575 Upgrade Wikibase.cloud MediaWiki version to 1.38 | |||
Resolved | Evelien_WMDE | T332298 Update existing instances on production to MediaWiki version 1.38 | |||
Resolved | Evelien_WMDE | T331854 Update existing instances on staging to MediaWiki version 1.38 | |||
Resolved | Evelien_WMDE | T332291 Prepare an image for MediaWiki version 1.38 |
Event Timeline
Comment Actions
See no reason why this can't be picked up by someone who has capacity to do so hence back in todo (after I very roughly checked the thing worked locally)
Comment Actions
It looks like we want to avoid creating a new MediaWiki chart when nothing substantial has changed, see https://github.com/wmde/wbaas-deploy/blob/main/doc/adr/0004-no-new-chart-for-image-bumps.md
Comment Actions
As discussed, we'll try to update these first:
1 "goathub.wikibase.dev" 2 "deerbase.wikibase.dev" 3 "coffeebase.wikibase.dev" 4 "somethingwitty.wikibase.dev"
Comment Actions
Wikis that still require migration as of now
goat-136.wikibase.dev candy-collection.wikibase.dev potatobase.wikibase.dev potato.wikibase.dev asjhfkjsahdkjahs.wikibase.dev feddypropswiki.wikibase.dev addshore-alpha.wikibase.dev faketestdomain.hopto.org wikibasehost.ddns.net addshore-fake-cusstom-domain-wikibase.duckdns.org deerstack.wikibase.dev cacti.wikibase.dev rose-collection.wikibase.dev migratetestbase.ddns.net biodiversity.wikibase.dev toms-test-wikibase.duckdns.org potatowiki3.wikibase.dev charlie-test-1.wikibase.dev deerdeerdeer.wikibase.dev blob-wiki.wikibase.dev test-lm-02.wikibase.dev testwikibase-jan.wikibase.dev aflex.wikibase.dev bh20subset1.wikibase.dev biomarker.wikibase.dev testa.wikibase.dev carrotwiki.wikibase.dev sweetcornbase.wikibase.dev mywayordatway.wikibase.dev redbull.wikibase.dev asdfg.wikibase.dev asfasfasfasfasf.wikibase.dev wbdev.ledeniz.de dev-test-wbaas-custom-deer.duckdns.org andrew.wikibase.dev
The Eloquent query for finding these is:
Wiki::whereRelation('wikiDb', 'version', '!=', 'mw1.38-wbs1')->get()->pluck('domain')->each(function ($i, $k) { echo $i.PHP_EOL; })
This can be used as input for running these scripts:
for wiki_domain in $(cat domains.txt); do kubectl exec -it deployment/api-app-backend -- bash -c "php artisan wbs-wiki:setSetting domain $wiki_domain wgReadOnly migrate-to-138" done
for wiki_domain in $(cat domains.txt); do kubectl exec -it deployments/api-scheduler -- bash -c "php artisan job:dispatchNow MediawikiUpdate wikis.domain $wiki_domain mw1.37-fp-wbs1 mw1.38-wbs1 mediawiki-138" kubectl exec -it deployment/api-app-backend -- bash -c "php artisan wbs-wiki:setSetting domain $wiki_domain wgReadOnly" done
with the deployment happening in between.