backup: scope Soteria permissions to Longhorn mode

This commit is contained in:
jenkins 2026-10-03 15:58:22 -05:00
parent b119076cca
commit 4659653692
3 changed files with 51 additions and 4 deletions

View File

@ -6,6 +6,7 @@ resources:
- metis-configmap.yaml
- metis-data-pvc.yaml
- soteria-configmap.yaml
- soteria-state-secrets.yaml
- ariadne-serviceaccount.yaml
- soteria-serviceaccount.yaml
- ariadne-rbac.yaml

View File

@ -13,12 +13,9 @@ rules:
- apiGroups: [""]
resources: ["pods/log"]
verbs: ["get"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "list", "create", "update", "delete"]
- apiGroups: ["batch"]
resources: ["jobs"]
verbs: ["get", "list", "create", "delete"]
verbs: ["get", "list"]
- apiGroups: ["longhorn.io"]
resources: ["backups"]
verbs: ["get", "list"]
@ -35,3 +32,33 @@ subjects:
- kind: ServiceAccount
name: soteria
namespace: maintenance
---
# Longhorn mode needs only the existing policy/usage records and B2 credential.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: soteria-state
namespace: maintenance
rules:
- apiGroups: [""]
resources: ["secrets"]
resourceNames: ["soteria-policies", "soteria-backup-usage"]
verbs: ["get", "update"]
- apiGroups: [""]
resources: ["secrets"]
resourceNames: ["soteria-restic"]
verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: soteria-state
namespace: maintenance
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: soteria-state
subjects:
- kind: ServiceAccount
name: soteria
namespace: maintenance

View File

@ -0,0 +1,19 @@
# services/maintenance/apps/soteria-state-secrets.yaml
# No data field: Soteria owns these values; Flux only provisions missing records.
apiVersion: v1
kind: Secret
metadata:
name: soteria-policies
namespace: maintenance
annotations:
kustomize.toolkit.fluxcd.io/prune: disabled
type: Opaque
---
apiVersion: v1
kind: Secret
metadata:
name: soteria-backup-usage
namespace: maintenance
annotations:
kustomize.toolkit.fluxcd.io/prune: disabled
type: Opaque