generated from IBM/repo-template
-
Notifications
You must be signed in to change notification settings - Fork 10
/
db2-backup-restore.yaml
109 lines (109 loc) · 3.93 KB
/
db2-backup-restore.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
apiVersion: spp-data-protection.isf.ibm.com/v1alpha1
kind: Recipe
metadata:
name: db2-backup-restore-recipe
namespace: ibm-spectrum-fusion-ns
spec:
appType: db2ucluster
groups:
- name: db2u-volumes
type: volume
includedNamespaces:
- db2
- name: db2u-resources
type: resource
includedNamespaces:
- db2
includeClusterResources: true
excludedResourceTypes:
- clusterserviceversions
hooks:
- name: db2uclusters-check
type: check
namespace: db2
selectResource: statefulset
labelSelector: app=db2oltp-test,component=db2oltp
timeout: 120
onError: fail
chks:
- name: replicasReady
timeout: 600
onError: fail
condition: "{$.spec.replicas} == {$.status.readyReplicas}"
- name: db2u-operator-check
type: check
namespace: db2
selectResource: deployment
labelSelector: operators.coreos.com/db2u-operator.db2=
timeout: 120
onError: fail
chks:
- name: replicasReady
timeout: 600
onError: fail
condition: "{$.spec.replicas} == {$.status.readyReplicas}"
- name: db2ucluster-instance-check
type: check
namespace: db2
selectResource: db2u.databases.ibm.com/v1/db2uclusters
labelSelector: formation_id=db2oltp-test
timeout: 800
onError: fail
chks:
- name: stateReady
timeout: 900
onError: fail
condition: "{$.status.state} == {\"Ready\"}"
- name: db2uclusters-pod-exec
type: exec
namespace: db2
labelSelector: app=db2oltp-test,name=dashmpp-head-0
timeout: 300
onError: fail
ops:
- name: "suspend"
command: >
["/usr/bin/ksh", "-lc", "manage_snapshots --action suspend --retry 0"]
container: db2u
- name: "resume"
command: >
["/usr/bin/ksh", "-lc", "manage_snapshots --action resume --retry 0"]
container: db2u
- name: "restore"
command: >
["/usr/bin/ksh", "-lc", "manage_snapshots --action restore --retry 0"]
container: db2u
timeout: 300
- name: db2u-operator-manager-exec
type: exec
namespace: db2
labelSelector: control-plane=db2u-operator-manager
timeout: 120
onError: fail
ops:
- name: "maintenance-mode-on"
command: >
["/bin/bash", "-c", "curl -X PATCH --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt -H \"Authorization: Bearer `cat /var/run/secrets/kubernetes.io/serviceaccount/token`\" -H 'Content-Type: application/merge-patch+json' -H 'Accept: application/json' -k https://kubernetes.default.svc/apis/db2u.databases.ibm.com/v1/namespaces/db2/db2uclusters/db2oltp-test?fieldManager=kubectl-annotate -d '{\"metadata\":{\"annotations\":{\"db2u.databases.ibm.com/maintenance-pause-reconcile\":\"true\"}}}'"]
container: manager
- name: "maintenance-mode-off"
command: >
["/bin/bash", "-c", "curl -X PATCH --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt -H \"Authorization: Bearer `cat /var/run/secrets/kubernetes.io/serviceaccount/token`\" -H 'Content-Type: application/merge-patch+json' -H 'Accept: application/json' -k https://kubernetes.default.svc/apis/db2u.databases.ibm.com/v1/namespaces/db2/db2uclusters/db2oltp-test?fieldManager=kubectl-annotate -d '{\"metadata\":{\"annotations\":{\"db2u.databases.ibm.com/maintenance-pause-reconcile\":null}}}'"]
container: manager
workflows:
- name: backup
sequence:
- group: db2u-resources
- hook: db2u-operator-manager-exec/maintenance-mode-on
- hook: db2uclusters-pod-exec/suspend
- group: db2u-volumes
- hook: db2uclusters-pod-exec/resume
- hook: db2u-operator-manager-exec/maintenance-mode-off
- name: restore
sequence:
- group: db2u-volumes
- group: db2u-resources
- hook: db2u-operator-check/replicasReady
- hook: db2u-operator-manager-exec/maintenance-mode-off
- hook: db2uclusters-check/replicasReady
- hook: db2uclusters-pod-exec/restore
- hook: db2ucluster-instance-check/stateReady