Kubernetes.K3s.installLog/services/PVR/Plex/cronjob-RolloutRestart.yml

58 lines
1.5 KiB
YAML

apiVersion: v1
kind: ServiceAccount
metadata:
name: kubectl-rolloutrestart
namespace: pvr
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: kubectl-rolloutrestart
namespace: pvr
rules:
- apiGroups: ["apps", "extensions"]
resources: ["deployments", "statefulsets"]
verbs: ["get", "list", "patch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: kubectl-rolloutrestart-pvr
namespace: pvr
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kubectl-rolloutrestart
subjects:
- kind: ServiceAccount
name: kubectl-rolloutrestart
namespace: pvr
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: kubectl-rolloutrestart
namespace: pvr
spec:
concurrencyPolicy: Forbid
failedJobsHistoryLimit: 1
successfulJobsHistoryLimit: 1
schedule: '30 2 * * *'
jobTemplate:
spec:
backoffLimit: 2
activeDeadlineSeconds: 600
template:
spec:
serviceAccountName: kubectl-rolloutrestart
restartPolicy: Never
containers:
- name: kubectl
image: bitnami/kubectl
command:
- '/bin/bash'
- '-c'
args:
- for workload in `kubectl get deployments -n pvr --no-headers | cut -d " " -f 1`; do kubectl rollout restart deployment -n pvr $workload; done;
for workload in `kubectl get statefulsets -n pvr | cut -d " " -f 1`; do kubectl rollout restart statefulsets -n pvr $workload; done;