Skip to content

Commit

Permalink
chore: add test for patch ratelimit env (#5221)
Browse files Browse the repository at this point in the history
* add test for patch ratelimit env

Signed-off-by: zirain <zirain2009@gmail.com>

* update

Signed-off-by: zirain <zirain2009@gmail.com>

---------

Signed-off-by: zirain <zirain2009@gmail.com>
  • Loading branch information
zirain authored Feb 7, 2025
1 parent e5bbc57 commit bc190aa
Show file tree
Hide file tree
Showing 2 changed files with 188 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,38 @@ func TestDeployment(t *testing.T) {
Patch: &egv1a1.KubernetesPatchSpec{
Type: ptr.To(egv1a1.StrategicMerge),
Value: apiextensionsv1.JSON{
Raw: []byte("{\"spec\":{\"template\":{\"spec\":{\"hostNetwork\":true,\"dnsPolicy\":\"ClusterFirstWithHostNet\"}}}}"),
Raw: []byte(`{"spec":{"template":{"spec":{"hostNetwork":true,"dnsPolicy":"ClusterFirstWithHostNet"}}}}`),
},
},
},
},
{
caseName: "patch-deployment-containers",
rateLimit: rateLimit,
deploy: &egv1a1.KubernetesDeploymentSpec{
Patch: &egv1a1.KubernetesPatchSpec{
Type: ptr.To(egv1a1.StrategicMerge),
Value: apiextensionsv1.JSON{
Raw: []byte(`{
"spec": {
"template": {
"spec": {
"containers": [
{
"name": "envoy-ratelimit",
"imagePullPolicy": "Always",
"env": [
{
"name": "REDIS_TYPE",
"value": "sentinel"
}
]
}
]
}
}
}
}`),
},
},
},
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app.kubernetes.io/component: ratelimit
app.kubernetes.io/managed-by: envoy-gateway
app.kubernetes.io/name: envoy-ratelimit
name: envoy-ratelimit
namespace: envoy-gateway-system
ownerReferences:
- apiVersion: apps/v1
kind: Deployment
name: envoy-gateway
uid: test-owner-reference-uid-for-deployment
spec:
progressDeadlineSeconds: 600
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/component: ratelimit
app.kubernetes.io/managed-by: envoy-gateway
app.kubernetes.io/name: envoy-ratelimit
strategy:
type: RollingUpdate
template:
metadata:
annotations:
prometheus.io/path: /metrics
prometheus.io/port: "19001"
prometheus.io/scrape: "true"
creationTimestamp: null
labels:
app.kubernetes.io/component: ratelimit
app.kubernetes.io/managed-by: envoy-gateway
app.kubernetes.io/name: envoy-ratelimit
spec:
automountServiceAccountToken: false
containers:
- command:
- /bin/ratelimit
env:
- name: REDIS_TYPE
value: sentinel
- name: RUNTIME_ROOT
value: /data
- name: RUNTIME_SUBDIRECTORY
value: ratelimit
- name: RUNTIME_IGNOREDOTFILES
value: "true"
- name: RUNTIME_WATCH_ROOT
value: "false"
- name: LOG_LEVEL
value: info
- name: USE_STATSD
value: "false"
- name: CONFIG_TYPE
value: GRPC_XDS_SOTW
- name: CONFIG_GRPC_XDS_SERVER_URL
value: envoy-gateway:18001
- name: CONFIG_GRPC_XDS_NODE_ID
value: envoy-ratelimit
- name: GRPC_SERVER_USE_TLS
value: "true"
- name: GRPC_SERVER_TLS_CERT
value: /certs/tls.crt
- name: GRPC_SERVER_TLS_KEY
value: /certs/tls.key
- name: GRPC_SERVER_TLS_CA_CERT
value: /certs/ca.crt
- name: CONFIG_GRPC_XDS_SERVER_USE_TLS
value: "true"
- name: CONFIG_GRPC_XDS_CLIENT_TLS_CERT
value: /certs/tls.crt
- name: CONFIG_GRPC_XDS_CLIENT_TLS_KEY
value: /certs/tls.key
- name: CONFIG_GRPC_XDS_SERVER_TLS_CACERT
value: /certs/ca.crt
- name: FORCE_START_WITHOUT_INITIAL_CONFIG
value: "true"
- name: REDIS_SOCKET_TYPE
value: tcp
- name: REDIS_URL
value: redis.redis.svc:6379
- name: USE_PROMETHEUS
value: "true"
- name: PROMETHEUS_ADDR
value: :19001
- name: PROMETHEUS_MAPPER_YAML
value: /etc/statsd-exporter/conf.yaml
image: docker.io/envoyproxy/ratelimit:master
imagePullPolicy: Always
name: envoy-ratelimit
ports:
- containerPort: 8081
name: grpc
protocol: TCP
readinessProbe:
failureThreshold: 1
httpGet:
path: /healthcheck
port: 8080
scheme: HTTP
periodSeconds: 5
successThreshold: 1
timeoutSeconds: 1
resources:
requests:
cpu: 100m
memory: 512Mi
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
runAsGroup: 65534
runAsNonRoot: true
runAsUser: 65534
seccompProfile:
type: RuntimeDefault
startupProbe:
failureThreshold: 30
httpGet:
path: /healthcheck
port: 8080
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /certs
name: certs
readOnly: true
- mountPath: /etc/statsd-exporter
name: statsd-exporter-config
readOnly: true
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: envoy-ratelimit
terminationGracePeriodSeconds: 300
volumes:
- name: certs
secret:
defaultMode: 420
secretName: envoy-rate-limit
- configMap:
defaultMode: 420
name: statsd-exporter-config
optional: true
name: statsd-exporter-config
status: {}

0 comments on commit bc190aa

Please sign in to comment.