Skip to content

Releases: zufardhiyaulhaq/istio-ratelimit-operator

v2.14.0

17 Nov 09:37
Compare
Choose a tag to compare

Releasing v2.14.0 🥳🥳

supporting Istio 1.22, 1.23, and 1.24

v2.13.0

12 May 08:10
Compare
Choose a tag to compare

Releasing v2.13.0 🥳🥳

supporting Istio 1.19, 1.20, and 1.21

What's Changed

  • fix Istio local rate limit envoyfilter
  • upgrade HPA for rate limit service to v2
  • Bump google.golang.org/protobuf from 1.28.1 to 1.33.0 by @dependabot in #42

Full Changelog: v2.12.0...v2.13.0

v2.12.0

19 Nov 15:00
Compare
Choose a tag to compare

Releasing v2.12.0 🥳🥳

supporting Istio 1.18, 1.19, and 1.20

Full Changelog: v2.11.1...v2.12.0

v2.11.1

12 Oct 08:15
Compare
Choose a tag to compare

Full Changelog: v2.11.0...v2.11.1

v2.11.0

26 Jul 11:10
Compare
Choose a tag to compare

Releasing v2.11.0 🥳🥳

Changes:

  1. add extra labels on operator
  2. add extra labels field on RateLimitService

To add additional labels to RateLimitService

apiVersion: ratelimit.zufardhiyaulhaq.com/v1alpha1
kind: RateLimitService
metadata:
  name: echo-redis-ratelimit-service
  namespace: default
spec:
  kubernetes:
    extra_labels:
      team: foo
      environment: staging

How to Upgrade

Helm by default doesn't update the CRDs, you need to apply the CRDs manually

kubectl apply -f https://raw.githubusercontent.com/zufardhiyaulhaq/istio-ratelimit-operator/v2.11.0/charts/istio-ratelimit-operator/crds/crds.yaml

What's Changed

Full Changelog: v2.10.2...v2.11.0

v2.10.2

26 Jul 08:15
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.10.1...v2.10.2

v2.10.1

25 May 02:35
Compare
Choose a tag to compare

Ability to use imagePullSecrets in generated ServiceAccount

Full Changelog: v2.10.0...v2.10.1

v2.10.0

01 May 14:50
Compare
Choose a tag to compare

Releasing v2.10.0 🥳🥳

Changes:

  1. istio-ratelimit-operator now support remote address, this allows you to ratelimit based on client IP addresses.
  2. we are refactoring statsd, now RateLimitService comes with statsd-exporter sidecar.
  3. deprecating spec.monitoring.statsd

To enable statsd-exporter sidecar, you need to set spec.monitoring.enabled to true.

apiVersion: ratelimit.zufardhiyaulhaq.com/v1alpha1
kind: RateLimitService
metadata:
  name: echo-redis-ratelimit-service
  namespace: default
spec:
  monitoring:
    enabled: true

you can get the ratelimit metrics by calling RateLimitService on port 9102

