Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/salesforce/craft
CRAFT removes the language barrier to create Kubernetes Operators.
https://github.com/salesforce/craft
kubernetes operator
Last synced: 2 months ago
JSON representation
CRAFT removes the language barrier to create Kubernetes Operators.
- Host: GitHub
- URL: https://github.com/salesforce/craft
- Owner: salesforce
- License: bsd-3-clause
- Created: 2020-06-02T22:45:41.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-10-11T21:05:24.000Z (over 1 year ago)
- Last Synced: 2024-11-08T13:21:09.934Z (3 months ago)
- Topics: kubernetes, operator
- Language: Go
- Homepage:
- Size: 52.5 MB
- Stars: 93
- Watchers: 13
- Forks: 15
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-cloud-native - CRAFT - Removes the language barrier to create Kubernetes Operators. (Framework)
README
# 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:
1. Automated reconciliation using Docker entrypoint exit codes.
2. Kubernetes structural schema validation for a custom resource (CRD) happens within CRAFT while creating an operator.
3. Craft can be installed as a binary tool.These features allow CRAFT to achieve the objectives listed in this [Kubernetes Architecture Design Proposal.](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/declarative-application-management.md#bespoke-application-deployment)
## Demo:
As an example, we have created [wordpress operator](https://opensource.salesforce.com/craft/tutorial/index.html) that is comparable to one provided by [Presslabs](https://github.com/presslabs/wordpress-operator)## Advantages
1. **Easy onboarding** : Create an operator in your language of choice.
2. **Segregation of duties** : Developers can work in the docker file while the Site Reliability or DevOps engineer can declaratively configure the operator.
3. **Versioning** : Work on a different version of the operator or resource than your users.
4. **Validations** : Get schema and input validation feedback before runtime.
5. **Controlled reconciliation** : Define resource reconciliation frequency to lower your maintenance workload.## Built with
CRAFT is built with open source projects Operatify and Kubebuilder:1. [Operatify](https://github.com/operatify/operatify) : CRAFT leverages Operatify’s automated reconciliation capabilities. Our inspiration is this [blog post](https://www.stephenzoio.com/kubernetes-operators-for-resource-management/), where we have realized that we can overcome the last barrier to declaratively create operators.
2. [Kubebuilder](https://github.com/kubernetes-sigs/kubebuilder) : CRAFT augments the operator skeleton generated by Kubebuilder with custom resource definitions and controller capabilities.## Documentation
Check out [documentaion here](https://opensource.salesforce.com/craft/)## Resources
GitHub Repo: [salesforce/craft](https://github.com/salesforce/craft).
Slack channel: [Kubernetes/craft](https://kubernetes.slack.com/archives/C01AD4W4NEP)## Contribution
Please refer [Contribution.md](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](https://opensource.com/article/19/7/create-pull-request-github).## Acknowledgements
CRAFT was started by a small team of developers, namely [Harsh Jain](https://github.com/harsh-98), [Anji Devarasetty](https://github.com/anjidevarasetty), [Maheswara Sunil Varma](https://github.com/maheswarasunil) and [Avvari Sai Bharadwaj](https://github.com/AvvariSaiBharadwaj).Thanks to all of the amazing contributors, the full list can be found [here](https://github.com/salesforce/craft/graphs/contributors).