Skip to content

Commit

Permalink
Fix broken links and move CRs' status descriptions (#1562)
Browse files Browse the repository at this point in the history
* fix broken links in api gateway repo

* update state descriptions

* fix status

* Apply suggestions from code review

* Apply suggestions from code review
  • Loading branch information
nataliasitko authored Dec 23, 2024
1 parent 84ba1b7 commit 1afe8a4
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 18 deletions.
16 changes: 7 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,19 @@

# API Gateway

## What Is API Gateway?
API Gateway is a Kyma module with which you can expose and secure APIs.

API Gateway provides functionalities that allow you to expose and secure APIs by using [Ory Oathkeeper](https://www.ory.sh/docs/oathkeeper) and the [Istio service mesh](https://istio.io/) resources.
The API Gateway module offers the following features:

## Kyma API Gateway Operator

Kyma API Gateway Operator is an extension to the Kyma runtime that manages the application of API Gateway's configuration and handles resource reconciliation. Within Kyma API Gateway Operator, there are two controllers: [APIGateway Controller](./docs/user/00-10-overview-api-gateway-controller.md), which applies the configuration specified in [APIGateway custom resource (CR)](./docs/user/custom-resources/apigateway/), and [APIRule Controller](./docs/user/00-20-overview-api-rule-controller.md), which applies the configuration specified in [APIRule CR](./docs/user/custom-resources/apirule/).

![Kyma API Gateway Operator Overview](./docs/assets/operator-overview.svg)
- Ory Oathkeeper installation: The module simplifies and manages the installation of Ory Oathkeeper.
- API Exposure: The module combines ORY Oathkeeper and Istio capabilities to offer the APIRule CustomResourceDefinition. By creating APIRule custom resources, you can easily and securely expose your workloads.
- Kyma Gateway installation: The module installs the default simple TLS Kyma Gateway.

## Installation

### Prerequisites

To use API Gateway, you must install Istio and Ory Oathkeeper in your cluster. Learn more about the [API Gateway's dependencies](./docs/contributor/01-20-api-gateway-dependencies.md) and [APIrules' dependencies](./docs/contributor/01-30-api-rule-dependencies.md).
To use the API Gateway module, you must install Istio and Ory Oathkeeper in your cluster. Learn more about the [API Gateway's dependencies](./docs/contributor/01-20-api-gateway-dependencies.md) and [APIrules' dependencies](./docs/contributor/01-30-api-rule-dependencies.md).

### Procedure
1. Create the `kyma-system` namespace and label it with `istio-injection=enabled`:
Expand Down Expand Up @@ -57,7 +55,7 @@ To use API Gateway, you must install Istio and Ory Oathkeeper in your cluster. L
default Ready
```

For more installation options, visit the [installation guide](./docs/contributor/01-00-installation.md).
For more installation options, see the [installation guide](./docs/contributor/01-00-installation.md).

## Useful Links

Expand Down
2 changes: 1 addition & 1 deletion docs/release-notes/2.2.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
## New features
- Introduce PodDisruptionBudget for Ory Oathkeeper. For more information, see the [PR](https://github.com/kyma-project/api-gateway/pull/853).
- Extend APIRule access strategies with `no_auth` to restrict accessible methods, thereby minimizing the exposure of the API.
- Introduce consistent labeling for the Kyma modules. For more information, see the [documentation](https://kyma-project.io/#/api-gateway/user/00-10-overview-api-gateway-controller?id=labeling-resources).
- Introduce consistent labeling for the Kyma modules. For more information, see the [documentation](https://github.com/kyma-project/api-gateway/blob/release-2.2/docs/user/00-10-overview-api-gateway-controller.md).
- Remove the **--generated-objects-labels** parameter and all the code that it used.
- Use the `Warning` state instead of `Error` when there is more than one APIGateway CR in the cluster. For more information, see the [PR](https://github.com/kyma-project/api-gateway/pull/882).
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,31 @@ This table lists the parameters of the given resource together with their descri
| **conditions.message** | string | Provides more details about the condition status change. |
| **conditions.reason** | string | Defines the reason for the condition status change. |
| **conditions.status** (required) | string | Represents the status of the condition. The value is either `True`, `False`, or `Unknown`. |
| **conditions.type** | string | Provides a short description of the condition. |
| **conditions.type** | string | Provides a short description of the condition. |

## APIGateway CR's State

| Code | Description |
|:------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `Ready` | APIGateway Controller finished reconciliation. |
| `Processing` | APIGateway Controller is reconciling resources. |
| `Deleting` | APIGateway Controller is deleting resources. |
| `Error` | An error occurred during the reconciliation. The error is rather related to the API Gateway module than the configuration of your resources. |
| `Warning` | An issue occurred during the reconciliation that requires your attention. Check the status.description message to identify the issue and make the necessary corrections to the APIGateway CR or any related resources. |

## APIGateway CR's Status Conditions

| CR state | Type | Status | Reason | Message |
|------------|-------|---------|----------------------------------|------------------------------------------------------------------------------|
| `Ready` | `Ready` | `Unknown` | `ReconcileProcessing` | Reconciliation processing. |
| `Ready` | `Ready` | `True` | `ReconcileSucceeded` | Reconciliation succeeded. |
| `Error` | `Ready` | `False` | `ReconcileFailed` | Reconciliation failed. |
| `Error` | `Ready` | `False` | `OlderCRExists` | APIGateway CR is not the oldest one and does not represent the module state. |
| `Error` | `Ready` | `False` | `CustomResourceMisconfigured` | APIGateway CR has invalid configuration. |
| `Error` | `Ready` | `False` | `DependenciesMissing` | Module dependencies missing. |
| `Processing` | `Ready` | `False` | `KymaGatewayReconcileSucceeded` | Kyma Gateway reconciliation succeeded. |
| `Error` | `Ready` | `False` | `KymaGatewayReconcileFailed` | Kyma Gateway reconciliation failed. |
| `Warning` | `Ready` | `False` | `KymaGatewayDeletionBlocked` | Kyma Gateway deletion blocked because of the existing custom resources: ... |
| `Processing` | `Ready` | `False` | `OathkeeperReconcileSucceeded` | Ory Oathkeeper reconciliation succeeded. |
| `Error` | `Ready` | `False` | `OathkeeperReconcileFailed` | Ory Oathkeeper reconciliation failed. |
| `Warning` | `Ready` | `False` | `DeletionBlockedExistingResources` | API Gateway deletion blocked because of the existing custom resources: ... |
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,18 @@ The following table lists the fields of the **status** section.

| Field | Description |
|:-----------------------|:----------------------------------------------------------------------------------------------------------------------------------|
| **status.state** | Defines the reconciliation state of the APIRule. The possible states are `Ready`, `Warning`, `Error`, `Processing` or `Deleting`. |
| **status.description** | Detailed description of **status.state**. |
| **status.state** | Defines the reconciliation state of the APIRule. The possible states are `Ready`, `Warning`, `Error`, `Processing`, or `Deleting`. |
| **status.description** | Contains a detailed description of **status.state**. |

## APIRule CR's State

| Code | Description |
|:------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `Ready` | APIRule Controller finished reconciliation. |
| `Processing` | APIRule Controller is reconciling resources. |
| `Deleting` | APIRule Controller is deleting resources. |
| `Error` | An error occurred during the reconciliation. The error is rather related to the API Gateway module than the configuration of your resources. |
| `Warning` | An issue occurred during the reconciliation that requires your attention. Check the status.description message to identify the issue and make the necessary corrections to the APIRule CR or any related resources. |

## Sample Custom Resource

Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# Kyma API Gateway Operator Parameters
# API Gateway Operator Parameters

You can configure [APIGateway Controller](../00-10-overview-api-gateway-controller.md) and [APIRule Controller](../00-20-overview-api-rule-controller.md) using various parameters. This document contains all the options.
You can configure APIGateway Controller and APIRule Controller using various parameters. This document contains all the options.

## Reconciliation Interval

### APIGateway
Kyma API Gateway Operator reconciles the APIGateway custom resource every 10 hours or whenever it is changed.
Kyma API Gateway Operator reconciles the APIGateway custom resource (CR) every 10 hours or whenever it is changed.

### APIRule
By default, Kyma API Gateway Operator reconciles APIRules every 60 minutes or whenever the APIRule is changed. You can adjust this interval by modifying the operator's parameters. For example, you can set the **-reconciliation-interval** parameter to `120s`.
By default, API Gateway Operator reconciles APIRule CRs every 60 minutes or whenever an APIRule CR is changed. You can adjust this interval by modifying the operator's parameters. For example, you can set the **-reconciliation-interval** parameter to `120s`.

## All Configuration Parameters
## Configuration Parameters

| Name | Required | Description | Example values |
|-------------------------------|:--------:|------------------------------------------------------------------------------------------------------------------------|----------------|
Expand Down

0 comments on commit 1afe8a4

Please sign in to comment.