Try   HackMD

my notes

Create configmaps

  • my-config-velero-server.yml
apiVersion: v1
kind: ConfigMap
metadata:
  name: my-config-velero-server
  namespace: openshift-adp
data:
  # Configuration values
  features: "EnableCSI"
  uploader-type: "kopia"
  fs-backup-timeout: "5h"
  disable-informer-cache: "false"
  restore-resource-priorities: "securitycontextconstraints,customresourcedefinitions,klusterletconfigs.config.open-cluster-management.io,managedcluster.cluster.open-cluster-management.io,namespaces,roles,rolebindings,clusterrolebindings,klusterletaddonconfig.agent.open-cluster-management.io,managedclusteraddon.addon.open-cluster-management.io,storageclasses,volumesnapshotclass.snapshot.storage.k8s.io,volumesnapshotcontents.snapshot.storage.k8s.io,volumesnapshots.snapshot.storage.k8s.io,datauploads.velero.io,persistentvolumes,persistentvolumeclaims,serviceaccounts,secrets,configmaps,limitranges,pods,replicasets.apps,clusterclasses.cluster.x-k8s.io,endpoints,services,-,clusterbootstraps.run.tanzu.vmware.com,clusters.cluster.x-k8s.io,clusterresourcesets.addons.cluster.x-k8s.io"

  • my-config-node-agent-server.yml
apiVersion: v1
kind: ConfigMap
metadata:
  name: my-config-node-agent-server
  namespace: openshift-adp
data:
  # Configuration values
  data-mover-prepare-timeout: 45m
  resource-timeout: 15m

add labels to DPA w/o creating configmaps

5 apiVersion: oadp.openshift.io/v1alpha1
  6 kind: DataProtectionApplication
  7 metadata:
  8   annotations:
  9     oadp.openshift.io/unsupported-node-agent-server-args: my-config-node-agent-server
 10     oadp.openshift.io/unsupported-velero-server-args: my-config-velero-server
 11   creationTimestamp: "2024-07-17T14:55:32Z"
  • this is expected and velero server continues to run :)

	/opt/app-root/src/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.2/pkg/internal/controller/controller.go:234
1.7212318149180899e+09	ERROR	Reconciler error	{"controller": "dataprotectionapplication", "controllerGroup": "oadp.openshift.io", "controllerKind": "DataProtectionApplication", "dataProtectionApplication": {"name":"dpa-sample","namespace":"openshift-adp"}, "namespace": "openshift-adp", "name": "dpa-sample", "reconcileID": "f0391420-e941-49e7-9162-dc2ef8b145a4", "error": "ConfigMap \"my-config-velero-server\" not found"}
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
	/opt/app-root/src/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.2/pkg/internal/controller/controller.go:273
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
	/opt/app-root/src/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.2/pkg/internal/controller/controller.go:234
1.72123182525822e+09	ERROR	Reconciler error	{"controller": "dataprotectionapplication", "controllerGroup": "oadp.openshift.io", "controllerKind": "DataProtectionApplication", "dataProtectionApplication": {"name":"dpa-sample","namespace":"openshift-adp"}, "namespace": "openshift-adp", "name": "dpa-sample", "reconcileID": "8651ea86-bb94-4180-9fc2-e9215e96a79d", "error": "ConfigMap \"my-config-velero-server\" not found"}

create the config maps

  • oc create configmaps
  • velero restarts as expected

1.7212326436534598e+09	DEBUG	events	Normal	{"object": {"kind":"Deployment","namespace":"openshift-adp","name":"velero","uid":"0e7056c1-82d7-4cbc-b5a8-b33a00e1836a","apiVersion":"apps/v1","resourceVersion":"7568574"}, "reason": "VeleroDeploymentReconciled", "message": "performed updated on velero deployment openshift-adp/velero"}
1.7212326436925373e+09	DEBUG	events	Normal	{"object": {"kind":"DaemonSet","namespace":"openshift-adp","name":"node-agent","uid":"75b3e75b-8474-4bf3-9dd1-bb927fbd3d3d","apiVersion":"apps/v1","resourceVersion":"7568576"}, "reason": "NodeAgentDaemonsetReconciled", "message": "performed updated on NodeAgent deployment openshift-adp/node-agent"}

