Kusk blog

Kusk-gateway 1.0: OpenAPI-driven K8s Ingress Controller

May 5, 2022
2 min
read
Christopher Jones
Senior Product Manager
Kusk

The Kusk team is proud to announce the v1.0 of Kusk-gateway, which adds Kubernetes API mocking capabilities, a CLI tool, auto-deployments, an interactive dashboard, and HTTP-related improvements.

Kusk-gateway 1.0: OpenAPI-driven K8s Ingress Controller
Share on Twitter
Share on LinkedIn
Share on Reddit
Share on HackerNews
Copy URL

Table of Contents

Get started today

Intro

The Kusk team is proud to announce the 1.0 release of Kusk-gateway! 

For the unfamiliar, What makes Kusk-gateway unique is that it uses the ubiquitous OpenAPI specification file as a single source of truth for making an API available to consumers, which includes routing configuration, request validation, timeouts, etc. It will especially resonate with developers and teams like ours, who have adopted a design-first approach to API development. Thanks to Kusk-gateway and OpenAPI (Swagger), you can quickly publish your APIs deployed in Kubernetes without having to add any additional configuration resources, which plays nicely with both manual and automated/GitOps-based development workflows. 

Kusk-gateway enables you to design and deploy your APIs from a single OpenAPI definition, allowing you to:

  • Rapidly prototype your Kubernetes APIs by mocking your API responses, allowing your teams to instantly start building on top of your APIs without your services being implemented
  • Protect your endpoints with automatic request and response validations
  • Configure critical policies like request timeouts and CORs with no coding required
  • Centrally control your APIs from an Open Source dashboard
  • Automate the entire deployment process of your Kubernetes API without requiring manual DevOps intervention

Kusk-gateway is for you if:

  • You or your team develop REST APIs running in Kubernetes
  • You embrace a design-first approach to developing your APIs using OpenAPI or Swagger
  • You want to decrease ramp-up time when deploying a new REST API to a Kubernetes cluster and you don't want to spend lots of time configuring ingress controllers that require a dedicated Ops Engineer
  • You want your REST API endpoints to be configured, both functionally and operationally  from one source of truth.

What’s new?

Since the last beta release we have been focusing on making the core of Kusk-gateway production ready - but have also managed to squeeze in some new functionality.

Auto-deployments

Kusk-gateway will automatically detect and deploy an API CRD for any service with the annotations specifying the OpenAPI spec. 

-- CODE language-bash --
apiVersion: v1
kind: Service
metadata:
  annotations:
    kusk-gateway/openapi-url: <path/url to openapi definition>

Read more about automated API deployment.

Interactive Dashboard

Kusk-gateway now includes a browser-based dashboard for inspecting deploying Kubernetes APIs, EnvoyFleets and StaticRoutes. For Kubernetes APIs it is also possible to dig into the underlying OpenAPI definition and make ad-hoc requests to the Kubernetes API using the embedded Swagger-UI.

Deploy through Dashboard

To support use cases where developers do not want to create YAML files or deploy through kubectl, you can now deploy an API directly through the dashboard by supplying an OpenAPI spec.

Read more about deploying through the dashboard in our documentation.

The roadmap post 1.0

The main areas for improvement we are planning after this 1.0 release include:

  • Authentication (OAuth, ApiKey, etc)
  • Rate Limiting 
  • Caching
  • … and much more!

For more about future enhancements, you’re welcome to check out the 1.1.0 Release project on GitHub to see how things are going, don’t hesitate to jump in with comments and suggestions!

Try it out

Head over to the Kusk Gateway GitHub repository to download the latest release - installation instructions and documentation are available there as well. If you have any questions or ideas please feel free to join our Discord server and get in touch.

Thank you!

Related Content