Canasta CLI & Kubernetes Stack

Google Summer of Code 2022

·

2 min read

I have been contributing to the Canasta project under the Wikimedia Foundation for the past 12 weeks. Canasta is a distribution of MediaWiki. With the help of my mentors Jeffrey Wang and Yaron Koren, I was able to complete my project within the specified timeframe.

During the community bonding period, we tried creating the CLI using Rust and Go. And finally settled with Go, as it was much easier to work with and has been used for the existing MediaWiki CLI.

During the first 6 weeks of the coding period, we worked on designing the Canasta CLI and adding basic features like being able to create and import a Canasta instance. Also added a command to start and stop each instance. With the help of Lex Sulzer, we converted bash scripts for backing up a Canasta instance with restic to Go lang and added them to the CLI.

And during the next 2 weeks, we created a Kubernetes stack template for Canasta. Now with this Kubernetes stack, anyone can host a Canasta instance on a Kubernetes cluster with ease. It currently uses the default Volume Provisioner's to allocate storage volumes for each container.

During the last 2 weeks, we addressed the issues raised by the community members and prepared Documentation for the CLI. Also added commands to enable and disable extensions and skins bundled with Canasta.

Project Outcomes: