atlas-iac/services/maintenance/apps/soteria-rbac.yaml

65 lines
1.5 KiB
YAML

# services/maintenance/apps/soteria-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: soteria
rules:
- apiGroups: [""]
resources: ["persistentvolumeclaims", "persistentvolumes"]
verbs: ["get", "list"]
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list"]
- apiGroups: [""]
resources: ["pods/log"]
verbs: ["get"]
- apiGroups: ["batch"]
resources: ["jobs"]
verbs: ["get", "list"]
- apiGroups: ["longhorn.io"]
resources: ["backups"]
verbs: ["get", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: soteria
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: soteria
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