k8s: Add scheduler information collection 40/96340/1
authorPawel Wieczorek <p.wieczorek2@samsung.com>
Fri, 27 Sep 2019 14:10:33 +0000 (16:10 +0200)
committerPawel Wieczorek <p.wieczorek2@samsung.com>
Fri, 27 Sep 2019 15:38:49 +0000 (17:38 +0200)
Issue-ID: SECCOM-235
Change-Id: I7da645737440172d3cf11f33069daa2697f83056
Signed-off-by: Pawel Wieczorek <p.wieczorek2@samsung.com>
test/security/k8s/src/check/check.go
test/security/k8s/src/check/cmd/check/check.go
test/security/k8s/src/check/rancher/rancher.go
test/security/k8s/src/check/raw/raw.go

index c185887..b981482 100644 (file)
@@ -4,6 +4,8 @@ package check
 type Informer interface {
        // GetAPIParams returns API server parameters.
        GetAPIParams() ([]string, error)
+       // GetSchedulerParams returns scheduler parameters.
+       GetSchedulerParams() ([]string, error)
 }
 
 // Command represents commands run on cluster.
@@ -12,14 +14,17 @@ type Command int
 const (
        // APIProcess represents API server command ("kube-apiserver").
        APIProcess Command = iota
+       // SchedulerProcess represents scheduler command ("kube-scheduler").
+       SchedulerProcess
 )
 
 func (c Command) String() string {
        names := [...]string{
                "kube-apiserver",
+               "kube-scheduler",
        }
 
-       if c < APIProcess || c > APIProcess {
+       if c < APIProcess || c > SchedulerProcess {
                return "exit"
        }
        return names[c]
@@ -31,14 +36,17 @@ type Service int
 const (
        // APIService represents API server service ("kubernetes/kubernetes").
        APIService Service = iota
+       // SchedulerService represents scheduler service ("kubernetes/scheduler").
+       SchedulerService
 )
 
 func (s Service) String() string {
        names := [...]string{
                "kubernetes/kubernetes",
+               "kubernetes/scheduler",
        }
 
-       if s < APIService || s > APIService {
+       if s < APIService || s > SchedulerService {
                return ""
        }
        return names[s]
index 40e3a09..e609128 100644 (file)
@@ -42,4 +42,9 @@ func main() {
                log.Fatal(err)
        }
        master.CheckAPI(apiParams)
+
+       _, err = info.GetSchedulerParams()
+       if err != nil {
+               log.Fatal(err)
+       }
 }
index d77f154..41f3c38 100644 (file)
@@ -34,6 +34,12 @@ func (r *Rancher) GetAPIParams() ([]string, error) {
        return getProcessParams(check.APIProcess, check.APIService)
 }
 
+// GetSchedulerParams returns parameters of running Kubernetes scheduler.
+// It queries default environment set in configuration file.
+func (r *Rancher) GetSchedulerParams() ([]string, error) {
+       return getProcessParams(check.SchedulerProcess, check.SchedulerService)
+}
+
 func getProcessParams(process check.Command, service check.Service) ([]string, error) {
        hosts, err := listHosts()
        if err != nil {
index 2a9f0a1..3c5409a 100644 (file)
@@ -34,6 +34,12 @@ func (r *Raw) GetAPIParams() ([]string, error) {
        return getProcessParams(check.APIProcess)
 }
 
+// GetSchedulerParams returns parameters of running Kubernetes scheduler.
+// It queries only cluster nodes with "controlplane" role.
+func (r *Raw) GetSchedulerParams() ([]string, error) {
+       return getProcessParams(check.SchedulerProcess)
+}
+
 func getProcessParams(process check.Command) ([]string, error) {
        nodes, err := config.GetNodesInfo()
        if err != nil {