core: define empty securityContext for pods to fix CIS 5.7.3
Resolves CIS benchmark rule 5.7.3, Pods part. SecurityContext
should be explicitly defined in pod level of Pod spec section.
It is sufficient to specify empty securityContext to satisfy
CIS 5.7.3 rule.
5.7.3 Apply Security Context to Your Pods and Containers
When designing your containers and pods, make sure
that you configure the security context for your pods,
containers, and volumes.
Signed-off-by: Peter Razumovsky <prazumovsky@mirantis.com>
(cherry picked from commit 516eab4d8a)
This commit is contained in:
1 parent
d1903f7675
commit
86f810a6a7
27 files changed
+29
-2
No files matched your search
@@ -161,6 +161,7 @@ func (c *ClusterController) cleanUpJobTemplateSpec(cluster *cephv1.CephCluster,
|
||||
Volumes: volumes,
|
||||
RestartPolicy: v1.RestartPolicyOnFailure,
|
||||
PriorityClassName: cephv1.GetCleanupPriorityClassName(cluster.Spec.PriorityClassNames),
|
||||
SecurityContext: &v1.PodSecurityContext{},
|
||||
ServiceAccountName: k8sutil.DefaultServiceAccount,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -61,6 +61,7 @@ func (c *Cluster) makeDeployment(mgrConfig *mgrConfig) (*apps.Deployment, error)
|
||||
Containers: []v1.Container{
|
||||
c.makeMgrDaemonContainer(mgrConfig),
|
||||
},
|
||||
SecurityContext: &v1.PodSecurityContext{},
|
||||
ServiceAccountName: serviceAccountName,
|
||||
RestartPolicy: v1.RestartPolicyAlways,
|
||||
Volumes: volumes,
|
||||
|
||||
@@ -189,6 +189,7 @@ func (c *Cluster) makeMonPod(monConfig *monConfig, canary bool) (*corev1.Pod, er
|
||||
Volumes: controller.DaemonVolumesBase(monConfig.DataPathMap, keyringStoreName, c.spec.DataDirHostPath),
|
||||
HostNetwork: monConfig.UseHostNetwork,
|
||||
PriorityClassName: cephv1.GetMonPriorityClassName(c.spec.PriorityClassNames),
|
||||
SecurityContext: &corev1.PodSecurityContext{},
|
||||
ServiceAccountName: k8sutil.DefaultServiceAccount,
|
||||
}
|
||||
|
||||
|
||||
@@ -121,6 +121,7 @@ func (r *ReconcileNode) createOrUpdateCephCrash(node corev1.Node, tolerations []
|
||||
HostNetwork: cephCluster.Spec.Network.IsHost(),
|
||||
Volumes: volumes,
|
||||
PriorityClassName: cephv1.GetCrashCollectorPriorityClassName(cephCluster.Spec.PriorityClassNames),
|
||||
SecurityContext: &corev1.PodSecurityContext{},
|
||||
ServiceAccountName: k8sutil.DefaultServiceAccount,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -143,6 +143,7 @@ func (r *ReconcileNode) createOrUpdateCephExporter(node corev1.Node, tolerations
|
||||
Volumes: volumes,
|
||||
PriorityClassName: cephv1.GetCephExporterPriorityClassName(cephCluster.Spec.PriorityClassNames),
|
||||
TerminationGracePeriodSeconds: &terminationGracePeriodSeconds,
|
||||
SecurityContext: &corev1.PodSecurityContext{},
|
||||
ServiceAccountName: k8sutil.DefaultServiceAccount,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -110,6 +110,7 @@ func (r *ReconcileNode) createOrUpdateCephCron(cephCluster cephv1.CephCluster, c
|
||||
RestartPolicy: corev1.RestartPolicyNever,
|
||||
HostNetwork: cephCluster.Spec.Network.IsHost(),
|
||||
Volumes: volumes,
|
||||
SecurityContext: &corev1.PodSecurityContext{},
|
||||
ServiceAccountName: k8sutil.DefaultServiceAccount,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -161,6 +161,7 @@ func (c *Cluster) getKeyRotationPodTemplateSpec(osdProps osdProperties, osd OSDI
|
||||
HostNetwork: c.spec.Network.IsHost(),
|
||||
PriorityClassName: cephv1.GetOSDPriorityClassName(c.spec.PriorityClassNames),
|
||||
SchedulerName: osdProps.schedulerName,
|
||||
SecurityContext: &v1.PodSecurityContext{},
|
||||
},
|
||||
}
|
||||
if c.spec.Network.IsHost() {
|
||||
|
||||
@@ -157,6 +157,7 @@ func (c *Cluster) provisionPodTemplateSpec(osdProps osdProperties, restart v1.Re
|
||||
HostNetwork: c.spec.Network.IsHost(),
|
||||
PriorityClassName: cephv1.GetOSDPriorityClassName(c.spec.PriorityClassNames),
|
||||
SchedulerName: osdProps.schedulerName,
|
||||
SecurityContext: &v1.PodSecurityContext{},
|
||||
}
|
||||
if c.spec.Network.IsHost() {
|
||||
podSpec.DNSPolicy = v1.DNSClusterFirstWithHostNet
|
||||
|
||||
@@ -651,8 +651,9 @@ func (c *Cluster) makeDeployment(osdProps osdProperties, osd OSDInfo, provisionC
|
||||
WorkingDir: opconfig.VarLogCephDir,
|
||||
},
|
||||
},
|
||||
Volumes: volumes,
|
||||
SchedulerName: osdProps.schedulerName,
|
||||
Volumes: volumes,
|
||||
SecurityContext: &v1.PodSecurityContext{},
|
||||
SchedulerName: osdProps.schedulerName,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@ func (r *ReconcileCephRBDMirror) makeDeployment(daemonConfig *daemonConfig, rbdM
|
||||
Volumes: controller.DaemonVolumes(daemonConfig.DataPathMap, daemonConfig.ResourceName, r.cephClusterSpec.DataDirHostPath),
|
||||
HostNetwork: r.cephClusterSpec.Network.IsHost(),
|
||||
PriorityClassName: rbdMirror.Spec.PriorityClassName,
|
||||
SecurityContext: &v1.PodSecurityContext{},
|
||||
ServiceAccountName: k8sutil.DefaultServiceAccount,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -129,6 +129,7 @@ func (c *ResourceCleanup) jobTemplateSpec() v1.PodTemplateSpec {
|
||||
Volumes: volumes,
|
||||
RestartPolicy: v1.RestartPolicyOnFailure,
|
||||
PriorityClassName: cephv1.GetCleanupPriorityClassName(c.cluster.Spec.PriorityClassNames),
|
||||
SecurityContext: &v1.PodSecurityContext{},
|
||||
ServiceAccountName: k8sutil.DefaultServiceAccount,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ spec:
|
||||
spec:
|
||||
# HostPID is needed to expose the correct process ID network namespace and not the process namespace
|
||||
hostPID: true
|
||||
securityContext: {}
|
||||
serviceAccountName: rook-csi-cephfs-plugin-sa
|
||||
{{ if .PluginPriorityClassName }}
|
||||
priorityClassName: {{ .PluginPriorityClassName }}
|
||||
|
||||
@@ -17,6 +17,7 @@ spec:
|
||||
{{ $key }}: "{{ $value }}"
|
||||
{{ end }}
|
||||
spec:
|
||||
securityContext: {}
|
||||
serviceAccountName: rook-csi-cephfs-provisioner-sa
|
||||
{{ if .ProvisionerPriorityClassName }}
|
||||
priorityClassName: {{ .ProvisionerPriorityClassName }}
|
||||
|
||||
@@ -22,6 +22,7 @@ spec:
|
||||
{{ $key }}: "{{ $value }}"
|
||||
{{ end }}
|
||||
spec:
|
||||
securityContext: {}
|
||||
serviceAccountName: rook-csi-cephfs-plugin-sa
|
||||
hostNetwork: {{ .EnableCSIHostNetwork }}
|
||||
{{ if .PluginPriorityClassName }}
|
||||
|
||||
@@ -29,6 +29,7 @@ spec:
|
||||
spec:
|
||||
# HostPID is needed to expose the correct process ID network namespace and not the process namespace
|
||||
hostPID: true
|
||||
securityContext: {}
|
||||
serviceAccountName: rook-csi-nfs-plugin-sa
|
||||
{{ if .PluginPriorityClassName }}
|
||||
priorityClassName: {{ .PluginPriorityClassName }}
|
||||
|
||||
@@ -16,6 +16,7 @@ spec:
|
||||
{{ $key }}: "{{ $value }}"
|
||||
{{ end }}
|
||||
spec:
|
||||
securityContext: {}
|
||||
serviceAccountName: rook-csi-nfs-provisioner-sa
|
||||
{{ if .ProvisionerPriorityClassName }}
|
||||
priorityClassName: {{ .ProvisionerPriorityClassName }}
|
||||
|
||||
@@ -17,6 +17,7 @@ spec:
|
||||
{{ $key }}: "{{ $value }}"
|
||||
{{ end }}
|
||||
spec:
|
||||
securityContext: {}
|
||||
serviceAccountName: rook-csi-nfs-plugin-sa
|
||||
hostNetwork: {{ .EnableCSIHostNetwork }}
|
||||
{{ if .PluginPriorityClassName }}
|
||||
|
||||
@@ -29,6 +29,7 @@ spec:
|
||||
spec:
|
||||
# HostPID is needed to expose the correct process ID network namespace and not the process namespace
|
||||
hostPID: true
|
||||
securityContext: {}
|
||||
serviceAccountName: rook-csi-rbd-plugin-sa
|
||||
{{ if .PluginPriorityClassName }}
|
||||
priorityClassName: {{ .PluginPriorityClassName }}
|
||||
|
||||
@@ -17,6 +17,7 @@ spec:
|
||||
{{ $key }}: "{{ $value }}"
|
||||
{{ end }}
|
||||
spec:
|
||||
securityContext: {}
|
||||
serviceAccountName: rook-csi-rbd-provisioner-sa
|
||||
{{ if .ProvisionerPriorityClassName }}
|
||||
priorityClassName: {{ .ProvisionerPriorityClassName }}
|
||||
|
||||
@@ -22,6 +22,7 @@ spec:
|
||||
{{ $key }}: "{{ $value }}"
|
||||
{{ end }}
|
||||
spec:
|
||||
securityContext: {}
|
||||
serviceAccountName: rook-csi-rbd-plugin-sa
|
||||
{{ if .PluginPriorityClassName }}
|
||||
priorityClassName: {{ .PluginPriorityClassName }}
|
||||
|
||||
@@ -65,6 +65,7 @@ func (c *Cluster) makeDeployment(mdsConfig *mdsConfig, fsNamespacedname types.Na
|
||||
Volumes: controller.DaemonVolumes(mdsConfig.DataPathMap, mdsConfig.ResourceName, c.clusterSpec.DataDirHostPath),
|
||||
HostNetwork: c.clusterSpec.Network.IsHost(),
|
||||
PriorityClassName: c.fs.Spec.MetadataServer.PriorityClassName,
|
||||
SecurityContext: &v1.PodSecurityContext{},
|
||||
ServiceAccountName: k8sutil.DefaultServiceAccount,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@ func (r *ReconcileFilesystemMirror) makeDeployment(daemonConfig *daemonConfig, f
|
||||
Volumes: controller.DaemonVolumes(daemonConfig.DataPathMap, daemonConfig.ResourceName, r.cephClusterSpec.DataDirHostPath),
|
||||
HostNetwork: r.cephClusterSpec.Network.IsHost(),
|
||||
PriorityClassName: fsMirror.Spec.PriorityClassName,
|
||||
SecurityContext: &v1.PodSecurityContext{},
|
||||
ServiceAccountName: k8sutil.DefaultServiceAccount,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -149,6 +149,7 @@ func (r *ReconcileCephNFS) makeDeployment(nfs *cephv1.CephNFS, cfg daemonConfig)
|
||||
// connecting to the krb server. give all ganesha servers the same hostname so they can all
|
||||
// use the same krb credentials to auth
|
||||
Hostname: fmt.Sprintf("%s-%s", nfs.Namespace, nfs.Name),
|
||||
SecurityContext: &v1.PodSecurityContext{},
|
||||
ServiceAccountName: k8sutil.DefaultServiceAccount,
|
||||
}
|
||||
// Replace default unreachable node toleration
|
||||
|
||||
@@ -87,6 +87,7 @@ func createCOSIPodSpec(cephCOSIDriver *cephv1.CephCOSIDriver) (corev1.PodTemplat
|
||||
cosiDriverContainer,
|
||||
cosiSideCarContainer,
|
||||
},
|
||||
SecurityContext: &corev1.PodSecurityContext{},
|
||||
ServiceAccountName: DefaultServiceAccountName,
|
||||
Volumes: []corev1.Volume{
|
||||
{Name: cosiSocketVolumeName, VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}}},
|
||||
|
||||
@@ -152,6 +152,7 @@ func (c *clusterConfig) makeRGWPodSpec(rgwConfig *rgwConfig) (v1.PodTemplateSpec
|
||||
),
|
||||
HostNetwork: hostNetwork,
|
||||
PriorityClassName: c.store.Spec.Gateway.PriorityClassName,
|
||||
SecurityContext: &v1.PodSecurityContext{},
|
||||
ServiceAccountName: serviceAccountName,
|
||||
}
|
||||
|
||||
|
||||
@@ -175,6 +175,7 @@ func (d *Discover) createDiscoverDaemonSet(ctx context.Context, namespace, disco
|
||||
},
|
||||
HostNetwork: false,
|
||||
PriorityClassName: k8sutil.GetValue(data, discoverDaemonsetPriorityClassNameEnv, ""),
|
||||
SecurityContext: &v1.PodSecurityContext{},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -301,6 +301,7 @@ func (cr *cmdReporterCfg) initJobSpec() (*batch.Job, error) {
|
||||
*cmdReporterContainer,
|
||||
},
|
||||
RestartPolicy: v1.RestartPolicyOnFailure,
|
||||
SecurityContext: &v1.PodSecurityContext{},
|
||||
ServiceAccountName: k8sutil.DefaultServiceAccount,
|
||||
}
|
||||
copyBinsVol, _ := copyBinariesVolAndMount()
|
||||
|
||||
Reference in new issue
Block a user