Custom Resource Abstraction Fabrication Tool
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!
Features:
- 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.
Demo:
As an example, we have created wordpress operator that is comparable to one provided by Presslabs
Advantages
- 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 : 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.
Built with
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.
Documentation
Check out documentaion here
Resources
GitHub Repo: salesforce/craft.
Slack channel: Kubernetes/craft
Contribution
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.
Acknowledgements
CRAFT was started by a small team of developers, namely Harsh Jain, Anji Devarasetty, Maheswara Sunil Varma and Avvari Sai Bharadwaj.
Thanks to all of the amazing contributors, the full list can be found here.