Compare commits

..

60 commits

Author SHA1 Message Date
Noix
eff7baf3fe Merge branch 'develop' into 'master'
Added gen-game-web-instances/auguste-lambert to gitlab agents

See merge request ldc-web/cluster-k8s!133
2026-09-15 07:49:37 +00:00
Noix
c8b18faba8 Added gen-game-web-instances/auguste-lambert to gitlab agents 2026-09-15 07:49:09 +00:00
Jérémy
89a315f217 Merge branch 'develop' into 'master'
Revert "feat: Add cartesian-lab.com IPs - BEA pentest"

See merge request ldc-web/cluster-k8s!132
2026-09-10 10:40:25 +02:00
Jérémy
e1da57be4c Merge branch 'remove-presta-cartesian-ip-from-whitelist' into 'develop'
Revert "feat: Add cartesian-lab.com IPs - BEA pentest"

See merge request ldc-web/cluster-k8s!131
2026-09-10 10:38:56 +02:00
Jeremy Munsch
aa0b17f15b
Revert "feat: Add cartesian-lab.com IPs - BEA pentest"
This reverts commit 87b04fc03c.
2026-09-10 10:25:49 +02:00
Vincent BRIDIER
9cc9b34c6f Merge branch 'develop' into 'master'
feat: Add cartesian-lab.com IPs - BEA pentest

See merge request ldc-web/cluster-k8s!130
2026-09-02 15:33:27 +02:00
Vincent BRIDIER
87b04fc03c feat: Add cartesian-lab.com IPs - BEA pentest 2026-09-02 15:32:38 +02:00
Louis Rossignol
39780fa0fa Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!129
2026-08-20 18:26:23 +02:00
Louis Rossignol
bb373952bb Merge branch 'chore/lor-update-gitlab' into 'develop'
Update gitlab runner and agent

See merge request ldc-web/cluster-k8s!128
2026-08-20 18:19:26 +02:00
LOR
e15d74e233 Update gitlab runner and agent 2026-08-20 18:15:23 +02:00
Vincent BRIDIER
4ce0256307 Merge branch 'develop' into 'master'
Whitelist BugSmash IPs on admin-ldc-whitelist middleware

See merge request ldc-web/cluster-k8s!127
2026-08-20 10:17:23 +02:00
Vincent BRIDIER
f3346b2be7 Whitelist BugSmash IPs on admin-ldc-whitelist middleware 2026-08-20 10:16:46 +02:00
Louis Rossignol
7852a7dbf5 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!126
2026-08-18 18:36:46 +02:00
Louis Rossignol
cd4a14403f Merge branch 'chore/lor-update-gitlab' into 'develop'
Update version gitlab runner and agent

See merge request ldc-web/cluster-k8s!125
2026-08-18 18:22:41 +02:00
LOR
4f303ce92e Update version gitlab runner and agent 2026-08-18 18:12:31 +02:00
Noix
eeea16bf53 Merge branch 'develop' into 'master'
Added le-gaulois-eveillez-vos-papilles to gitlab agents

See merge request ldc-web/cluster-k8s!124
2026-08-05 13:12:10 +00:00
Noix
ce910ea49d Added le-gaulois-eveillez-vos-papilles to gitlab agents 2026-08-05 13:11:42 +00:00
Louis Rossignol
53296907b0 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!123
2026-08-04 18:16:28 +02:00
Louis Rossignol
d15ec10689 Merge branch 'chore/lor-update-gitlab' into 'develop'
Update gitlab agent and runner

See merge request ldc-web/cluster-k8s!122
2026-08-04 18:11:54 +02:00
LOR
59dc7b3f3e Update gitlab agent and runner 2026-08-04 18:09:37 +02:00
Vincent BRIDIER
057fb8d192 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!121
2026-07-30 11:46:34 +02:00
Vincent BRIDIER
2fa0fba3af Merge branch 'vincent.bridier-master-patch-12456' into 'develop'
Vincent.bridier master patch 12456

See merge request ldc-web/cluster-k8s!120
2026-07-30 11:45:33 +02:00
Vincent BRIDIER
edba2e40bb feat: Add BEA to gitlab agent 2026-07-30 11:44:32 +02:00
Vincent BRIDIER
34d7392b89 Merge branch 'develop' into 'master'
fix: Crowdsec - Add separate db vars

