Using Kubebuilder v.1
Back in January, we started building the MySQL Kubernetes operator for WordPress using low level Kubernetes functions; yet, in the meantime, 2 major framework/ libraries have surfaced in the controllers’ zone—CoreOS Operator SDK and Kubebuilder.
We tried using the Kubebuilder v.0, which was still in its early days. We couldn’t fully rely on it as it was not very stable at the time. It was a tedious process which finally made us go for Kubebuilder v.1 to reorganize our WordPress operator for several reasons:
- It’s very clean & stable
- It significantly reduces written code quantity, redundancy & code duplication across operators
- It has a general purpose Kubernetes client.
Before Kubebuilder, whenever there was an update to the controller code, we had to go through the same painful work of copy-pasting to all operators. With its dynamic client, it’s very easy to use custom resources from other projects. This is a massive help for us since we use a lot of custom third party resources to run our Presslabs Dashboard.
The most important part is that Kubebuilder helps us a lot in our work of getting our Managed WordPress hosting infrastructure to the next level not only in terms of utility but also in terms of time. With Kubebuilder, we earned more time to focus on creating more value in our task-specific code.
We can honestly say that Kubebuilder is a game changer and that’s why we want to use it across all our operators and contribute to its development, too.
Our MySQL Operator underwent some improvements since we started experimenting while moving our core services to the new infrastructure. Here are some of the areas we’re working on:
- Fewer issues and bugs, by adding end-to-end testing
- Stable definition of the MySQL Cluster resource
- Stable command line parameters
In line with our previous commitment, we are going to migrate the operator to Kubebuilder.
Sequential team efforts will definitely make MySQL Operator run smoothly soon. And hey, it’s open-source, so feel free to contribute right here. Kudos to the great folks at Platform9 who have also contributed to our project!
The new kid on the block is the brand new WordPress Operator. This is another step that we make in our mission of standardizing and opening WordPress hosting. Here, we’ve taken some small, but vigorous steps:
- We have a first version of the WordPress resource
- We’ll keep the operator unopinionated, allowing for greater flexibility while standardizing common operations like cron and database upgrades
- We’re actively exploring ways to implement it using Kubernetes
- We are also working on the new Presslabs dashboard which packs these controllers into a great UI.
You can find out more about our progress on the WordPress operator by visiting our Github project.