CRAFT removes the language barrier to create Kubernetes Operators. CRAFT declares Kubernetes Operators in a robust and generic way for any resource, letting developers focus on CRUD (create, read, update and delete) operations of resource management in a Dockerfile. With CRAFT you can create operators without a dependent layer and in the language of your choice!
- Automated reconciliation using Docker entrypoint exit codes.
- Kubernetes structural schema validation for a custom resource (CRD) happens within CRAFT while creating an operator.
- Craft can be installed as a binary tool.
These features allow CRAFT to achieve the objectives listed in this Kubernetes Architecture Design Proposal.
As an example, we have created wordpress operator that is comparable to one provided by Presslabs
- Easy onboarding : Create an operator in your language of choice.
- Segregation of duties : Developers can work in the docker file while the Site Reliability or DevOps engineer can declaratively configure the operator.
- Versioning and API interface : Work on a different version of the operator or resource than your users.
- Validations : Get schema and input validation feedback before runtime.
- Controlled reconciliation : Define resource reconciliation frequency to lower your maintenance workload.
CRAFT is built with open source projects Operatify and Kubebuilder:
- Operatify : CRAFT leverages Operatify’s automated reconciliation capabilities. Our inspiration is this blog post, where we have realized that we can overcome the last barrier to declaratively create operators.
- Kubebuilder : CRAFT augments the operator skeleton generated by Kubebuilder with custom resource definitions and controller capabilities.
Check out documentaion here
GitHub Repo: salesforce/craft.
Slack channel: TBD
Please refer Contribution.md before pushing the code. If you wish to make a contribution, create a branch, push your code into the branch and create a PR. For more details, check this article.