mirror of
https://github.com/rubenhensen/k8scd.git
synced 2026-11-15 14:29:09 +01:00
Compare commits
9
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
30540ea579 | ||
|
|
53d74768ad | ||
|
|
20bd3a4bca | ||
|
|
6cba1a9363 | ||
|
|
acfce6645e | ||
|
|
0de86dd65c | ||
|
|
d7ffdc05f6 | ||
|
|
c0f8034e14 | ||
|
|
a15a4f7c75 |
No files matched your search
+10
-4
@@ -360,10 +360,16 @@ PR before Argo CD applies it.
|
||||
cover every app folder, a regex manager reads `imageName` in
|
||||
`*/postgresql-cluster*.yaml`, and major PostgreSQL updates are off
|
||||
(those need pg_upgrade or a dump). Expect a batch of new PRs
|
||||
(2026-10-25; `renovate-config-validator` passes). They only come once
|
||||
fewer than 10 Renovate PRs are open (`config:recommended`'s
|
||||
`prConcurrentLimit`); until then they wait under "Rate-Limited" on the
|
||||
Dependency Dashboard (#2)
|
||||
(2026-10-25). They only come once fewer than 10 Renovate PRs are open
|
||||
(`config:recommended`'s `prConcurrentLimit`); until then they wait
|
||||
under "Rate-Limited" on the Dependency Dashboard (#2)
|
||||
- The other folders were left out with a `(?!…)` lookahead. Renovate
|
||||
compiles these patterns with RE2, which has no lookahead, so it
|
||||
rejected the config and stopped opening PRs (#32). Each manager now
|
||||
takes every folder and skips the others through its own
|
||||
`ignorePaths`. Renovate 44.181.6 with RE2 loaded fails the old config
|
||||
with #32's error and passes the new one, and its matcher picks the
|
||||
same 166 files as the old pattern did
|
||||
- [x] Merged 2026-10-25 and checked after the sync: #28 cert-manager
|
||||
v1.21.3 (security release; all three pods on v1.21.3), #24
|
||||
external-snapshotter v8.7.0 (its manifests ship the v8.6.0 image, as
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# node001 passes TLS for the tunneled hosts through without opening it, so
|
||||
# without this every request arrives from 46.224.26.65. Wordfence locks that
|
||||
# address out after 20 failed logins (2026-10-26), and with it everyone who
|
||||
# logs in to scoutingmbg.nl. node001 puts a PROXY header with the visitor's
|
||||
# address in front of each connection; Envoy takes the address from there
|
||||
# and adds it to X-Forwarded-For.
|
||||
#
|
||||
# Optional, because s2 and ntfy2 point straight at home and their clients
|
||||
# send no header, and neither does node001's proxy on port 80. The price:
|
||||
# whoever connects to the home address directly can send a header of their
|
||||
# own and claim any address.
|
||||
apiVersion: gateway.envoyproxy.io/v1alpha1
|
||||
kind: ClientTrafficPolicy
|
||||
metadata:
|
||||
name: proxy-protocol
|
||||
namespace: envoy-gateway-system
|
||||
spec:
|
||||
targetRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: homelab
|
||||
proxyProtocol:
|
||||
optional: true
|
||||
+14
-3
@@ -127,6 +127,9 @@ spec:
|
||||
TRANSFORMERS_CACHE: /cache
|
||||
HF_XET_CACHE: /cache/huggingface-xet
|
||||
MPLCONFIGDIR: /cache/matplotlib-config
|
||||
# The optimized models of v3.3.0: faster, less memory,
|
||||
# and the same results, so no jobs to run again.
|
||||
MACHINE_LEARNING_MODEL_REVISION: v2
|
||||
# Trust store without the compromised eMudhra
|
||||
# intermediates; requests would otherwise use certifi.
|
||||
SSL_CERT_FILE: /etc/ssl/certs/ca-certificates.crt
|
||||
@@ -139,11 +142,19 @@ spec:
|
||||
globalMounts:
|
||||
- path: /etc/ssl/certs
|
||||
readOnly: true
|
||||
# The models and their one-off preparation, kept across restarts.
|
||||
# Downloaded again if lost, so no backups: the no-backup group
|
||||
# keeps it out of Longhorn's default one (backup-daily), and
|
||||
# Velero skips that label too (velero/skip-emptydir-policy.yaml).
|
||||
cache:
|
||||
enabled: true
|
||||
# Optional: to avoid downloading the ML models every start, use
|
||||
# a persistentVolumeClaim with size, accessMode and storageClass
|
||||
type: emptyDir
|
||||
type: persistentVolumeClaim
|
||||
storageClass: longhorn
|
||||
accessMode: ReadWriteOnce
|
||||
size: 10Gi
|
||||
labels:
|
||||
recurring-job.longhorn.io/source: enabled
|
||||
recurring-job-group.longhorn.io/no-backup: enabled
|
||||
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
|
||||
@@ -173,12 +173,18 @@ in
|
||||
# - mail.rubenhensen.nl (and anything else) → local stalwart on 8443
|
||||
# - tunneled hosts → home cluster ingress on 443
|
||||
# - s1 / ntfy1.rubenhensen.nl → local nginx on 8444 (Gatus, ntfy)
|
||||
#
|
||||
# Each connection starts with a PROXY header that carries the visitor's
|
||||
# address, so the home cluster sees who is asking instead of this box
|
||||
# (gateway/proxy-protocol.yaml in k8scd). nginx sends the header to
|
||||
# every upstream or none, so the local ones go through a hop on
|
||||
# 8445/8446 that takes it off again.
|
||||
streamConfig = ''
|
||||
map $ssl_preread_server_name $tunnel_upstream {
|
||||
${sniMapEntries}
|
||||
s1.rubenhensen.nl 127.0.0.1:8444;
|
||||
ntfy1.rubenhensen.nl 127.0.0.1:8444;
|
||||
default 127.0.0.1:8443;
|
||||
s1.rubenhensen.nl 127.0.0.1:8446;
|
||||
ntfy1.rubenhensen.nl 127.0.0.1:8446;
|
||||
default 127.0.0.1:8445;
|
||||
}
|
||||
|
||||
server {
|
||||
@@ -186,6 +192,17 @@ ${sniMapEntries}
|
||||
listen [::]:443;
|
||||
proxy_pass $tunnel_upstream;
|
||||
ssl_preread on;
|
||||
proxy_protocol on;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 127.0.0.1:8445 proxy_protocol;
|
||||
proxy_pass 127.0.0.1:8443;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 127.0.0.1:8446 proxy_protocol;
|
||||
proxy_pass 127.0.0.1:8444;
|
||||
}
|
||||
'';
|
||||
|
||||
|
||||
+18
-2
@@ -5,8 +5,16 @@
|
||||
"customManagers:githubActionsVersions"
|
||||
],
|
||||
"argocd": {
|
||||
"description": "Every app folder; Renovate's regexes are RE2, which has no lookahead, so the other folders are skipped through ignorePaths",
|
||||
"managerFilePatterns": [
|
||||
"/^(?!(nix-infra-machine|backup-testing|docs|tools|\\.github)/)[^/]+/.+\\.yaml$/"
|
||||
"/^[^/]+/.+\\.yaml$/"
|
||||
],
|
||||
"ignorePaths": [
|
||||
"nix-infra-machine/**",
|
||||
"backup-testing/**",
|
||||
"docs/**",
|
||||
"tools/**",
|
||||
".github/**"
|
||||
]
|
||||
},
|
||||
"helm-values": {
|
||||
@@ -15,8 +23,16 @@
|
||||
]
|
||||
},
|
||||
"kubernetes": {
|
||||
"description": "Every app folder, as for argocd",
|
||||
"managerFilePatterns": [
|
||||
"/^(?!(nix-infra-machine|backup-testing|docs|tools|\\.github)/)[^/]+/.+\\.yaml$/"
|
||||
"/^[^/]+/.+\\.yaml$/"
|
||||
],
|
||||
"ignorePaths": [
|
||||
"nix-infra-machine/**",
|
||||
"backup-testing/**",
|
||||
"docs/**",
|
||||
"tools/**",
|
||||
".github/**"
|
||||
]
|
||||
},
|
||||
"customManagers": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
# Volume policy for the backup schedules. emptyDir volumes hold nothing
|
||||
# worth keeping, and backing them up fails when the pod is gone before its
|
||||
# volume is read, as happens with Velero's own repository maintenance jobs.
|
||||
# PVCs in Longhorn's no-backup group (caches, such as immich's ML models)
|
||||
# are skipped too.
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
@@ -14,3 +16,8 @@ data:
|
||||
- emptyDir
|
||||
action:
|
||||
type: skip
|
||||
- conditions:
|
||||
pvcLabels:
|
||||
recurring-job-group.longhorn.io/no-backup: enabled
|
||||
action:
|
||||
type: skip
|
||||
Reference in new issue
Block a user