Compare commits

...
Sign in to create a new pull request.

167 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
Vincent BRIDIER
6188b0179c Merge branch 'vincent.bridier-master-patch-2886' into 'develop'
Vincent.bridier master patch 2886

See merge request ldc-web/cluster-k8s!103
2026-07-06 17:54:47 +02:00
Vincent BRIDIER
266a687ce7 feat: Add PROD new nodes CIDR 2026-07-06 17:45:56 +02:00
Karl M'muller
f101f3b688 Merge branch 'develop' into 'master'
feat: Add new dev nodes ips

See merge request ldc-web/cluster-k8s!102
2026-07-03 15:02:58 +00:00
Vincent BRIDIER
43439ad169 feat: Add new dev nodes ips 2026-07-03 17:00:28 +02:00
Louis Rossignol
bb14b07563 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!101
2026-07-02 18:34:31 +02:00
Louis Rossignol
b354dcfeb0 Merge branch 'chore/lor-upgade-gitlab' into 'develop'
Update versuib gitlab runner and agent

See merge request ldc-web/cluster-k8s!100
2026-07-02 18:25:50 +02:00
LOR
1d3c587d89 Update versuib gitlab runner and agent 2026-07-02 18:24:05 +02:00
Louis Rossignol
4cf69ea32a Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!99
2026-06-25 12:16:45 +02:00
Louis Rossignol
12e10e1785 Merge branch 'fix/lor-ir-blocklist' into 'develop'
Fix helm release error add kind Rule.

See merge request ldc-web/cluster-k8s!98
2026-06-25 12:05:54 +02:00
LOR
19fbe1c970 Fix helm release error add kind Rule. 2026-06-25 11:59:33 +02:00
Louis Rossignol
1f0863cdd1 Merge branch 'security/lor-blacklist-traefik' into 'develop'
Create blocklist for attacker

See merge request ldc-web/cluster-k8s!97
2026-06-25 11:52:58 +02:00
LOR
b8bc3d6759 Create blocklist for attacker 2026-06-25 11:05:47 +02:00
Louis Rossignol
fb80f35cc0 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!96
2026-06-24 18:34:49 +02:00
Guillaume Marsay
6a6cac199f Merge branch 'chore/lor-update-gitlab-runner-agent' into 'develop'
Chore/lor update gitlab runner agent

See merge request ldc-web/cluster-k8s!95
2026-06-24 16:16:31 +00:00
LOR
02dc6fda57 Update gitlab runner and gitlab agent 2026-06-24 18:14:23 +02:00
Louis Rossignol
20b61bfd22 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!94
2026-06-19 13:33:36 +00:00
Louis Rossignol
5798f9ccc5 Merge branch 'fix/lor-vault-liveness' into 'develop'
Fix liveness probe to avoid restart loop

See merge request ldc-web/cluster-k8s!93
2026-06-19 12:39:16 +00:00
LOR
1bf5e747f7 Fix liveness probe to avoid restart loop 2026-06-19 13:50:25 +02:00
Louis Rossignol
8e38e53a20 Merge branch 'fix/lor-improve-auto-unseal' into 'develop'
Deploy auto-unseal 1.1.0

See merge request ldc-web/cluster-k8s!92
2026-06-19 09:41:47 +00:00
LOR
d5c1088237 Deploy auto-unseal 1.1.0 2026-06-19 11:33:05 +02:00
Louis Rossignol
c2a2423b8f Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!91
2026-06-16 13:58:30 +00:00
Louis Rossignol
334673a98e Merge branch 'features/lor-persist-public-ip' into 'develop'
Persist public IP on new Octavia LB

See merge request ldc-web/cluster-k8s!90
2026-06-16 11:54:31 +00:00
LOR
a5487a084a Persist public IP on new Octavia LB 2026-06-16 12:16:40 +02:00
Louis Rossignol
993a85fcf5 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!89
2026-06-16 09:31:37 +00:00
Louis Rossignol
46dc45f79d Merge branch 'features/lor-traefik-ha-replicas-pdb' into 'develop'
Add traefik HA : 2 replicas + PDB + pod anti-affinity

See merge request ldc-web/cluster-k8s!88
2026-06-16 09:07:09 +00:00
LOR
ded4b413f2 Add traefik HA : 2 replicas + PDB + pod anti-affinity 2026-06-16 10:55:52 +02:00
Louis Rossignol
eb9989b61e Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!87
2026-06-16 07:46:22 +00:00
Louis Rossignol
77ce4060fb Merge branch 'features/lor-add-kube-jeremy' into 'develop'
Add jeremy munsch access

See merge request ldc-web/cluster-k8s!86
2026-06-16 07:26:47 +00:00
LOR
6f50ec8375 Add jeremy munsch access 2026-06-05 12:17:54 +02:00
Louis Rossignol
c32d5a3c86 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!85
2026-06-04 13:43:48 +00:00
karl.muller
a812208889 Update config.yaml 2026-06-04 12:13:25 +00:00
Louis Rossignol
2961333e35 Merge branch 'features/lor-clean-old-iolb' into 'develop'
Remove old and useless configuration

See merge request ldc-web/cluster-k8s!84
2026-06-03 10:31:56 +00:00
LOR
05fc357af1 Remove old and useless configuration 2026-06-03 09:57:40 +02:00
Louis Rossignol
5fa96d5e32 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!83
2026-05-29 14:47:36 +00:00
Louis Rossignol
494b1ac659 Merge branch 'fix/lor-add-entrypoint-web-octavia' into 'develop'
Add lsitener port 80 for cert challenge http01

See merge request ldc-web/cluster-k8s!82
2026-05-29 14:37:09 +00:00
LOR
f7dddf0808 Add lsitener port 80 for cert challenge http01 2026-05-29 16:29:56 +02:00
Louis Rossignol
4a46b96c7d Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!81
2026-05-26 09:59:32 +00:00
Louis Rossignol
457a70e8c1 Merge branch 'features/lor-add-lb-egress' into 'develop'
Add ovh octavia egress ip

