Please describe your proposed solution.
A Kubernetes operator is an application-specific controller that can help you package, deploy, and manage applications on Kubernetes clusters.
By defining custom, high-level resources, a developer can provision applications without having to know the low-level configurations details associated with each application.
A myriad of operators exist for well-known tools such as Redis, Kafka, Elasticsearch, etc.
This proposal involves the development of an operator for each of the following commonly used Cardano components:
- Cardano Node
- DB-Sync
- Ogmios
- Submit API
The features available in each operator will vary depending on the nature of the workload (eg: stateful vs stateless), but they all aim to solve the following infrastructure management procedures:
- Basic install, provisioning and configuration
- Version upgrades (minor / patch)
- Storage backup and restore
- Monitoring and alerts
This operators will provide a canonical way for deploying Cardano-specific infrastructure on Kubernetes clusters.
Please describe how your proposed solution will address the Challenge that you have submitted it in.
Simplifying the procedures required for deploying Cardano-specific infrastructure will lower the entry barrier for developers, which in turn increases adoption.
Removing the complexity associated with managing Cardano infrastructure will allow developers to focus on project features while seamlessly adopting best-practices.
What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?
Implementing an operator involves hardcoding infrastructure management best-practices into executable binaries.
For an operator to be adopted by the community, it should provide, at least, the same level of performance and security of a manual deployment.
Our team has experience deploying these components, but other teams might have identified best-practices unknown to us.
Our mitigation includes reaching out to different projects and request non-confidential information on how they run their infrastructure to ensure that we are contemplating all the best-practices already used by the community.