https://github.com/kuadrant/kuadrantctl
Kuadrant configuration command line utility
https://github.com/kuadrant/kuadrantctl
Last synced: 11 months ago
JSON representation
Kuadrant configuration command line utility
- Host: GitHub
- URL: https://github.com/kuadrant/kuadrantctl
- Owner: Kuadrant
- License: apache-2.0
- Created: 2021-05-18T13:47:49.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2025-02-12T16:50:34.000Z (over 1 year ago)
- Last Synced: 2025-04-12T16:00:58.694Z (about 1 year ago)
- Language: Go
- Size: 644 KB
- Stars: 6
- Watchers: 7
- Forks: 14
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# kuadrantctl
[](http://www.apache.org/licenses/LICENSE-2.0)
`kuadrantctl` is a CLI tool for managing [Kuadrant](https://kuadrant.io/) configurations and resources.
## Installing
`kuadrantctl` can be installed either by downloading pre-compiled binaries or by compiling from source. For most users, downloading the binary is the easiest and recommended method.
### Installing Pre-compiled Binaries
1. Download the latest binary for your platform from the [`kuadrantctl` Releases](https://github.com/Kuadrant/kuadrantctl/releases) page.
2. Unpack the binary.
3. Move it to a directory in your `$PATH` so that it can be executed from anywhere.
### Compiling from Source
If you prefer to compile from source or are contributing to the project, you can install `kuadrantctl` using `make install`. This method requires Golang 1.23.6 or newer.
It is possible to use the make target `install` to compile from source. From root of the repository, run
```bash
make install
```
This will compile `kuadrantctl` and install it in the `bin` directory at root of directory. It will also ensure the correct version of the binary is displayed . It can be ran using `./bin/kuadrantctl` .
## Usage
Below is a high-level overview of its commands, along with links to detailed documentation for more complex commands.
### General Syntax
```bash
kuadrantctl [command] [subcommand] [flags]
```
### Commands Overview
| Command | Description |
| ------------ | ---------------------------------------------------------- |
| `completion` | Generate autocompletion scripts for the specified shell |
| `generate` | Commands related to Kubernetes Gateway API and Kuadrant resource generation from OpenAPI 3.x specifications |
| `topology` | Command related to Kuadrant topology |
| `help` | Help about any command |
| `version` | Print the version number of `kuadrantctl` |
### Flags
| Flag | Description |
| ------------------ | --------------------- |
| `-h`, `--help` | Help for `kuadrantctl` |
| `-v`, `--verbose` | Enable verbose output |
### Commands Detail
#### `completion`
Generate an autocompletion script for the specified shell.
| Subcommand | Description |
| ------------ | ------------------------------------------- |
| `bash` | Generate script for Bash |
| `fish` | Generate script for Fish |
| `powershell` | Generate script for PowerShell |
| `zsh` | Generate script for Zsh |
#### `generate`
Commands related to Kubernetes Gateway API and Kuadrant resource generation from OpenAPI 3.x specifications.
| Subcommand | Description |
| ------------ | --------------------------------------------- |
| `gatewayapi` | Generate Gateway API resources |
| `kuadrant` | Generate Kuadrant resources |
##### `generate gatewayapi`
Generate Gateway API resources from an OpenAPI 3.x specification
| Subcommand | Description | Flags |
| ---------- | ------------------------------------------------ | --------------------------------- |
| `httproute`| Generate Gateway API HTTPRoute from OpenAPI 3.0.X| `--oas string` Path to OpenAPI spec file (in JSON or YAML format), URL, or '-' to read from standard input (required). `-o` Output format: 'yaml' or 'json'. (default "yaml") |
#### `topology`
Export and visualize kuadrant topology
### Usage
```shell
$ kuadrantctl topology -h
Export and visualize kuadrant topology
Usage:
kuadrantctl topology [flags]
Flags:
-d, --dot string Graphviz DOT output file
-h, --help help for topology
-n, --namespace string Topology's namespace (default "kuadrant-system")
-o, --output string SVG image output file
Global Flags:
-v, --verbose verbose output
```
##### `generate kuadrant`
Generate Kuadrant resources from an OpenAPI 3.x specification
| Subcommand | Description | Flags |
| ---------------- | ------------------------------------------------- | --------------------------------- |
| `authpolicy` | Generate a [Kuadrant AuthPolicy](https://docs.kuadrant.io/kuadrant-operator/doc/auth/) from an OpenAPI 3.0.x specification | `--oas string` Path to OpenAPI spec file (in JSON or YAML format), URL, or '-' to read from standard input (required). `-o` Output format: 'yaml' or 'json'. (default "yaml") |
| `ratelimitpolicy`| Generate [Kuadrant RateLimitPolicy](https://docs.kuadrant.io/kuadrant-operator/doc/rate-limiting/) from an OpenAPI 3.0.x specification | `--oas string` Path to OpenAPI spec file (in JSON or YAML format), URL, or '-' to read from standard input (required). `-o` Output format: 'yaml' or 'json'. (default "yaml") |
#### `version`
Print the version number of `kuadrantctl`.
No additional flags or subcommands.
### Additional Guides
#### Generating Gateway API HTTPRoute Objects
- Generates [Gateway API HTTPRoute](https://gateway-api.sigs.k8s.io/v1alpha2/guides/http-routing/) objects from an OpenAPI Specification (OAS) 3.x.
- Supports reading from a file, URL, or stdin.
- Example usages and more information can be found in the [detailed guide](doc/generate-gateway-api-httproute.md).
#### Generating Kuadrant AuthPolicy Objects
- Generates [Kuadrant AuthPolicy](https://github.com/Kuadrant/kuadrant-operator/blob/v0.4.1/doc/auth.md) objects for managing API authentication.
- Supports `openIdConnect` and `apiKey` types from the OpenAPI Security Scheme Object.
- Example usages and more information can be found in the [detailed guide](doc/generate-kuadrant-auth-policy.md).
#### Generating Kuadrant RateLimitPolicy Objects
- Generates [Kuadrant RateLimitPolicy](https://github.com/Kuadrant/kuadrant-operator/blob/v0.4.1/doc/rate-limiting.md) objects for managing API rate limiting.
- Supports reading from a file, URL, or stdin.
- Example usages and more information can be found in the [detailed guide](doc/generate-kuadrant-rate-limit-policy.md).
For more detailed information about each command, including options and usage examples, use `kuadrantctl [command] --help`.
## Using with GitHub Actions
```yaml
- name: Install kuadrantctl
uses: jaxxstorm/action-install-gh-release@v1.10.0
with: # Grab the latest version
repo: Kuadrant/kuadrantctl
```
## Commands
* [Generate Gateway API HTTPRoute objects from OpenAPI 3.X](doc/generate-gateway-api-httproute.md)
* [Generate Kuadrant RateLimitPolicy from OpenAPI 3.X](doc/generate-kuadrant-rate-limit-policy.md)
* [Generate Kuadrant AuthPolicy from OpenAPI 3.X](doc/generate-kuadrant-auth-policy.md)
## Contributing
The [Development guide](doc/development.md) describes how to build the kuadrantctl CLI and how to test your changes before submitting a patch or opening a PR.
## Licensing
This software is licensed under the [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0).
See the LICENSE and NOTICE files that should have been provided along with this software for details.