See merge request ldc-web/cluster-k8s!80
2026-05-26 09:39:48 +00:00
LOR
359dfe1741 Add ovh octavia egress ip 2026-05-26 11:38:11 +02:00
Louis Rossignol
6d59d5afb5 Merge branch 'features/lor-global-traefik' into 'develop'
Extend globalArguments to match new octavia LB IP

See merge request ldc-web/cluster-k8s!79
2026-05-26 07:32:26 +00:00
LOR
08539ade57 Extend globalArguments to match new octavia LB IP 2026-05-26 09:29:53 +02:00
Louis Rossignol
c61eb56998 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!78
2026-05-26 07:07:53 +00:00
Louis Rossignol
f545cefcca Merge branch 'features/lor-octavia-lb-svc-create' into 'develop'
Features/lor octavia lb svc create

See merge request ldc-web/cluster-k8s!77
2026-05-26 06:31:44 +00:00
LOR
8c9b993b65 Add mariadb port, clean post update 2026-05-22 12:19:01 +02:00
LOR
036de6f944 Enable new Octavia LB 2026-05-22 12:10:44 +02:00
Vincent BRIDIER
d8057d0642 Merge branch 'develop' into 'master'
Update config.yaml remove Data PFC

See merge request ldc-web/cluster-k8s!76
2026-05-06 08:28:36 +00:00
Vincent BRIDIER
b76d4706d4 Update config.yaml remove Data PFC 2026-05-06 08:28:08 +00:00
Noix
64c898840b Merge branch 'develop' into 'master'
Update config.yaml - Removed deleted projects

See merge request ldc-web/cluster-k8s!75
2026-04-21 10:25:40 +00:00
Noix
a48db98bce Update config.yaml - Removed deleted projects 2026-04-21 10:25:09 +00:00
Noix
938aa35285 Merge branch 'develop' into 'master'
Added GGW nature & respect to gitlab/agents

See merge request ldc-web/cluster-k8s!74
2026-04-17 11:13:07 +00:00
Noix
c685dbf2b1 Added GGW nature & respect to gitlab/agents 2026-04-17 11:09:24 +00:00
Vincent BRIDIER
024d0dcf1e Merge branch 'develop' into 'master'
Update config.yaml add UWIL UI

See merge request ldc-web/cluster-k8s!73
2026-04-17 09:15:02 +00:00
Vincent BRIDIER
8dc12e3a0d Update config.yaml add UWIL UI 2026-04-17 09:14:34 +00:00
Louis Rossignol
d83352a75c Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!72
2026-03-13 10:56:06 +00:00
noah.lancien
7e91a7faed Merge branch 'add-ip-to-admin-ldc-whitelist' into 'develop'
Added proxy cloud ldc ip

See merge request ldc-web/cluster-k8s!71
2026-03-03 10:29:14 +00:00
Noah Lancien
7f5ef71f7e Added proxy cloud ldc ip 2026-03-03 11:27:26 +01:00
noah.lancien
dd09f582e9 Merge branch 'develop' into 'master'
Removed corico from gitlab/agents

See merge request ldc-web/cluster-k8s!70
2026-02-05 09:05:41 +00:00
noah.lancien
52223e5c9a Removed corico from gitlab/agents 2026-02-05 09:05:03 +00:00
Louis Rossignol
c788b50bd5 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!69
2026-01-28 10:46:44 +00:00
Louis Rossignol
90030bceec Merge branch 'fix-rbac-grafana' into 'develop'
Grant access common-services Karl & Noah

See merge request ldc-web/cluster-k8s!68
2026-01-28 09:10:21 +00:00
LOR
405c0bc83f Grant access common-services Karl & Noah 2026-01-28 09:57:53 +01:00
Louis Rossignol
68ac8ffcdc Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!65
2026-01-27 18:05:19 +00:00
Louis Rossignol
17d1db2056 Merge branch 'fix-ci-token' into 'develop'
Change token type for CI - project access token

See merge request ldc-web/cluster-k8s!67
2026-01-27 18:00:09 +00:00
LOR
e871812ce0 Change token type for CI - project access token 2026-01-27 18:55:04 +01:00
Louis Rossignol
e5da7fc692 Merge branch 'fix-lint-netdata-integration' into 'develop'
fix indentation netdata kustomization

See merge request ldc-web/cluster-k8s!66
2026-01-27 16:10:35 +00:00
LOR
024befb181 fix indentation netdata kustomization 2026-01-27 17:07:49 +01:00
Louis Rossignol
9e35251463 Merge branch 'fix-limit-netdata' into 'develop'
set resources limit, request, retention, optimise ram usage

See merge request ldc-web/cluster-k8s!64
2026-01-23 10:53:08 +00:00
LOR
1be48b8c55 Variabilisation netdata resources, collect, retention 2026-01-23 11:20:13 +01:00
LOR
fc7c029211 set resources limit, request, retention, optimise ram usage 2026-01-23 10:19:37 +01:00
Louis Rossignol
7ed6aaa612 Merge branch 'fea-add-netdat' into 'develop'
Add netdata monitoring

See merge request ldc-web/cluster-k8s!63
2026-01-22 15:34:29 +00:00
LOR
46ef46a046 Add netdata monitoring 2026-01-22 16:24:50 +01:00
Louis Rossignol
fcacc87bfe Merge branch 'lor-add-ip-uptimerobot' into 'develop'
Lor add ip uptimerobot

See merge request ldc-web/cluster-k8s!62
2026-01-22 13:52:54 +00:00
LOR
73112bc486 Add ip Uptime Robot for staging resources 2026-01-09 15:21:11 +01:00
noah.lancien
c7c8d0d733 Merge branch 'develop' into 'master'
Added la-boutique-du-canard to gitlab agents

See merge request ldc-web/cluster-k8s!61
2025-12-26 15:52:46 +00:00
noah.lancien
cf0af6b1c4 Added la-boutique-du-canard to gitlab agents 2025-12-26 15:52:32 +00:00
noah.lancien
605e58a6c6 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!60
2025-12-24 13:59:05 +00:00
noah.lancien
489c455bae Added boutique-jeusselin to gitlab agents 2025-12-24 13:57:54 +00:00
Guillaume Marsay
cb44eb2a4a Merge branch 'fix-size-pvc-prometheus' into 'develop'
Fix size pvc prometheus

