diff --git a/docs/assets/operator-contributor-skr-overview.svg b/docs/assets/operator-contributor-skr-overview.svg index fb51c1345..205e5f624 100644 --- a/docs/assets/operator-contributor-skr-overview.svg +++ b/docs/assets/operator-contributor-skr-overview.svg @@ -1,4 +1,4 @@ -
creates
creates
applies Gateway configuration
applies Gateway configuration
Gardener
Gardener
Kyma cluster
Kyma cluster
1
1
references
references
APIGateway CR
APIGateway CR
APIGateway Controller
APIGateway Controller
API Gateway Operator
API Gateway Operator
APIRule Controller
APIRule Controller
watches
watches
watches
watches
APIRule CR
APIRule CR
api-gateway-config ConfigMap
api-gateway-c...
Ory Oathkeeper
Ory Oathkeeper
reconciles
reconciles
Istio Pilot
Istio Pilot
DNS Provider Credential Secret
DNS Prov...
Gateway
Gateway
Gateway
Gateway
Istio Gateway
Istio Gateway
Ory Rule
Ory Rule
Istio VirtualService
Istio Virtua...
Istio Authorization Policy
Istio Author...
Istio Request Authentication
Istio Request...
Istio Ingress Gateway
Istio Ingress Gateway
reconciles
reconciles
reconciles
reconciles
Istio Service Proxy
Istio Servic...
User workload
User workload
Istio Service Proxy
Istio Servic...
User workload
User workload
User Workload Pod
User Workload Pod
Istio Service Proxy
Istio Service...
User workload
User workload
applies configuration
applies configuration
exposes workload endpoints
exposes workload endpoints
sends requests
to exposed API endpoints
sends requests...
reconciles
reconciles
creates
creates
Certificate Secret
Certific...
references
references
Gateway
Gateway
Gateway
Gateway
Default Kyma gateway (kyma-system/kyma-gateway)
Default Kyma...
uses
uses
uses
uses
Developer
Developer
User
User
2
2
Notes:
Notes:
In the managed Kyma, Lifecycle Manager creates the default APIGateway CR 
In the managed Kyma, Lifecycle Manager creates the default APIGateway CR 
Used conditionally if APIGateway CR doesn't define the default host
Used conditionally if APIGateway CR doesn't define the default...
1
1
2
2
Gardener DNSEntry
Gardener DNS...
Gardener Certificate
Gardener Cer...
Gardener DNSProvider
Gardener DNS...
Text is not SVG - cannot display
\ No newline at end of file +
creates
creates
applies Gateway configuration
applies Gateway configuration
Gardener
Gardener
Kyma cluster
Kyma cluster
1
1
references
references
APIGateway CR
APIGateway CR
APIGateway Controller
APIGateway Controller
API Gateway Operator
API Gateway Operator
APIRule Controller
APIRule Controller
reconciles
reconciles
RateLimit Controller
RateLimit Controller
watches
watches
watches
watches
APIRule CR
APIRule CR
api-gateway-config ConfigMap
api-gateway-c...
Ory Oathkeeper
Ory Oathkeeper
reconciles
reconciles
Istio Pilot
Istio Pilot
DNS Provider Credential Secret
DNS Prov...
Gateway
Gateway
Gateway
Gateway
Istio Gateway
Istio Gateway
Ory Rule
Ory Rule
Istio VirtualService
Istio Virtua...
Istio Authorization Policy
Istio Author...
Istio Request Authentication
Istio Request...
Istio Ingress Gateway
Istio Ingress Gateway
reconciles
reconciles
reconciles
reconciles
Istio Service Proxy
Istio Servic...
User workload
User workload
Istio Service Proxy
Istio Servic...
User workload
User workload
User Workload Pod
User Workload Pod
Istio Service Proxy
Istio Service...
User workload
User workload
applies configuration
applies configuration
exposes workload endpoints
exposes workload endpoints
sends requests
to exposed API endpoints
sends requests...
reconciles
reconciles
creates
creates
Certificate Secret
Certific...
references
references
Gateway
Gateway
Gateway
Gateway
Default Kyma gateway (kyma-system/kyma-gateway)
Default Kyma...
uses
uses
uses
uses
Developer
Developer
User
User
2
2
Notes:
Notes:
In the managed Kyma, Lifecycle Manager creates the default APIGateway CR 
In the managed Kyma, Lifecycle Manager creates the default APIGateway CR 
Used conditionally if APIGateway CR doesn't define the default host
Used conditionally if APIGateway CR doesn't define the default...
1
1
2
2
Gardener DNSEntry
Gardener DNS...
Gardener Certificate
Gardener Cer...
Gardener DNSProvider
Gardener DNS...
Istio EnvoyFilter
Istio EnvoyFi...
RateLimit CR
RateLimit CR
watches
watches
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/assets/operator-overview.svg b/docs/assets/operator-overview.svg index d4e807e30..63b8d309f 100644 --- a/docs/assets/operator-overview.svg +++ b/docs/assets/operator-overview.svg @@ -1,4 +1,4 @@ -
creates
Developer
Kyma cluster
Gateway
Kyma Istio Gateway
Gateway
Istio
Gateway
Certificates
APIGateway CR
watches
Istio Virtual Service
Istio Authorization Policy
Istio Request Authentication
reconciles
APIRule CR
Ory Oathkeeper Installation
api-gateway-config ConfigMap
Ory Rule
API Gateway Operator
1
APIGateway Controller
APIRule Controller
Note:
In the managed Kyma, Lifecycle Manager creates the default APIGateway CR 
1
watches
reconciles
Certificate Controller
Certificate Secret
reconciles
\ No newline at end of file +
creates
creates
Developer
Developer
Kyma cluster
Kyma cluster
Gateway
Gateway
Kyma Istio Gateway
Kyma Istio G...
Gateway
Gateway
Istio
Gateway
Istio...
Certificates
Certificates
APIGateway CR
APIGateway CR
watches
watches
Istio Virtual Service
Istio Virtua...
Istio Authorization Policy
Istio Author...
Istio Request Authentication
Istio Request...
reconciles
reconciles
APIRule CR
APIRule CR
Ory Oathkeeper Installation
Ory Oathkeep...
api-gateway-config ConfigMap
api-gateway-c...
Ory Rule
Ory Rule
API Gateway Operator
API Gateway Operator
1
1
APIGateway Controller
APIGateway Controller
APIRule Controller
APIRule Controller
Note:
Note:
In the managed Kyma, Lifecycle Manager creates the default APIGateway CR 
In the managed Kyma, Lifecycle Manager creates the default APIGateway CR 
1
1
watches
watches
reconciles
reconciles
Certificate Controller
Certificate Controller
Certificate Secret
Certificate...
reconciles
reconciles
reconciles
reconciles
RateLimit Controller
RateLimit Controller
watches
watches
RateLimit CR
RateLimit CR
Istio EnvoyFilter
Istio EnvoyF...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/contributor/04-10-technical-design.md b/docs/contributor/04-10-technical-design.md index b110012da..80a4f20f2 100644 --- a/docs/contributor/04-10-technical-design.md +++ b/docs/contributor/04-10-technical-design.md @@ -33,7 +33,7 @@ APIRule Controller has a conditional dependency to APIGateway Controller in term >**NOTE:** For now, you can only use the default domain in APIGateway CR. The option to configure your own domain will be added at a later time. See the [epic task](https://github.com/kyma-project/api-gateway/issues/130). ### Reconciliation -APIRule Controller reconciles APIRule CR with each change. If you don't make any changes, the process occurs at the default interval of 10 hours. +APIRule Controller reconciles APIRule CR with each change. If you don't make any changes, the process occurs at the default interval of 30 minutes. You can use the [API Gateway Operator parameters](../user/technical-reference/05-00-api-gateway-operator-parameters.md) to adjust this interval. In the event of a failure during the reconciliation, APIRule Controller performs the reconciliation again after one minute. @@ -58,3 +58,12 @@ The controller is responsible for handling the Secret `api-gateway-webhook-certi ### Reconciliation Certificate Controller reconciles a Secret CR with each change. If you don't make any changes, the process occurs at the default interval of 1 hour. This code verifies whether the Certificate is currently valid and will not expire within the next 14 days. If the Certificate does not meet these criteria, it is renewed. In the event of a failure during the reconciliation, Certificate Controller performs the reconciliation again with the predefined rate limiter. + +## RateLimit Controller + +RateLimit Controller is a [Kubernetes controller](https://kubernetes.io/docs/concepts/architecture/controller/), which is implemented using the [Kubebuilder](https://book.kubebuilder.io/) framework. +The controller is responsible for handling the [RateLimit CR](../user/custom-resources/ratelimit/04-00-ratelimit.md). + +### Reconciliation +RateLimit Controller reconciles the RateLimit CR with each change. If you don't make any changes, the process occurs at the default interval of 30 minutes. +In the event of a failure during the reconciliation, RateLimit Controller performs the reconciliation again with the predefined rate limiter. diff --git a/docs/user/custom-resources/ratelimit/04-00-ratelimit.md b/docs/user/custom-resources/ratelimit/04-00-ratelimit.md new file mode 100644 index 000000000..e69de29bb