Multi env support and Kube client integration
Kube friendly Beta
Package versions supports Kube env
Added:
- Env type detection
- New option: --use-env, for selecting env
when function supports multiple detected envs
- Updated config loading
- Each module and command type has supported env check
and stops execution if it is on unsupported env
- Functions can support multiple envs
- Kubernetes dependency
- Kubenernetes API detection: local and remote
- Package checking class hierachy for using Salt or Kube
- Remote pod execution routine
- Flexible SSH/SSH Forwarder classes: with, ssh,do(), etc
- Multithreaded SSH script execution
- Number of workers parameter, default 5
Fixed:
- Config dependency
- Command loading with supported envs list
- Unittests structure and execution flow updated
- Unittests fixes
- Fixed debug mode handling
- Unified command type/support routine
- Nested attrs getter/setter
Change-Id: I3ade693ac21536e2b5dcee4b24d511749dc72759
Related-PROD: PROD-35811
diff --git a/cfg_checker/cli/arguments.py b/cfg_checker/cli/arguments.py
new file mode 100644
index 0000000..bd162a8
--- /dev/null
+++ b/cfg_checker/cli/arguments.py
@@ -0,0 +1,42 @@
+def add_global_arguments(parser):
+ parser.add_argument(
+ "-d",
+ "--debug",
+ action="store_true", default=False,
+ help="Set CLI logging level to DEBUG"
+ )
+ parser.add_argument(
+ '-s',
+ '--sudo',
+ action='store_true', default=True,
+ help="Use sudo for getting salt creds"
+ )
+ parser.add_argument(
+ '--force-no-key',
+ action='store_true', default=False,
+ help="Use sudo for getting salt creds"
+ )
+ parser.add_argument(
+ '--skip-nodes',
+ metavar='skip_string', default=None,
+ help="String with nodes to skip. Only trailing '*' supported!"
+ " Example: 'cmp*,ctl01'"
+ )
+ parser.add_argument(
+ '--kube-config-path',
+ metavar='skip_string', default="/root/.kube/config",
+ help="Kube config path with certificates and keys. "
+ "Default: '/root/.kube/config'"
+ )
+ parser.add_argument(
+ '--use-env',
+ metavar='use_env',
+ help="Specify env to use if function supports multiple among detected"
+ " Example: SALT/KUBE"
+ )
+
+ parser.add_argument(
+ '--skip-nodes-file',
+ metavar='skip_nodes_file', default=None,
+ help="Filename with nodes to skip. Note: use fqdn node names."
+ )