Skip to content

feat(container): update image ghcr.io/kdwils/envoy-proxy-bouncer (v0.6.3 ➔ v0.7.0) - #4292

Merged
Tanguille merged 2 commits into
mainfrom
renovate/ghcr.io-kdwils-envoy-proxy-bouncer-0.x
Aug 2, 2026
Merged

feat(container): update image ghcr.io/kdwils/envoy-proxy-bouncer (v0.6.3 ➔ v0.7.0)#4292
Tanguille merged 2 commits into
mainfrom
renovate/ghcr.io-kdwils-envoy-proxy-bouncer-0.x

Conversation

@renovate

@renovate renovate Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
ghcr.io/kdwils/envoy-proxy-bouncer minor v0.6.3v0.7.0

Release Notes

kdwils/envoy-proxy-crowdsec-bouncer (ghcr.io/kdwils/envoy-proxy-bouncer)

v0.7.0

Compare Source

Bugfixes

  • Fixed an issue where the bouncer continued processing webhook events even when no configurations/subscriptions existed, which caused severe resource exhaustion under load (#​217)

Changes

  • Final stage in dockerfile now uses gcr.io/distroless/static-debian12:nonroot, and a new default user 65532. The helm charts are updated to reflect this change. The previous default user was 1000.
  • Info level logging was changed to be less verbose

Changelog

Bug Fixes
Other Changes

Full Changelog: kdwils/envoy-proxy-crowdsec-bouncer@v0.7.0-rc-1...v0.7.0


Configuration

📅 Schedule: (in timezone Europe/Brussels)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@coderabbitai

coderabbitai Bot commented Aug 2, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@Tanguille, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 15 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: c7fa3157-ae3d-4c8f-b4f9-569bae6759b2

📥 Commits

Reviewing files that changed from the base of the PR and between 0f1bbde and f30334b.

📒 Files selected for processing (5)
  • kubernetes/apps/network/envoy-gateway/app/envoy.yaml
  • kubernetes/apps/security/crowdsec/bouncers/envoy/helmrelease.yaml
  • kubernetes/apps/security/crowdsec/bouncers/envoy/kustomization.yaml
  • kubernetes/apps/security/crowdsec/bouncers/envoy/ocirepository.yaml
  • kubernetes/apps/security/crowdsec/bouncers/envoy/referencegrant.yaml
📝 Walkthrough

Walkthrough

The Envoy bouncer HelmRelease updates its container image from v0.6.3 to v0.7.0 and updates the pinned SHA256 digest.

Changes

Envoy bouncer update

Layer / File(s) Summary
Update pinned Envoy image
kubernetes/apps/security/crowdsec/bouncers/envoy/helmrelease.yaml
The HelmRelease now references Envoy bouncer image v0.7.0 with its updated SHA256 digest.

Estimated code review effort: 1 (Trivial) | ~2 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the Envoy proxy bouncer image and the update from v0.6.3 to v0.7.0.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch renovate/ghcr.io-kdwils-envoy-proxy-bouncer-0.x

Comment @coderabbitai help to get the list of available commands.

@tanguille-cluster

tanguille-cluster Bot commented Aug 2, 2026

Copy link
Copy Markdown
@@ metadata.labels.app.kubernetes.io/name @@
# v1/ServiceAccount/security/crowdsec-envoy-bouncer
! ± value change
- crowdsec-envoy-bouncer
+ envoy-proxy-bouncer

@@ metadata.labels @@
# v1/Service/security/crowdsec-envoy-bouncer
! - one map entry removed:
- app.kubernetes.io/service: crowdsec-envoy-bouncer

@@ metadata.labels.app.kubernetes.io/name @@
# v1/Service/security/crowdsec-envoy-bouncer
! ± value change
- crowdsec-envoy-bouncer
+ envoy-proxy-bouncer

@@ spec.ports @@
# v1/Service/security/crowdsec-envoy-bouncer
! - one list entry removed:
- - name: http
-   port: 8080
-   protocol: TCP
-   targetPort: 8080
! + one list entry added:
+ - name: grpc
+   port: 8080
+   protocol: TCP
+   targetPort: grpc

@@ spec.ports.metrics.targetPort @@
# v1/Service/security/crowdsec-envoy-bouncer
! ± type change from int to string
- 9090
+ metrics

@@ spec.selector @@
# v1/Service/security/crowdsec-envoy-bouncer
! - one map entry removed:
- app.kubernetes.io/controller: crowdsec-envoy-bouncer

@@ spec.selector.app.kubernetes.io/name @@
# v1/Service/security/crowdsec-envoy-bouncer
! ± value change
- crowdsec-envoy-bouncer
+ envoy-proxy-bouncer

@@ metadata.labels @@
# apps/v1/Deployment/security/crowdsec-envoy-bouncer
! - one map entry removed:
- app.kubernetes.io/controller: crowdsec-envoy-bouncer

@@ metadata.labels.app.kubernetes.io/name @@
# apps/v1/Deployment/security/crowdsec-envoy-bouncer
! ± value change
- crowdsec-envoy-bouncer
+ envoy-proxy-bouncer

@@ spec @@
# apps/v1/Deployment/security/crowdsec-envoy-bouncer
! - two map entries removed:
- revisionHistoryLimit: 3
- strategy:
-   type: RollingUpdate

@@ spec.selector.matchLabels @@
# apps/v1/Deployment/security/crowdsec-envoy-bouncer
! - one map entry removed:
- app.kubernetes.io/controller: crowdsec-envoy-bouncer

@@ spec.selector.matchLabels.app.kubernetes.io/name @@
# apps/v1/Deployment/security/crowdsec-envoy-bouncer
! ± value change
- crowdsec-envoy-bouncer
+ envoy-proxy-bouncer

@@ spec.template.metadata.labels @@
# apps/v1/Deployment/security/crowdsec-envoy-bouncer
! - one map entry removed:
- app.kubernetes.io/controller: crowdsec-envoy-bouncer
! + one map entry added:
+ app.kubernetes.io/managed-by: Helm

@@ spec.template.metadata.labels.app.kubernetes.io/name @@
# apps/v1/Deployment/security/crowdsec-envoy-bouncer
! ± value change
- crowdsec-envoy-bouncer
+ envoy-proxy-bouncer

@@ spec.template.spec @@
# apps/v1/Deployment/security/crowdsec-envoy-bouncer
! - six map entries removed:
- automountServiceAccountToken: false
- dnsPolicy: ClusterFirst
- enableServiceLinks: false
- hostIPC: false
- hostNetwork: false
- hostPID: false

@@ spec.template.spec.containers @@
# apps/v1/Deployment/security/crowdsec-envoy-bouncer
! - one list entry removed:
- - name: app
-   image: "ghcr.io/kdwils/envoy-proxy-bouncer:v0.6.3@sha256:85c9f802eca3ad32aa4a8cb5b63e5c5a5642b07cff623beca0bab634c2128020"
-   resources:
-     limits:
-       cpu: 500m
-       memory: 128Mi
-     requests:
-       cpu: 50m
-       memory: 64Mi
-   volumeMounts:
-   - name: ban
-     mountPath: /ban.html
-     subPath: ban.html
-   - name: tls
-     mountPath: /app/tls
-     readOnly: true
-   securityContext:
-     allowPrivilegeEscalation: false
-     capabilities:
-       drop:
-       - ALL
-     readOnlyRootFilesystem: true
-   env:
-   - name: ENVOY_BOUNCER_BOUNCER_BANSTATUSCODE
-     value: "418"
-   - name: ENVOY_BOUNCER_BOUNCER_ENABLED
-     value: "true"
-   - name: ENVOY_BOUNCER_BOUNCER_LAPIURL
-     value: "https://crowdsec-service.security.svc.cluster.local:8080"
-   - name: ENVOY_BOUNCER_BOUNCER_METRICS
-     value: "true"
-   - name: ENVOY_BOUNCER_BOUNCER_TLS_CAPATH
-     value: /app/tls/ca.crt
-   - name: ENVOY_BOUNCER_BOUNCER_TLS_CERTPATH
-     value: /app/tls/tls.crt
-   - name: ENVOY_BOUNCER_BOUNCER_TLS_ENABLED
-     value: "true"
-   - name: ENVOY_BOUNCER_BOUNCER_TLS_INSECURESKIPVERIFY
-     value: "false"
-   - name: ENVOY_BOUNCER_BOUNCER_TLS_KEYPATH
-     value: /app/tls/tls.key
-   - name: ENVOY_BOUNCER_PROMETHEUS_ENABLED
-     value: "true"
-   - name: ENVOY_BOUNCER_TEMPLATES_DENIEDTEMPLATEPATH
-     value: /ban.html
-   - name: ENVOY_BOUNCER_TRUSTEDPROXIES
-     value: "192.168.0.0/24,10.42.0.0/16"
-   - name: ENVOY_BOUNCER_WAF_APIKEY
-     valueFrom:
-       secretKeyRef:
-         name: crowdsec-envoy-bouncer-secret
-         key: ENVOY_BOUNCER_WAF_APIKEY
-   - name: ENVOY_BOUNCER_WAF_APPSECURL
-     value: "http://crowdsec-appsec-service.security.svc.cluster.local:7422"
-   - name: ENVOY_BOUNCER_WAF_ENABLED
-     value: "true"
! + one list entry added:
+ - name: envoy-proxy-bouncer
+   image: "ghcr.io/kdwils/envoy-proxy-bouncer:v0.7.0@sha256:994783a3b93a01eae23a3ba28ef272471725510aeec25e406414551d95643fae"
+   imagePullPolicy: IfNotPresent
+   args:
+   - serve
+   - "--config"
+   - /app/config/config.yaml
+   livenessProbe:
+     failureThreshold: 3
+     grpc:
+       port: 8080
+       service: liveness
+     initialDelaySeconds: 5
+     periodSeconds: 5
+     timeoutSeconds: 5
+   ports:
+   - name: grpc
+     containerPort: 8080
+     protocol: TCP
+   - name: metrics
+     containerPort: 9090
+     protocol: TCP
+   readinessProbe:
+     failureThreshold: 3
+     grpc:
+       port: 8080
+       service: readiness
+     initialDelaySeconds: 5
+     periodSeconds: 5
+     timeoutSeconds: 5
+   resources:
+     limits:
+       cpu: 500m
+       memory: 128Mi
+     requests:
+       cpu: 50m
+       memory: 64Mi
+   volumeMounts:
+   - name: bouncer-config
+     mountPath: /app/config
+     readOnly: true
+   - name: bouncer-tls
+     mountPath: /app/tls
+     readOnly: true
+   - name: ban-html
+     mountPath: /ban.html
+     readOnly: true
+     subPath: ban.html
+   securityContext:
+     allowPrivilegeEscalation: false
+     capabilities:
+       drop:
+       - all
+     readOnlyRootFilesystem: true
+     runAsNonRoot: true
+     runAsUser: 65532
+   env:
+   - name: ENVOY_BOUNCER_WAF_APIKEY
+     valueFrom:
+       secretKeyRef:
+         name: crowdsec-envoy-bouncer-secret
+         key: ENVOY_BOUNCER_WAF_APIKEY

@@ spec.template.spec.securityContext @@
# apps/v1/Deployment/security/crowdsec-envoy-bouncer
! - three map entries removed:
- runAsGroup: 1000
- runAsNonRoot: true
- runAsUser: 1000

@@ spec.template.spec.volumes @@
# apps/v1/Deployment/security/crowdsec-envoy-bouncer
! - two list entries removed:
- - name: ban
-   configMap:
-     name: crowdsec-envoy-bouncer-configmap
- - name: tls
-   secret:
-     secretName: crowdsec-bouncer-tls
! + three list entries added:
+ - name: bouncer-config
+   configMap:
+     name: crowdsec-envoy-bouncer-config
+ - name: bouncer-tls
+   secret:
+     secretName: crowdsec-bouncer-tls
+ - name: ban-html
+   configMap:
+     name: crowdsec-envoy-bouncer-configmap

@@ metadata.labels.app.kubernetes.io/name @@
# monitoring.coreos.com/v1/ServiceMonitor/security/crowdsec-envoy-bouncer
! ± value change
- crowdsec-envoy-bouncer
+ envoy-proxy-bouncer

@@ spec @@
# monitoring.coreos.com/v1/ServiceMonitor/security/crowdsec-envoy-bouncer
! - two map entries removed:
- jobLabel: app.kubernetes.io/name
- namespaceSelector:
-   matchNames:
-   - security

@@ spec.endpoints.0 @@
# monitoring.coreos.com/v1/ServiceMonitor/security/crowdsec-envoy-bouncer
! + one map entry added:
+ scrapeTimeout: 10s

@@ spec.selector.matchLabels @@
# monitoring.coreos.com/v1/ServiceMonitor/security/crowdsec-envoy-bouncer
! - one map entry removed:
- app.kubernetes.io/service: crowdsec-envoy-bouncer

@@ spec.selector.matchLabels.app.kubernetes.io/name @@
# monitoring.coreos.com/v1/ServiceMonitor/security/crowdsec-envoy-bouncer
! ± value change
- crowdsec-envoy-bouncer
+ envoy-proxy-bouncer

@@ (root level) @@
# v1/ConfigMap/security/crowdsec-envoy-bouncer-config
! + one document added:
+ apiVersion: v1
+ kind: ConfigMap
+ metadata:
+   name: crowdsec-envoy-bouncer-config
+   namespace: security
+   labels:
+     app.kubernetes.io/instance: crowdsec-envoy-bouncer
+     app.kubernetes.io/managed-by: Helm
+     app.kubernetes.io/name: envoy-proxy-bouncer
+     helm.toolkit.fluxcd.io/name: crowdsec-envoy-bouncer
+     helm.toolkit.fluxcd.io/namespace: security
+ data:
+   config.yaml: |
+     bouncer:
+       banStatusCode: 418
+       enabled: true
+       lapiURL: https://crowdsec-service.security.svc.cluster.local:8080
+       metrics: true
+       metricsInterval: 10m
+       tickerInterval: 10s
+       tls:
+         caPath: /app/tls/ca.crt
+         certPath: /app/tls/tls.crt
+         enabled: true
+         insecureSkipVerify: false
+         keyPath: /app/tls/tls.key
+       tlsSecretRef:
+         caKey: ca.crt
+         certKey: tls.crt
+         keyKey: tls.key
+         name: crowdsec-bouncer-tls
+     captcha:
+       challengeDuration: 5m
+       disableChallengeReplayProtection: false
+       enabled: false
+       secureCookie: true
+       sessionDuration: 15m
+       timeout: 10s
+     exemptIPs: []
+     prometheus:
+       enabled: true
+       port: 9090
+       serviceMonitor:
+         enabled: true
+         interval: 1m
+         scrapeTimeout: 10s
+     server:
+       grpcPort: 8080
+       httpPort: 8081
+       logLevel: info
+     templates:
+       deniedTemplatePath: /ban.html
+       showDeniedPage: true
+     trustedProxies:
+     - 192.168.0.0/24
+     - 10.42.0.0/16
+     waf:
+       apiKeySecretRef:
+         key: ENVOY_BOUNCER_WAF_APIKEY
+         name: crowdsec-envoy-bouncer-secret
+       appSecURL: http://crowdsec-appsec-service.security.svc.cluster.local:7422
+       enabled: true
+     webhook:
+       bufferSize: 100
+       subscriptions: []
+       timeout: 5s

@@ (root level) @@
# gateway.networking.k8s.io/v1beta1/ReferenceGrant/security/crowdsec-envoy-bouncer
! + one document added:
+ apiVersion: gateway.networking.k8s.io/v1beta1
+ kind: ReferenceGrant
+ metadata:
+   name: crowdsec-envoy-bouncer
+   namespace: security
+   labels:
+     helm.toolkit.fluxcd.io/name: crowdsec-envoy-bouncer
+     helm.toolkit.fluxcd.io/namespace: security
+ spec:
+   from:
+   - kind: SecurityPolicy
+     group: gateway.envoyproxy.io
+     namespace: network
+   to:
+   - name: crowdsec-envoy-bouncer
+     group: 
+     kind: Service

@tanguille-cluster

tanguille-cluster Bot commented Aug 2, 2026

Copy link
Copy Markdown
@@ spec @@
# helm.toolkit.fluxcd.io/v2/HelmRelease/security/crowdsec-envoy-bouncer
! + one map entry added:
+ postRenderers:
+ - kustomize:
+     patches:
+     - patch: |
+         - op: add
+           path: /metadata/annotations
+           value:
+             reloader.stakater.com/auto: "true"
+       target:
+         name: crowdsec-envoy-bouncer
+         kind: Deployment

@@ spec.chartRef.name @@
# helm.toolkit.fluxcd.io/v2/HelmRelease/security/crowdsec-envoy-bouncer
! ± value change
- app-template
+ crowdsec-envoy-bouncer

@@ spec.values @@
# helm.toolkit.fluxcd.io/v2/HelmRelease/security/crowdsec-envoy-bouncer
! - five map entries removed:
- controllers:
-   crowdsec-envoy-bouncer:
-     annotations:
-       reloader.stakater.com/auto: "true"
-     containers:
-       app:
-         resources:
-           limits:
-             cpu: 500m
-             memory: 128Mi
-           requests:
-             cpu: 50m
-             memory: 64Mi
-         image:
-           repository: ghcr.io/kdwils/envoy-proxy-bouncer
-           tag: "v0.6.3@sha256:85c9f802eca3ad32aa4a8cb5b63e5c5a5642b07cff623beca0bab634c2128020"
-         securityContext:
-           allowPrivilegeEscalation: false
-           capabilities:
-             drop:
-             - ALL
-           readOnlyRootFilesystem: true
-         env:
-           ENVOY_BOUNCER_BOUNCER_BANSTATUSCODE: 418
-           ENVOY_BOUNCER_BOUNCER_ENABLED: true
-           ENVOY_BOUNCER_BOUNCER_LAPIURL: "https://crowdsec-service.security.svc.cluster.local:8080"
-           ENVOY_BOUNCER_BOUNCER_METRICS: true
-           ENVOY_BOUNCER_BOUNCER_TLS_CAPATH: /app/tls/ca.crt
-           ENVOY_BOUNCER_BOUNCER_TLS_CERTPATH: /app/tls/tls.crt
-           ENVOY_BOUNCER_BOUNCER_TLS_ENABLED: true
-           ENVOY_BOUNCER_BOUNCER_TLS_INSECURESKIPVERIFY: false
-           ENVOY_BOUNCER_BOUNCER_TLS_KEYPATH: /app/tls/tls.key
-           ENVOY_BOUNCER_PROMETHEUS_ENABLED: true
-           ENVOY_BOUNCER_TEMPLATES_DENIEDTEMPLATEPATH: /ban.html
-           ENVOY_BOUNCER_TRUSTEDPROXIES: "192.168.0.0/24,10.42.0.0/16"
-           ENVOY_BOUNCER_WAF_APIKEY:
-             valueFrom:
-               secretKeyRef:
-                 name: crowdsec-envoy-bouncer-secret
-                 key: ENVOY_BOUNCER_WAF_APIKEY
-           ENVOY_BOUNCER_WAF_APPSECURL: "http://crowdsec-appsec-service.security.svc.cluster.local:7422"
-           ENVOY_BOUNCER_WAF_ENABLED: true
-     strategy: RollingUpdate
- defaultPodOptions:
-   securityContext:
-     runAsGroup: 1000
-     runAsNonRoot: true
-     runAsUser: 1000
- persistence:
-   ban:
-     name: "{{ .Release.Name }}-configmap"
-     type: configMap
-     globalMounts:
-     - path: /ban.html
-       subPath: ban.html
-   tls:
-     name: crowdsec-bouncer-tls
-     type: secret
-     globalMounts:
-     - path: /app/tls
-       readOnly: true
- service:
-   app:
-     ports:
-       http:
-         port: 8080
-       metrics:
-         port: 9090
- serviceMonitor:
-   app:
-     endpoints:
-     - interval: 1m
-       path: /metrics
-       port: metrics
-     serviceName: crowdsec-envoy-bouncer
! + seven map entries added:
+ resources:
+   limits:
+     cpu: 500m
+     memory: 128Mi
+   requests:
+     cpu: 50m
+     memory: 64Mi
+ fullnameOverride: crowdsec-envoy-bouncer
+ image:
+   tag: "v0.7.0@sha256:994783a3b93a01eae23a3ba28ef272471725510aeec25e406414551d95643fae"
+ referenceGrant:
+   create: true
+   fromNamespaces:
+   - network
+ volumeMounts:
+ - name: ban-html
+   mountPath: /ban.html
+   readOnly: true
+   subPath: ban.html
+ config:
+   templates:
+     deniedTemplatePath: /ban.html
+   trustedProxies:
+   - 192.168.0.0/24
+   - 10.42.0.0/16
+   bouncer:
+     banStatusCode: 418
+     lapiURL: "https://crowdsec-service.security.svc.cluster.local:8080"
+     metrics: true
+     tls:
+       enabled: true
+     tlsSecretRef:
+       name: crowdsec-bouncer-tls
+   prometheus:
+     enabled: true
+     serviceMonitor:
+       enabled: true
+       interval: 1m
+   waf:
+     apiKeySecretRef:
+       name: crowdsec-envoy-bouncer-secret
+       key: ENVOY_BOUNCER_WAF_APIKEY
+     appSecURL: "http://crowdsec-appsec-service.security.svc.cluster.local:7422"
+     enabled: true
+ volumes:
+ - name: ban-html
+   configMap:
+     name: crowdsec-envoy-bouncer-configmap

@@ (root level) @@
# gateway.networking.k8s.io/v1beta1/ReferenceGrant/security/crowdsec-envoy-bouncer
! - one document removed:
- apiVersion: gateway.networking.k8s.io/v1beta1
- kind: ReferenceGrant
- metadata:
-   name: crowdsec-envoy-bouncer
-   namespace: security
-   labels:
-     kustomize.toolkit.fluxcd.io/name: crowdsec-bouncers
-     kustomize.toolkit.fluxcd.io/namespace: security
- spec:
-   from:
-   - kind: SecurityPolicy
-     group: gateway.envoyproxy.io
-     namespace: network
-   to:
-   - name: crowdsec-envoy-bouncer
-     group: 
-     kind: Service

@@ (root level) @@
# source.toolkit.fluxcd.io/v1/OCIRepository/security/crowdsec-envoy-bouncer
! + one document added:
+ apiVersion: source.toolkit.fluxcd.io/v1
+ kind: OCIRepository
+ metadata:
+   name: crowdsec-envoy-bouncer
+   namespace: security
+   labels:
+     kustomize.toolkit.fluxcd.io/name: crowdsec-bouncers
+     kustomize.toolkit.fluxcd.io/namespace: security
+ spec:
+   url: "oci://ghcr.io/kdwils/charts/envoy-proxy-bouncer"
+   interval: 1h
+   layerSelector:
+     mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
+     operation: copy
+   ref:
+     tag: "0.7.0"

@deepsource-io

deepsource-io Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

DeepSource Code Review

We reviewed changes in 1998262...f30334b on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
JavaScript Aug 2, 2026 1:40p.m. Review ↗
Shell Aug 2, 2026 1:40p.m. Review ↗

Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown

AI Automated Review

Analysis engine: qwen-3.6-fast@http://litellm.ai.svc.cluster.local/v1 (openai)

Recommendation

Approve. This PR upgrades the crowdsec-envoy-bouncer image from v0.6.3 to v0.7.0 and simultaneously refactors the deployment from a generic app-template HelmRelease to the upstream dedicated Helm chart (ghcr.io/kdwils/charts/envoy-proxy-bouncer). The configuration values are correctly translated, resource limits remain unchanged, and the new OCIRepository is properly defined.

Release Notes

kdwils/envoy-proxy-crowdsec-bouncer v0.7.0

  • Bugfix: Fixed an issue where the bouncer continued processing webhook events even when no configurations/subscriptions existed, which caused severe resource exhaustion under load.
  • Changes:
    • Dockerfile final stage now uses gcr.io/distroless/static-debian12:nonroot with a new default user 65532 (previously 1000). Helm charts have been updated to reflect this change.
    • Info level logging has been reduced in verbosity.

Required Checks

  • Validate manifest against target cluster version: The manifests use standard Kubernetes resources (Deployment, Service, ConfigMap) and Flux CD components (HelmRelease, OCIRepository) compatible with the current cluster setup. The API versions (helm.toolkit.fluxcd.io/v2, source.toolkit.fluxcd.io/v1) are consistent with the repository's existing Flux installation.
  • Check for resource quota / limit changes: Resource requests and limits were preserved exactly as they were in the previous app-template configuration:
    • Requests: cpu: 50m, memory: 64Mi
    • Limits: cpu: 500m, memory: 128Mi
      No changes to quotas or limits were introduced.

Standards Compliance

  • Conventional Commits: The PR title follows the convention (feat(container): ...).
  • DRY/YAML Anchors: The fullnameOverride uses a YAML anchor (&app) and alias (*app) consistently, matching repository conventions seen in other apps.
  • Security Context: The new chart handles the UID change internally (from 1000 to 65532). The previous explicit runAsUser: 1000 in defaultPodOptions is removed, relying on the chart's default which aligns with the new image's non-root user. This is safer than forcing the old UID.
  • Reference Grants: The standalone referencegrant.yaml file was removed because the new upstream chart supports creating it via the referenceGrant value in helmrelease.yaml. This reduces management overhead while maintaining functionality.

Unknowns or Needs Verification

  • UID Impact on Persistence: The image UID changed from 1000 to 65532. If any PersistentVolumeClaims (PVCs) were used by this application previously, ownership might need to be adjusted. However, the diff shows only configMap and secret volumes (ephemeral/config), so no PVC ownership issues are expected. The ban.html is mounted from a ConfigMap, which is read-only.
  • Envoy Gateway Integration: The envoy.yaml in the network namespace references the service name crowdsec-envoy-bouncer. The fullnameOverride ensures this name remains stable, preserving the integration. Verified in kubernetes/apps/network/envoy-gateway/app/envoy.yaml.

@renovate
renovate Bot force-pushed the renovate/ghcr.io-kdwils-envoy-proxy-bouncer-0.x branch from 6adb317 to 0f1bbde Compare August 2, 2026 08:36
Replace the app-template env-var wiring with kdwils' official
envoy-proxy-bouncer OCI chart (v0.7.0), which also ships the
distroless/non-root (UID 65532) image the bouncer now runs as by
default. Drops the hand-rolled ReferenceGrant in favor of the
chart's native referenceGrant field.
@renovate

renovate Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@Tanguille
Tanguille merged commit 4a2254e into main Aug 2, 2026
15 checks passed
@Tanguille
Tanguille deleted the renovate/ghcr.io-kdwils-envoy-proxy-bouncer-0.x branch August 2, 2026 14:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant