mirror of
https://github.com/vhaudiquet/homeprod.git
synced 2026-07-27 08:00:46 +00:00
Compare commits
9 Commits
c8c6e3fefc
...
abd186b1a1
| Author | SHA1 | Date | |
|---|---|---|---|
|
abd186b1a1
|
|||
|
81d4e5c310
|
|||
|
2c43aacf91
|
|||
|
c6b706a136
|
|||
|
ba0df1c484
|
|||
|
001d4adbed
|
|||
|
b424f2972f
|
|||
| b6541a018f | |||
| a9178f6209 |
@@ -55,9 +55,11 @@ updates:
|
|||||||
- "/kubernetes/system/blocky"
|
- "/kubernetes/system/blocky"
|
||||||
- "/kubernetes/system/caddy"
|
- "/kubernetes/system/caddy"
|
||||||
- "/kubernetes/system/cert-manager"
|
- "/kubernetes/system/cert-manager"
|
||||||
|
- "/kubernetes/system/cert-manager-webhook-ovh"
|
||||||
- "/kubernetes/system/coredns"
|
- "/kubernetes/system/coredns"
|
||||||
- "/kubernetes/system/csi-driver-nfs"
|
- "/kubernetes/system/csi-driver-nfs"
|
||||||
- "/kubernetes/system/external-dns"
|
- "/kubernetes/system/external-dns"
|
||||||
|
- "/kubernetes/system/longhorn"
|
||||||
- "/kubernetes/system/traefik"
|
- "/kubernetes/system/traefik"
|
||||||
- "/kubernetes/tools/dashy"
|
- "/kubernetes/tools/dashy"
|
||||||
- "/kubernetes/tools/glance"
|
- "/kubernetes/tools/glance"
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
resource "proxmox_virtual_environment_download_file" "talos-cloudimg" {
|
resource "proxmox_virtual_environment_download_file" "talos-cloudimg" {
|
||||||
content_type = "iso"
|
content_type = "iso"
|
||||||
datastore_id = "local"
|
datastore_id = "local"
|
||||||
file_name = "talos-v1.11.1-nocloud-amd64.iso"
|
file_name = "talos-v1.13.6-nocloud-amd64.iso"
|
||||||
node_name = var.proxmox_node_name
|
node_name = var.proxmox_node_name
|
||||||
url = "https://factory.talos.dev/image/ce4c980550dd2ab1b17bbf2b08801c7eb59418eafe8f279833297925d67c7515/v1.11.5/nocloud-amd64.iso"
|
url = "https://factory.talos.dev/image/5a697fd6e91537a2c9c45929d004d82af180bb5d4e989dd8494e25fedca005bd/v1.13.6/nocloud-amd64.iso"
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "proxmox_virtual_environment_vm" "kube" {
|
resource "proxmox_virtual_environment_vm" "kube" {
|
||||||
|
|||||||
@@ -2,3 +2,7 @@ apiVersion: v1
|
|||||||
kind: Namespace
|
kind: Namespace
|
||||||
metadata:
|
metadata:
|
||||||
name: vhaudiquet-fr
|
name: vhaudiquet-fr
|
||||||
|
labels:
|
||||||
|
pod-security.kubernetes.io/enforce: privileged
|
||||||
|
pod-security.kubernetes.io/audit: privileged
|
||||||
|
pod-security.kubernetes.io/warn: privileged
|
||||||
|
|||||||
@@ -39,28 +39,30 @@ nfs:
|
|||||||
storageSize: 10Gi
|
storageSize: 10Gi
|
||||||
# Storage class name (leave empty for default)
|
# Storage class name (leave empty for default)
|
||||||
storageClassName: ""
|
storageClassName: ""
|
||||||
|
# Allow the pod to start even when NFS is unreachable (uses emptyDir + initContainer)
|
||||||
|
softFail: true
|
||||||
sops:
|
sops:
|
||||||
lastmodified: "2026-05-14T09:33:46Z"
|
lastmodified: "2026-07-09T14:38:39Z"
|
||||||
mac: ENC[AES256_GCM,data:R5ular4bAyV0cFPGUGYg4NWCGI64rWTax6ObBnCadORwSTh5/VQN3bsDDPFC3dep/7nKzY71d2X4qAcVU3RkWa9eMP+e9dhaGV9/8gvY/qDXZiNEuAXsmpaSATgUo6mUwqrwl5tn4ono4ID8gr7FRVpneTbYX/HpiWDbBa9l1Xk=,iv:wQ552gswkX5aOy/Cht1zY56camnb8EhEwy711osyf4c=,tag:t+U/1wRD7/z39KY9zjNcMQ==,type:str]
|
mac: ENC[AES256_GCM,data:CTnqJl6YPYCt3E0A4QAyt5guqgqiNfFk1xJPAvNM1/kv4HbEVeQxG349AaRSc8bQXcMBIVMf022L4+r0DnTEnyy71vMJwWAJTpnEKBQNaDZNCBraGcznSpOP3t7xibjsQ+pqx6d8xXUm9mDfIJU8Nmqvq+iGEUM1PYsKYfDwhQc=,iv:yBZlb8SujF8nv796elcBMQWbyBg+CQ388UzjVqUUyt4=,tag:P9rW9vl5vkuVFv/RM3gGcA==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2026-05-14T09:33:46Z"
|
- created_at: "2026-07-09T14:38:39Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
hQIMA7uy4qQr71wiAQ/+JAzu9u2Dgn+lA58pIhRbM1064juEOvebtBK0FdJCi7AG
|
hQIMA7uy4qQr71wiAQ/+PV8hvPHvkmAg1BLaMWbpkMD0Y5/+uQbnnEfIaJdiE4VG
|
||||||
/Up2oooBmLMxybk16q0800kZHgOAcqTWkRcDq3QhC7nK+xcs03plTLLAlqfnh2x0
|
bxtqfBeB/f5kfLDoeVZOCO64tuLtljiZhGjFMA7qESLw0qAvRaDJhXZ9qD1cWSgG
|
||||||
XyqQVk4du9caRdgvgN96tG+oWUJcuUJ/uFunXAzRvPnNysS5sGXVKJmbVVKfTjqk
|
DgVhp/4lb+yo37lLUYaqfeRDD5GTXOpKSZOf5WFPr5tsiL9YcfWVVWaf6uSjUl7I
|
||||||
UPyA5sBbCIxW10kPZJjprR1HaRl2dkgz7jZI/q2RXhFjCOhthMErBFr4f6xD3LnN
|
OZkDwi3sDfypuen12I9BM580QRamQzsp6gCynQdE/4PjzND9vAvhEBtftZPLmd2/
|
||||||
H5XVtixNcVmIinsGUIgvPW+qknjrf17ammgEtOqjtuu4PUevQFt4zkVyjU0Y/ASj
|
5O4XgjaiJXo2PstAD3VD7c7vGbtEUfvn0vmd79yHz1YBtHRYtDfmnWwHJjeOpxP5
|
||||||
HAyYgSNIAXanb3u9ulL6CCg/CXJSofTrexw5RPM9eTQQ7S1KqHm/Ns6jjl/jXtEW
|
ooFW3uJuwL3N9/IaFTmgGHynjhQAqVdC79PL4XSVkSMoqdW8YDHBgErH9WI4Lsbz
|
||||||
cIQZ5bQJPTJu7W9gxGpgaLmWwGfoDWvmT2rIFYC9tf+61F4EbRvY6KepKET9NYTJ
|
vl2Wp9eIeopiyIzGXHsUvv/nP3ayp9pS16fV9xJGVczSi5c5YqFRYGtX7QIyXtqA
|
||||||
EnyDoxRsfVgxwQjyqpIpmNewWpgWwcLbD8INoJUVx/Yr284F9pBCgKqKRmeNH/Sy
|
syQlnzoVr4MeT2A2MNdJEWKtfBRQoQR1Qc7ZX/XwfR4b5/58ci9HwBL2eLu0GzRg
|
||||||
kEt3QD1ElohuwTx7XLkYf6LuDFy8kA5wFUPKUgxmoFsGZhMhmi8ysUkUxtYPPMD8
|
e8LDnZsGQCozI7h7x332+Wu/9Mbs0wJ1TslQbXt2vRhbve0IvPjNSi54RKI4r8uV
|
||||||
YLVOK8UX3sYUDdY7tQjlgz6nhMqGL7ekqxyA5PSCGlhg5siKIhltz1CzadNOrsqF
|
/iFnRqPp2ow030nvW+LYt5jcqyKK9poC9nVoytUU57Pc3VmyppOJxc8/AfIezo95
|
||||||
jHkiUCrDNu1ToRPllOw4WMwSzII/sf2oP3FJyE+/Rsl49rVjELLfC8eWPhG0yhXS
|
LFFWj2CjWr47UspHcqgk84cBP13LmUhK7IeHNBzoWl6LPztuVCczoy7wxn8fGCfS
|
||||||
XgGHbmvrm1QPl70dF+896QE/XtSydiqLUynCeIAvh61//ipS9lSZXpdDKEP5Q7ZD
|
XgFm8RoiId9S5XLhCZ7qV70HhWOZemd0PksBP054xuWvlDMe/HqxvxUmqDbH/vGv
|
||||||
/lTbPRH7Y7EZUgarjBtc2wYg3iaBkELtS5lnQeJawHQ8/M3TxdWmgEeBim/qr+A=
|
49o6a/FJyF2ncU01j72KMyn/ZbYevniX+QG+U7vWuhVRH9tRYYQUrgC0QnPqFKc=
|
||||||
=K+50
|
=duXn
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: DC6910268E657FF70BA7EC289974494E76938DDC
|
fp: DC6910268E657FF70BA7EC289974494E76938DDC
|
||||||
encrypted_regex: ^(password|value|ssh-key|api-key|user|username|privateKey|clientSecret|clientId|apiKey|extraArgs.*|.*Secret.*|extraEnvVars|.*SECRET.*|.*secret.*|key|.*Password|.*\.ya?ml)$
|
encrypted_regex: ^(password|value|ssh-key|api-key|user|username|privateKey|clientSecret|clientId|apiKey|extraArgs.*|.*Secret.*|extraEnvVars|.*SECRET.*|.*secret.*|key|.*Password|.*\.ya?ml)$
|
||||||
|
|||||||
@@ -32,8 +32,37 @@ spec:
|
|||||||
duration: 2160h # 90 days
|
duration: 2160h # 90 days
|
||||||
renewBefore: 360h # 15 days before expiry
|
renewBefore: 360h # 15 days before expiry
|
||||||
---
|
---
|
||||||
# semery.fr certificates are managed manually in certificates-secret.yaml
|
apiVersion: cert-manager.io/v1
|
||||||
# until OVH DNS API credentials are added for DNS-01 challenges
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: semery-fr
|
||||||
|
namespace: caddy
|
||||||
|
spec:
|
||||||
|
secretName: semery-fr-tls
|
||||||
|
issuerRef:
|
||||||
|
name: letsencrypt-production
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: semery.fr
|
||||||
|
dnsNames:
|
||||||
|
- semery.fr
|
||||||
|
duration: 2160h # 90 days
|
||||||
|
renewBefore: 360h # 15 days before expiry
|
||||||
|
---
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: wildcard-semery-fr
|
||||||
|
namespace: caddy
|
||||||
|
spec:
|
||||||
|
secretName: wildcard-semery-fr-tls
|
||||||
|
issuerRef:
|
||||||
|
name: letsencrypt-production
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: "*.semery.fr"
|
||||||
|
dnsNames:
|
||||||
|
- "*.semery.fr"
|
||||||
|
duration: 2160h # 90 days
|
||||||
|
renewBefore: 360h # 15 days before expiry
|
||||||
---
|
---
|
||||||
apiVersion: cert-manager.io/v1
|
apiVersion: cert-manager.io/v1
|
||||||
kind: Certificate
|
kind: Certificate
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ resources:
|
|||||||
- repository.yaml
|
- repository.yaml
|
||||||
- release.yaml
|
- release.yaml
|
||||||
- certificates.yaml
|
- certificates.yaml
|
||||||
- certificates-secret.yaml
|
- ovh-credentials-secret.yaml
|
||||||
- caddyfile.yaml
|
- caddyfile.yaml
|
||||||
secretGenerator:
|
secretGenerator:
|
||||||
- name: caddy-values
|
- name: caddy-values
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
# OVH API Credentials for DNS-01 Challenges
|
||||||
|
#
|
||||||
|
# OVH API credentials with the following permissions:
|
||||||
|
# - GET, POST, PUT, DELETE on /domain/zone/*
|
||||||
|
#
|
||||||
|
# SOPS will encrypt them on pre-commit.
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: ovh-credentials
|
||||||
|
namespace: caddy
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: caddy
|
||||||
|
app.kubernetes.io/component: ovh-credentials
|
||||||
|
type: Opaque
|
||||||
|
stringData:
|
||||||
|
applicationKey: ENC[AES256_GCM,data:kBPCJRdm3VeoFKsmig+l8g==,iv:Y21zRzFpA7tqjNFruHCIIZV8hsSGhypZhcWgh7AcUus=,tag:8F0160EP0ELVFe4bp2AarA==,type:str]
|
||||||
|
applicationSecret: ENC[AES256_GCM,data:0r9bolcuWfbgQ993L+wPZaqfLB4TXcptCFw+/D9t9LI=,iv:j1pdJI4DrAzQxP8W/qJ0UBg/2rZQn/Z3aY0qZcqJqQ8=,tag:wNk8FxsUXBUiiYEayl3c1g==,type:str]
|
||||||
|
consumerKey: ENC[AES256_GCM,data:79prnqUwFgpc6peVWYtkp+L66HuB7bcXHNljSdVkpqU=,iv:sxNGszLobl7/uK6HpXhuUlA9BiURS9j9bLjeY+iwrxw=,tag:JoOKkvK+y5k45U9M6TC1cA==,type:str]
|
||||||
|
sops:
|
||||||
|
lastmodified: "2026-07-09T22:12:21Z"
|
||||||
|
mac: ENC[AES256_GCM,data:xPUFPlXWHWY/c/EzhfQhWc0JsRZ6qvuB7amxksqkotSbIIYuw90YheKHNwj9ZEqlE2gSmZYI0Cog03KCZlijeX7qKOWDgiLSf4zFT/X0uxcUoOuWvrj2nISjqT+mUJFjzPPHwBgtObH+N0LEYGhURdeJgIvbKh15kZRNqxKlCQw=,iv:E9xOdeiX+lbLR8Lz3APEYudOeF5mQk0Nvq2byzXiSxg=,tag:shDwlpvDfzacKiPuqzQzrg==,type:str]
|
||||||
|
pgp:
|
||||||
|
- created_at: "2026-07-09T22:12:21Z"
|
||||||
|
enc: |-
|
||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
hQIMA7uy4qQr71wiAQ//b7KcKq2BXfSU8DynNDo/QlZ77lfCYHsPMutbNh5ckpCi
|
||||||
|
JPoy06kZ9JtwET86lnv8awUuztA1CPN6uarrGqokZW4zaATHmQ0M5qHHOXClnI+X
|
||||||
|
VIL3/mcCH/sTN+/RO0vmnPcah8XnETzy/51GDvoMAeFIndVz/t/uKbAErwch1+Ol
|
||||||
|
Ds51d0MrdZxCAXxYcWr9WcLK7rLCyFd0r+TFb4buHswNIRNQvzJti0rkPac7wFNE
|
||||||
|
vjb05wr3ejdes5P9drQF5sUhZXZHAWOoZUKGBm4hUBLaQqSfqFnskKeSuyVXR+di
|
||||||
|
xiqrkuvOydNSPVpO9M+qCyZqiiE+cPL1t8wwqXiNPUhibeKsdUKOibI/XGO4QvCr
|
||||||
|
wDZt/Dcj8JfVw6SFEUP/TVaP+SW4T8tEoxIScR17DEn/eKiFp/dFQZ9pokaKM2kd
|
||||||
|
uhxrO7/FbA5KDMK2IZncV40IioAG/caFswM944ShMbJ5IJlFQv7OASPjwtauGnuY
|
||||||
|
9O/7XMAZas7u+PhBuxqdQ/3YVrCVyYnvxsQ/+TbX6pIY1w9rgwh+XamVln083P+c
|
||||||
|
4gcBfL/1vv2RzVKhkAQ9k5++Af3Vn6JpkKu1FqUHVmOf3nH9vUxqQTwSwAu6Pi2W
|
||||||
|
6BZKq0UdbYi6v6Ozi06V1z4qa0t2IC+LOA5dILpReE7M2EM+b/tRRpp514NAmUzS
|
||||||
|
XAEAAY0b6IKDlwAqHQVAg2TuTDGHm7rHSpxtllsXx+902zYttisRZKjQgJuWLdST
|
||||||
|
kb4WPMRUq1y97BMJddXjf6L6ganzRSpDV/1cq832S8x+7Qe2aiQ6/nnLxP0I
|
||||||
|
=8mxw
|
||||||
|
-----END PGP MESSAGE-----
|
||||||
|
fp: DC6910268E657FF70BA7EC289974494E76938DDC
|
||||||
|
encrypted_regex: ^(data|stringData|.*.key|.*.crt)$
|
||||||
|
version: 3.10.2
|
||||||
@@ -35,35 +35,25 @@ health:
|
|||||||
volumes:
|
volumes:
|
||||||
- name: vhaudiquet-fr-tls
|
- name: vhaudiquet-fr-tls
|
||||||
secret:
|
secret:
|
||||||
secretName: ENC[AES256_GCM,data:vc6kDDdxbluL/BmJb4w9TKs=,iv:FLsFMqUQWs3vzuH6fO64qikNpSx/RGneZyow8WYXlo0=,tag:TVsfs/pUmiA6mYYwHgxDLw==,type:str]
|
secretName: ENC[AES256_GCM,data:mdTS+RBfbQiY0c5aezbTURE=,iv:gQRWoRmGujhptSXm16JhX6VSHbB4yMdC3T7tPH1vfJs=,tag:DViHZOwOIPmHJQWTPUO8cw==,type:str]
|
||||||
optional: ENC[AES256_GCM,data:I1ftGg==,iv:P/KwiMPHM+YYUPJ+M5GBcgZGRTrIskbCir4fQH1XUug=,tag:hbqOTv6BrmkkQ/kE3bCx+A==,type:bool]
|
optional: ENC[AES256_GCM,data:apLSVg==,iv:4ZZa85zmTuYb7D/p4mLZO++esFrPQyQ5xHCtT+aghS4=,tag:wWAEf3XWYKvsjwpfpyCb7w==,type:bool]
|
||||||
- name: wildcard-vhaudiquet-fr-tls
|
- name: wildcard-vhaudiquet-fr-tls
|
||||||
secret:
|
secret:
|
||||||
secretName: ENC[AES256_GCM,data:KSaPirEmnfOHqtwNr3SoK1IsCZ6HalzH2tw=,iv:TL9/VqSq2fW+2se9GK+bopfbcHu/lgpjlD4dHLKf7s0=,tag:SKgvfnPvca9o3bXxILLX9A==,type:str]
|
secretName: ENC[AES256_GCM,data:Ww5/viWqr5mI51FqHizTRerAZnEyQONqdEg=,iv:VAMLvZ9yJxUCh7Kjf43J+M+ellkm5Xi3ZD5AlO95Rm4=,tag:F6H8LBi9kL9rrXJgVSbAmA==,type:str]
|
||||||
optional: ENC[AES256_GCM,data:65Ht9Q==,iv:EM0rH3i8MVVDXXrARxL6djISin8ScCEdZ/J43WL7A0I=,tag:rOcLiIOaDAqW4C5j6Zv+tA==,type:bool]
|
optional: ENC[AES256_GCM,data:LQEFAA==,iv:JkudOsHgn8qLEwqWhsuWnXjpCLJ3XrEexXtzjmOD+/Y=,tag:amUBIkXQIZnGQtxAAQ5mcw==,type:bool]
|
||||||
# semery.fr certs from manual secret (until OVH DNS API is configured)
|
# semery.fr certs from cert-manager (OVH DNS-01)
|
||||||
- name: semery-fr-tls
|
- name: semery-fr-tls
|
||||||
secret:
|
secret:
|
||||||
secretName: ENC[AES256_GCM,data:kDiP6Hg4nLMM4FY6/C21YnFn,iv:bFgsIMkgHfSy8ZsK3NLc9cZ/5TRV3B2WzWkCFBGl5uc=,tag:atz2qInNTSX3u9b5N4fPnQ==,type:str]
|
secretName: ENC[AES256_GCM,data:dmLfoVbH9QKPMXPZZw==,iv:l9BKz66sdl9SssNzaz8yWoQ84ewDQprMv3rcHJQZhRA=,tag:NudQDM8eKC5aF6vX2ZQVVg==,type:str]
|
||||||
optional: ENC[AES256_GCM,data:vfjgpQ==,iv:XZBZyekKMQQzrFE05vG2w6Pwd2ZQ+RerjF/T8FKbuc4=,tag:SVRfxbOLG7z8fWyxclrvzQ==,type:bool]
|
optional: ENC[AES256_GCM,data:Xc2tmw==,iv:xSa/xz/WibDqExKXjKSwLm5w8DOw9aZY44O1TZalfO8=,tag:Mpqi2ipn82+eWv8T2YvSng==,type:bool]
|
||||||
items:
|
|
||||||
- key: ENC[AES256_GCM,data:UumzQqzt/iy7oS7P+Q==,iv:3zV2rTEpHclFVRYRACzrs4+IXLOIw8HMSgWLyQ6fLp0=,tag:rOlhuN2qIN0vtwgahtvKvQ==,type:str]
|
|
||||||
path: ENC[AES256_GCM,data:QfXoPe/t8Q==,iv:Cj/4ngLtDha5fd5d7gn6OONGNdAjoEwq1zJc+xxYJTM=,tag:9q1DbomT9p4DonVsu3OBEw==,type:str]
|
|
||||||
- key: ENC[AES256_GCM,data:m72H1Se5snCNyNpe9w==,iv:ybvgDs1PNalk3i50mkIbph5KWEUefaDyoVUvKjqoJP0=,tag:+0c/3vDxjbOp6qn5VXvPxg==,type:str]
|
|
||||||
path: ENC[AES256_GCM,data:DJT6fW8uZQ==,iv:ImJQ19fJ2PBwil64M/vUu2TAhVjTYK14rfiTojK2E7A=,tag:2OkaIF6u7hCqsS2Bkp9v9w==,type:str]
|
|
||||||
- name: wildcard-semery-fr-tls
|
- name: wildcard-semery-fr-tls
|
||||||
secret:
|
secret:
|
||||||
secretName: ENC[AES256_GCM,data:AZVY6PS2tzVnU5mSVlbH621e,iv:HToh6ymWjFGK+xw1+MKAP2RGKJd+PuFC4My7erFeAOc=,tag:W2pksdZFrEFKzPrGwJ+d8g==,type:str]
|
secretName: ENC[AES256_GCM,data:jwwNceE6ZAD0bdUFceBBG+HQPjmLSQ==,iv:15rvS8NjtKszT8LFS9Z3DLCVMBwQ0GnY+o3DSr+G3jA=,tag:GMZ68i+1XmcvIJrOZxBo1w==,type:str]
|
||||||
optional: ENC[AES256_GCM,data:LbarYQ==,iv:FUiIoSlbc/5Tj1t2LIxEPC6Ey7DgSaezrr2+lTr8roY=,tag:dlqb5SFpm1JDwn9qwaTP8A==,type:bool]
|
optional: ENC[AES256_GCM,data:8p7hYQ==,iv:a3Al2ph6xuJCXkLaFW6K7WSJss51/d9kVrX3Xuh/5e4=,tag:JYUYRsmEN7brNrENFPe/DA==,type:bool]
|
||||||
items:
|
|
||||||
- key: ENC[AES256_GCM,data:8xY5dDL5KSNDAk1mTB58WtriIRNeFw==,iv:Ng7twP5cr/TfKpENug7kgZ1Pa24vhV0/wFtxCelRLZU=,tag:powPtyjVogU/NO4LSyT2pA==,type:str]
|
|
||||||
path: ENC[AES256_GCM,data:AIvmIcXtDQ==,iv:JshIK8HzTkMlZsDcdX0AIsrkyLST3qUdtLkEP29E/O8=,tag:njYcODU/bWN7XXDwsHV9Uw==,type:str]
|
|
||||||
- key: ENC[AES256_GCM,data:NqW+4UFJx3AjfS9BFoG3dhOsbHoy4g==,iv:TMMd96OebuBwBT80BzXDYHD/38l+cSDQ9q067/Dqkk0=,tag:IOL89DD3vDjbNm/qYbSUig==,type:str]
|
|
||||||
path: ENC[AES256_GCM,data:f5PVx/WfxQ==,iv:4aFgPWiyp0lnQFboQCprI9lAGCkSfrO03TlD/Pvx0do=,tag:aIvncQKaqtNu15jnpVSSww==,type:str]
|
|
||||||
- name: buildpath-win-tls
|
- name: buildpath-win-tls
|
||||||
secret:
|
secret:
|
||||||
secretName: ENC[AES256_GCM,data:nUF53gg1cNg5fEWLsXmEh1Q=,iv:XUxXBDMrddGey7eoIebW/myOD0P/UDhY6bX4QSzT3X0=,tag:foE8OG/JcknTRzsxiKKzuA==,type:str]
|
secretName: ENC[AES256_GCM,data:kTI0dBzdTAYXuvSZwZC9REg=,iv:xf4pQABQGiuv3IJtiZhNMsLeDPVef2awVW1DmDThOHI=,tag:74IqPca8TuCFuIpJ8RpQ2Q==,type:str]
|
||||||
optional: ENC[AES256_GCM,data:tCGcgw==,iv:LxIjr/EsHifL36wFkc1rb1irfk9fyWAoBxGaf+ksu1U=,tag:A96i+w6cTAk7NTxumcXzGw==,type:bool]
|
optional: ENC[AES256_GCM,data:mxxqOA==,iv:p1omSzhLh4yYs303OZCE5DfCNrzjAxEo+TOfezw/oCo=,tag:4ye1QalWmtW98B37DtkcuQ==,type:bool]
|
||||||
- name: routes
|
- name: routes
|
||||||
configMap:
|
configMap:
|
||||||
name: caddy-routes
|
name: caddy-routes
|
||||||
@@ -111,27 +101,27 @@ affinity:
|
|||||||
app.kubernetes.io/name: caddy
|
app.kubernetes.io/name: caddy
|
||||||
topologyKey: kubernetes.io/hostname
|
topologyKey: kubernetes.io/hostname
|
||||||
sops:
|
sops:
|
||||||
lastmodified: "2026-06-16T10:08:07Z"
|
lastmodified: "2026-07-09T21:17:10Z"
|
||||||
mac: ENC[AES256_GCM,data:HeWRLHO8x7tJ3fGpSW0Pz6tkuYgQh6QJHF3q9KZD8EgCyuxxrnRh74sEOF9e/KjtmaNKF2ak6QkR2Taa9qD3yblMJp9Zjc3ivC2aMEKxtdJN8B3bxRr1Ln1Na2kSny3+X/c1nC1swWyNNgeQJvKQlvhXjK5S56Y5NG/n/PBT3Q4=,iv:HyiLtk4ueORKezmpmY/I4vXPBwEudqkwNpk4fgDheeY=,tag:2W46a3geF4Fi8jDsSCPNjA==,type:str]
|
mac: ENC[AES256_GCM,data:5APgoOMa+m5xjn+wurqyOtBoohpV271AnW1Ic4Thcg88bXryhr4Xn86Yo7fMbE+N3YqJMCaeaH6hm4iY8IIhCHgO2ybgMq50Bo8AqWxr6MKEpTJDQS5vSSWPq/Y5qr7B3f5/gOyxwIGslF4isVRaQzlcjoKzfvHsZX8SPdFhXT8=,iv:ZuareabZmxIyhh8kZs+eHGeUI7NZhzxER6KJE1/EiWE=,tag:zQuTYSrU76YEf1u2312ruw==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2026-06-16T10:08:07Z"
|
- created_at: "2026-07-09T21:17:10Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
hQIMA7uy4qQr71wiARAAhoTczAWaCpuZbHq+NrssLQG4Ys0yYNYM9nflFEOkD1Sa
|
hQIMA7uy4qQr71wiAQ//eR5eIclcLkl8wtERUoVHXL5KGKzEaxyVv9D5gHz51C31
|
||||||
rTEAhJACKNFYKJ6P2V4rBQtKHRdqMdVfrtaumgSvuKBX4wJW+nG/LUSXENJV/UD9
|
kmAfrAnjT9G5UeeoJlW8XLkh1IWNhArNBMtoiCNUPAtfVDxszs5IwPWul+s3wJhc
|
||||||
VqxiujfWKgps4XfNfuM/a7w9IbU7rk+mh+LBwwRpQeqEs7j1eZnJjQCBW4zGFeav
|
X7sDq7EnIgaJr2IszIOTJ4PYxZ/uhyMdqmvRTZXMaz43F96cuDLctV4CFaiig4aJ
|
||||||
XWYx2VmqfwQ/XhVaiSCvJjeJJk/U54Dot9W2ZoKCX+5zyZ+dWsX2ggXQWsoQCfOK
|
IcNlPIyYyS4tuaGB+ScLtbcDDhNc/8VRWn09SRtpTop+PV4KRX6AqLmhGOc9Jf9l
|
||||||
uSTjjVKw80VvrDMX/TfbvNQDHNsljOSSeScA+lx6HElbDcAyUHxE99UAi6RVQazm
|
Dg3Gqdkaxl3OuqIvcrTmEPBe3sjnjIIdtJeG4SAbMUzj1xoKupXeDBZDnfmS5nku
|
||||||
EjEHsVHvyR0Y/7hvVlo8FY7XS/81pXGLN22AcWbd1fIZlitRa9YbHZH1YWzWRzr5
|
42WR5H4RInzusj5NXP50C7AeLD4qavB9hl5CaxzA6TVG1X7LcpmcqBsVVuFcSjZj
|
||||||
JB2S+UMEOigw8WPg/1BAiFj3bCRn8aDyAMdUEKlbcXCYwoLynG6zVbgeuntYq0Zl
|
T80iKklV6Ct0MLlmbxlKFTJm8fSKevhS/hdfrkUNcqc4N6eBb8tx93x+FcDn0A6P
|
||||||
Y4zAi4+G+fHvdAqQz44p+AyP9hgS/qMBQwsUnAxGfltfVBEew2I/Vz5OugtDyLIW
|
c1zPSKj1vs326nJSHw87wvooQWn/f9j+Om1KLOR/MiUWmoEAbgkIHi3+k2wpzFb/
|
||||||
UYrk+5LR+7cfJNCyCHQEyJL/YPsL1GDR1SP5YCrsDnuXPCEgwyRRLHFW8j2KCtLu
|
faKpshye0/XA/CZHFePv/U7sw8nKhfPhJCuO/IRrHKYzx0u/aqgOtPCURh5hS/fU
|
||||||
YX59FbVLqo2xzT5nEaIYbLLhEq3+5KaVIBqzGWAwSBbu7bXru6jIG6prVwofJQxx
|
8dPQkbywgN67IRRKVz70cxn367cP1vn7L1AmzJfBd56NnViXXlS/DuitpnyTQpnP
|
||||||
HCz2leboRZ3ZrC4Y4itHHuMfmSCtiildRhgPtVnvUdiQz0dS+RLNesH4hRvvxBPS
|
tLG6qelq3Ul2A1J3BB1pfHR27IpKzd1UPD7HMhvvgSA7ErLq/VhF/kT1dx6s1fXS
|
||||||
XgF9gp+9JE/5XMxUmNNf0yUC1mlQuUHbC7JqLLpLBNAtQwljDLMIgPG0y5n2r0C3
|
XgFZ5XcyJQRc4Uxh2eFeEPOdWMAFRps6scfBsQuWR8m3cQvLatzcku1S/YDp56Kn
|
||||||
zokdaebVj2XV9r7X25SQMyLzTdoXYqgGsoPBFnqQNpycg2HpmBX9isvqjbZ6x/g=
|
oUZmfvdQGpUuxsumVYCqk1+mQn02lkA1p2Y4ztrpLDCbhZXZ/fIT6Y1uYX+c0ew=
|
||||||
=AqxW
|
=0kw6
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: DC6910268E657FF70BA7EC289974494E76938DDC
|
fp: DC6910268E657FF70BA7EC289974494E76938DDC
|
||||||
encrypted_regex: ^(password|value|ssh-key|api-key|user|username|privateKey|clientSecret|clientId|apiKey|extraArgs.*|.*Secret.*|extraEnvVars|.*SECRET.*|.*secret.*|key|.*Password|.*\.ya?ml)$
|
encrypted_regex: ^(password|value|ssh-key|api-key|user|username|privateKey|clientSecret|clientId|apiKey|extraArgs.*|.*Secret.*|extraEnvVars|.*SECRET.*|.*secret.*|key|.*Password|.*\.ya?ml)$
|
||||||
|
|||||||
@@ -22,3 +22,22 @@ spec:
|
|||||||
dnsZones:
|
dnsZones:
|
||||||
- vhaudiquet.fr
|
- vhaudiquet.fr
|
||||||
- buildpath.win
|
- buildpath.win
|
||||||
|
# OVH solver for semery.fr (via cert-manager-webhook-ovh)
|
||||||
|
- dns01:
|
||||||
|
webhook:
|
||||||
|
groupName: acme.aureq.com
|
||||||
|
solverName: ovh
|
||||||
|
config:
|
||||||
|
endpoint: ovh-eu
|
||||||
|
applicationKeyRef:
|
||||||
|
name: ovh-credentials
|
||||||
|
key: applicationKey
|
||||||
|
applicationSecretRef:
|
||||||
|
name: ovh-credentials
|
||||||
|
key: applicationSecret
|
||||||
|
consumerKeyRef:
|
||||||
|
name: ovh-credentials
|
||||||
|
key: consumerKey
|
||||||
|
selector:
|
||||||
|
dnsZones:
|
||||||
|
- semery.fr
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
namespace: cert-manager
|
||||||
|
resources:
|
||||||
|
- repository.yaml
|
||||||
|
- release.yaml
|
||||||
|
secretGenerator:
|
||||||
|
- name: cert-manager-webhook-ovh-values
|
||||||
|
files:
|
||||||
|
- values.yaml=values.yaml
|
||||||
|
configurations:
|
||||||
|
- kustomizeconfig.yaml
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
nameReference:
|
||||||
|
- kind: HelmRepository
|
||||||
|
version: v1
|
||||||
|
fieldSpecs:
|
||||||
|
- path: spec/chart/spec/sourceRef/name
|
||||||
|
kind: HelmRelease
|
||||||
|
- kind: Secret
|
||||||
|
version: v1
|
||||||
|
fieldSpecs:
|
||||||
|
- path: spec/valuesFrom/name
|
||||||
|
kind: HelmRelease
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: cert-manager-webhook-ovh
|
||||||
|
namespace: cert-manager
|
||||||
|
spec:
|
||||||
|
interval: 1m
|
||||||
|
chart:
|
||||||
|
spec:
|
||||||
|
sourceRef:
|
||||||
|
kind: HelmRepository
|
||||||
|
name: cert-manager-webhook-ovh
|
||||||
|
namespace: cert-manager
|
||||||
|
chart: cert-manager-webhook-ovh
|
||||||
|
version: "v0.9.13"
|
||||||
|
interval: 1m
|
||||||
|
valuesFrom:
|
||||||
|
- kind: Secret
|
||||||
|
name: cert-manager-webhook-ovh-values
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
|
kind: HelmRepository
|
||||||
|
metadata:
|
||||||
|
name: cert-manager-webhook-ovh
|
||||||
|
namespace: cert-manager
|
||||||
|
spec:
|
||||||
|
interval: 1m
|
||||||
|
url: https://aureq.github.io/cert-manager-webhook-ovh
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
# cert-manager-webhook-ovh Values
|
||||||
|
# groupName must match the ClusterIssuer webhook stanza
|
||||||
|
groupName: acme.aureq.com
|
||||||
|
# cert-manager deployment configuration for RBAC
|
||||||
|
# The webhook creates ClusterRole/RoleBinding so cert-manager's
|
||||||
|
# service account can create the "ovh" ChallengePayload resources
|
||||||
|
certManager:
|
||||||
|
namespace: cert-manager
|
||||||
|
serviceAccountName: cert-manager
|
||||||
|
# Pod configuration
|
||||||
|
pod:
|
||||||
|
replicas: 1
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 10m
|
||||||
|
memory: 32Mi
|
||||||
|
limits:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 128Mi
|
||||||
|
sops:
|
||||||
|
lastmodified: "2026-07-09T22:31:08Z"
|
||||||
|
mac: ENC[AES256_GCM,data:QjrNj355tJVZRsYQdkM73Ld7X8EvMM7O/1vF3QnTYJ9vWbh78irLocbtnyBeaR9o3g0mxO6Ugjlukj+S0HhIX/WS1XHEfs/3n3rE0zS/fxGJ0D3Alam/n/WPOsYHUiCBD86JtU83AjgncISY4yp/VheV3kRgSdl+ye4AGAjhq7A=,iv:p8yqNCcskTfDfEGbM5Qyb60C4pFv4BOuLpEApEzHLFY=,tag:KntExeQwJbBREaz2nY+1uQ==,type:str]
|
||||||
|
pgp:
|
||||||
|
- created_at: "2026-07-09T22:31:08Z"
|
||||||
|
enc: |-
|
||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
hQIMA7uy4qQr71wiAQ/8Dn4nEIbQXuETxE6RUBkNTO/eN5pHh47lqSwBBbYDSi8C
|
||||||
|
8rcJmdq8P+v00geLdMlM35OcjHFb9UCVeHFsAEYt6Q2jL4QNa2aOEDOqGnhKP+zx
|
||||||
|
KKtW2Ngx76Ow9N2C5JN9DXk9n+PC/qWdPLNJY+GiW/KbPmVxAulJpmYlJHfs1EOh
|
||||||
|
0mSRSS+7sgGLHWmgU362zC508lkKxh8HKxmq1+1lf+fWIe8N7Sl0fx55kq168hae
|
||||||
|
NcdogRpoVT555hRils7eqzj0C/KTVOi7CR4pS7VJyiNy2fu2OASmmcM6UEqCyJfV
|
||||||
|
NTUdMpnjb05UwfbuUnIg6j/FoqS49ufGxKPrM9t7JrFSuyGqduF7P/ifv5zwMuIZ
|
||||||
|
SNeR/X8xUksK6R4/uTmUx5sgF+Jv7tCRvcp+DhsDe1mMmO8czXC5Mt3cR+uwYoms
|
||||||
|
hN+9/oYEZr13qn5Ek0dy9NESkZIzYPCXYXZrx8GLqaHCJEQbpIZCAN+llOyQaQzU
|
||||||
|
jcvPAYbTewBw4ewKUS0KcvLd1pfzvYyvtzwHuMIVJwrf7x5bzhzxAgVOGkEVlVq/
|
||||||
|
7pGO9TYXGl3kD7tf25oCGzAerVC+EVcL11sq4zawvL4PovEZFP9mzhR7EfY3t/3C
|
||||||
|
vGVu6vPmCJOwdis9+Kdr3PKubnMqWGn5KCCX1x13qhsHc239N7cVKkyx3dTBaArS
|
||||||
|
XAG6KxKe/cQicIVC8/N1Cna9uQnTF5ZnFVfJNW1nkYyF1E+ofW6kKDr3ITotKLDP
|
||||||
|
hXXPT+vsB2fL3faBG4xb6owrMuQ1S0DmB3mqjSCXtpS7q0FDg22Tq9BtaEni
|
||||||
|
=x1th
|
||||||
|
-----END PGP MESSAGE-----
|
||||||
|
fp: DC6910268E657FF70BA7EC289974494E76938DDC
|
||||||
|
encrypted_regex: ^(password|value|ssh-key|api-key|user|username|privateKey|clientSecret|clientId|apiKey|extraArgs.*|.*Secret.*|extraEnvVars|.*SECRET.*|.*secret.*|key|.*Password|.*\.ya?ml)$
|
||||||
|
version: 3.10.2
|
||||||
@@ -14,6 +14,7 @@ spec:
|
|||||||
path: ./kubernetes/system/cert-manager-issuer
|
path: ./kubernetes/system/cert-manager-issuer
|
||||||
dependsOn:
|
dependsOn:
|
||||||
- name: cert-manager
|
- name: cert-manager
|
||||||
|
- name: cert-manager-webhook-ovh
|
||||||
decryption:
|
decryption:
|
||||||
provider: sops
|
provider: sops
|
||||||
secretRef:
|
secretRef:
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
# Flux Kustomization for cert-manager-webhook-ovh
|
||||||
|
# Depends on cert-manager being fully operational (CRDs installed)
|
||||||
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
|
kind: Kustomization
|
||||||
|
metadata:
|
||||||
|
name: cert-manager-webhook-ovh
|
||||||
|
namespace: flux-system
|
||||||
|
spec:
|
||||||
|
interval: 10m
|
||||||
|
prune: true
|
||||||
|
sourceRef:
|
||||||
|
kind: GitRepository
|
||||||
|
name: homeprod
|
||||||
|
path: ./kubernetes/system/cert-manager-webhook-ovh
|
||||||
|
dependsOn:
|
||||||
|
- name: cert-manager
|
||||||
|
decryption:
|
||||||
|
provider: sops
|
||||||
|
secretRef:
|
||||||
|
name: flux-sops
|
||||||
@@ -5,4 +5,5 @@ kind: Kustomization
|
|||||||
resources:
|
resources:
|
||||||
- webhook.yaml
|
- webhook.yaml
|
||||||
- cert-manager.yaml
|
- cert-manager.yaml
|
||||||
|
- cert-manager-webhook-ovh.yaml
|
||||||
- cert-manager-issuer.yaml
|
- cert-manager-issuer.yaml
|
||||||
|
|||||||
Reference in New Issue
Block a user