See merge request ldc-web/cluster-k8s!59
2025-11-24 14:16:11 +00:00
LOR
b0d2f79461 Fix size pvc promethus 40 Go 2025-11-24 14:46:33 +01:00
Vincent BRIDIER
7b2c723fd4 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!58
2025-11-17 09:31:42 +00:00
Vincent BRIDIER
674f30281e Merge branch 'migrate-mariadb-bitnami-repo' into 'develop'
Update file helm-release.yaml

See merge request ldc-web/cluster-k8s!57
2025-11-17 09:30:43 +00:00
Vincent BRIDIER
92c8762e1f Update file helm-release.yaml 2025-11-17 09:27:55 +00:00
Vincent BRIDIER
bdb7672420 Merge branch 'develop' into 'master'
feat: Add Willow + Cafel ip to allow calls in staging

See merge request ldc-web/cluster-k8s!56
2025-10-27 17:20:15 +00:00
Vincent BRIDIER
c4cf7f7d40
feat: Add Willow + Cafel ip to allow calls in staging 2025-10-27 18:19:13 +01:00
noah.lancien
b98e5cfb8b Merge branch 'develop' into 'master'
Added marie to gitlab agents

See merge request ldc-web/cluster-k8s!55
2025-10-14 15:37:08 +00:00
noah.lancien
88699625e6 Added marie to gitlab agents 2025-10-14 15:36:52 +00:00
Vincent BRIDIER
cb4688dcf1 Merge branch 'develop' into 'master'
feat: Add k8s nodes ips to allow call from cluster in staging

See merge request ldc-web/cluster-k8s!54
2025-10-13 15:33:20 +00:00
Vincent BRIDIER
93f788b080
feat: Add k8s nodes ips to allow call from cluster in staging 2025-10-13 17:32:21 +02:00
Vincent BRIDIER
4ee0139853 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!53
2025-10-06 17:06:29 +00:00
Vincent BRIDIER
4b30759b70 Add matomo into gitlab agent 2025-10-06 17:05:24 +00:00
Guillaume Marsay
e9c622d9e9 Merge branch 'chore-remove-box-ip' into 'develop'
Chore remove box ip

See merge request ldc-web/cluster-k8s!52
2025-10-06 10:21:03 +00:00
LOR
6712e1d528 Remove old Public IP box ldc-web 2025-10-03 10:37:45 +02:00
noah.lancien
d555b8e4c0 Added marie restauration to gitlab agents 2025-09-30 15:42:50 +00:00
noah.lancien
c341a080b4 Added Volailles Ardèche to the gitlab agents 2025-09-26 11:05:55 +00:00
noah.lancien
348d1c9544 Update config.yaml to add OP Brasserie 2025-09-09 09:57:39 +00:00
karl.muller
2161940ebf Update config.yaml le gaulois sportif 2025 2025-07-31 15:16:30 +00:00
karl.muller
c0a0caca1a Update config.yaml for matines 40 ans 2025-07-31 14:34:37 +00:00
karl.muller
889be9b062 add le gaulois chequier 40e 2025-07-22 15:49:20 +00:00
karl.muller
8d1b723991 Update config.yaml 2025-07-22 15:47:31 +00:00
Vincent BRIDIER
bca4be232c feat: Add volailles challans to gitlab agenet 2025-07-10 14:27:49 +00:00
Vincent BRIDIER
11fc2c64ed
Merge branch 'develop' 2025-06-19 16:56:21 +02:00
Vincent BRIDIER
9ffa37f692
fix: Fix HelmRepository for rabbitmq 2025-06-19 13:05:53 +02:00
Vincent BRIDIER
9c088ea043 Merge branch 'rabbitmq' into 'develop'
feat: add rabbitmq into common services

See merge request ldc-web/cluster-k8s!51
2025-06-19 09:46:09 +00:00
Vincent BRIDIER
f2fa481a1d feat: add rabbitmq into common services 2025-06-19 09:46:08 +00:00
noah.lancien
963f27a918 Added Corico to gitlab agents 2025-05-30 15:16:25 +00:00
Vincent BRIDIER
aaeeaa2ad6 feat: remove showroom bo instances from gitlab agent 2025-05-30 13:57:40 +00:00
Louis Rossignol
ff8b02d3f9 Merge branch 'develop' into 'master'
Develop

See merge request ldc-web/cluster-k8s!50
2025-05-16 13:46:11 +00:00
31 changed files with 887 additions and 261 deletions

View file

@ -28,7 +28,7 @@ variables:
git config user.email "autodeploy@mediactivegroup.com"
git add --all
git commit -m "Bot Auto Commit"
git push --force https://flux-token-api:${GITLAB_ACCESS_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git HEAD:${DEPLOY_BRANCH}
git push --force https://project_access_token:${GITLAB_ACCESS_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git HEAD:${DEPLOY_BRANCH}
tags:
- flux
- k8s

View file

@ -8,6 +8,7 @@ ci_access:
- id: ldc-web/projets/galina
- 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-chequier-40-2025
- id: ldc-web/projets/gen-game-web-instances/le-gaulois-tdf-2024
- id: ldc-web/projets/gen-game-web-instances/normandie
- id: ldc-web/projets/gen-game-web-instances/reghalal-jeu

View file