See merge request ldc-web/cluster-k8s!119
2026-07-27 18:54:28 +02:00
Vincent BRIDIER
9d07a14801 fix: Crowdsec - Add separate db vars 2026-07-27 18:22:57 +02:00
Vincent BRIDIER
ced2987809 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!118
2026-07-27 15:08:06 +02:00
Vincent BRIDIER
62f7615039 fix: Remove uselesse secret for crowdsec 2026-07-27 14:44:11 +02:00
Vincent BRIDIER
62cbd2ef1e fix: Crowdsec lookup chart workaround 2026-07-27 14:36:19 +02:00
Vincent BRIDIER
c3b21c920d fix: Crowdsec lookup chart workaround 2026-07-27 13:09:55 +02:00
Vincent BRIDIER
1e9b068752 fix: Crowdsec lookup chart workaround 2026-07-27 11:25:31 +02:00
Vincent BRIDIER
3db0442fef fix: Fix flux config for Crowdsec 2026-07-27 10:16:43 +02:00
Vincent BRIDIER
c1ab98f496 fix: Fix traefik crowdsec middleware 2026-07-27 10:04:44 +02:00
Vincent BRIDIER
25da33d21a remove crowdsec 2026-07-24 16:24:45 +02:00
Vincent BRIDIER
2bb7681e7f fix: Update crowdsec helm release 2026-07-24 16:21:32 +02:00
Vincent BRIDIER
06ac38eb37 fix: Update crowdsec helm release 2026-07-24 15:37:18 +02:00
Vincent BRIDIER
293f76533a fix: Crowsecd pv config 2026-07-24 14:48:28 +02:00
Vincent BRIDIER
2155d7427a fix: Crowsecd pv config 2026-07-24 14:34:33 +02:00
Vincent BRIDIER
756ae32b69 fix: Crowsec repo 2026-07-24 10:54:03 +02:00
Vincent BRIDIER
1e12270193 fix: Add missing kustomization link for crowdsec 2026-07-24 10:37:08 +02:00
Vincent BRIDIER
ee306a824b Merge branch 'add-crowdsec' into 'develop'
feat: Add Crowdsec

See merge request ldc-web/cluster-k8s!117
2026-07-24 10:29:33 +02:00
Vincent BRIDIER
e8271b5f14 feat: Add Crowdsec 2026-07-24 10:24:24 +02:00
Louis Rossignol
a5605eb316 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!116
2026-07-22 18:11:15 +02:00
Louis Rossignol
1f6610f27b Merge branch 'fix/lor-add-ip-blacklist' into 'develop'
Add multiple IP to blacklist

See merge request ldc-web/cluster-k8s!115
2026-07-22 18:02:52 +02:00
LOR
7073a20383 Add 20.220.225.223 to blacklist 2026-07-22 17:55:44 +02:00
LOR
0ff24fb82d Add multiple IP to blacklist 2026-07-22 17:52:32 +02:00
Noix
cd0540f33f Merge branch 'develop' into 'master'
feat: added qualimaine to gitlab agents

See merge request ldc-web/cluster-k8s!114
2026-07-17 12:39:50 +00:00
Noix
41cf295e54 feat: added qualimaine to gitlab agents 2026-07-17 12:39:28 +00:00
Vincent BRIDIER
03e69a4522 Merge branch 'develop' into 'master'
feat: add ker chant to gitlab agent

See merge request ldc-web/cluster-k8s!113
2026-07-10 12:39:32 +02:00
Vincent BRIDIER
7a9c997c3e feat: add ker chant to gitlab agent 2026-07-10 12:39:08 +02:00
Louis Rossignol
014172bece Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!112
2026-07-08 19:16:32 +02:00
Louis Rossignol
d838122f2d Merge branch 'features/lor-remove-lb-iolb' into 'develop'
Disable traefik iolb service, keep octavia only

See merge request ldc-web/cluster-k8s!111
2026-07-08 19:02:36 +02:00
LOR
bb6abdab00 migrate traefik native service from iolb to second octavia lb 2026-07-08 18:59:45 +02:00
LOR
03a4cdebc4 Disable traefik iolb service, keep octavia only 2026-07-08 17:53:19 +02:00
Louis Rossignol
0ebd62f297 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!110
2026-07-08 16:32:47 +02:00
Louis Rossignol
ce58e39527 Merge branch 'features/lor-remove-kust-mariadb' into 'develop'
Cleanup mariadb kustomization

