Skip to content

Commit b3167a8

Browse files
authored
Merge pull request #99510 from openshift-cherrypick-robot/cherry-pick-97896-to-enterprise-4.20
[enterprise-4.20] OADP-5959-node-agent-non-root
2 parents f6ba81b + 2e7cfa1 commit b3167a8

File tree

7 files changed

+128
-0
lines changed

7 files changed

+128
-0
lines changed

backup_and_restore/application_backup_and_restore/installing/installing-oadp-aws.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2]
5555
include::modules/oadp-configuring-aws-md5sum.adoc[leveloffset=+1]
5656
include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1]
5757
include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1]
58+
include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1]
5859
include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1]
5960
include::modules/oadp-configuring-dpa-multiple-bsl.adoc[leveloffset=+1]
6061
include::modules/oadp-enabling-csi-dpa.adoc[leveloffset=+2]

backup_and_restore/application_backup_and_restore/installing/installing-oadp-azure.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ include::modules/oadp-using-ca-certificates-with-velero-command.adoc[leveloffset
4242
include::modules/oadp-installing-dpa-1-3.adoc[leveloffset=+1]
4343
include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1]
4444
include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1]
45+
include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1]
4546
include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1]
4647
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2]
4748
include::modules/oadp-enabling-csi-dpa.adoc[leveloffset=+2]

backup_and_restore/application_backup_and_restore/installing/installing-oadp-gcp.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ include::modules/oadp-gcp-wif-cloud-authentication.adoc[leveloffset=+1]
4343
include::modules/oadp-installing-dpa-1-3.adoc[leveloffset=+1]
4444
include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1]
4545
include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1]
46+
include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1]
4647
include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1]
4748
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2]
4849
include::modules/oadp-enabling-csi-dpa.adoc[leveloffset=+2]

backup_and_restore/application_backup_and_restore/installing/installing-oadp-kubevirt.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ include::modules/oadp-backup-single-vm.adoc[leveloffset=+1]
4949
include::modules/oadp-restore-single-vm.adoc[leveloffset=+1]
5050
include::modules/oadp-restore-single-vm-from-multiple-vm-backup.adoc[leveloffset=+1]
5151
include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1]
52+
include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1]
53+
include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1]
5254
include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1]
5355
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2]
5456
include::modules/oadp-incremental-backup-support.adoc[leveloffset=+1]

backup_and_restore/application_backup_and_restore/installing/installing-oadp-mcg.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ include::modules/oadp-using-ca-certificates-with-velero-command.adoc[leveloffset
4747
include::modules/oadp-installing-dpa-1-3.adoc[leveloffset=+1]
4848
include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1]
4949
include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1]
50+
include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1]
5051
include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1]
5152
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2]
5253
include::modules/oadp-enabling-csi-dpa.adoc[leveloffset=+2]

backup_and_restore/application_backup_and_restore/installing/installing-oadp-ocs.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ include::modules/oadp-using-ca-certificates-with-velero-command.adoc[leveloffset
5252
include::modules/oadp-installing-dpa-1-3.adoc[leveloffset=+1]
5353
include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1]
5454
include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1]
55+
include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1]
5556
include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1]
5657
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2]
5758
include::modules/oadp-creating-object-bucket-claim.adoc[leveloffset=+2]
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * backup_and_restore/application_backup_and_restore/installing/installing-oadp-aws.adoc
4+
// * backup_and_restore/application_backup_and_restore/installing/installing-oadp-azure.adoc
5+
// * backup_and_restore/application_backup_and_restore/installing/installing-oadp-gcp.adoc
6+
// * backup_and_restore/application_backup_and_restore/installing/installing-oadp-mcg.adoc
7+
// * backup_and_restore/application_backup_and_restore/installing/installing-oadp-ocs.adoc
8+
// * backup_and_restore/application_backup_and_restore/installing/installing-oadp-kubevirt.adoc
9+
10+
11+
:_mod-docs-content-type: PROCEDURE
12+
[id="oadp-configuring-node-agent-non-root_{context}"]
13+
= Configuring the node agent as a non-root and non-privileged user
14+
15+
[role="_abstract"]
16+
To enhance the node agent security, you can configure the {oadp-short} Operator node agent daemonset to run as a non-root and non-privileged user by using the `spec.configuration.velero.disableFsBackup` setting in the `DataProtectionApplication` (DPA) custom resource (CR).
17+
18+
By setting the `spec.configuration.velero.disableFsBackup` setting to `true`, the node agent security context sets the root file system to read-only and sets the `privileged` flag to `false`.
19+
20+
[NOTE]
21+
====
22+
Setting `spec.configuration.velero.disableFsBackup` to `true` enhances the node agent security by removing the need for privileged containers and enforcing a read-only root file system.
23+
24+
However, it also disables File System Backup (FSB) with Kopia. If your workloads rely on FSB for backing up volumes that do not support native snapshots, then you should evaluate whether the `disableFsBackup` configuration fits your use case.
25+
====
26+
27+
.Prerequisites
28+
29+
* You have installed the {oadp-short} Operator.
30+
31+
.Procedure
32+
33+
* Configure the `disableFsBackup` field in the DPA as shown in the following example:
34+
+
35+
[source,yaml]
36+
----
37+
apiVersion: oadp.openshift.io/v1alpha1
38+
kind: DataProtectionApplication
39+
metadata:
40+
name: ts-dpa
41+
namespace: openshift-adp
42+
spec:
43+
backupLocations:
44+
- velero:
45+
credential:
46+
key: cloud
47+
name: cloud-credentials
48+
default: true
49+
objectStorage:
50+
bucket: <bucket_name>
51+
prefix: velero
52+
provider: gcp
53+
configuration:
54+
nodeAgent: # <1>
55+
enable: true
56+
uploaderType: kopia
57+
velero:
58+
defaultPlugins:
59+
- csi
60+
- gcp
61+
- openshift
62+
disableFsBackup: true # <2>
63+
----
64+
<1> Enable the node agent in the DPA.
65+
<2> Set the `disableFsBackup` field to `true`.
66+
67+
68+
.Verification
69+
70+
. Verify that the node agent security context is set to run as non-root and the root file system is `readOnly` by running the following command:
71+
+
72+
[source,terminal]
73+
----
74+
$ oc get daemonset node-agent -o yaml
75+
----
76+
+
77+
The example output is as following:
78+
+
79+
[source,yaml]
80+
----
81+
apiVersion: apps/v1
82+
kind: DaemonSet
83+
metadata:
84+
...
85+
name: node-agent
86+
namespace: openshift-adp
87+
...
88+
spec:
89+
...
90+
template:
91+
metadata:
92+
...
93+
spec:
94+
containers:
95+
...
96+
securityContext:
97+
allowPrivilegeEscalation: false # <1>
98+
capabilities:
99+
drop:
100+
- ALL
101+
privileged: false # <2>
102+
readOnlyRootFilesystem: true # <3>
103+
...
104+
nodeSelector:
105+
kubernetes.io/os: linux
106+
os:
107+
name: linux
108+
restartPolicy: Always
109+
schedulerName: default-scheduler
110+
securityContext:
111+
runAsNonRoot: true # <4>
112+
seccompProfile:
113+
type: RuntimeDefault
114+
serviceAccount: velero
115+
serviceAccountName: velero
116+
....
117+
----
118+
<1> The `allowPrivilegeEscalation` field is false.
119+
<2> The `privileged` field is false.
120+
<3> The root file system is read-only.
121+
<4> The node agent is run as a non-root user.

0 commit comments

Comments
 (0)