@ -2,42 +2,52 @@ 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
- id: ldc-web/projets/com-app-bo
- id: ldc-web/projets/crm
- id: ldc-web/projets/coupe-de-france-de-la-volaille
- id: ldc-web/projets/data-pfc
- id: ldc-web/projets/domaine-de-lanvaux
- 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
- id: ldc-web/projets/gen-game-web-instances/le-gaulois-sportif-2025
- id: ldc-web/projets/gen-game-web-instances/le-gaulois-sportif-2026
- id: ldc-web/projets/gen-game-web-instances/matines-40-ans
- id: ldc-web/projets/gen-game-web-instances/nature-and-respect
- id: ldc-web/projets/gen-game-web-instances/normandie
- id: ldc-web/projets/gen-game-web-instances/reghalal-jeu
- id: ldc-web/projets/gen-game-web-instances/tregalette-chandleur-2024
- 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
- id: ldc-web/projets/ldc
- id: ldc-web/projets/ldc-foods
- id: ldc-web/projets/ldc-restauration
- id: ldc-web/projets/ldc-web
- id: ldc-web/projets/le-gaulois
- id: ldc-web/projets/le-gaulois-pro
- id: ldc-web/projets/le-marche-de-beaufeu
- id: ldc-web/projets/les-fermiers-snv
- id: ldc-web/projets/lionor
- id: ldc-web/projets/loue
- id: ldc-web/projets/loue-action-reboisement
- id: ldc-web/projets/loue-magie-de-noel
- id: ldc-web/projets/matomo
- id: ldc-web/projets/maitre-coq
- id: ldc-web/projets/mairet
- id: ldc-web/projets/maison-couthouis
- id: ldc-web/projets/marie
- id: ldc-web/projets/marie-restauration
- id: ldc-web/projets/mas-d-auge
- id: ldc-web/projets/matines
- id: ldc-web/projets/medina
@ -49,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
@ -57,14 +68,12 @@ ci_access:
- id: ldc-web/projets/sbv
- id: ldc-web/projets/share-secure-content
- id: ldc-web/projets/showroom/showroom-bo
- id: ldc-web/projets/showroom-bo-instances/drosed
- id: ldc-web/projets/showroom-bo-instances/maitre-coq
- id: ldc-web/projets/showroom-bo-instances/nature-and-respect
- id: ldc-web/projets/store-ldc
- id: ldc-web/projets/support-web
- id: ldc-web/projets/traditions-asie
- id: ldc-web/projets/tregalette
- id: ldc-web/projets/vdme
- id: ldc-web/projets/uwil-ui
- id: ldc-web/projets/volailles-ardeche
- id: ldc-web/projets/volailles-challans
- id: ldc-web/projets/volena
observability:

View file

@ -8,7 +8,6 @@
| FluxCD | no flux | 2.3.0 | 2.3.0 | 2.13.0 |
| Git-agent | 16.9.3 | 16.9.3 | 17.1.0 | 2.30 |
| Git-runner | 16.9.1 | 16.9.1 | 17.0.1 | 0.62.1 |
| MariaDB | 10.10 | 1.13.2 | 1.13.2 | 18.2.4 |
| Prometheus | 0.60.1 | 0.74.0 | 0.74.0 | 60.2.0 |
| Traefik | 2.9.6 | 3.0.2 | 3.0.2 | 28.3.0 |
| Velero | 1.10.1 | 1.13.2 | 1.13.2 | 6.7.0 |

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

@ -1,15 +1,17 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- cert-manager.yaml
- flux-resources.yaml
- gitlab-agent.yaml
- gitlab-runner.yaml
- hashicorp-vault.yaml
- ldc-custom.yaml
- mariadb.yaml
- meilisearch.yaml
- namespaces.yaml
- prometheus-stack.yaml
- traefik.yaml
- quickchart.yaml
- cert-manager.yaml
- flux-resources.yaml
- gitlab-agent.yaml
- gitlab-runner.yaml
- hashicorp-vault.yaml
- ldc-custom.yaml
- meilisearch.yaml
- namespaces.yaml
- prometheus-stack.yaml
- rabbitmq.yaml
- traefik.yaml
- quickchart.yaml
- netdata.yaml
- crowdsec.yaml

View file

@ -2,25 +2,31 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: mariadb
name: netdata
namespace: flux-system
spec:
interval: 30s
path: ./infrastructure/mariadb
interval: 1m0s
path: ./infrastructure/netdata
prune: false
sourceRef:
kind: GitRepository
name: flux-system
dependsOn:
- name: external-secrets-resources
namespace: flux-system
healthChecks:
- apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
name: bitnami
name: netdata
namespace: common-services
- apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
name: mariadb
name: netdata
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

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

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

@ -9,7 +9,7 @@ spec:
chart:
spec:
chart: gitlab-agent
version: 2.8.3
version: 2.29.0
sourceRef:
kind: HelmRepository
name: gitlab-agent
@ -17,7 +17,7 @@ spec:
values:
image:
tag: v17.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.70.2
version: 0.91.2
sourceRef:
kind: HelmRepository
name: gitlab-runner
@ -17,7 +17,7 @@ spec:
values:
image:
tag: alpine-v17.5.2
tag: alpine-v19.2.2
gitlabUrl: https://lab.s-web.fr

View file

@ -5,27 +5,30 @@ metadata:
namespace: common-services
spec:
schedule: "* * * * *"
suspend: false # géré explicitement par Git (corrige le drift de suspension manuelle)
concurrencyPolicy: Forbid
startingDeadlineSeconds: 60
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 2
failedJobsHistoryLimit: 3
jobTemplate:
spec:
backoffLimit: 2
activeDeadlineSeconds: 120
template:
spec:
securityContext:
runAsNonRoot: true
runAsUser: 10001
seccompProfile:
type: RuntimeDefault
containers:
- name: vault-auto-unseal
image: registry.s-web.fr/ldc-web/k8s-vault-unseal:1.0.0
image: registry.s-web.fr/ldc-web/k8s-vault-unseal:1.1.0
imagePullPolicy: IfNotPresent
command: ["python", "main.py", "-u", "http://vault.common-services:8200", "-t", "${DOLLAR}(VAULT_TOKEN)",
"-k", "${DOLLAR}(UNSEAL_KEY_1)", "-k", "${DOLLAR}(UNSEAL_KEY_2)", "-k", "${DOLLAR}(UNSEAL_KEY_3)",
"-k", "${DOLLAR}(UNSEAL_KEY_4)", "-k", "${DOLLAR}(UNSEAL_KEY_5)"]
command: ["python", "main.py", "-u", "http://vault.common-services:8200"]
env:
- name: VAULT_TOKEN
valueFrom:
secretKeyRef:
name: vault-credentials
key: token
- name: PYTHONDONTWRITEBYTECODE
value: "1"
- name: UNSEAL_KEY_1
valueFrom:
secretKeyRef:
@ -51,6 +54,19 @@ spec:
secretKeyRef:
name: vault-credentials
key: unseal_key_5
resources:
requests:
cpu: 10m
memory: 32Mi
limits:
cpu: 100m
memory: 64Mi
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
imagePullSecrets:
- name: docker-registry-credentials
restartPolicy: OnFailure

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

