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."
+    )