Developers deploying their REST APIs in Kubernetes shouldn't have to worry about managing resources that do not directly relate to their applications or services.
Kusk (coachman in Swedish) treats your OpenAPI/Swagger definition as a source of truth for generating supplementary Kubernetes resources for your REST APIs in regard to mappings, security, traffic-control, monitoring, etc.
Read the Introductory blog-post to get an overview.
brew install kubeshop/kusk/kusk
go install github.com/kubeshop/kusk@$VERSION
git clone [email protected]:kubeshop/kusk.git && \
cd kusk && \
go install
Read more at Getting Started
Using OpenAPI as the source-for-truth for client, servers, testing, documentation, etc. is a common approach when building microservice architectures with REST APis. Kusk extends this paradigm to also include Kubernetes configurations, allowing you to
- Cut down on development time when deploying your REST APIs to your clusters
- Remove the need to learn tools-specific formats and configurations
- Easily switch between supported tools without having to learn new formats/configurations
- Kusk can inspect your cluster for the tools it supports and generate corresponding resources automatically.
- the Kusk OpenAPI Extension allows you to specify extended QoS and k8s related metadata which will be used to configure your cluster accordingly.
- Kusk plays nicely with both manual and automated/GitOps/CD workflows.
- The underlying architecture makes it straight-forward to extend Kusk with new generators
Kusk currently supports (click for configuration options)
- Ambassador 1.x
- Ambassador 2.0
- Warning This is a developer preview and should be treated as unstable
- Linkerd
- Ingress-Nginx
- This generator refers to the community ingress from Kubernetes ingress-nginx
- Traefik V2 (v2.x)
Some of the upcoming tools we'd like to support are Kong and Contour. Please don't hesitate to suggest others or contribute your own generator!
To learn more about Kusk check out the complete documentation
Join our Discord Server to ask questions, suggest ideas, etc.
- Check out our Contributor Guide and Code of Conduct
- Fork/Clone the repo and make sure you can run it as shown above
- Check out open issues here on GitHub
- Get in touch with the team by starting a discussion on GitHub or on our Discord Server. or open an issue of your own that you would like to contribute to the project.
- Fly like the wind!