search.wikimedia.org is the gateway for Apple's dictionary search. The entire thing is ~100 lines of PHP: https://gerrit.wikimedia.org/r/plugins/gitiles/operations/mediawiki-config/+/refs/heads/master/docroot/search.wikimedia.org/index.php and purely just a wrapper around a public API.
It has no tests, logging, stats, etc. AFAICT. There is no real reason to keep deploying it with MediaWiki like this.
I propose that search.wikimedia.org is turned into a PHP microservice deployed via k8s and separated from MediaWiki. Putting it in a separate repository would it make it easy to add PHPUnit tests and deployment pipeline. Deploying via k8s will give us logging and basic monitoring/stats via envoy.
I came across this via T288848: Make HTTP calls work within mediawiki on kubernetes , where the proposed solution would not work for search.wikimedia.org, creating some extra work for MW-on-K8s.
- Review charts
- apple-search namespaces in k8s
- apple-search accounts in k8s.
- apple-search puppet private tokens.
- Generate TLS certificates
- Review helmfile.d files:
- LVS setup
- DNS for LVS records
- Discovery DNS
- Monitoring dashboard
- Integration and Acceptance tests