Skip to content
13 changes: 11 additions & 2 deletions velero/backup/common-service/label-common-service.sh
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,15 @@ function label_ibm_catalogsources() {
function label_ns_and_related() {

title "Start to label the namespaces, operatorgroups and secrets... "
namespaces=$(${OC} get configmap namespace-scope -n $OPERATOR_NS -oyaml | awk '/^data:/ {flag=1; next} /^ namespaces:/ {print $2; next} flag && /^ [^ ]+: / {flag=0}')
# namespaces=$(${OC} get configmap namespace-scope -n $OPERATOR_NS -oyaml | awk '/^data:/ {flag=1; next} /^ namespaces:/ {print $2; next} flag && /^ [^ ]+: / {flag=0}')
namespaces=${OPERATOR_NS}
if [[ $SERVICES_NS != "" ]]; then
namespaces+=",$SERVICES_NS"
fi

if [[ $TETHERED_NS != "" ]]; then
namespaces+=",$TETHERED_NS"
fi
# add cert-manager namespace and licensing namespace and lsr namespace into the list with comma separated
if [[ $CONTROL_NS != "" ]]; then
namespaces+=",$CONTROL_NS"
Expand Down Expand Up @@ -515,6 +523,7 @@ function label_helm_cluster_scope(){
${OC} label secret sh.helm.release.v1.$odlm_release_name.v1 -n $odlm_release_namespace foundationservices.cloudpak.ibm.com=odlm-cluster --overwrite=true 2>/dev/null

#cs operator cluster resources (crds, clusterrole, clusterrolebinding), crd covered elsewhere in script
${OC} label customresourcedefinition commonservices.operator.ibm.com foundationservices.cloudpak.ibm.com=crd --overwrite=true 2>/dev/null
${OC} label clusterrole ibm-common-service-operator-$OPERATOR_NS foundationservices.cloudpak.ibm.com=cs-cluster --overwrite=true 2>/dev/null
${OC} label clusterrolebinding ibm-common-service-operator-$OPERATOR_NS foundationservices.cloudpak.ibm.com=cs-cluster --overwrite=true 2>/dev/null
cs_release_name=$(${OC} get crd commonservices.operator.ibm.com -o jsonpath='{.metadata.annotations.meta\.helm\.sh/release-name}' --ignore-not-found)
Expand Down Expand Up @@ -571,7 +580,7 @@ function label_helm_namespace_scope(){
${OC} label rolebinding operand-deployment-lifecycle-manager foundationservices.cloudpak.ibm.com=odlm-chart -n $SERVICES_NS --overwrite=true 2>/dev/null

#cs operator
#cs CR handled in label_cs
${OC} label commonservices common-service foundationservices.cloudpak.ibm.com=commonservice -n $OPERATOR_NS --overwrite=true 2>/dev/null
${OC} label deployment ibm-common-service-operator foundationservices.cloudpak.ibm.com=cs-chart -n $OPERATOR_NS --overwrite=true 2>/dev/null
${OC} label serviceaccount ibm-common-service-operator foundationservices.cloudpak.ibm.com=cs-chart -n $OPERATOR_NS --overwrite=true 2>/dev/null
${OC} label role ibm-common-service-operator foundationservices.cloudpak.ibm.com=cs-chart -n $OPERATOR_NS --overwrite=true 2>/dev/null
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
apiVersion: spp-data-protection.isf.ibm.com/v1alpha1
kind: Recipe
metadata:
labels:
dp.isf.ibm.com/parent-recipe: cpfs-parent-recipe
dp.isf.ibm.com/parent-recipe-namespace: <parent recipe namespace>
name: cs-odlm-child-recipe
namespace: <child recipe namespace>
spec:
appType: common-service
groups:
- includeClusterResources: true
includedResourceTypes:
- clusterrole
- clusterrolebinding
- customresourcedefinitions.apiextensions.k8s.io
labelSelector: foundationservices.cloudpak.ibm.com=cs-cluster
name: cs-cluster-resources
type: resource
- includeClusterResources: true
includedResourceTypes:
- customresourcedefinitions.apiextensions.k8s.io
labelSelector: foundationservices.cloudpak.ibm.com=crd
name: cs-crd
type: resource
- includeClusterResources: true
includedResourceTypes:
# - clusterrole
# - clusterrolebinding
- customresourcedefinitions.apiextensions.k8s.io
labelSelector: foundationservices.cloudpak.ibm.com=odlm-cluster
name: odlm-cluster-resources
type: resource
- includedResourceTypes:
- role
- rolebinding
- serviceaccount
- deployments
- secrets
- commonservices.operator.ibm.com
labelSelector: foundationservices.cloudpak.ibm.com=cs-chart
name: cs-resources
type: resource
- includedResourceTypes:
- commonservices.operator.ibm.com
labelSelector: foundationservices.cloudpak.ibm.com=commonservice
name: cs-cr
type: resource
- includedResourceTypes:
- role
- rolebinding
- serviceaccount
- deployments
labelSelector: foundationservices.cloudpak.ibm.com=odlm-chart
name: odlm-resources
type: resource
- backupRef: cs-resources
includedResourceTypes:
- serviceaccount
- role
- rolebinding
- secrets
name: cs-rbac-resources
type: resource
- backupRef: odlm-resources
includedResourceTypes:
- serviceaccount
- role
- rolebinding
- secrets
name: odlm-rbac-resources
type: resource
- backupRef: cs-resources
includeClusterResources: true
includedResourceTypes:
- deployments
name: cs-deployment
type: resource
- backupRef: odlm-resources
includeClusterResources: true
includedResourceTypes:
- deployments
name: odlm-deployment
type: resource
hooks:
- chks:
- condition: '{$.spec.replicas} == {$.status.readyReplicas}'
name: podReady
onError: fail
timeout: 600
name: cs-check
nameSelector: ibm-common-service-operator
namespace: <operator_ns>
onError: fail
selectResource: deployment
timeout: 600
type: check
- chks:
- condition: '{$.spec.replicas} == {$.status.readyReplicas}'
name: podReady
onError: fail
timeout: 600
name: odlm-check
nameSelector: operand-deployment-lifecycle-manager
namespace: <operator_ns>
onError: fail
selectResource: deployment
timeout: 600
type: check
workflows:
- name: chart-backup
priority: 0
sequence:
- group: cs-cluster-resources
- group: cs-crd
- group: cs-cr
- group: cs-resources
- group: odlm-cluster-resources
- group: odlm-resources
- name: chart-restore
priority: 8
sequence:
- group: cs-cluster-resources
- group: cs-crd
- group: cs-rbac-resources
- group: cs-cr
- group: cs-deployment
- hook: cs-check/podReady
- group: odlm-cluster-resources
- group: odlm-rbac-resources
- group: odlm-deployment
- hook: odlm-check/podReady
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
apiVersion: spp-data-protection.isf.ibm.com/v1alpha1
kind: Recipe
metadata:
labels:
dp.isf.ibm.com/parent-recipe: cpfs-parent-recipe
dp.isf.ibm.com/parent-recipe-namespace: <parent recipe namespace>
name: csdb-child
namespace: <child recipe namespace>
spec:
appType: common-service
groups:
- labelSelector: foundationservices.cloudpak.ibm.com=cs-db-data
name: cs-db-volume
type: volume
- includeClusterResources: true
labelSelector: foundationservices.cloudpak.ibm.com=cs-db-data
includedResourceTypes:
- serviceaccount
- role
- rolebinding
- configmaps
name: cs-db-pre-deploy
type: resource
- includeClusterResources: true
labelSelector: foundationservices.cloudpak.ibm.com=cs-db-data
includedResourceTypes:
- deployments
name: cs-db-deployment
type: resource
hooks:
- chks:
- condition: '{$.status.phase} == {"Running"}'
name: podReady
onError: fail
timeout: 600
labelSelector: 'k8s.enterprisedb.io/cluster=common-service-db,role=primary'
name: common-service-db-check
namespace: <child recipe namespace>
onError: fail
selectResource: pod
timeout: 600
type: check
- chks:
- condition: '{$.status.phase} == {"Running"}'
name: podReady
onError: fail
timeout: 600
labelSelector: foundationservices.cloudpak.ibm.com=cs-db-data
name: cs-db-deployment
namespace: <child recipe namespace>
onError: fail
selectResource: pod
timeout: 600
type: check
- chks:
- condition: '{$.spec.replicas} == {$.status.readyReplicas}'
name: podReady
onError: fail
timeout: 600
name: platform-identity-provider
nameSelector: platform-identity-provider
namespace: <child recipe namespace>
onError: fail
selectResource: deployment
timeout: 600
type: check
- chks:
- condition: '{$.spec.replicas} == {$.status.readyReplicas}'
name: podReady
onError: fail
timeout: 600
name: platform-auth-service
nameSelector: platform-auth-service
namespace: <child recipe namespace>
onError: fail
selectResource: deployment
timeout: 600
type: check
- chks:
- condition: '{$.spec.replicas} == {$.status.readyReplicas}'
name: podReady
onError: fail
timeout: 600
name: platform-identity-management
nameSelector: platform-identity-management
namespace: <child recipe namespace>
onError: fail
selectResource: deployment
timeout: 600
type: check
- labelSelector: foundationservices.cloudpak.ibm.com=cs-db-data
name: cs-db-data
namespace: <child recipe namespace>
onError: fail
ops:
- command: |
["/bin/bash", "-c", "/cs-db/br_cs-db.sh backup <child recipe namespace>"]
container: cs-db-br
name: cs-db-backup-pre
timeout: 600
- command: |
["/bin/bash", "-c", "rm -rf /cs-db/cs-db-backup/database"]
container: cs-db-br
name: cs-db-backup-post
timeout: 600
- command: |
["/bin/bash", "-c", "sleep 120 && /cs-db/br_cs-db.sh restore <child recipe namespace>"]
container: cs-db-br
name: restore
timeout: 2000
selectResource: pod
type: exec
workflows:
- name: pre-backup
priority: 2
sequence:
#csdb
- hook: cs-db-data/cs-db-backup-pre
- group: cs-db-pre-deploy
- group: cs-db-deployment
- name: post-backup
priority: 0
sequence:
#volumes (should happen at the end)
- group: cs-db-volume
- hook: cs-db-data/cs-db-backup-post
- name: data-restore
priority: 2
sequence:
#csdb
- hook: common-service-db-check/podReady
- group: cs-db-pre-deploy
- group: cs-db-volume
- group: cs-db-deployment
- hook: cs-db-deployment/podReady
- hook: platform-identity-management/podReady
- hook: platform-auth-service/podReady
- hook: platform-identity-provider/podReady

Loading