I’m trying to define rate limiting such that teams can define and deploy rate limiting for their own services. I have it working for just 1 service but I want to enable it for multiple.
Reading the documentation here (https://istio.io/docs/tasks/policy-enforcement/rate-limiting/)
states that you need the following resources
QuotaSpec
, QuotaSpecBinding
, Instance
, Handler
, Rule
However, Im not sure which resources can be unique and which ones can be shared. In other words, do I need to create all 5 resources for each service I want to rate limit?
It seems like a handler would be shared but I want teams to be able to create their own quotas without having to modify a central handler file.
So, should i create separate resources for each service?
Also,
what does the services
field do in QuotaSpecBinding?
Is it source service that I want to apply the quota to or the destination service
kind: QuotaSpecBinding
metadata:
name: request-count
namespace: istio-demo
spec:
quotaSpecs:
- name: request-count
namespace: istio-demo
services:
- name: ?? source or destination service???
namespace: istio-demo