kubeshop/kusk-gen

Kusk Gen generates Ingress-controller configurations from your OpenAPI definition

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 15 minutes ago
Added to GitGenius on May 1st, 2022
Created on June 23rd, 2021
Open Issues & Pull Requests: 15 (+0)
Number of forks: 11
Total Stargazers: 173 (+0)
Total Subscribers: 14 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 17.3 hours
Mean response time: 17.3 hours
90th percentile: 17.3 hours
Tracked items: 1

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 1
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 655 days
Stale 30+ days: 1
Stale 90+ days: 1

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • kind/feature (10)
  • area/generators (8)
  • kind/bug (5)
  • area/cli (3)
  • area/documentation (3)
  • kind/cleanup (2)
  • kind/enhancement (2)
  • area/operator (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Kusk-gen is a Go-based tool that generates Kubernetes Ingress controller configurations directly from OpenAPI definitions. The project treats OpenAPI/Swagger specifications as the authoritative source for creating supplementary Kubernetes resources, eliminating the need for developers to manually manage infrastructure configurations that don't directly relate to their applications. By leveraging OpenAPI as a single source of truth, kusk-gen extends a common microservice development practice into the Kubernetes deployment space.

The tool addresses a specific pain point in Kubernetes deployments: developers deploying REST APIs should not need to worry about managing resources for mappings, security, traffic control, and monitoring separately from their API specifications. Kusk-gen automates the generation of these resources based on the API definition itself, reducing development time and removing the burden of learning tool-specific configuration formats. This approach allows teams to easily switch between supported ingress controllers without needing to rewrite configurations in different formats.

Kusk-gen currently supports multiple popular Kubernetes ingress and gateway solutions. These include Ambassador 1.x and Ambassador 2.0, with the latter noted as a developer preview and unstable. The tool also generates configurations for Linkerd, the community-maintained Ingress-Nginx controller, and Traefik V2. The architecture is designed to make it straightforward to extend with additional generators, with Kong and Contour mentioned as upcoming tools the project would like to support.

The project includes a custom OpenAPI Extension that allows developers to specify extended quality-of-service and Kubernetes-related metadata within their API definitions. This metadata is then used by kusk-gen to configure cluster resources appropriately. The tool can inspect a cluster to automatically detect which supported tools are present and generate corresponding resources without manual intervention. This capability makes kusk-gen compatible with both manual workflows and automated GitOps or continuous deployment pipelines.

Installation options include Homebrew, direct installation via Go, and pre-built binaries available on the releases page. The project maintains comprehensive documentation at its homepage and actively engages with users through a Discord server for questions and suggestions.

The most active issue category is bug reports. Contributors julian-alarcon and olensmar have been tracked as active participants.