velero deployment diff

--- /home/whayutin/OADP/TEST/UNSUPPORTED_ARGS/orig/velero.yaml
+++ /home/whayutin/OADP/TEST/UNSUPPORTED_ARGS/after_configmap/velero.yaml
@@ -2,9 +2,9 @@
 kind: Deployment
 metadata:
   annotations:
-    deployment.kubernetes.io/revision: "1"
+    deployment.kubernetes.io/revision: "2"
   creationTimestamp: "2024-07-17T14:57:03Z"
-  generation: 1
+  generation: 2
   labels:
     app.kubernetes.io/component: server
     app.kubernetes.io/instance: dpa-sample
@@ -21,7 +21,7 @@
     kind: DataProtectionApplication
     name: dpa-sample
     uid: b355a54f-dda3-448d-94aa-faf4775f3891
-  resourceVersion: "7492736"
+  resourceVersion: "7569152"
   uid: 0e7056c1-82d7-4cbc-b5a8-b33a00e1836a
 spec:
   progressDeadlineSeconds: 600
@@ -60,11 +60,11 @@
       containers:
       - args:
         - server
+        - --disable-informer-cache=false
         - --features=EnableCSI
+        - --fs-backup-timeout=5h
+        - --restore-resource-priorities=securitycontextconstraints,customresourcedefinitions,klusterletconfigs.config.open-cluster-management.io,managedcluster.cluster.open-cluster-management.io,namespaces,roles,rolebindings,clusterrolebindings,klusterletaddonconfig.agent.open-cluster-management.io,managedclusteraddon.addon.open-cluster-management.io,storageclasses,volumesnapshotclass.snapshot.storage.k8s.io,volumesnapshotcontents.snapshot.storage.k8s.io,volumesnapshots.snapshot.storage.k8s.io,datauploads.velero.io,persistentvolumes,persistentvolumeclaims,serviceaccounts,secrets,configmaps,limitranges,pods,replicasets.apps,clusterclasses.cluster.x-k8s.io,endpoints,services,-,clusterbootstraps.run.tanzu.vmware.com,clusters.cluster.x-k8s.io,clusterresourcesets.addons.cluster.x-k8s.io
         - --uploader-type=kopia
-        - --fs-backup-timeout=4h
-        - --restore-resource-priorities=securitycontextconstraints,customresourcedefinitions,klusterletconfigs.config.open-cluster-management.io,managedcluster.cluster.open-cluster-management.io,namespaces,roles,rolebindings,clusterrolebindings,klusterletaddonconfig.agent.open-cluster-management.io,managedclusteraddon.addon.open-cluster-management.io,storageclasses,volumesnapshotclass.snapshot.storage.k8s.io,volumesnapshotcontents.snapshot.storage.k8s.io,volumesnapshots.snapshot.storage.k8s.io,datauploads.velero.io,persistentvolumes,persistentvolumeclaims,serviceaccounts,secrets,configmaps,limitranges,pods,replicasets.apps,clusterclasses.cluster.x-k8s.io,endpoints,services,-,clusterbootstraps.run.tanzu.vmware.com,clusters.cluster.x-k8s.io,clusterresourcesets.addons.cluster.x-k8s.io
-        - --disable-informer-cache=false
         command:
         - /velero
         env:
@@ -168,12 +168,12 @@
     status: "True"
     type: Available
   - lastTransitionTime: "2024-07-17T14:57:03Z"
-    lastUpdateTime: "2024-07-17T14:57:24Z"
-    message: ReplicaSet "velero-6b9fcc6f48" has successfully progressed.
+    lastUpdateTime: "2024-07-17T16:11:03Z"
+    message: ReplicaSet "velero-77d6b5fcf5" has successfully progressed.
     reason: NewReplicaSetAvailable
     status: "True"
     type: Progressing
-  observedGeneration: 1
+  observedGeneration: 2
   readyReplicas: 1
   replicas: 1
   updatedReplicas: 1


deamonset node-agent diff


