This blog post is just a list or let me say this is an addition to my last blog post Let’s get started with the development of operators using the GO SDK “one additional road” to get started with operator development from a more technical perspective.
With that in mind, that list only highlights some additional basics more technical development thoughts which you should keep in mind when you get started with operator development.
I divided the list in basics which are purely related to development and more the advanced topics which are about that you keep the production usage in mind.
So here is the list:
Basics
- Get a basic understanding of the operator capability levels
- How much do you want to simplify the management of the application or system that’s will be operated with your operator you are going to develop?
- Know in detail what will operate with your operator automation…
- … what is the application or system architecture that will be operated and get a deeper understanding of that architecture.
- … what needs to be utilized in Kubernetes or in OpenShift with the operator?
- … how to manage and setup the needed additional services like databases and so on which do not run in your cluster?
- Know how local operator development works
- For example: Your development operator should first run on your local machine
- Parallel development
- Mastering the challenges of:
- Concurrent development for the reconcile loop
- Try to avoid merge effort
- Think about cluster or “project”/”name space” scope to the operator
- Cost reduction
- Share effectively resources like database services
- Share effectively one cluster
- Be aware of cluster/worker node memory sizing for operators
- What is the footprint or your operator combined with the deployed application/system which will to be operated by the operator?
- Be aware of cluster/worker node memory sizing for operators
- Concurrent development for the reconcile loop
- Mastering the challenges of:
- Deploy the operator to the cluster
- Create manifests and controller in a container
- Understand what a operator bundle is
- Use the out of the box tests of a bundle for the operator
- Write own tests
More advanced topics
- Understand how operators are managed with the Operator Lifecycle Manager
- Build a bundle for the Operator Lifecycle Manager for the existing operator
- Create a new API version for an existing operator and manage the updates
- Update an existing bundle using a conversion web-hook
Surely there are many more different perspectives, but that’s all what I wanted to share with you, feel free to add your point of view in a comment to this blog post.
I hope this was useful for you and let’s see what’s next?
Greetings,
Thomas
#operator, #development, #operatorlearningjourney