Skip to content

Commit

Permalink
Stop exposing the entire host filesystem
Browse files Browse the repository at this point in the history
With the principle of least privilege in mind, stop exposing the
entirety of the host filesystem.
  • Loading branch information
jmencak committed Jun 11, 2024
1 parent 4d6cb12 commit e00b92d
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 20 deletions.
10 changes: 5 additions & 5 deletions assets/tuned/manifests/ds-tuned.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ spec:
name: var-lib-kubelet
mountPropagation: HostToContainer
readOnly: true
- mountPath: /host
name: host
- mountPath: /host/var/lib
name: host-var-lib
mountPropagation: HostToContainer
env:
- name: WATCH_NAMESPACE
Expand Down Expand Up @@ -132,10 +132,10 @@ spec:
path: /var/lib/kubelet
type: Directory
name: var-lib-kubelet
- name: host
hostPath:
path: /
- hostPath:
path: /var/lib
type: Directory
name: host-var-lib
dnsPolicy: ClusterFirst
nodeSelector:
kubernetes.io/os: linux
Expand Down
5 changes: 2 additions & 3 deletions test/e2e/basic/metrics_cert_rotation.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,8 @@ var _ = ginkgo.Describe("[basic][metrics] Node Tuning Operator certificate rotat
secretCertContents := string(tlsSecret.Data["tls.crt"])

operatorPodIP := operatorPod.Status.PodIP
// We need chroot because host may be using system libraries incompatible with the container
// image system libraries. Alternatively, use container-shipped openssl.
opensslCmd := "/usr/sbin/chroot /host /usr/bin/openssl s_client -connect " + operatorPodIP + ":60000 2>/dev/null </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'"
// Use container-shipped openssl.
opensslCmd := "/usr/bin/openssl s_client -connect " + operatorPodIP + ":60000 2>/dev/null </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'"

serverCertContents, err := util.ExecCmdInPod(tunedPod, "/bin/bash", "-c", opensslCmd)
gomega.Expect(err).NotTo(gomega.HaveOccurred())
Expand Down
8 changes: 3 additions & 5 deletions test/e2e/basic/sysctl_d_override.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,7 @@ var _ = ginkgo.Describe("[basic][sysctl_d_override] Node Tuning Operator /etc/sy

if node != nil {
util.ExecAndLogCommand("oc", "label", "node", "--overwrite", node.Name, nodeLabelSysctlOverride+"-")
}
if pod != nil {
util.ExecAndLogCommand("oc", "exec", "-n", ntoconfig.WatchNamespace(), pod.Name, "--", "rm", sysctlFile)
util.ExecAndLogCommand("oc", "debug", fmt.Sprintf("no/%s", node.Name), "--", "rm", sysctlFile)
}
util.ExecAndLogCommand("oc", "delete", "-n", ntoconfig.WatchNamespace(), "-f", profileSysctlOverride)
})
Expand Down Expand Up @@ -72,7 +70,7 @@ var _ = ginkgo.Describe("[basic][sysctl_d_override] Node Tuning Operator /etc/sy
gomega.Expect(err).NotTo(gomega.HaveOccurred())

ginkgo.By(fmt.Sprintf("writing %s override file on the host with %s=%s", sysctlFile, sysctlVar, sysctlValSet))
_, _, err = util.ExecAndLogCommand("oc", "exec", "-n", ntoconfig.WatchNamespace(), pod.Name, "--", "sh", "-c",
_, _, err = util.ExecAndLogCommand("oc", "debug", fmt.Sprintf("no/%s", node.Name), "--", "sh", "-c",
fmt.Sprintf("echo %s=%s > %s; sync %s", sysctlVar, sysctlValSet, sysctlFile, sysctlFile))
gomega.Expect(err).NotTo(gomega.HaveOccurred())

Expand Down Expand Up @@ -118,7 +116,7 @@ var _ = ginkgo.Describe("[basic][sysctl_d_override] Node Tuning Operator /etc/sy
gomega.Expect(err).NotTo(gomega.HaveOccurred())

ginkgo.By(fmt.Sprintf("removing %s override file on the host", sysctlFile))
_, _, err = util.ExecAndLogCommand("oc", "exec", "-n", ntoconfig.WatchNamespace(), pod.Name, "--", "rm", sysctlFile)
_, _, err = util.ExecAndLogCommand("oc", "debug", fmt.Sprintf("no/%s", node.Name), "--", "rm", sysctlFile)
gomega.Expect(err).NotTo(gomega.HaveOccurred())

ginkgo.By(fmt.Sprintf("deleting Pod %s", pod.Name))
Expand Down
9 changes: 2 additions & 7 deletions test/e2e/core/cluster_version.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ var _ = ginkgo.Describe("[core][cluster_version] Node Tuning Operator host, cont
node *coreapi.Node
)

ginkgo.It("host, container OS and cluster version retrievable", func() {
ginkgo.It("container OS and cluster version retrievable", func() {
ginkgo.By("getting a list of worker nodes")
nodes, err := util.GetNodesByRole(cs, "worker")
gomega.Expect(err).NotTo(gomega.HaveOccurred())
Expand All @@ -28,13 +28,8 @@ var _ = ginkgo.Describe("[core][cluster_version] Node Tuning Operator host, cont
pod, err := util.GetTunedForNode(cs, node)
gomega.Expect(err).NotTo(gomega.HaveOccurred())

ginkgo.By(fmt.Sprintf("getting the host OS version on node %s", node.Name))
out, err := util.ExecCmdInPod(pod, "cat", "/host/etc/os-release")
gomega.Expect(err).NotTo(gomega.HaveOccurred())
util.Logf("%s", out)

ginkgo.By("getting the TuneD container OS version")
out, err = util.ExecCmdInPod(pod, "cat", "/etc/os-release")
out, err := util.ExecCmdInPod(pod, "cat", "/etc/os-release")
gomega.Expect(err).NotTo(gomega.HaveOccurred())
util.Logf("%s", out)

Expand Down

0 comments on commit e00b92d

Please sign in to comment.