From 5a61d615fe1c05487c26c32b2e8e4416f6cbb421 Mon Sep 17 00:00:00 2001
From: Pawel Wieczorek
Date: Fri, 27 Sep 2019 18:26:13 +0200
Subject: k8s: Add controller manager information collection
Issue-ID: SECCOM-235
Change-Id: Ieceb6337f935e6a5a6b94248ccf072229116510a
Signed-off-by: Pawel Wieczorek
---
test/security/k8s/src/check/check.go | 12 ++++++++++--
test/security/k8s/src/check/cmd/check/check.go | 5 +++++
test/security/k8s/src/check/rancher/rancher.go | 6 ++++++
test/security/k8s/src/check/raw/raw.go | 6 ++++++
4 files changed, 27 insertions(+), 2 deletions(-)
(limited to 'test/security')
diff --git a/test/security/k8s/src/check/check.go b/test/security/k8s/src/check/check.go
index b9814829e..cf412c112 100644
--- a/test/security/k8s/src/check/check.go
+++ b/test/security/k8s/src/check/check.go
@@ -6,6 +6,8 @@ type Informer interface {
GetAPIParams() ([]string, error)
// GetSchedulerParams returns scheduler parameters.
GetSchedulerParams() ([]string, error)
+ // GetControllerManagerParams returns controller manager parameters.
+ GetControllerManagerParams() ([]string, error)
}
// Command represents commands run on cluster.
@@ -16,15 +18,18 @@ const (
APIProcess Command = iota
// SchedulerProcess represents scheduler command ("kube-scheduler").
SchedulerProcess
+ // ControllerManagerProcess represents controller manager command ("kube-controller-manager").
+ ControllerManagerProcess
)
func (c Command) String() string {
names := [...]string{
"kube-apiserver",
"kube-scheduler",
+ "kube-controller-manager",
}
- if c < APIProcess || c > SchedulerProcess {
+ if c < APIProcess || c > ControllerManagerProcess {
return "exit"
}
return names[c]
@@ -38,15 +43,18 @@ const (
APIService Service = iota
// SchedulerService represents scheduler service ("kubernetes/scheduler").
SchedulerService
+ // ControllerManagerService represents controller manager service ("kubernetes/controller-manager").
+ ControllerManagerService
)
func (s Service) String() string {
names := [...]string{
"kubernetes/kubernetes",
"kubernetes/scheduler",
+ "kubernetes/controller-manager",
}
- if s < APIService || s > SchedulerService {
+ if s < APIService || s > ControllerManagerService {
return ""
}
return names[s]
diff --git a/test/security/k8s/src/check/cmd/check/check.go b/test/security/k8s/src/check/cmd/check/check.go
index 2d25100f3..dd089b107 100644
--- a/test/security/k8s/src/check/cmd/check/check.go
+++ b/test/security/k8s/src/check/cmd/check/check.go
@@ -48,4 +48,9 @@ func main() {
log.Fatal(err)
}
master.CheckScheduler(schedulerParams)
+
+ _, err = info.GetControllerManagerParams()
+ if err != nil {
+ log.Fatal(err)
+ }
}
diff --git a/test/security/k8s/src/check/rancher/rancher.go b/test/security/k8s/src/check/rancher/rancher.go
index 41f3c38e2..842fd3ff6 100644
--- a/test/security/k8s/src/check/rancher/rancher.go
+++ b/test/security/k8s/src/check/rancher/rancher.go
@@ -40,6 +40,12 @@ func (r *Rancher) GetSchedulerParams() ([]string, error) {
return getProcessParams(check.SchedulerProcess, check.SchedulerService)
}
+// GetControllerManagerParams returns parameters of running Kubernetes scheduler.
+// It queries default environment set in configuration file.
+func (r *Rancher) GetControllerManagerParams() ([]string, error) {
+ return getProcessParams(check.ControllerManagerProcess, check.ControllerManagerService)
+}
+
func getProcessParams(process check.Command, service check.Service) ([]string, error) {
hosts, err := listHosts()
if err != nil {
diff --git a/test/security/k8s/src/check/raw/raw.go b/test/security/k8s/src/check/raw/raw.go
index 3c5409aee..04a6fa554 100644
--- a/test/security/k8s/src/check/raw/raw.go
+++ b/test/security/k8s/src/check/raw/raw.go
@@ -40,6 +40,12 @@ func (r *Raw) GetSchedulerParams() ([]string, error) {
return getProcessParams(check.SchedulerProcess)
}
+// GetControllerManagerParams returns parameters of running Kubernetes scheduler.
+// It queries only cluster nodes with "controlplane" role.
+func (r *Raw) GetControllerManagerParams() ([]string, error) {
+ return getProcessParams(check.ControllerManagerProcess)
+}
+
func getProcessParams(process check.Command) ([]string, error) {
nodes, err := config.GetNodesInfo()
if err != nil {
--
cgit 1.2.3-korg