@ -7,8 +7,10 @@ resources:
- gitlab-agent.yaml
- gitlab-runner.yaml
- hashicorp-vault.yaml
- mariadb.yaml
- prometheus-stack.yaml
- review.yaml
- staging.yaml
- production.yaml
- rabbitmq.yaml
- netdata.yaml
- crowdsec.yaml

View file

@ -1,28 +0,0 @@
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: mariadb-credentials
namespace: common-services
spec:
refreshInterval: "15s"
secretStoreRef:
name: vault-secret-store
kind: ClusterSecretStore
target:
name: mariadb-credentials
template:
engineVersion: v2
type: Opaque
data:
mariadb-password: "{{ .password }}"
mariadb-replication-password: "{{ .root_password }}"
mariadb-root-password: "{{ .root_password }}"
data:
- secretKey: root_password
remoteRef:
key: secret/mariadb
property: root_password
- secretKey: password
remoteRef:
key: secret/mariadb
property: password

View file

@ -0,0 +1,41 @@
---
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: netdata-claim
namespace: common-services
spec:
refreshInterval: "15s"
secretStoreRef:
name: vault-secret-store
kind: ClusterSecretStore
target:
name: netdata-claim
data:
- secretKey: NETDATA_CLAIM_TOKEN
remoteRef:
key: secret/netdata/claim
property: NETDATA_CLAIM_TOKEN
- secretKey: NETDATA_CLAIM_ROOMS
remoteRef:
key: secret/netdata/claim
property: NETDATA_CLAIM_ROOMS
---
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: netdata-stream
namespace: common-services
spec:
refreshInterval: "15s"
secretStoreRef:
name: vault-secret-store
kind: ClusterSecretStore
target:
name: netdata-stream
data:
- secretKey: APIKEY
remoteRef:
key: secret/netdata/stream
property: APIKEY

View file

@ -0,0 +1,22 @@
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: rabbitmq-credentials
namespace: common-services
spec:
refreshInterval: "15s"
secretStoreRef:
name: vault-secret-store
kind: ClusterSecretStore
target:
name: rabbitmq-credentials
template:
engineVersion: v2
type: Opaque
data:
rabbitmq-password: "{{ .password }}"
data:
- secretKey: password
remoteRef:
key: secret/rabbitmq
property: password

View file

@ -23,3 +23,6 @@ spec:
enabled: false
livenessProbe:
enabled: true
# Liveness tolérante au seal : un Vault scellé renvoie 200 (sealedcode/uninitcode)
# pour ne pas tuer le pod en boucle avant que l'auto-unseal n'agisse.
path: "/v1/sys/health?standbyok=true&sealedcode=200&uninitcode=200"

View file

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

View file