~ $ k port-forward svc/podinfo-zufardhiyaulhaq-com-rls 9102:9102
~ $ curl http://localhost:9102/metrics | grep ratelimit
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16316    0 16316    0     0  12855      0 --:--:--  0:00:01 --:--:-- 12959
# HELP ratelimit_redis_pool_cx_active Metric autogenerated by statsd_exporter.
# TYPE ratelimit_redis_pool_cx_active gauge
ratelimit_redis_pool_cx_active 10
# HELP ratelimit_redis_pool_cx_local_close Metric autogenerated by statsd_exporter.
# TYPE ratelimit_redis_pool_cx_local_close counter
ratelimit_redis_pool_cx_local_close 1
# HELP ratelimit_redis_pool_cx_total Metric autogenerated by statsd_exporter.
# TYPE ratelimit_redis_pool_cx_total counter
ratelimit_redis_pool_cx_total 11
# HELP ratelimit_service_config_load_success Metric autogenerated by statsd_exporter.
# TYPE ratelimit_service_config_load_success counter
ratelimit_service_config_load_success 1551
# HELP ratelimit_service_rate_limit_near_limit Metric autogenerated by statsd_exporter.
# TYPE ratelimit_service_rate_limit_near_limit counter
ratelimit_service_rate_limit_near_limit{global_rate_limit_name="podinfo-zufardhiyaulhaq-com-ratelimit-route",identifier="podinfo-ratelimit-route",rate_limit_service_name="podinfo-zufardhiyaulhaq-com-rls"} 1
# HELP ratelimit_service_rate_limit_over_limit Metric autogenerated by statsd_exporter.
# TYPE ratelimit_service_rate_limit_over_limit counter
ratelimit_service_rate_limit_over_limit{global_rate_limit_name="podinfo-zufardhiyaulhaq-com-ratelimit-route",identifier="podinfo-ratelimit-route",rate_limit_service_name="podinfo-zufardhiyaulhaq-com-rls"} 5
# HELP ratelimit_service_rate_limit_total_hits Metric autogenerated by statsd_exporter.
# TYPE ratelimit_service_rate_limit_total_hits counter
ratelimit_service_rate_limit_total_hits{global_rate_limit_name="podinfo-zufardhiyaulhaq-com-ratelimit-route",identifier="podinfo-ratelimit-route",rate_limit_service_name="podinfo-zufardhiyaulhaq-com-rls"} 16
# HELP ratelimit_service_rate_limit_within_limit Metric autogenerated by statsd_exporter.
# TYPE ratelimit_service_rate_limit_within_limit counter
ratelimit_service_rate_limit_within_limit{global_rate_limit_name="podinfo-zufardhiyaulhaq-com-ratelimit-route",identifier="podinfo-ratelimit-route",rate_limit_service_name="podinfo-zufardhiyaulhaq-com-rls"} 11
# HELP ratelimit_service_response_time_seconds Metric autogenerated by statsd_exporter.
# TYPE ratelimit_service_response_time_seconds histogram
ratelimit_service_response_time_seconds_bucket{grpc_method="ShouldRateLimit",le="0.005"} 15
ratelimit_service_response_time_seconds_bucket{grpc_method="ShouldRateLimit",le="0.01"} 16
ratelimit_service_response_time_seconds_bucket{grpc_method="ShouldRateLimit",le="0.025"} 16
ratelimit_service_response_time_seconds_bucket{grpc_method="ShouldRateLimit",le="0.05"} 16
ratelimit_service_response_time_seconds_bucket{grpc_method="ShouldRateLimit",le="0.1"} 16
ratelimit_service_response_time_seconds_bucket{grpc_method="ShouldRateLimit",le="0.25"} 16
ratelimit_service_response_time_seconds_bucket{grpc_method="ShouldRateLimit",le="0.5"} 16
ratelimit_service_response_time_seconds_bucket{grpc_method="ShouldRateLimit",le="1"} 16
ratelimit_service_response_time_seconds_bucket{grpc_method="ShouldRateLimit",le="2.5"} 16
ratelimit_service_response_time_seconds_bucket{grpc_method="ShouldRateLimit",le="5"} 16
ratelimit_service_response_time_seconds_bucket{grpc_method="ShouldRateLimit",le="10"} 16
ratelimit_service_response_time_seconds_bucket{grpc_method="ShouldRateLimit",le="+Inf"} 16
ratelimit_service_response_time_seconds_sum{grpc_method="ShouldRateLimit"} 0.019000000000000003
ratelimit_service_response_time_seconds_count{grpc_method="ShouldRateLimit"} 16
# HELP ratelimit_service_total_requests Metric autogenerated by statsd_exporter.
# TYPE ratelimit_service_total_requests counter
ratelimit_service_total_requests{grpc_method="ShouldRateLimit"} 16

How to Upgrade

Helm by default doesn't update the CRDs, you need to apply the CRDs manually

kubectl apply -f https://raw.githubusercontent.com/zufardhiyaulhaq/istio-ratelimit-operator/v2.10.0/charts/istio-ratelimit-operator/crds/crds.yaml

v2.10.0-rc.2

30 Apr 15:20
Compare
Choose a tag to compare
v2.10.0-rc.2 Pre-release
Pre-release

Fix statsd config generator for remote address

Full Changelog: v2.10.0-rc.1...v2.10.0-rc.2

v2.10.0-rc.1

30 Apr 14:26
447f23f
Compare
Choose a tag to compare
v2.10.0-rc.1 Pre-release
Pre-release

Releasing v2.10.0-rc.1, fix remote address matcher not working

What's Changed

Full Changelog: v2.10.0-rc.0...v2.10.0-rc.1