mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-05 15:37:19 +00:00
fix: nits in cli flags (#7736)
Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
This commit is contained in:
parent
a1bc85a912
commit
7d6cfa3166
4 changed files with 49 additions and 48 deletions
|
@ -56,7 +56,7 @@ type ApplyCommandConfig struct {
|
||||||
Context string
|
Context string
|
||||||
Namespace string
|
Namespace string
|
||||||
MutateLogPath string
|
MutateLogPath string
|
||||||
VariablesString string
|
Variables []string
|
||||||
ValuesFile string
|
ValuesFile string
|
||||||
UserInfoPath string
|
UserInfoPath string
|
||||||
Cluster bool
|
Cluster bool
|
||||||
|
@ -182,23 +182,23 @@ func Command() *cobra.Command {
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
cmd.Flags().StringArrayVarP(&applyCommandConfig.ResourcePaths, "resource", "r", []string{}, "Path to resource files")
|
cmd.Flags().StringSliceVarP(&applyCommandConfig.ResourcePaths, "resource", "r", []string{}, "Path to resource files")
|
||||||
cmd.Flags().BoolVarP(&applyCommandConfig.Cluster, "cluster", "c", false, "Checks if policies should be applied to cluster in the current context")
|
cmd.Flags().BoolVarP(&applyCommandConfig.Cluster, "cluster", "c", false, "Checks if policies should be applied to cluster in the current context")
|
||||||
cmd.Flags().StringVarP(&applyCommandConfig.MutateLogPath, "output", "o", "", "Prints the mutated resources in provided file/directory")
|
cmd.Flags().StringVarP(&applyCommandConfig.MutateLogPath, "output", "o", "", "Prints the mutated resources in provided file/directory")
|
||||||
// currently `set` flag supports variable for single policy applied on single resource
|
// currently `set` flag supports variable for single policy applied on single resource
|
||||||
cmd.Flags().StringVarP(&applyCommandConfig.UserInfoPath, "userinfo", "u", "", "Admission Info including Roles, Cluster Roles and Subjects")
|
cmd.Flags().StringVarP(&applyCommandConfig.UserInfoPath, "userinfo", "u", "", "Admission Info including Roles, Cluster Roles and Subjects")
|
||||||
cmd.Flags().StringVarP(&applyCommandConfig.VariablesString, "set", "s", "", "Variables that are required")
|
cmd.Flags().StringSliceVarP(&applyCommandConfig.Variables, "set", "s", nil, "Variables that are required")
|
||||||
cmd.Flags().StringVarP(&applyCommandConfig.ValuesFile, "values-file", "f", "", "File containing values for policy variables")
|
cmd.Flags().StringVarP(&applyCommandConfig.ValuesFile, "values-file", "f", "", "File containing values for policy variables")
|
||||||
cmd.Flags().BoolVarP(&applyCommandConfig.PolicyReport, "policy-report", "p", false, "Generates policy report when passed (default policyviolation)")
|
cmd.Flags().BoolVarP(&applyCommandConfig.PolicyReport, "policy-report", "p", false, "Generates policy report when passed (default policyviolation)")
|
||||||
cmd.Flags().StringVarP(&applyCommandConfig.Namespace, "namespace", "n", "", "Optional Policy parameter passed with cluster flag")
|
cmd.Flags().StringVarP(&applyCommandConfig.Namespace, "namespace", "n", "", "Optional Policy parameter passed with cluster flag")
|
||||||
cmd.Flags().BoolVarP(&applyCommandConfig.Stdin, "stdin", "i", false, "Optional mutate policy parameter to pipe directly through to kubectl")
|
cmd.Flags().BoolVarP(&applyCommandConfig.Stdin, "stdin", "i", false, "Optional mutate policy parameter to pipe directly through to kubectl")
|
||||||
cmd.Flags().BoolVarP(&applyCommandConfig.RegistryAccess, "registry", "", false, "If set to true, access the image registry using local docker credentials to populate external data")
|
cmd.Flags().BoolVar(&applyCommandConfig.RegistryAccess, "registry", false, "If set to true, access the image registry using local docker credentials to populate external data")
|
||||||
cmd.Flags().StringVarP(&applyCommandConfig.KubeConfig, "kubeconfig", "", "", "path to kubeconfig file with authorization and master location information")
|
cmd.Flags().StringVar(&applyCommandConfig.KubeConfig, "kubeconfig", "", "path to kubeconfig file with authorization and master location information")
|
||||||
cmd.Flags().StringVarP(&applyCommandConfig.Context, "context", "", "", "The name of the kubeconfig context to use")
|
cmd.Flags().StringVar(&applyCommandConfig.Context, "context", "", "The name of the kubeconfig context to use")
|
||||||
cmd.Flags().StringVarP(&applyCommandConfig.GitBranch, "git-branch", "b", "", "test git repository branch")
|
cmd.Flags().StringVarP(&applyCommandConfig.GitBranch, "git-branch", "b", "", "test git repository branch")
|
||||||
cmd.Flags().BoolVarP(&applyCommandConfig.AuditWarn, "audit-warn", "", false, "If set to true, will flag audit policies as warnings instead of failures")
|
cmd.Flags().BoolVar(&applyCommandConfig.AuditWarn, "audit-warn", false, "If set to true, will flag audit policies as warnings instead of failures")
|
||||||
cmd.Flags().IntVar(&applyCommandConfig.warnExitCode, "warn-exit-code", 0, "Set the exit code for warnings; if failures or errors are found, will exit 1")
|
cmd.Flags().IntVar(&applyCommandConfig.warnExitCode, "warn-exit-code", 0, "Set the exit code for warnings; if failures or errors are found, will exit 1")
|
||||||
cmd.Flags().BoolVarP(&applyCommandConfig.warnNoPassed, "warn-no-pass", "", false, "Specify if warning exit code should be raised if no objects satisfied a policy; can be used together with --warn-exit-code flag")
|
cmd.Flags().BoolVar(&applyCommandConfig.warnNoPassed, "warn-no-pass", false, "Specify if warning exit code should be raised if no objects satisfied a policy; can be used together with --warn-exit-code flag")
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,11 +210,11 @@ func (c *ApplyCommandConfig) applyCommandHelper() (rc *common.ResultCounts, reso
|
||||||
}
|
}
|
||||||
fs := memfs.New()
|
fs := memfs.New()
|
||||||
|
|
||||||
if c.ValuesFile != "" && c.VariablesString != "" {
|
if c.ValuesFile != "" && c.Variables != nil {
|
||||||
return rc, resources, skipInvalidPolicies, responses, sanitizederror.NewWithError("pass the values either using set flag or values_file flag", err)
|
return rc, resources, skipInvalidPolicies, responses, sanitizederror.NewWithError("pass the values either using set flag or values_file flag", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
variables, globalValMap, valuesMap, namespaceSelectorMap, subresources, err := common.GetVariable(c.VariablesString, c.ValuesFile, fs, false, "")
|
variables, globalValMap, valuesMap, namespaceSelectorMap, subresources, err := common.GetVariable(c.Variables, c.ValuesFile, fs, false, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !sanitizederror.IsErrorSanitized(err) {
|
if !sanitizederror.IsErrorSanitized(err) {
|
||||||
return rc, resources, skipInvalidPolicies, responses, sanitizederror.NewWithError("failed to decode yaml", err)
|
return rc, resources, skipInvalidPolicies, responses, sanitizederror.NewWithError("failed to decode yaml", err)
|
||||||
|
@ -334,7 +334,7 @@ func (c *ApplyCommandConfig) applyCommandHelper() (rc *common.ResultCounts, reso
|
||||||
osExit(1)
|
osExit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (len(resources) > 1 || len(policies) > 1) && c.VariablesString != "" {
|
if (len(resources) > 1 || len(policies) > 1) && c.Variables != nil {
|
||||||
return rc, resources, skipInvalidPolicies, responses, sanitizederror.NewWithError("currently `set` flag supports variable for single policy applied on single resource ", nil)
|
return rc, resources, skipInvalidPolicies, responses, sanitizederror.NewWithError("currently `set` flag supports variable for single policy applied on single resource ", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -348,7 +348,7 @@ func (c *ApplyCommandConfig) applyCommandHelper() (rc *common.ResultCounts, reso
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.VariablesString != "" {
|
if len(variables) != 0 {
|
||||||
variables = common.SetInStoreContext(policies, variables)
|
variables = common.SetInStoreContext(policies, variables)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,6 @@ func applyPoliciesFromPath(
|
||||||
engineResponses := make([]engineapi.EngineResponse, 0)
|
engineResponses := make([]engineapi.EngineResponse, 0)
|
||||||
var dClient dclient.Interface
|
var dClient dclient.Interface
|
||||||
values := &api.Test{}
|
values := &api.Test{}
|
||||||
var variablesString string
|
|
||||||
var resultCounts common.ResultCounts
|
var resultCounts common.ResultCounts
|
||||||
|
|
||||||
store.SetLocal(true)
|
store.SetLocal(true)
|
||||||
|
@ -67,7 +66,7 @@ func applyPoliciesFromPath(
|
||||||
valuesFile := values.Variables
|
valuesFile := values.Variables
|
||||||
userInfoFile := values.UserInfo
|
userInfoFile := values.UserInfo
|
||||||
|
|
||||||
variables, globalValMap, valuesMap, namespaceSelectorMap, subresources, err := common.GetVariable(variablesString, values.Variables, fs, isGit, policyResourcePath)
|
variables, globalValMap, valuesMap, namespaceSelectorMap, subresources, err := common.GetVariable(nil, values.Variables, fs, isGit, policyResourcePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !sanitizederror.IsErrorSanitized(err) {
|
if !sanitizederror.IsErrorSanitized(err) {
|
||||||
return nil, nil, sanitizederror.NewWithError("failed to decode yaml", err)
|
return nil, nil, sanitizederror.NewWithError("failed to decode yaml", err)
|
||||||
|
|
|
@ -54,12 +54,12 @@ func Command() *cobra.Command {
|
||||||
cmd.Flags().StringVarP(&fileName, "file-name", "f", "kyverno-test.yaml", "test filename")
|
cmd.Flags().StringVarP(&fileName, "file-name", "f", "kyverno-test.yaml", "test filename")
|
||||||
cmd.Flags().StringVarP(&gitBranch, "git-branch", "b", "", "test github repository branch")
|
cmd.Flags().StringVarP(&gitBranch, "git-branch", "b", "", "test github repository branch")
|
||||||
cmd.Flags().StringVarP(&testCase, "test-case-selector", "t", "", `run some specific test cases by passing a string argument in double quotes to this flag like - "policy=<policy_name>, rule=<rule_name>, resource=<resource_name". The argument could be any combination of policy, rule and resource.`)
|
cmd.Flags().StringVarP(&testCase, "test-case-selector", "t", "", `run some specific test cases by passing a string argument in double quotes to this flag like - "policy=<policy_name>, rule=<rule_name>, resource=<resource_name". The argument could be any combination of policy, rule and resource.`)
|
||||||
cmd.Flags().BoolVarP(&manifestMutate, "manifest-mutate", "", false, "prints out a template test manifest for a mutate policy")
|
cmd.Flags().BoolVar(&manifestMutate, "manifest-mutate", false, "prints out a template test manifest for a mutate policy")
|
||||||
cmd.Flags().BoolVarP(&manifestValidate, "manifest-validate", "", false, "prints out a template test manifest for a validate policy")
|
cmd.Flags().BoolVar(&manifestValidate, "manifest-validate", false, "prints out a template test manifest for a validate policy")
|
||||||
cmd.Flags().BoolVarP(®istryAccess, "registry", "", false, "If set to true, access the image registry using local docker credentials to populate external data")
|
cmd.Flags().BoolVar(®istryAccess, "registry", false, "If set to true, access the image registry using local docker credentials to populate external data")
|
||||||
cmd.Flags().BoolVarP(&failOnly, "fail-only", "", false, "If set to true, display all the failing test only as output for the test command")
|
cmd.Flags().BoolVar(&failOnly, "fail-only", false, "If set to true, display all the failing test only as output for the test command")
|
||||||
cmd.Flags().BoolVarP(&removeColor, "remove-color", "", false, "Remove any color from output")
|
cmd.Flags().BoolVar(&removeColor, "remove-color", false, "Remove any color from output")
|
||||||
cmd.Flags().BoolVarP(&compact, "compact", "", true, "Does not show detailed results")
|
cmd.Flags().BoolVar(&compact, "compact", true, "Does not show detailed results")
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -230,7 +230,13 @@ func RemoveDuplicateAndObjectVariables(matches [][]string) string {
|
||||||
return variableStr
|
return variableStr
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetVariable(variablesString, valuesFile string, fs billy.Filesystem, isGit bool, policyResourcePath string) (map[string]string, map[string]string, map[string]map[string]Resource, map[string]map[string]string, []Subresource, error) {
|
func GetVariable(
|
||||||
|
variablesString []string,
|
||||||
|
valuesFile string,
|
||||||
|
fs billy.Filesystem,
|
||||||
|
isGit bool,
|
||||||
|
policyResourcePath string,
|
||||||
|
) (map[string]string, map[string]string, map[string]map[string]Resource, map[string]map[string]string, []Subresource, error) {
|
||||||
valuesMapResource := make(map[string]map[string]Resource)
|
valuesMapResource := make(map[string]map[string]Resource)
|
||||||
valuesMapRule := make(map[string]map[string]Rule)
|
valuesMapRule := make(map[string]map[string]Rule)
|
||||||
namespaceSelectorMap := make(map[string]map[string]string)
|
namespaceSelectorMap := make(map[string]map[string]string)
|
||||||
|
@ -241,9 +247,7 @@ func GetVariable(variablesString, valuesFile string, fs billy.Filesystem, isGit
|
||||||
|
|
||||||
var yamlFile []byte
|
var yamlFile []byte
|
||||||
var err error
|
var err error
|
||||||
if variablesString != "" {
|
for _, kvpair := range variablesString {
|
||||||
kvpairs := strings.Split(strings.Trim(variablesString, " "), ",")
|
|
||||||
for _, kvpair := range kvpairs {
|
|
||||||
kvs := strings.Split(strings.Trim(kvpair, " "), "=")
|
kvs := strings.Split(strings.Trim(kvpair, " "), "=")
|
||||||
if strings.Contains(kvs[0], "request.object") {
|
if strings.Contains(kvs[0], "request.object") {
|
||||||
if !strings.Contains(reqObjVars, kvs[0]) {
|
if !strings.Contains(reqObjVars, kvs[0]) {
|
||||||
|
@ -251,10 +255,8 @@ func GetVariable(variablesString, valuesFile string, fs billy.Filesystem, isGit
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
variables[strings.Trim(kvs[0], " ")] = strings.Trim(kvs[1], " ")
|
variables[strings.Trim(kvs[0], " ")] = strings.Trim(kvs[1], " ")
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if valuesFile != "" {
|
if valuesFile != "" {
|
||||||
if isGit {
|
if isGit {
|
||||||
|
|
Loading…
Add table
Reference in a new issue