See merge request ldc-web/cluster-k8s!109
2026-07-08 16:08:48 +02:00
LOR
6b79e9b97d Cleanup mariadb kustomization 2026-07-08 15:56:11 +02:00
Louis Rossignol
00562f5325 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!108
2026-07-08 15:40:16 +02:00
Louis Rossignol
68d20611ee Merge branch 'features/lor-remove-mariadb' into 'develop'
Prepare removal mariadb

See merge request ldc-web/cluster-k8s!107
2026-07-08 15:23:11 +02:00
LOR
8c7d268737 Prepare removal mariadb 2026-07-08 15:15:58 +02:00
Vincent BRIDIER
db7012d742 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!104
2026-07-06 17:55:10 +02:00
11 changed files with 275 additions and 8 deletions

View file

@ -2,6 +2,7 @@ ci_access:
projects:
- id: ldc-web/projets/agis
- id: ldc-web/projets/auguste-lambert
- id: ldc-web/projets/bien-etre-animal
- id: ldc-web/projets/boutique-cnc-sable
- id: ldc-web/projets/boutique-jeusselin
- id: ldc-web/projets/cailles-robin
@ -12,8 +13,10 @@ ci_access:
- id: ldc-web/projets/doux
- id: ldc-web/projets/espri-restauration
- id: ldc-web/projets/galina
- id: ldc-web/projets/gen-game-web-instances/auguste-lambert
- id: ldc-web/projets/gen-game-web-instances/janze
- id: ldc-web/projets/gen-game-web-instances/l-orleanais-jeu
- id: ldc-web/projets/gen-game-web-instances/le-gaulois-eveillez-vos-papilles
- id: ldc-web/projets/gen-game-web-instances/le-gaulois-tdf-2024
- id: ldc-web/projets/gen-game-web-instances/le-gaulois-chequier-40-2025
- id: ldc-web/projets/gen-game-web-instances/le-gaulois-op-brasserie-2025
@ -27,6 +30,7 @@ ci_access:
- id: ldc-web/projets/gen-game-web-prize-draw
- id: ldc-web/projets/id-halal
- id: ldc-web/projets/jeusselin
- id: ldc-web/projets/ker-chant
- id: ldc-web/projets/l-hours
- id: ldc-web/projets/la-boutique-du-canard
- id: ldc-web/projets/la-toque-angevine
@ -55,6 +59,7 @@ ci_access:
- id: ldc-web/projets/parc-auto
- id: ldc-web/projets/poule-et-toque
- id: ldc-web/projets/prims
- id: ldc-web/projets/qualimaine
- id: ldc-web/projets/qrcollector/qrcollector-back
- id: ldc-web/projets/regalette
- id: ldc-web/projets/reghalal

View file

@ -0,0 +1,32 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: crowdsec
namespace: flux-system
spec:
interval: 1m0s
path: ./infrastructure/crowdsec
prune: false
healthChecks:
- apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
name: crowdsec
namespace: common-services
- apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
name: crowdsec
namespace: common-services
- apiVersion: v1
kind: Pod
name: vault-0
namespace: common-services
dependsOn:
- name: namespaces
namespace: flux-system
- name: external-secrets-resources
namespace: flux-system
sourceRef:
kind: GitRepository
name: flux-system
timeout: 5m

View file

@ -14,3 +14,4 @@ resources:
- traefik.yaml
- quickchart.yaml
- netdata.yaml
- crowdsec.yaml

View file