--- /home/whayutin/OADP/TEST/UNSUPPORTED_ARGS/orig/node-agent.yaml
+++ /home/whayutin/OADP/TEST/UNSUPPORTED_ARGS/after_configmap/node-agent.yaml
@@ -2,9 +2,9 @@
 kind: DaemonSet
 metadata:
   annotations:
-    deprecated.daemonset.template.generation: "1"
+    deprecated.daemonset.template.generation: "2"
   creationTimestamp: "2024-07-17T14:57:03Z"
-  generation: 1
+  generation: 2
   labels:
     component: velero
     name: node-agent
@@ -17,7 +17,7 @@
     kind: DataProtectionApplication
     name: dpa-sample
     uid: b355a54f-dda3-448d-94aa-faf4775f3891
-  resourceVersion: "7492533"
+  resourceVersion: "7569460"
   uid: 75b3e75b-8474-4bf3-9dd1-bb927fbd3d3d
 spec:
   revisionHistoryLimit: 10
@@ -36,6 +36,8 @@
       - args:
         - node-agent
         - server
+        - --data-mover-prepare-timeout=45m
+        - --resource-timeout=15m
         command:
         - /velero
         env:
@@ -117,5 +119,5 @@
   numberAvailable: 9
   numberMisscheduled: 0
   numberReady: 9
-  observedGeneration: 1
+  observedGeneration: 2
   updatedNumberScheduled: 9

small edit on velero configmap

  • change the order of restore resources priorities, save configmap.
1.721238622789183e+09	DEBUG	events	Normal	{"object": {"kind":"Deployment","namespace":"openshift-adp","name":"velero","uid":"0e7056c1-82d7-4cbc-b5a8-b33a00e1836a","apiVersion":"apps/v1","resourceVersion":"7672191"}, "reason": "VeleroDeploymentReconciled", "message": "performed updated on velero deployment openshift-adp/velero"}

  • velero pod restarts, and change reflected in deployment
--- /home/whayutin/OADP/TEST/UNSUPPORTED_ARGS/after_configmap/velero.yaml
+++ /home/whayutin/OADP/TEST/UNSUPPORTED_ARGS/after_configmap/1/velero.yml
@@ -2,9 +2,9 @@
 kind: Deployment
 metadata:
   annotations:
-    deployment.kubernetes.io/revision: "2"
+    deployment.kubernetes.io/revision: "3"
   creationTimestamp: "2024-07-17T14:57:03Z"
-  generation: 2
+  generation: 3
   labels:
     app.kubernetes.io/component: server
     app.kubernetes.io/instance: dpa-sample
@@ -21,7 +21,7 @@
     kind: DataProtectionApplication
     name: dpa-sample
     uid: b355a54f-dda3-448d-94aa-faf4775f3891
-  resourceVersion: "7569152"
+  resourceVersion: "7672352"
   uid: 0e7056c1-82d7-4cbc-b5a8-b33a00e1836a
 spec:
   progressDeadlineSeconds: 600
@@ -63,7 +63,7 @@
         - --disable-informer-cache=false
         - --features=EnableCSI
         - --fs-backup-timeout=5h
-        - --restore-resource-priorities=securitycontextconstraints,customresourcedefinitions,klusterletconfigs.config.open-cluster-management.io,managedcluster.cluster.open-cluster-management.io,namespaces,roles,rolebindings,clusterrolebindings,klusterletaddonconfig.agent.open-cluster-management.io,managedclusteraddon.addon.open-cluster-management.io,storageclasses,volumesnapshotclass.snapshot.storage.k8s.io,volumesnapshotcontents.snapshot.storage.k8s.io,volumesnapshots.snapshot.storage.k8s.io,datauploads.velero.io,persistentvolumes,persistentvolumeclaims,serviceaccounts,secrets,configmaps,limitranges,pods,replicasets.apps,clusterclasses.cluster.x-k8s.io,endpoints,services,-,clusterbootstraps.run.tanzu.vmware.com,clusters.cluster.x-k8s.io,clusterresourcesets.addons.cluster.x-k8s.io
+        - --restore-resource-priorities=securitycontextconstraints,customresourcedefinitions,klusterletconfigs.config.open-cluster-management.io,managedcluster.cluster.open-cluster-management.io,namespaces,roles,rolebindings,clusterrolebindings,klusterletaddonconfig.agent.open-cluster-management.io,managedclusteraddon.addon.open-cluster-management.io,storageclasses,volumesnapshotclass.snapshot.storage.k8s.io,volumesnapshotcontents.snapshot.storage.k8s.io,volumesnapshots.snapshot.storage.k8s.io,datauploads.velero.io,persistentvolumes,persistentvolumeclaims,serviceaccounts,secrets,configmaps,limitranges,pods,replicasets.apps,clusterclasses.cluster.x-k8s.io,endpoints,services,-,clusterbootstraps.run.tanzu.vmware.com,clusterresourcesets.addons.cluster.x-k8s.io,clusters.cluster.x-k8s.io
         - --uploader-type=kopia
         command:
         - /velero
