diff --git a/internal/controller/nodeagent.go b/internal/controller/nodeagent.go index 32a60dc8e11..5572fa378cd 100644 --- a/internal/controller/nodeagent.go +++ b/internal/controller/nodeagent.go @@ -694,6 +694,10 @@ func (r *DataProtectionApplicationReconciler) customizeNodeAgentDaemonset(ds *ap nodeAgentContainer.Args = append(nodeAgentContainer.Args, fmt.Sprintf("--log-format=%s", dpa.Spec.LogFormat)) } + if dpa.Spec.Configuration.Velero.LogLevel != "" { + nodeAgentContainer.Args = append(nodeAgentContainer.Args, fmt.Sprintf("--log-level=%s", dpa.Spec.Configuration.Velero.LogLevel)) + } + // Apply unsupported server args from the specified ConfigMap. // This will completely override any previously set args for the node-agent server. // If the ConfigMap exists and is not empty, its key-value pairs will be used as the new CLI arguments. diff --git a/internal/controller/nodeagent_test.go b/internal/controller/nodeagent_test.go index 92aa9c8df6f..6c8cb40fe2c 100644 --- a/internal/controller/nodeagent_test.go +++ b/internal/controller/nodeagent_test.go @@ -253,6 +253,7 @@ type TestBuiltNodeAgentDaemonSetOptions struct { dataMoverPrepareTimeout *string resourceTimeout *string logFormat *string + logLevel *string toleration []corev1.Toleration nodeSelector map[string]string disableFsBackup *bool @@ -568,6 +569,10 @@ func createTestBuiltNodeAgentDaemonSet(options TestBuiltNodeAgentDaemonSetOption testBuiltNodeAgentDaemonSet.Spec.Template.Spec.Containers[0].Args = append(testBuiltNodeAgentDaemonSet.Spec.Template.Spec.Containers[0].Args, fmt.Sprintf("--log-format=%s", *options.logFormat)) } + if options.logLevel != nil { + testBuiltNodeAgentDaemonSet.Spec.Template.Spec.Containers[0].Args = append(testBuiltNodeAgentDaemonSet.Spec.Template.Spec.Containers[0].Args, fmt.Sprintf("--log-level=%s", *options.logLevel)) + } + return testBuiltNodeAgentDaemonSet } @@ -783,6 +788,25 @@ func TestDPAReconciler_buildNodeAgentDaemonset(t *testing.T) { logFormat: ptr.To("text"), }), }, + { + name: "valid DPA CR with LogLevel set to debug, NodeAgent DaemonSet is built with LogLevel set to debug", + dpa: createTestDpaWith( + nil, + oadpv1alpha1.DataProtectionApplicationSpec{ + Configuration: &oadpv1alpha1.ApplicationConfig{ + Velero: &oadpv1alpha1.VeleroConfig{ + LogLevel: "debug", + }, + NodeAgent: &oadpv1alpha1.NodeAgentConfig{}, + }, + }, + ), + clientObjects: []client.Object{testGenericInfrastructure}, + nodeAgentDaemonSet: testNodeAgentDaemonSet.DeepCopy(), + wantNodeAgentDaemonSet: createTestBuiltNodeAgentDaemonSet(TestBuiltNodeAgentDaemonSetOptions{ + logLevel: ptr.To("debug"), + }), + }, { name: "valid DPA CR with DataMoverPrepareTimeout and ResourceTimeout, NodeAgent DaemonSet is built with DataMoverPrepareTimeout and ResourceTimeout", dpa: createTestDpaWith(