From f0acdad9542b51c46132113749f67ae4ec03e4ec Mon Sep 17 00:00:00 2001 From: David Martin Date: Tue, 5 Mar 2024 19:53:26 +0000 Subject: [PATCH 1/4] Add APICurio guide for modifying and visualising kuadrant extensions --- .../apicurio-security-scheme-apikey.png | Bin 0 -> 16643 bytes ...io-vendor-extension-backend-rate-limit.png | Bin 0 -> 40320 bytes doc/openapi-apicurio.md | 79 ++++++++++++++++++ 3 files changed, 79 insertions(+) create mode 100644 doc/images/apicurio-security-scheme-apikey.png create mode 100644 doc/images/apicurio-vendor-extension-backend-rate-limit.png create mode 100644 doc/openapi-apicurio.md diff --git a/doc/images/apicurio-security-scheme-apikey.png b/doc/images/apicurio-security-scheme-apikey.png new file mode 100644 index 0000000000000000000000000000000000000000..7ad032880f670594325b05310ac527874a5f858e GIT binary patch literal 16643 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 D+$Yl* literal 0 HcmV?d00001 diff --git a/doc/images/apicurio-vendor-extension-backend-rate-limit.png b/doc/images/apicurio-vendor-extension-backend-rate-limit.png new file mode 100644 index 0000000000000000000000000000000000000000..8d18f023f2ea1fed483092f266c9feda6f6ac6bc GIT binary patch literal 40320 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 op%6Me3k}b2>D>Q?{D57)m+gi*3nsP)Xz Date: Wed, 6 Mar 2024 10:45:52 +0000 Subject: [PATCH 2/4] Update doc/openapi-apicurio.md Co-authored-by: Jason Madigan <4467+jasonmadigan@users.noreply.github.com> --- doc/openapi-apicurio.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/openapi-apicurio.md b/doc/openapi-apicurio.md index 93e9cbb..6582dd7 100644 --- a/doc/openapi-apicurio.md +++ b/doc/openapi-apicurio.md @@ -1,4 +1,4 @@ -## Usin APICurio to edit an OpenAPI spec and visualise Kuadrant extensions +## Using APICurio to edit an OpenAPI spec and visualise Kuadrant extensions This guide assumes you have APICurio already running. See https://www.apicur.io/ for info on how to install APICurio Studio. From 664d2fa1c56f61648f669a036e9068fcd599c553 Mon Sep 17 00:00:00 2001 From: David Martin Date: Wed, 6 Mar 2024 10:46:15 +0000 Subject: [PATCH 3/4] Update doc/openapi-apicurio.md Co-authored-by: Jason Madigan <4467+jasonmadigan@users.noreply.github.com> --- doc/openapi-apicurio.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/doc/openapi-apicurio.md b/doc/openapi-apicurio.md index 6582dd7..1e793e1 100644 --- a/doc/openapi-apicurio.md +++ b/doc/openapi-apicurio.md @@ -17,16 +17,12 @@ info: route: name: petstore namespace: petstore - labels: - deployment: petstore - owner: jbloggs hostnames: - 'petstore.example.com' parentRefs: - name: prod-web namespace: kuadrant-multi-cluster-gateways kind: Gateway -``` When added, the UI will show this in the Vendor Extensions section: From 6b59c0b67985a7fb0ef53a347bf7c26ba0657e5b Mon Sep 17 00:00:00 2001 From: David Martin Date: Wed, 6 Mar 2024 13:01:04 +0000 Subject: [PATCH 4/4] Address PR feedback --- doc/openapi-apicurio.md | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/doc/openapi-apicurio.md b/doc/openapi-apicurio.md index 1e793e1..3025a17 100644 --- a/doc/openapi-apicurio.md +++ b/doc/openapi-apicurio.md @@ -1,15 +1,24 @@ -## Using APICurio to edit an OpenAPI spec and visualise Kuadrant extensions +## Using APICurio with Kuadrant OAS extensions + +[OpenAPI Extensions](https://swagger.io/docs/specification/openapi-extensions/) can +be used to describe extra functionality beyond what is covered by the standard OpenAPI +specification. They typically start with `x-`. Kuadrant OpenAPI extensions start with +`x-kuadrant`, and allow you to configure Kuadrant policy information along side +your API. + +APICurio Studio is a UI tool for visualising and editing OpenAPI specifications. +It has support for visualising security and extensions defined in your spec. This guide assumes you have APICurio already running. See https://www.apicur.io/ for info on how to install APICurio Studio. -### Editing the spec +### Adding extensinos to the spec Open or import your OpenAPI spec in the APICurio UI. You can modify the source of the spec from the UI. There are a few different configuration and extension points supported by APICurio, and also supported by the `kuadrantctl` cli. -To generate a HTTPRoute for the API, add the following `x-kuadrant` block to your spec, replacing values to match your APIs details and the location of your Gateway. +To generate a [HTTPRoute](https://gateway-api.sigs.k8s.io/api-types/httproute/) for the API, add the following `x-kuadrant` block to your spec, replacing values to match your APIs details and the location of your Gateway. ```yaml info: @@ -23,6 +32,7 @@ info: - name: prod-web namespace: kuadrant-multi-cluster-gateways kind: Gateway +``` When added, the UI will show this in the Vendor Extensions section: @@ -30,8 +40,9 @@ When added, the UI will show this in the Vendor Extensions section: See [this guide](./generate-gateway-api-httproute.md) for more info on generating a HTTPRoute. -Add a `securityScheme` to the components block so that an AuthPolicy can be generated. +To generate an [AuthPolicy](https://docs.kuadrant.io/kuadrant-operator/doc/auth/), add a `securityScheme` to the components block. This `securityScheme` requires that an API key header is set. +Although securityScheme is not an OpenAPI extension, it is used by `kuadrantctl` like the other extensions mentioned here. ```yaml securitySchemes: @@ -47,7 +58,7 @@ When added, the UI will display this in the security requirements section: See [this guide](./generate-kuadrant-auth-policy.md) for more info on generating an AuthPolicy. -To generate a RateLimitPolicy for the API, add the following `x-kuadrant` block to a path in your spec, +To generate a [RateLimitPolicy](https://docs.kuadrant.io/kuadrant-operator/doc/rate-limiting/) for the API, add the following `x-kuadrant` block to a path in your spec, replacing values to match your APIs details. ```yaml