@ -0,0 +1,92 @@
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: crowdsec
namespace: common-services
spec:
interval: 5m
chart:
spec:
chart: crowdsec
version: 0.24.0
sourceRef:
kind: HelmRepository
name: crowdsec
namespace: common-services
values:
container_runtime: containerd
image:
tag: v1.7.8
agent:
acquisition:
- namespace: common-services
podName: traefik-*
program: traefik
env:
- name: COLLECTIONS
value: "crowdsecurity/traefik"
secrets:
externalSecret:
name: crowdsec-lapi-secret
csLapiSecretKey: "CS_LAPI_SECRET"
registrationTokenKey: "REGISTRATION_TOKEN"
lapi:
replicas: 2
storeCAPICredentialsInSecret: true
storeLAPICscliCredentialsInSecret: true
persistentVolume:
data:
enabled: false
config:
enabled: false
envFrom:
- secretRef:
name: crowdsec-lapi-secret
config:
config.yaml.local: |
api:
client:
# the log processor will remove delete itself from LAPI when stopping.
unregister_on_exit: true
server:
auto_registration: # Activate if not using TLS for authentication
enabled: true
token: "${CROWDSEC_REGISTRATION_TOKEN}" # /!\ Do not modify this variable (Cluster K8S gitlab var)
allowed_ranges: # /!\ Make sure to adapt to the pod IP ranges used by your cluster
- "127.0.0.1/32"
- "192.168.0.0/16"
- "10.0.0.0/8"
- "172.16.0.0/12"
db_config:
type: mysql
user: ${CROWDSEC_DB_USER}
password: ${CROWDSEC_DB_PWD}
db_name: ${CROWDSEC_DB_NAME}
host: ${DB_HOST}
port: ${DB_PORT}
flush:
bouncers_autodelete:
api_key: 1h
agents_autodelete:
login_password: 6h
cert: 6h
appsec:
enabled: true
acquisitions:
- source: appsec
listen_addr: "0.0.0.0:7422"
path: /
appsec_configs:
- crowdsecurity/appsec-default
- crowdsecurity/crs
labels:
type: appsec
env:
- name: COLLECTIONS
value: "crowdsecurity/appsec-virtual-patching crowdsecurity/appsec-crs crowdsecurity/appsec-generic-rules"

View file

@ -0,0 +1,8 @@
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: crowdsec
namespace: common-services
spec:
interval: 1h0m0s
url: https://crowdsecurity.github.io/helm-charts

View file

@ -0,0 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- helm-repository.yaml
- helm-release.yaml

View file

@ -9,7 +9,7 @@ spec:
chart:
spec:
chart: gitlab-agent
version: 2.20.1
version: 2.29.0
sourceRef:
kind: HelmRepository
name: gitlab-agent
@ -17,7 +17,7 @@ spec:
values:
image:
tag: v18.5.2
tag: v19.2.0
config:
kasAddress: "wss://lab.s-web.fr/-/kubernetes-agent/"

View file

@ -9,7 +9,7 @@ spec:
chart:
spec:
chart: gitlab-runner
version: 0.82.0
version: 0.91.2
sourceRef:
kind: HelmRepository
name: gitlab-runner
@ -17,7 +17,7 @@ spec:
values:
image:
tag: alpine-v18.5.0
tag: alpine-v19.2.2
gitlabUrl: https://lab.s-web.fr

View file

@ -0,0 +1,38 @@
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: crowdsec-lapi-secret
namespace: common-services
spec:
refreshInterval: 15s
secretStoreRef:
name: vault-secret-store
kind: ClusterSecretStore
target:
name: crowdsec-lapi-secret
creationPolicy: Owner
data:
- secretKey: CS_LAPI_SECRET
remoteRef:
key: secret/data/crowdsec/lapi
property: CS_LAPI_SECRET
- secretKey: REGISTRATION_TOKEN
remoteRef:
key: secret/data/crowdsec/lapi
property: REGISTRATION_TOKEN
- secretKey: ENROLL_KEY
remoteRef:
key: secret/data/crowdsec/lapi
property: ENROLL_KEY
- secretKey: ENROLL_INSTANCE_NAME
remoteRef:
key: secret/data/crowdsec/lapi
property: ENROLL_INSTANCE_NAME
- secretKey: ENROLL_TAGS
remoteRef:
key: secret/data/crowdsec/lapi
property: ENROLL_TAGS
- secretKey: BOUNCER_KEY_traefik
remoteRef:
key: secret/data/crowdsec/lapi
property: BOUNCER_KEY_traefik

View file

@ -12,4 +12,5 @@ resources:
- staging.yaml
- production.yaml
- rabbitmq.yaml
- netdata.yaml
- netdata.yaml
- crowdsec.yaml

View file

