-
Notifications
You must be signed in to change notification settings - Fork 88
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding SELinux Documentation #900
base: master
Are you sure you want to change the base?
Conversation
NET:[VulnCheck / Analysis (pull_request) ] fix is on #901 |
PTAL @cniackz |
62e070b
to
c48433d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Open Question - should we make this a pre-requisite for OpenShift clusters running SELinux?
2d6baf8
to
4f32cb7
Compare
|
||
## SELinux in OpenShift: | ||
|
||
If you encounter the `relabel failed` error after executing the `suspend` or `resume` commands, you should set `spc_t` at Pod's level or Container's level, for example: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have modified the text more appropriately as OpenShift < 4.12 are deprecated and added a complete example.
## SELinux in OpenShift: | |
If you encounter the `relabel failed` error after executing the `suspend` or `resume` commands, you should set `spc_t` at Pod's level or Container's level, for example: | |
## SELinux in OpenShift | |
In a SELinux enabled system, pod may fail to start due to `relabel failed` error on suspended volume. As the suspended volumes are read-only, Kublet tries to do SELinux relabeling by `lsetxattr` system call to write extended attributes. This issue is fixable by adding `spec.securityContext.seLinuxOptions.type: spc_t` at pod level or container level along with appropriate Security Context Constraints (SCCs) in place. A complete detail is available at https://access.redhat.com/solutions/7025337. The following example shows how to set `spc_t` SELinux settings at pod level: |
kind: Pod | ||
spec: | ||
securityContext: | ||
seLinuxOptions: | ||
type: "spc_t" # This applies to all containers unless overridden |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
kind: Pod | |
spec: | |
securityContext: | |
seLinuxOptions: | |
type: "spc_t" # This applies to all containers unless overridden | |
apiVersion: v1 | |
kind: Pod | |
metadata: | |
name: sleep-pod | |
spec: | |
securityContext: | |
seLinuxOptions: | |
type: "spc_t" # Setting to fix the issue | |
volumes: | |
- name: sleep-volume | |
persistentVolumeClaim: | |
claimName: sleep-pvc | |
containers: | |
- name: sleep-container | |
image: example.org/test/sleep:v0.0.1 | |
volumeMounts: | |
- mountPath: "/mnt" | |
name: sleep-volume |
|
||
Ensure that the appropriate Security Context Constraints (SCCs) are in place, as illustrated in the following link: https://access.redhat.com/solutions/7025337. | ||
|
||
Additionally, this issue has been observed in OpenShift version 4.12 and later. Pods that use suspended drives or volumes may fail due to the kubelet attempting to perform SELinux relabeling. This happens because the `lsetxattr` system call fails on a read-only filesystem. The problem can affect any pod that consumes a suspended volume, not just MinIO Tenant pods. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ensure that the appropriate Security Context Constraints (SCCs) are in place, as illustrated in the following link: https://access.redhat.com/solutions/7025337. | |
Additionally, this issue has been observed in OpenShift version 4.12 and later. Pods that use suspended drives or volumes may fail due to the kubelet attempting to perform SELinux relabeling. This happens because the `lsetxattr` system call fails on a read-only filesystem. The problem can affect any pod that consumes a suspended volume, not just MinIO Tenant pods. |
PTAL @cniackz |
Objective:
When
resuming
orsuspending
a drive in anOpenShift
cluster, we may encounter arelabel
issue. Various solutions exist for this problem, but here I am documenting the one we believe to be the best approach.