@ -49,6 +49,23 @@ metadata:
kubernetes.io/service-account.name: svc-karl-muller
type: kubernetes.io/service-account-token
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: svc-jeremy-munsch
namespace: kube-system
---
apiVersion: v1
kind: Secret
metadata:
name: jeremy-munsch-secret
namespace: kube-system
annotations:
kubernetes.io/service-account.name: svc-jeremy-munsch
type: kubernetes.io/service-account-token
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
@ -59,15 +76,18 @@ roleRef:
kind: ClusterRole
name: view
subjects:
- kind: ServiceAccount
name: svc-vincent-bridier
namespace: kube-system
- kind: ServiceAccount
name: svc-noah-lancien
namespace: kube-system
- kind: ServiceAccount
name: svc-karl-muller
namespace: kube-system
- kind: ServiceAccount
name: svc-vincent-bridier
namespace: kube-system
- kind: ServiceAccount
name: svc-noah-lancien
namespace: kube-system
- kind: ServiceAccount
name: svc-karl-muller
namespace: kube-system
- kind: ServiceAccount
name: svc-jeremy-munsch
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
@ -76,40 +96,40 @@ metadata:
creationTimestamp: null
name: cr-ldc-web-metrics
rules:
- apiGroups:
- ""
resources:
- services/portforward
- services/proxy
verbs:
- create
- delete
- get
- list
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
- list
- watch
- apiGroups:
- traefik.io
resources:
- ingressroutes
- ingressroutetcps
- ingressrouteudps
- middlewares
- middlewaretcps
- tlsoptions
- tlsstores
- traefikservices
- serverstransports
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- services/portforward
- services/proxy
verbs:
- create
- delete
- get
- list
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
- list
- watch
- apiGroups:
- traefik.io
resources:
- ingressroutes
- ingressroutetcps
- ingressrouteudps
- middlewares
- middlewaretcps
- tlsoptions
- tlsstores
- traefikservices
- serverstransports
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
@ -121,15 +141,18 @@ roleRef:
kind: ClusterRole
name: cr-ldc-web-metrics
subjects:
- kind: ServiceAccount
name: svc-vincent-bridier
namespace: kube-system
- kind: ServiceAccount
name: svc-noah-lancien
namespace: kube-system
- kind: ServiceAccount
name: svc-karl-muller
namespace: kube-system
- kind: ServiceAccount
name: svc-vincent-bridier
namespace: kube-system
- kind: ServiceAccount
name: svc-noah-lancien
namespace: kube-system
- kind: ServiceAccount
name: svc-karl-muller
namespace: kube-system
- kind: ServiceAccount
name: svc-jeremy-munsch
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
@ -138,12 +161,12 @@ metadata:
creationTimestamp: null
name: cr-admin-web-ldc-namespace
rules:
- apiGroups:
- "*"
resources:
- "*"
verbs:
- "*"
- apiGroups:
- "*"
resources:
- "*"
verbs:
- "*"
---
apiVersion: rbac.authorization.k8s.io/v1
@ -152,15 +175,18 @@ metadata:
name: rb-admin-web-ldc-namespace-review
namespace: review
subjects:
- kind: ServiceAccount
name: svc-vincent-bridier
namespace: kube-system
- kind: ServiceAccount
name: svc-noah-lancien
namespace: kube-system
- kind: ServiceAccount
name: svc-karl-muller
namespace: kube-system
- kind: ServiceAccount
name: svc-vincent-bridier
namespace: kube-system
- kind: ServiceAccount
name: svc-noah-lancien
namespace: kube-system
- kind: ServiceAccount
name: svc-karl-muller
namespace: kube-system
- kind: ServiceAccount
name: svc-jeremy-munsch
namespace: kube-system
roleRef:
kind: ClusterRole
name: cr-admin-web-ldc-namespace
@ -173,15 +199,18 @@ metadata:
name: rb-admin-web-ldc-namespace-staging
namespace: staging
subjects:
- kind: ServiceAccount
name: svc-vincent-bridier
namespace: kube-system
- kind: ServiceAccount
name: svc-noah-lancien
namespace: kube-system
- kind: ServiceAccount
name: svc-karl-muller
namespace: kube-system
- kind: ServiceAccount
name: svc-vincent-bridier
namespace: kube-system
- kind: ServiceAccount
name: svc-noah-lancien
namespace: kube-system
- kind: ServiceAccount
name: svc-karl-muller
namespace: kube-system
- kind: ServiceAccount
name: svc-jeremy-munsch
namespace: kube-system
roleRef:
kind: ClusterRole
name: cr-admin-web-ldc-namespace
@ -194,15 +223,18 @@ metadata:
name: rb-admin-web-ldc-namespace-production
namespace: production
subjects:
- kind: ServiceAccount
name: svc-vincent-bridier
namespace: kube-system
- kind: ServiceAccount
name: svc-noah-lancien
namespace: kube-system
- kind: ServiceAccount
name: svc-karl-muller
namespace: kube-system
- kind: ServiceAccount
name: svc-vincent-bridier
namespace: kube-system
- kind: ServiceAccount
name: svc-noah-lancien
namespace: kube-system
- kind: ServiceAccount
name: svc-karl-muller
namespace: kube-system
- kind: ServiceAccount
name: svc-jeremy-munsch
namespace: kube-system
roleRef:
kind: ClusterRole
name: cr-admin-web-ldc-namespace
@ -215,9 +247,18 @@ metadata:
name: rb-admin-web-ldc-namespace-common-services
namespace: common-services
subjects:
- kind: ServiceAccount
name: svc-vincent-bridier
namespace: kube-system
- kind: ServiceAccount
name: svc-vincent-bridier
namespace: kube-system
- kind: ServiceAccount
name: svc-noah-lancien
namespace: kube-system
- kind: ServiceAccount
name: svc-karl-muller
namespace: kube-system
- kind: ServiceAccount
name: svc-jeremy-munsch
namespace: kube-system
roleRef:
kind: ClusterRole
name: cr-admin-web-ldc-namespace

View file

@ -1,30 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: mariadb
namespace: common-services
spec:
interval: 1m0s
chart:
spec:
chart: mariadb
version: 18.2.4
sourceRef:
kind: HelmRepository
name: bitnami
namespace: common-services
values:
image:
tag: 11.3.2-debian-12-r6
auth:
existingSecret: mariadb-credentials
primary:
persistence:
storageClass: "csi-cinder-high-speed"
size: 60Gi
resourcesPreset: "${MARIADB_RESOURCES_REQUEST}"

View file

@ -0,0 +1,117 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: netdata
namespace: common-services
spec:
interval: 1m0s
chart:
spec:
chart: netdata
version: 3.7.158
sourceRef:
kind: HelmRepository
name: netdata
namespace: common-services
# Injecte APIKEY depuis un Secret (pas en clair dans Git)
valuesFrom:
- kind: Secret
name: netdata-stream
valuesKey: APIKEY
targetPath: APIKEY
values:
image:
tag: v2.8.5
# Service interne uniquement
service:
type: ClusterIP
port: 19999
# Pas d'exposition
ingress:
enabled: false
# Pas d'auto-update des pods en prod critique
restarter:
enabled: false
# Parent = point de centralisation + health/alerting (par défaut chart)
parent:
enabled: true
port: 19999
resources:
requests:
cpu: "${NETDATA_PARENT_REQUESTS_CPU}"
memory: "${NETDATA_PARENT_REQUESTS_RAM}"
limits:
cpu: "${NETDATA_PARENT_LIMITS_CPU}"
memory: "${NETDATA_PARENT_LIMITS_RAM}"
# PV parent recommandés (db + alarms)
database:
persistence: true
volumesize: 40Gi # /var/cache/netdata
alarms:
persistence: true
volumesize: 4Gi # /var/lib/netdata
# Claiming via Secret envFrom
claiming:
enabled: true
token: ""
rooms: ""
url: "https://api.netdata.cloud"
envFrom:
- secretRef:
name: netdata-claim
# Child DaemonSet
child:
enabled: true
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
resources:
requests:
cpu: "${NETDATA_CHILD_REQUESTS_CPU}"
memory: "${NETDATA_CHILD_REQUESTS_RAM}"
limits:
cpu: "${NETDATA_CHILD_LIMITS_CPU}"
memory: "${NETDATA_CHILD_LIMITS_RAM}"
persistence:
enabled: true
hostPath: /var/lib/netdata-k8s-child
# Hardening UI sur les nodes: bind localhost uniquement
configs:
netdata:
enabled: true
path: /etc/netdata/netdata.conf
data: |
[db]
mode = ram
retention = "${NETDATA_CHILD_RETENTION}"
update every = "${NETDATA_CHILD_COLLECT_INTERVAL}"
[web]
bind to = localhost:19999
[health]
enabled = no
[ml]
enabled = no
# Claiming via Secret envFrom (token PAS en clair ici)
claiming:
enabled: true
token: ""
rooms: ""
url: "https://api.netdata.cloud"
envFrom:
- secretRef:
name: netdata-claim

