From 1ec6df9ecedd76254dafe3b029861a61391a7ec7 Mon Sep 17 00:00:00 2001 From: Gabriel Radureau Date: Tue, 25 Nov 2025 16:28:03 +0100 Subject: [PATCH] try crowdsec --- .gitignore | 2 +- chart/values.yaml | 3 +- crowdsec/.helmignore | 23 +++++++++++++ crowdsec/Chart.yaml | 32 ++++++++++++++++++ crowdsec/templates/helm-chart-config.yaml | 3 ++ crowdsec/templates/helm-chart.yaml | 3 ++ crowdsec/values.yaml | 41 +++++++++++++++++++++++ 7 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 crowdsec/.helmignore create mode 100644 crowdsec/Chart.yaml create mode 100644 crowdsec/templates/helm-chart-config.yaml create mode 100644 crowdsec/templates/helm-chart.yaml create mode 100644 crowdsec/values.yaml diff --git a/.gitignore b/.gitignore index 8efcb9c..4179ae3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ .DS_Store Chart.lock -*/charts/*.tgz +*/charts/ .terraform .terraform.lock.hcl \ No newline at end of file diff --git a/chart/values.yaml b/chart/values.yaml index bf5ba2a..e8cc6cc 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -2,4 +2,5 @@ tools: - pgbouncer #- pgcat # trop contraignant: lister tous les databases/users et auth_type md5 uniquement # - prometheus - - hashicorp-vault \ No newline at end of file + - hashicorp-vault + - crowdsec \ No newline at end of file diff --git a/crowdsec/.helmignore b/crowdsec/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/crowdsec/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/crowdsec/Chart.yaml b/crowdsec/Chart.yaml new file mode 100644 index 0000000..1c6e728 --- /dev/null +++ b/crowdsec/Chart.yaml @@ -0,0 +1,32 @@ +apiVersion: v2 +name: crowdsec +description: A Helm chart for Kubernetes + +dependencies: +- name: tool + version: 0.1.0 + repository: https://gitea.arcodange.duckdns.org/api/packages/arcodange-org/helm +- name: crowdsec + version: 0.20.1 + repository: https://crowdsecurity.github.io/helm-charts + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +# It is recommended to use it with quotes. +# appVersion: "1.16.0" diff --git a/crowdsec/templates/helm-chart-config.yaml b/crowdsec/templates/helm-chart-config.yaml new file mode 100644 index 0000000..31cb271 --- /dev/null +++ b/crowdsec/templates/helm-chart-config.yaml @@ -0,0 +1,3 @@ +{{- if eq .Values.tool.kind "HelmChart" -}} +{{- include "tool.helm-chart-config.tpl" . -}} +{{- end -}} \ No newline at end of file diff --git a/crowdsec/templates/helm-chart.yaml b/crowdsec/templates/helm-chart.yaml new file mode 100644 index 0000000..c6b793d --- /dev/null +++ b/crowdsec/templates/helm-chart.yaml @@ -0,0 +1,3 @@ +{{- if eq .Values.tool.kind "HelmChart" -}} +{{- include "tool.helm-chart.tpl" . -}} +{{- end -}} \ No newline at end of file diff --git a/crowdsec/values.yaml b/crowdsec/values.yaml new file mode 100644 index 0000000..19c83b0 --- /dev/null +++ b/crowdsec/values.yaml @@ -0,0 +1,41 @@ +crowdsec: &crowdsec_config +# for raw logs format: json or cri (docker|containerd) + container_runtime: docker + agent: + # Specify each pod whose logs you want to process + acquisition: + # The namespace where the pod is located + - namespace: kube-system + # The pod name + podName: traefik-* + # as in crowdsec configuration, we need to specify the program name to find a matching parser + program: traefik + env: + - name: COLLECTIONS + value: "crowdsecurity/traefik crowdsecurity/http-cve" + lapi: + env: + # To enroll the Security Engine to the console + - name: ENROLL_KEY + value: "cmieq72i3000802jr1wx8kply" + - name: ENROLL_INSTANCE_NAME + value: "homelab" + - name: ENROLL_TAGS + value: "k3s rpi test" + appsec: + enabled: true + resources: + limits: + cpu: "500m" + memory: "300Mi" + requests: + cpu: "100m" + memory: "200Mi" + +tool: + # kind: 'SubChart' or 'HelmChart', if subchart then uncomment Chart.yaml dependency, else comment and use tool library with helm chart template + kind: 'SubChart' + repo: https://crowdsecurity.github.io/helm-charts + chart: crowdsec + version: 0.20.1 + values: *crowdsec_config \ No newline at end of file