provisioning-catalog/components/backup_manager/cluster/templates/service.yaml.j2

75 lines
1.9 KiB
Text
Raw Permalink Normal View History

apiVersion: v1
kind: Service
metadata:
name: backup-manager
namespace: {{ namespace }}
labels:
app: backup-manager
app.kubernetes.io/name: backup-manager
spec:
type: ClusterIP
selector:
app: backup-manager
ports:
- name: api
port: {{ daemon_http_port }}
targetPort: api
protocol: TCP
- name: metrics
port: {{ daemon_metrics_port }}
targetPort: metrics
protocol: TCP
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: backup-manager
namespace: {{ namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: backup-manager
rules:
# Read state of every workload to know what to back up.
- apiGroups: [""]
resources: ["pods", "services", "configmaps", "secrets", "persistentvolumeclaims", "namespaces", "events"]
verbs: ["get", "list", "watch"]
# Drive Longhorn VolumeSnapshot CRD for csi_consistent_group coordination.
- apiGroups: ["snapshot.storage.k8s.io"]
resources: ["volumesnapshots", "volumesnapshotclasses", "volumesnapshotcontents"]
verbs: ["get", "list", "watch", "create", "delete"]
# Manage CronJobs for one-shot scheduling.
- apiGroups: ["batch"]
resources: ["cronjobs", "jobs"]
verbs: ["get", "list", "watch", "create", "patch", "update", "delete"]
# Pod exec for quiesce hooks.
- apiGroups: [""]
resources: ["pods/exec", "pods/log"]
verbs: ["create", "get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: backup-manager
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: backup-manager
subjects:
- kind: ServiceAccount
name: backup-manager
namespace: {{ namespace }}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: backup-manager-state
namespace: {{ namespace }}
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: hcloud-volumes
resources:
requests:
storage: 5Gi