@ -33,7 +33,9 @@ spec:
- "--entryPoints.websecure.forwardedHeaders.trustedIPs=${OVH_LOAD_BALANCER_EGRESS_IP}/32"
additionalArguments:
- "--log.level=DEBUG"
#- "--log.level=DEBUG"
- "--entrypoints.web.http.middlewares=common-services-crowdsec-bouncer@kubernetescrd"
- "--entrypoints.websecure.http.middlewares=common-services-crowdsec-bouncer@kubernetescrd"
deployment:
replicas: 2
@ -83,6 +85,18 @@ spec:
kubernetesIngress:
enabled: true
experimental:
plugins:
bouncer:
moduleName: github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin
version: v1.4.5
volumes:
- name: crowdsec-lapi-secret
mountPath: /etc/traefik/crowdsec
type: secret
secretName: crowdsec-lapi-secret
service:
enabled: true
type: LoadBalancer
@ -93,7 +107,6 @@ spec:
# Protection Flux : empêche la suppression accidentelle
kustomize.toolkit.fluxcd.io/prune: disabled
spec:
loadBalancerIP: "${TRAEFIK_LOAD_BALANCER_IP_OCTAVIA}"
externalTrafficPolicy: Local
ingressRoute:
@ -101,6 +114,28 @@ spec:
enabled: true
extraObjects:
- apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: crowdsec-bouncer
namespace: common-services
spec:
plugin:
bouncer:
forwardedHeadersTrustedIps: "${OVH_LOAD_BALANCER_EGRESS_IP}/32"
enabled: true
crowdsecMode: stream
crowdsecLapiScheme: http
crowdsecLapiHost: crowdsec-service.common-services.svc.cluster.local:8080
crowdsecLapiPath: /
crowdsecLapiKeyFile: /etc/traefik/crowdsec/BOUNCER_KEY_traefik
crowdsecAppsecEnabled: true
crowdsecAppsecHost: crowdsec-appsec-service.common-services.svc.cluster.local:7422
crowdsecAppsecPath: /
crowdsecAppsecFailureBlock: true
crowdsecAppsecUnreachableBlock: true
crowdsecAppsecBodyLimit: 10485760
- apiVersion: traefik.io/v1alpha1 # Redirect www URLs to their no-www equivalent
kind: Middleware
metadata:
@ -332,6 +367,38 @@ spec:
- 168.119.123.75 # UptimeRobot
- 78.46.215.1 # UptimeRobot
- 91.99.101.207 # UptimeRobot
- 46.224.188.186 # BugSmash
- 178.156.178.124 # BugSmash
- 5.161.29.18 # BugSmash
# AJOUT : Service Octavia en parallèle
- apiVersion: v1
kind: Service
metadata:
name: traefik-octavia
namespace: common-services
annotations:
loadbalancer.ovhcloud.com/class: "octavia"
loadbalancer.openstack.org/proxy-protocol: "v2"
loadbalancer.openstack.org/keep-floatingip: "true"
# Protection Flux : empêche la suppression accidentelle
kustomize.toolkit.fluxcd.io/prune: disabled
spec:
type: LoadBalancer
externalTrafficPolicy: Local
loadBalancerIP: "${TRAEFIK_LOAD_BALANCER_IP_OCTAVIA}"
selector:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-common-services
ports:
- name: web
port: 80
targetPort: 8000
protocol: TCP
- name: websecure
port: 443
targetPort: 8443
protocol: TCP
- apiVersion: v1
kind: Service
@ -368,7 +435,25 @@ spec:
routes:
- kind: Rule
match: >-
ClientIP(`45.88.138.45/32`)
ClientIP(`45.88.138.45/32`) ||
ClientIP(`8.34.210.32/32`) ||
ClientIP(`8.34.210.37/32`) ||
ClientIP(`8.34.210.42/32`) ||
ClientIP(`8.34.210.43/32`) ||
ClientIP(`8.34.210.45/32`) ||
ClientIP(`34.68.34.65/32`) ||
ClientIP(`34.68.34.66/32`) ||
ClientIP(`34.68.34.67/32`) ||
ClientIP(`34.68.34.69/32`) ||
ClientIP(`34.68.34.71/32`) ||
ClientIP(`34.68.34.72/32`) ||
ClientIP(`34.68.34.77/32`) ||
ClientIP(`34.68.34.79/32`) ||
ClientIP(`34.68.34.81/32`) ||
ClientIP(`34.68.34.84/32`) ||
ClientIP(`94.74.106.96/32`) ||
ClientIP(`20.220.225.223/32`) ||
ClientIP(`52.182.173.140/32`)
priority: 100000
middlewares:
- name: deny-ip-blocklist