View file

@ -0,0 +1,9 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: netdata
namespace: common-services
spec:
interval: 1h0m0s
url: https://netdata.github.io/helmchart/

View file

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

View file

@ -37,4 +37,4 @@ spec:
storageClassName: "csi-cinder-classic"
resources:
requests:
storage: 20Gi
storage: 40Gi

View file

@ -0,0 +1,24 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: rabbitmq
namespace: common-services
spec:
interval: 1m0s
chart:
spec:
chart: rabbitmq
version: 16.0.3
sourceRef:
kind: HelmRepository
name: bitnami
namespace: common-services
values:
global:
defaultStorageClass: "csi-cinder-high-speed"
image:
tag: 4.0.1
auth:
username: rabbitmq
existingPasswordSecret: rabbitmq-credentials

View file

@ -1,10 +1,9 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: bitnami
namespace: common-services
spec:
interval: 1h0m0s
url: oci://registry-1.docker.io/bitnamicharts
type: "oci"
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: bitnami
namespace: common-services
spec:
interval: 1h0m0s
url: oci://registry-1.docker.io/bitnamicharts
type: "oci"

View file

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

View file

@ -15,7 +15,6 @@ spec:
name: traefik
namespace: common-services
values:
image:
tag: v3.3.6
@ -29,13 +28,30 @@ spec:
- "--entryPoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--providers.kubernetescrd.allowCrossNamespace=true"
- "--entryPoints.web.proxyProtocol.trustedIPs=${TRAEFIK_LOAD_BALANCER_IP}/32,10.124.0.0/16"
- "--entryPoints.websecure.proxyProtocol.trustedIPs=${TRAEFIK_LOAD_BALANCER_IP}/32,10.124.0.0/16"
- "--entryPoints.websecure.forwardedHeaders.trustedIPs=${TRAEFIK_LOAD_BALANCER_IP}/32"
- "--entryPoints.mariadb.proxyProtocol.trustedIPs=${TRAEFIK_LOAD_BALANCER_IP},10.124.0.0/16"
- "--entryPoints.web.proxyProtocol.trustedIPs=${OVH_LOAD_BALANCER_EGRESS_IP}/32"
- "--entryPoints.websecure.proxyProtocol.trustedIPs=${OVH_LOAD_BALANCER_EGRESS_IP}/32"
- "--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
podDisruptionBudget:
enabled: true
minAvailable: 1
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-common-services
topologyKey: kubernetes.io/hostname
ports:
traefik:
@ -61,11 +77,6 @@ spec:
expose:
default: false
protocol: TCP
mariadb:
port: 54322
expose:
default: true
protocol: TCP
providers:
kubernetesCRD:
@ -74,13 +85,28 @@ 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
annotations:
service.beta.kubernetes.io/ovh-loadbalancer-proxy-protocol: v2
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:
loadBalancerIP: "${TRAEFIK_LOAD_BALANCER_IP}"
externalTrafficPolicy: Local
ingressRoute:
@ -88,7 +114,29 @@ spec:
enabled: true
extraObjects:
- apiVersion: traefik.io/v1alpha1 # Redirect www URLs to their no-www equivalent
- 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:
name: redirect-www-to-no-www
@ -103,7 +151,7 @@ spec:
# How to modify the URL to have the new target URL
replacement: "https://${1}"
- apiVersion: traefik.io/v1alpha1 # Redirect www URLs to their no-www equivalent
- apiVersion: traefik.io/v1alpha1 # Redirect www URLs to their no-www equivalent
kind: Middleware
metadata:
name: redirect-www-to-no-www
@ -118,7 +166,7 @@ spec:
# How to modify the URL to have the new target URL
replacement: "https://${1}"
- apiVersion: traefik.io/v1alpha1 # Redirect www URLs to their no-www equivalent
- apiVersion: traefik.io/v1alpha1 # Redirect www URLs to their no-www equivalent
kind: Middleware
metadata:
name: redirect-www-to-no-www
@ -133,7 +181,7 @@ spec:
# How to modify the URL to have the new target URL
replacement: "https://${1}"
- apiVersion: traefik.io/v1alpha1 # Redirect www URLs to their no-www equivalent
- apiVersion: traefik.io/v1alpha1 # Redirect www URLs to their no-www equivalent
kind: Middleware
metadata:
name: redirect-www-to-no-www
@ -150,7 +198,7 @@ spec:
# Redirection to www for common-services namespace
# TODO: remove this middleware when all sites been updated
- apiVersion: traefik.io/v1alpha1 # Redirect no-www URLs to their www equivalent
- apiVersion: traefik.io/v1alpha1 # Redirect no-www URLs to their www equivalent
kind: Middleware
metadata:
name: redirect-no-www-to-www
@ -166,7 +214,7 @@ spec:
replacement: "https://www.${1}"
# Redirection to www for production namespace
- apiVersion: traefik.io/v1alpha1 # Redirect no-www URLs to their www equivalent
- apiVersion: traefik.io/v1alpha1 # Redirect no-www URLs to their www equivalent
kind: Middleware
metadata:
name: redirect-no-www-to-www
@ -182,7 +230,7 @@ spec:
replacement: "https://www.${1}"
# Redirection from www to domain for staging
- apiVersion: traefik.io/v1alpha1 # Redirect no-www URLs to their www equivalent
- apiVersion: traefik.io/v1alpha1 # Redirect no-www URLs to their www equivalent
kind: Middleware
metadata:
name: redirect-no-www-to-www
@ -197,7 +245,7 @@ spec:
replacement: "https://${1}"
# Redirection from www to domain for review
- apiVersion: traefik.io/v1alpha1 # Redirect no-www URLs to their www equivalent
- apiVersion: traefik.io/v1alpha1 # Redirect no-www URLs to their www equivalent
kind: Middleware
metadata:
name: redirect-no-www-to-www
@ -242,24 +290,6 @@ spec:
customResponseHeaders:
Cross-Origin-Opener-Policy: "same-origin"
- apiVersion: traefik.io/v1alpha1
kind: MiddlewareTCP
metadata:
name: ipwhitelist-acces-mariadb
namespace: common-services
spec:
ipAllowList:
sourceRange:
- 46.18.126.208/28 # LDC
- 62.193.56.48/32 # OPENevents - Bureau Neuville
- 80.15.14.76/32 # LDC web - Box externe
- 86.65.205.240/28 # LDC
- 135.125.42.176/28 # LDC
- 149.202.23.64/26 # LDC
- 151.80.95.176/28 # LDC
- 217.15.92.64/28 # LDC
- 10.124.0.0/16 # Kubernetes internal resources
- apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
@ -268,27 +298,184 @@ spec:
spec:
ipAllowList:
sourceRange:
- 163.172.132.215 # Proxy Cloud Navigation LDC
- 51.159.133.41 # Proxy Cloud Navigation LDC
- 51.159.82.143 # Proxy Cloud Navigation LDC
- 135.125.42.187 # Proxy Cloud Navigation LDC
- 37.64.103.132 # Willow Creation
- 88.86.232.178 # Cafel
- 57.128.69.87 # K8S Node 1
- 57.128.110.168 # K8S Node 2
- 57.128.111.33 # K8S Node 3
- 54.38.0.22 # K8S Node 4
- 57.128.71.23 # K8S Node 5
- 51.68.88.158/32 # prod-k8s-ldc-web-nopreempt-node-796d8b
- 51.68.92.100/32 # prod-k8s-ldc-web-nopreempt-node-8f841b
- 51.68.92.60/32 # prod-k8s-ldc-web-nopreempt-node-399aa9
- 51.68.87.150/32 # prod-k8s-ldc-web-nopreempt-node-b5417b
- 51.68.90.203/32 # prod-k8s-ldc-web-nopreempt-node-e3ac48
- 137.74.211.112/32 # dev-test-k8s-ldc-web-nopreempt-node-17257c
- 146.59.240.51/32 # dev-test-k8s-ldc-web-nopreempt-node-54e828
- 146.59.241.151/32 # dev-test-k8s-ldc-web-nopreempt-node-93017a
- 46.18.126.208/28 # LDC
- 62.193.56.48/32 # OPENevents - Bureau Neuville
- 80.15.14.76/32 # LDC web - Box externe
- 86.65.205.240/28 # LDC
- 135.125.42.176/28 # LDC
- 149.202.23.64/26 # LDC
- 151.80.95.176/28 # LDC
- 217.15.92.64/28 # LDC
- apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
- 3.77.67.4 # UptimeRobot
- 3.79.134.69 # UptimeRobot
- 18.192.166.72 # UptimeRobot
- 18.193.252.127 # UptimeRobot
- 52.28.162.93 # UptimeRobot
- 52.59.43.236 # UptimeRobot
- 63.178.84.147 # UptimeRobot
- 24.144.78.39 # UptimeRobot
- 24.144.78.185 # UptimeRobot
- 64.225.81.248 # UptimeRobot
- 64.225.82.147 # UptimeRobot
- 143.198.249.237 # UptimeRobot
- 143.198.250.89 # UptimeRobot
- 143.244.196.21 # UptimeRobot
- 143.244.196.211 # UptimeRobot
- 152.42.149.135 # UptimeRobot
- 159.223.243.219 # UptimeRobot
- 161.35.247.201 # UptimeRobot
- 167.99.18.52 # UptimeRobot
- 188.166.201.79 # UptimeRobot
- 206.189.241.133 # UptimeRobot
- 209.38.53.7 # UptimeRobot
- 49.13.24.81 # UptimeRobot
- 49.13.130.29 # UptimeRobot
- 49.13.134.145 # UptimeRobot
- 78.47.98.55 # UptimeRobot
- 88.99.80.227 # UptimeRobot
- 142.132.180.39 # UptimeRobot
- 157.90.155.240 # UptimeRobot
- 157.90.156.63 # UptimeRobot
- 168.119.53.160 # UptimeRobot
- 168.119.96.239 # UptimeRobot
- 49.13.164.148 # UptimeRobot
- 49.13.167.123 # UptimeRobot
- 78.46.190.63 # UptimeRobot
- 78.47.173.76 # UptimeRobot
- 128.140.41.193 # UptimeRobot
- 128.140.106.114 # UptimeRobot
- 159.69.158.189 # UptimeRobot
- 167.235.143.113 # UptimeRobot
- 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: mariadb-ingressroutetcp
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
metadata:
name: blackhole
namespace: common-services
spec:
# Placeholder : jamais contacté, le middleware renvoie 403 avant.
type: ClusterIP
ports:
- name: http
port: 80
targetPort: 80
- apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: deny-ip-blocklist
namespace: common-services
spec:
# ipAllowList rejette en 403
ipAllowList:
sourceRange:
- 192.0.2.1/32 # TEST-NET-1 (RFC 5737) : ne matche aucun client réel => deny
- apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: security-ip-blocklist
namespace: common-services
spec:
entryPoints:
- mariadb
- websecure
routes:
- match: HostSNI(`*`) # Hostname to match
- kind: Rule
match: >-
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: ipwhitelist-acces-mariadb
- name: deny-ip-blocklist
namespace: common-services
services:
- name: mariadb
port: 3306
- name: blackhole
port: 80
- apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: blackhole
namespace: common-services
labels:
kubernetes.io/service-name: blackhole
addressType: IPv4
endpoints:
- addresses:
- 192.0.2.1 # TEST-NET-1 : non-routable, jamais contacté
conditions:
ready: true
ports:
- name: http
port: 80
protocol: TCP