RAILIANCE-WP-0016: finish unattended hybrid Option A backups
Some checks are pending
CI Smoke / host-smoke (push) Waiting to run
CI Smoke / container-smoke (push) Waiting to run

Core in-cluster CronJobs with cnpg-option-a-backup image + NetworkPolicy;
R01 activity-core schedule enabled; status healthy; evidence recorded.
This commit is contained in:
tegwick 2026-07-22 20:34:24 +02:00
parent 65e71884a9
commit 4a06c0884a
6 changed files with 196 additions and 158 deletions

View file

@ -0,0 +1,72 @@
# Allow Option A backup Jobs to reach kube-api, DNS, and HTTPS offsite (Nextcloud).
# databases/ has default-deny; CNPG cluster pods already have kube-api egress by label.
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-egress-cnpg-option-a-backup
namespace: databases
labels:
app.kubernetes.io/part-of: railiance-apps
railiance.apps/backup-lane: option-a
spec:
podSelector:
matchLabels:
railiance.apps/backup-lane: option-a
policyTypes:
- Egress
egress:
# kube-api (in-cluster service + node port forms)
- ports:
- port: 443
protocol: TCP
- port: 6443
protocol: TCP
# DNS
- ports:
- port: 53
protocol: UDP
- port: 53
protocol: TCP
# Nextcloud WebDAV HTTPS (and general HTTPS for future mirrors)
- ports:
- port: 443
protocol: TCP
to:
- namespaceSelector: {}
# allow all namespaces + external via empty podSelector not possible;
# for external CIDR use 0.0.0.0/0
- ipBlock:
cidr: 0.0.0.0/0
---
# Some CNI stacks need separate CIDR-only rules for kube-api ClusterIP
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-egress-cnpg-option-a-backup-kubeapi-cidr
namespace: databases
labels:
app.kubernetes.io/part-of: railiance-apps
railiance.apps/backup-lane: option-a
spec:
podSelector:
matchLabels:
railiance.apps/backup-lane: option-a
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 10.43.0.0/16
ports:
- port: 443
protocol: TCP
- port: 6443
protocol: TCP
- to:
- ipBlock:
cidr: 10.42.0.0/16
ports:
- port: 443
protocol: TCP
- port: 6443
protocol: TCP