Skip to content
This repository has been archived by the owner on Jun 26, 2023. It is now read-only.

Commit

Permalink
Merge pull request #981 from Divya063/logging
Browse files Browse the repository at this point in the history
[MTB] Added leveled logging
  • Loading branch information
k8s-ci-robot committed Aug 20, 2020
2 parents 8c65c19 + 05956da commit ffb958c
Show file tree
Hide file tree
Showing 19 changed files with 154 additions and 22 deletions.
4 changes: 1 addition & 3 deletions benchmarks/kubectl-mtb/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,20 @@ go 1.13

require (
github.com/creasty/defaults v1.3.0
github.com/google/uuid v1.1.1
github.com/kubernetes-sigs/multi-tenancy v0.0.0-20200707060558-ea14282f3be6
github.com/kubernetes-sigs/wg-policy-prototypes/policy-report v0.0.0-20200701192251-679efd0b105e
github.com/nirmata/kyverno v1.1.8
github.com/olekukonko/tablewriter v0.0.4
github.com/onsi/gomega v1.8.1
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7
github.com/sirupsen/logrus v1.4.2
github.com/spf13/cobra v1.0.0
go.uber.org/zap v1.15.0
gopkg.in/yaml.v2 v2.2.8
k8s.io/api v0.18.3
k8s.io/apiextensions-apiserver v0.18.2
k8s.io/apimachinery v0.18.3
k8s.io/cli-runtime v0.18.3
k8s.io/client-go v0.18.3
k8s.io/klog v1.0.0
k8s.io/kubectl v0.0.0
k8s.io/kubernetes v1.18.3
sigs.k8s.io/controller-runtime v0.6.0
Expand Down
37 changes: 37 additions & 0 deletions benchmarks/kubectl-mtb/go.sum

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion benchmarks/kubectl-mtb/internal/kubectl-mtb/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,4 @@ func Execute() {
func filterBenchmarks(cmd *cobra.Command) {
profileLevel, _ := cmd.Flags().GetInt("profile-level")
benchmarks = test.BenchmarkSuite.ProfileLevel(profileLevel)
}
}
13 changes: 13 additions & 0 deletions benchmarks/kubectl-mtb/internal/kubectl-mtb/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import (
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/internal/reporter"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/pkg/benchmark"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils/log"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/types"
)

Expand Down Expand Up @@ -147,6 +148,14 @@ func validateFlags(cmd *cobra.Command) error {
func runTests(cmd *cobra.Command, args []string) error {

benchmarkRunOptions.Label, _ = cmd.Flags().GetString("labels")
// Get log level
debug, _ := cmd.Flags().GetBool("debug")
if debug {
log.SetupLogger(true)
} else {
// default mode production
log.SetupLogger(false)
}

// Get reporters from the user
reporterFlag, _ := cmd.Flags().GetString("out")
Expand Down Expand Up @@ -178,6 +187,7 @@ func runTests(cmd *cobra.Command, args []string) error {

err := ts.SetDefaults()
if err != nil {
log.Logging.Debug(err.Error())
return err
}

Expand All @@ -186,6 +196,7 @@ func runTests(cmd *cobra.Command, args []string) error {
//Run Prerun
err = b.PreRun(benchmarkRunOptions)
if err != nil {
log.Logging.Debug(err.Error())
suiteSummary.NumberOfFailedValidations++
ts.Validation = false
ts.ValidationError = err
Expand All @@ -196,6 +207,7 @@ func runTests(cmd *cobra.Command, args []string) error {
if ts.Validation {
err = b.Run(benchmarkRunOptions)
if err != nil {
log.Logging.Debug(err.Error())
suiteSummary.NumberOfFailedTests++
ts.Test = false
ts.TestError = err
Expand Down Expand Up @@ -229,6 +241,7 @@ func runTests(cmd *cobra.Command, args []string) error {
}

func newRunCmd() *cobra.Command {
runCmd.Flags().BoolP("debug", "d", false, "Use debugging mode")
runCmd.Flags().StringP("namespace", "n", "", "(required) tenant namespace")
runCmd.Flags().String("as", "", "(required) user name to impersonate")
runCmd.Flags().StringP("out", "o", "default", "(optional) output reporters (default, policyreport)")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/pkg/benchmark"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils/log"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/types"
)

Expand All @@ -24,7 +25,8 @@ var b = &benchmark.Benchmark{

lists, err := options.KClient.Discovery().ServerPreferredResources()
if err != nil {
return nil
log.Logging.Debug(err.Error())
return err
}

for _, list := range lists {
Expand Down Expand Up @@ -54,6 +56,7 @@ var b = &benchmark.Benchmark{
for _, verb := range verbs {
access, msg, err := utils.RunAccessCheck(options.TClient, options.TenantNamespace, resource, verb)
if err != nil {
log.Logging.Debug(err.Error())
return err
}
if access {
Expand All @@ -69,7 +72,7 @@ func init() {
// Get the []byte representation of a file, or an error if it doesn't exist:
err := b.ReadConfig(box.Get("block_access_to_cluster_resources/config.yaml"))
if err != nil {
fmt.Println(err)
log.Logging.Error(err.Error())
}

test.BenchmarkSuite.Add(b)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/pkg/benchmark"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils/log"
podutil "sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils/resources/pod"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/types"
)
Expand All @@ -27,6 +28,7 @@ var b = &benchmark.Benchmark{

access, msg, err := utils.RunAccessCheck(options.TClient, options.TenantNamespace, resource, "create")
if err != nil {
log.Logging.Debug(err.Error())
return err
}
if !access {
Expand All @@ -41,6 +43,7 @@ var b = &benchmark.Benchmark{
podSpec := &podutil.PodSpec{NS: options.TenantNamespace, Capability: []v1.Capability{"SETPCAP"}}
err := podSpec.SetDefaults()
if err != nil {
log.Logging.Debug(err.Error())
return err
}

Expand All @@ -50,6 +53,7 @@ var b = &benchmark.Benchmark{
if err == nil {
return fmt.Errorf("Tenant must be unable to create pod with add capabilities")
}
log.Logging.Debug("Test passed: ", err.Error())

return nil
},
Expand All @@ -59,7 +63,7 @@ func init() {
// Get the []byte representation of a file, or an error if it doesn't exist:
err := b.ReadConfig(box.Get("block_add_capabilities/config.yaml"))
if err != nil {
fmt.Println(err)
log.Logging.Error(err.Error())
}

test.BenchmarkSuite.Add(b)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/pkg/benchmark"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils/log"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/types"
)

Expand All @@ -32,7 +33,8 @@ var b = &benchmark.Benchmark{
for _, verb := range verbs {
access, msg, err := utils.RunAccessCheck(options.TClient, options.TenantNamespace, resource, verb)
if err != nil {
fmt.Println(err.Error())
log.Logging.Debug(err.Error())
return err
}
if access {
return fmt.Errorf(msg)
Expand All @@ -47,7 +49,7 @@ func init() {
// Get the []byte representation of a file, or an error if it doesn't exist:
err := b.ReadConfig(box.Get("block_ns_quota/config.yaml"))
if err != nil {
fmt.Println(err)
log.Logging.Error(err.Error())
}

test.BenchmarkSuite.Add(b)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/pkg/benchmark"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils/log"
podutil "sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils/resources/pod"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/types"
)
Expand All @@ -26,6 +27,7 @@ var b = &benchmark.Benchmark{

access, msg, err := utils.RunAccessCheck(options.TClient, options.TenantNamespace, resource, "create")
if err != nil {
log.Logging.Debug(err.Error())
return err
}
if !access {
Expand All @@ -40,6 +42,7 @@ var b = &benchmark.Benchmark{
podSpec := &podutil.PodSpec{NS: options.TenantNamespace, AllowPrivilegeEscalation: true}
err := podSpec.SetDefaults()
if err != nil {
log.Logging.Debug(err.Error())
return err
}

Expand All @@ -49,6 +52,7 @@ var b = &benchmark.Benchmark{
if err == nil {
return fmt.Errorf("Tenant must be unable to create pod that sets AllowPrivilegeEscalation to true")
}
log.Logging.Debug("Test passed: ", err.Error())

return nil
},
Expand All @@ -58,7 +62,7 @@ func init() {
// Get the []byte representation of a file, or an error if it doesn't exist:
err := b.ReadConfig(box.Get("block_privilege_escalation/config.yaml"))
if err != nil {
fmt.Println(err)
log.Logging.Error(err.Error())
}

test.BenchmarkSuite.Add(b)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/pkg/benchmark"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils/log"
podutil "sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils/resources/pod"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/types"
)
Expand All @@ -26,6 +27,7 @@ var b = &benchmark.Benchmark{

access, msg, err := utils.RunAccessCheck(options.TClient, options.TenantNamespace, resource, "create")
if err != nil {
log.Logging.Debug(err.Error())
return err
}
if !access {
Expand All @@ -40,6 +42,7 @@ var b = &benchmark.Benchmark{
podSpec := &podutil.PodSpec{NS: options.TenantNamespace, IsPrivileged: true, AllowPrivilegeEscalation: true}
err := podSpec.SetDefaults()
if err != nil {
log.Logging.Debug(err.Error())
return err
}

Expand All @@ -49,6 +52,7 @@ var b = &benchmark.Benchmark{
if err == nil {
return fmt.Errorf("Tenant must be unable to create pod that sets privileged to true")
}
log.Logging.Debug("Test passed: ", err.Error())
return nil
},
}
Expand All @@ -57,7 +61,7 @@ func init() {
// Get the []byte representation of a file, or an error if it doesn't exist:
err := b.ReadConfig(box.Get("block_privileged_containers/config.yaml"))
if err != nil {
fmt.Println(err)
log.Logging.Error(err.Error())
}

test.BenchmarkSuite.Add(b)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/pkg/benchmark"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils/log"
podutil "sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils/resources/pod"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/types"
)
Expand All @@ -27,6 +28,7 @@ var b = &benchmark.Benchmark{

access, msg, err := utils.RunAccessCheck(options.TClient, options.TenantNamespace, resource, "create")
if err != nil {
log.Logging.Debug(err.Error())
return err
}
if !access {
Expand All @@ -50,6 +52,7 @@ var b = &benchmark.Benchmark{
podSpec := &podutil.PodSpec{NS: options.TenantNamespace, InlineVolumeSources: inlineVolumeSources}
err := podSpec.SetDefaults()
if err != nil {
log.Logging.Debug(err.Error())
return err
}

Expand All @@ -59,6 +62,7 @@ var b = &benchmark.Benchmark{
if err == nil {
return fmt.Errorf("Tenant must be unable to create pod with host-path volume")
}
log.Logging.Debug("Test passed: ", err.Error())
return nil
},
}
Expand All @@ -67,7 +71,7 @@ func init() {
// Get the []byte representation of a file, or an error if it doesn't exist:
err := b.ReadConfig(box.Get("block_use_of_bind_mounts/config.yaml"))
if err != nil {
fmt.Println(err)
log.Logging.Error(err.Error())
}

test.BenchmarkSuite.Add(b)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/pkg/benchmark"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils/log"
podutil "sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/test/utils/resources/pod"
"sigs.k8s.io/multi-tenancy/benchmarks/kubectl-mtb/types"
)
Expand All @@ -26,6 +27,7 @@ var b = &benchmark.Benchmark{

access, msg, err := utils.RunAccessCheck(options.TClient, options.TenantNamespace, resource, "create")
if err != nil {
log.Logging.Debug(err.Error())
return err
}
if !access {
Expand All @@ -40,6 +42,7 @@ var b = &benchmark.Benchmark{
podSpec := &podutil.PodSpec{NS: options.TenantNamespace, HostIPC: true}
err := podSpec.SetDefaults()
if err != nil {
log.Logging.Debug(err.Error())
return err
}

Expand All @@ -49,7 +52,7 @@ var b = &benchmark.Benchmark{
if err == nil {
return fmt.Errorf("Tenant must be unable to create pod with HostIPC set to true")
}

log.Logging.Debug("Test passed: ", err.Error())
return nil
},
}
Expand All @@ -58,7 +61,7 @@ func init() {
// Get the []byte representation of a file, or an error if it doesn't exist:
err := b.ReadConfig(box.Get("block_use_of_host_ipc/config.yaml"))
if err != nil {
fmt.Println(err)
log.Logging.Error(err.Error())
}

test.BenchmarkSuite.Add(b)
Expand Down
Loading

0 comments on commit ffb958c

Please sign in to comment.