istio-ratelimit-operator
Automatically create global & local rate limit in Istio, support EnvoyFilter versioning, ratelimit metrics, shadow mode, and ratelimit based on route!
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (8.3%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Automatically create global & local rate limit in Istio, support EnvoyFilter versioning, ratelimit metrics, shadow mode, and ratelimit based on route!
Basic Info
Statistics
- Stars: 48
- Watchers: 4
- Forks: 10
- Open Issues: 4
- Releases: 25
Topics
Metadata Files
README.md
istio-ratelimit-operator
Istio ratelimit operator provide an easy way to configure Global or Local Ratelimit in Istio mesh. Istio ratelimit operator also support EnvoyFilter versioning!
Installation
To install the chart with the release name my-istio-ratelimit-operator:
console
helm repo add istio-ratelimit-operator https://zufardhiyaulhaq.com/istio-ratelimit-operator/charts/releases/
helm install my-istio-ratelimit-operator istio-ratelimit-operator/istio-ratelimit-operator --version 2.15.0 --values values.yaml
Usage
Apply Global ratelimit example
console kubectl apply -f examples/global/gateway/ratelimitservice/Check Object ``` kubectl get GlobalRateLimitConfig NAME AGE istio-public-gateway 3m1s
kubectl get GlobalRateLimit NAME AGE helloworld-zufardhiyaulhaq-com-bar-route 2m57s helloworld-zufardhiyaulhaq-com-baz-route 2m56s helloworld-zufardhiyaulhaq-com-corge-route 2m53s helloworld-zufardhiyaulhaq-com-foo-route 2m57s helloworld-zufardhiyaulhaq-com-garply-route 2m51s helloworld-zufardhiyaulhaq-com-grault-route 2m52s helloworld-zufardhiyaulhaq-com-quux-route 2m54s helloworld-zufardhiyaulhaq-com-qux-route 2m55s
kubectl get RateLimitService NAME AGE public-gateway-ratelimit-service 2m33s ```
- Check EnvoyFilter ``` kubectl get envoyfilter NAME AGE helloworld-zufardhiyaulhaq-com-bar-route-1.8 3m7s helloworld-zufardhiyaulhaq-com-bar-route-1.9 3m7s helloworld-zufardhiyaulhaq-com-baz-route-1.8 3m7s helloworld-zufardhiyaulhaq-com-baz-route-1.9 3m6s helloworld-zufardhiyaulhaq-com-corge-route-1.8 3m8s helloworld-zufardhiyaulhaq-com-corge-route-1.9 3m4s helloworld-zufardhiyaulhaq-com-foo-route-1.8 3m8s helloworld-zufardhiyaulhaq-com-foo-route-1.9 3m7s helloworld-zufardhiyaulhaq-com-garply-route-1.8 3m10s helloworld-zufardhiyaulhaq-com-garply-route-1.9 3m8s helloworld-zufardhiyaulhaq-com-grault-route-1.8 3m10s helloworld-zufardhiyaulhaq-com-grault-route-1.9 3m7s helloworld-zufardhiyaulhaq-com-quux-route-1.8 3m9s helloworld-zufardhiyaulhaq-com-quux-route-1.9 3m5s helloworld-zufardhiyaulhaq-com-qux-route-1.8 3m11s helloworld-zufardhiyaulhaq-com-qux-route-1.9 3m6s
istio-public-gateway-1.8 3m11s istio-public-gateway-1.9 3m11s ```
- Check Ratelimit
```
kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
public-gateway-ratelimit-service ClusterIP 10.32.214.174
8080/TCP,8081/TCP,6070/TCP 4m17s
kubectl get deployment NAME READY UP-TO-DATE AVAILABLE AGE public-gateway-ratelimit-service 2/2 2 2 4m53s
kubectl get configmap NAME DATA AGE public-gateway-ratelimit-service-config 1 5m14s public-gateway-ratelimit-service-config-env 4 5m14s
kubectl port-forward svc/public-gateway-ratelimit-service 6070:6070 curl http://127.0.0.1:6070/rlconfig
public-gateway.path.corge-routecorge-route: unit=HOUR requestsperunit=120 public-gateway.path.quux-routequux-route: unit=HOUR requestsperunit=60 public-gateway.method.garply-routegarply-route: unit=HOUR requestsperunit=120 public-gateway.method.path.bar-routebar-route: unit=HOUR requestsperunit=120 public-gateway.method.path.foo-routefoo-route: unit=HOUR requestsperunit=60 public-gateway.method.machineid.qux-routequx-route: unit=HOUR requestsperunit=90 public-gateway.method.machineid.baz-routebaz-route: unit=HOUR requestsperunit=90 public-gateway.method.grault-routegrault-route: unit=HOUR requestsperunit=60 ```
Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| extraLabels | object | {} | |
| operator.image | string | "zufardhiyaulhaq/istio-ratelimit-operator" | |
| operator.replica | int | 1 | |
| operator.tag | string | "v2.15.0" | |
| resources.limits.cpu | string | "512m" | |
| resources.limits.memory | string | "512Mi" | |
| resources.requests.cpu | string | "256m" | |
| resources.requests.memory | string | "256Mi" | |
| serviceAccount.imagePullSecrets | list | [] | |
| settings.ratelimitservice.image | string | "envoyproxy/ratelimit:5e1be594" | |
| settings.statsdExporter.image | string | "prom/statsd-exporter:v0.26.1" | |
Supported Releases
| Operator Version | Istio Version | |-----|------| | 2.13.0 | <= 1.21.x | | 2.12.0 | <= 1.20.x | | 2.11.2 | <= 1.17.x | | 2.9.0 | <= 1.16.x | | 2.8.0 | <= 1.15.x | | 2.5.1 | <= 1.13.x |
Owner
- Name: Zufar Dhiyaulhaq
- Login: zufardhiyaulhaq
- Kind: user
- Location: Indonesia
- Company: GoTo Financial
- Website: http://zufardhiyaulhaq.com
- Twitter: zufardhiyaulhaq
- Repositories: 119
- Profile: https://github.com/zufardhiyaulhaq
@gopaytech Engineering, @cloudnative-id lead organizer
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Dhiyaulhaq" given-names: "Zufar" title: "Istio Ratelimit Operator" version: 2.10.0 date-released: 2022-07-27 url: "https://github.com/zufardhiyaulhaq/istio-ratelimit-operator"
GitHub Events
Total
- Create event: 2
- Issues event: 1
- Release event: 1
- Watch event: 5
- Push event: 6
- Pull request event: 1
- Fork event: 1
Last Year
- Create event: 2
- Issues event: 1
- Release event: 1
- Watch event: 5
- Push event: 6
- Pull request event: 1
- Fork event: 1
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| zufardhiyaulhaq | z****q@g****m | 74 |
| dependabot[bot] | 4****] | 4 |
| Andre Ferraz | 3****z | 1 |
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 9
- Total pull requests: 35
- Average time to close issues: 3 months
- Average time to close pull requests: 8 days
- Total issue authors: 7
- Total pull request authors: 5
- Average comments per issue: 1.89
- Average comments per pull request: 0.46
- Merged pull requests: 29
- Bot issues: 0
- Bot pull requests: 6
Past Year
- Issues: 1
- Pull requests: 2
- Average time to close issues: N/A
- Average time to close pull requests: 9 days
- Issue authors: 1
- Pull request authors: 1
- Average comments per issue: 0.0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 2
Top Authors
Issue Authors
- zufardhiyaulhaq (3)
- WagnerCarvalho (1)
- camilamacedo86 (1)
- deferraz (1)
- scrollins (1)
- rs324 (1)
- Abhishek627 (1)
Pull Request Authors
- zufardhiyaulhaq (24)
- dependabot[bot] (6)
- deferraz (2)
- rs324 (1)
- gauravrautela (1)
- el4v (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 1
proxy.golang.org: github.com/zufardhiyaulhaq/istio-ratelimit-operator
- Homepage: https://github.com/zufardhiyaulhaq/istio-ratelimit-operator
- Documentation: https://pkg.go.dev/github.com/zufardhiyaulhaq/istio-ratelimit-operator#section-documentation
- License: MIT
-
Latest release: v1.0.0
published over 4 years ago
Rankings
Dependencies
- github.com/Masterminds/semver v1.5.0
- github.com/champly/lib4go v0.0.0-20210810011059-eb374f933ec2
- github.com/go-lintpack/lintpack v0.5.2
- github.com/gogo/protobuf v1.3.2
- github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6
- github.com/golangci/go-tools v0.0.0-20190318055746-e32c54105b7c
- github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3
- github.com/golangci/gocyclo v0.0.0-20180528134321-2becd97e67ee
- github.com/golangci/golangci-lint v1.41.1
- github.com/golangci/gosec v0.0.0-20190211064107-66fb7fc33547
- github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc
- github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21
- github.com/klauspost/cpuid v1.2.0
- github.com/norwoodj/helm-docs v1.10.0
- github.com/shirou/gopsutil v0.0.0-20180427012116-c95755e4bcd7
- github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4
- github.com/stretchr/testify v1.7.0
- github.com/thoas/go-funk v0.9.1
- golang.org/x/sys v0.0.0-20220330033206-e17cdc41300f
- golang.org/x/tools v0.1.10
- google.golang.org/protobuf v1.27.1
- gopkg.in/airbrake/gobrake.v2 v2.0.9
- gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2
- gopkg.in/yaml.v2 v2.4.0
- istio.io/api v0.0.0-20210910210758-d6ce87e3e159
- istio.io/client-go v1.12.0-alpha.1
- k8s.io/api v0.21.2
- k8s.io/apimachinery v0.21.2
- k8s.io/client-go v0.21.2
- sigs.k8s.io/controller-runtime v0.9.2
- sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4
- 1553 dependencies
- click *
- requests *
- gcr.io/distroless/static nonroot build
- golang 1.18 build
- actions/checkout v2 composite
- actions/setup-go v2 composite
- actions/setup-python v2 composite
- azure/setup-helm v1 composite
- azure/setup-kubectl v1 composite
- docker/build-push-action v2 composite
- docker/login-action v1 composite
- docker/setup-buildx-action v1 composite
- docker/setup-qemu-action v1 composite
- github/codeql-action/analyze v1 composite
- github/codeql-action/init v1 composite
- nolar/setup-k3d-k3s v1 composite
- py-actions/py-dependency-install v2 composite
- yokawasa/action-setup-kube-tools v0.7.1 composite
- zufardhiyaulhaq/setup-istioctl v1.0.0 composite
- actions/checkout v2 composite
- docker/build-push-action v2 composite
- docker/login-action v1 composite
- docker/setup-buildx-action v1 composite
- docker/setup-qemu-action v1 composite
- actions/checkout v2 composite
- actions/setup-go v2 composite
- actions/setup-python v2 composite
- azure/setup-helm v1 composite
- azure/setup-kubectl v1 composite
- docker/build-push-action v2 composite
- docker/login-action v1 composite
- nolar/setup-k3d-k3s v1 composite
- py-actions/py-dependency-install v2 composite
- yokawasa/action-setup-kube-tools v0.7.1 composite
- zufardhiyaulhaq/setup-istioctl v1.0.0 composite