Skip to content

kepkin/kongctl

Repository files navigation

A command line client for kong admin API

This tool ease kong management like getting routes for service name (not id):

kongctl -s https://localhost:8001 list routes -s example-service

1ba43640-6977-4d6a-9804-6e0032d77bb1: example-service
  example.com/

d091d9c4-fde8-4982-b984-8376bd544aaf: example-service
  example.com/api/v1

You can store your configuration in multiple yaml files and apply them individually. Let's assume you have configuration like this:

_format_version: "1.1"

services:
  - name: orders-service
    url: http://kubernetes-inner.host:80/path-to-ns/orders
    routes:
      - name: orders-root
        strip_path: true
        hosts:
          - orders.example.com

    plugins:
      - name: jwt
        enabled: false
        route:
          name: orders-root

        run_on: first
        config:
          key_claim_name: iss
          cookie_names: {}
          secret_is_base64: false
          maximum_expiration: 0
          anonymous:
          run_on_preflight: true
          uri_param_names:
            - jwt

Now you can call the following command to apply it:

kongctl -s https://localhost:8001 ensure order-service.yaml

Installation

brew tap kepkin/kongctl
brew install kongctl

or

pip3 install kongctl

Quick guide to usage

mkdir ~/.kongctl
cat  > ~/.kongctl/qa-env << EOF
{
  "client": {
    "server": "https://my-kong.url:8001",
    "auth": {
      "password": "pass",
      "type": "basic",
      "user": "user"
    }
  },
  "var_map": {
    "VAR1": "VALUE1",
    "VAR2": "VALUE2"
  }
}
EOF

kong -c qa-env list services

TODO

  • Support for OIDC authorization
  • Get stubs for create operation
  • Support all key-auth like plugins
  • Support update from cmd args
  • Support yaml
  • Sort by id?
  • list command filter option
  • Autocomplete
  • Add images instead of code in README (to show color support)

About

A command line client for Kong admin api

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published