155 lines
3.5 KiB
YAML
155 lines
3.5 KiB
YAML
{{- if .Values.rateLimiting.enabled }}
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: ratelimit-redis
|
|
namespace: {{ .Release.Namespace }}
|
|
labels:
|
|
app: ratelimit-redis
|
|
spec:
|
|
ports:
|
|
- name: redis
|
|
port: 6379
|
|
selector:
|
|
app: ratelimit-redis
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: ratelimit-redis
|
|
namespace: {{ .Release.Namespace }}
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: ratelimit-redis
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: ratelimit-redis
|
|
spec:
|
|
containers:
|
|
- image: redis:6-alpine
|
|
imagePullPolicy: IfNotPresent
|
|
name: redis
|
|
ports:
|
|
- name: redis
|
|
containerPort: 6379
|
|
restartPolicy: Always
|
|
serviceAccountName: ""
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: ratelimit
|
|
namespace: {{ .Release.Namespace }}
|
|
labels:
|
|
app: ratelimit
|
|
spec:
|
|
ports:
|
|
#- name: http-port
|
|
# port: 8080
|
|
# targetPort: 8080
|
|
# protocol: TCP
|
|
- name: grpc-port
|
|
port: 8081
|
|
targetPort: 8081
|
|
protocol: TCP
|
|
#- name: http-debug
|
|
# port: 6070
|
|
# targetPort: 6070
|
|
# protocol: TCP
|
|
- name: http-monitoring
|
|
port: 9102
|
|
targetPort: 9102
|
|
protocol: TCP
|
|
selector:
|
|
app: ratelimit
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: ratelimit
|
|
namespace: {{ .Release.Namespace }}
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: ratelimit
|
|
strategy:
|
|
type: Recreate
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: ratelimit
|
|
spec:
|
|
containers:
|
|
- image: envoyproxy/ratelimit:b42701cb # 2021/08/12
|
|
imagePullPolicy: IfNotPresent
|
|
name: ratelimit
|
|
command: ["/bin/ratelimit"]
|
|
env:
|
|
- name: LOG_LEVEL
|
|
value: {{ default "WARN" .Values.rateLimiting.log.level }}
|
|
- name: LOG_FORMAT
|
|
value: {{ default "text" .Values.rateLimiting.log.format }}
|
|
- name: REDIS_SOCKET_TYPE
|
|
value: tcp
|
|
- name: REDIS_URL
|
|
value: ratelimit-redis:6379
|
|
- name: USE_STATSD
|
|
value: "true"
|
|
- name: STATSD_HOST
|
|
value: "localhost"
|
|
- name: STATSD_PORT
|
|
value: "9125"
|
|
- name: RUNTIME_ROOT
|
|
value: /data
|
|
- name: RUNTIME_SUBDIRECTORY
|
|
value: ratelimit
|
|
- name: RUNTIME_WATCH_ROOT
|
|
value: "false"
|
|
- name: RUNTIME_IGNOREDOTFILES
|
|
value: "true"
|
|
- name: LOCAL_CACHE_SIZE_IN_BYTES
|
|
value: "{{ default 0 .Values.rateLimiting.localCacheSize | int }}"
|
|
ports:
|
|
#- containerPort: 8080
|
|
- containerPort: 8081
|
|
#- containerPort: 6070
|
|
volumeMounts:
|
|
- name: ratelimit-config
|
|
mountPath: /data/ratelimit/config
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 32Mi
|
|
limits:
|
|
cpu: 1
|
|
memory: 256Mi
|
|
- name: statsd-exporter
|
|
image: docker.io/prom/statsd-exporter:v0.21.0
|
|
imagePullPolicy: Always
|
|
args: ["--statsd.mapping-config=/etc/statsd-exporter/config.yaml"]
|
|
ports:
|
|
- containerPort: 9125
|
|
# - containerPort: 9102
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 32Mi
|
|
limits:
|
|
cpu: 200m
|
|
memory: 64Mi
|
|
volumeMounts:
|
|
- name: statsd-exporter-config
|
|
mountPath: /etc/statsd-exporter
|
|
volumes:
|
|
- name: ratelimit-config
|
|
configMap:
|
|
name: ratelimit-config
|
|
- name: statsd-exporter-config
|
|
configMap:
|
|
name: ratelimit-statsd-exporter-config
|
|
{{- end }}
|