@@ -168,12 +168,12 @@
     status: "True"
     type: Available
   - lastTransitionTime: "2024-07-17T14:57:03Z"
-    lastUpdateTime: "2024-07-17T16:11:03Z"
-    message: ReplicaSet "velero-77d6b5fcf5" has successfully progressed.
+    lastUpdateTime: "2024-07-17T17:50:29Z"
+    message: ReplicaSet "velero-5c88755855" has successfully progressed.
     reason: NewReplicaSetAvailable
     status: "True"
     type: Progressing
-  observedGeneration: 2
+  observedGeneration: 3
   readyReplicas: 1
   replicas: 1
   updatedReplicas: 1

Out of Sync DPA w/ unsupported args config map.

oadp-must-gather

  • In the current must-gather for OADP-1.3+ testing if the custom config maps are there

    • YES
      • In dir abd05fc5/namespaces/openshift-adp/core/configmaps.yaml
  • Probably doc this for developer debug if needed.

Change the name of the configmap in the dpa annotation

  • Velero is not restarted
  • Correctly get reconcile errors:
1.7212403003205552e+09	ERROR	Reconciler error	{"controller": "dataprotectionapplication", "controllerGroup": "oadp.openshift.io", "controllerKind": "DataProtectionApplication", "dataProtectionApplication": {"name":"dpa-sample","namespace":"openshift-adp"}, "namespace": "openshift-adp", "name": "dpa-sample", "reconcileID": "3930ac76-ccd8-489f-89c0-f9a02182fe82", "error": "ConfigMap \"foo-config-velero-server\" not found"}
sigs.k8s.io/controller-runtime/pkg/inter
  • Changing the configmap name back to the proper name, Does NOT work

1.7212404696502051e+09	ERROR	Reconciler error	{"controller": "dataprotectionapplication", "controllerGroup": "oadp.openshift.io", "controllerKind": "DataProtectionApplication", "dataProtectionApplication": {"name":"dpa-sample","namespace":"openshift-adp"}, "namespace": "openshift-adp", "name": "dpa-sample", "reconcileID": "9b7e1032-6aba-45e5-b41f-26444faca474", "error": "Operation cannot be fulfilled on dataprotectionapplications.oadp.openshift.io \"dpa-sample\": the object has been modified; please apply your changes to the latest version and try again"}
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
	/opt/app-root/src/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.2/pkg/internal/controller/controller.go:273
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
	/opt/app-root/src/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.2/pkg/internal/controller/controller.go:234

Add invalid key/value pairs to the configmap

  • Add invalid key pair

apiVersion: v1
  6 data:
  7   disable-informer-cache: "false"
  8   features: EnableCSI
  9   fs-backup-timeout: 5h
 10   joe: Shmoe

  • configmap is updated, reconciled

    • Velero deployment correctly updated
    ​​​​      containers:
    ​​​​  - args:
    ​​​​    - server
    ​​​​    - --disable-informer-cache=false
    ​​​​    - --features=EnableCSI
    ​​​​    - --fs-backup-timeout=5h
    ​​​​    - --joe=Shmoe
    
    
    • Velero correctly goes into crashloopbackoff
  • Remove the invalid key/value pair from the configmap..

    • rereconciles
    • velero restarts correctly :)