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/common/const.py b/cfg_checker/common/const.py
index 3b17099..2ae41f6 100644
--- a/cfg_checker/common/const.py
+++ b/cfg_checker/common/const.py
@@ -54,7 +54,10 @@
uknown_code = "unk"
-all_roles_map = {
+ENV_TYPE_KUBE = "salt"
+ENV_TYPE_KUBE = "kube"
+
+all_salt_roles_map = {
"apt": "repository",
"bmk": "validation",
"cfg": "master",
@@ -98,3 +101,38 @@
_mainteiners_index_filename = "mainteiners.json"
_mirantis_versions_filename = "mirantis_v.json"
_other_versions_filename = "other_v.json"
+
+all_kube_roles_map = {
+ 'node-role.kubernetes.io/master': "k8s-master",
+ 'openstack-compute-node': "os-cmp",
+ 'openstack-control-plane': "os-ctl",
+ 'openstack-gateway': "os-gtw",
+ 'openvswitch': "ovs",
+ 'local-volume-provisioner': "",
+ 'ceph_role_mgr': "ceph-mgr",
+ 'ceph_role_mon': "ceph-mon",
+ 'com.docker.ucp.collection.shared': "ucp-shared",
+ 'com.docker.ucp.collection.system': "ucp-system",
+ 'com.docker.ucp.collection.swarm': "ucp-swarm",
+ 'com.docker.ucp.collection.root': "ucp-root",
+}
+
+truth = ['true', '1', 't', 'y', 'yes', 'yeah', 'yup', 'certainly', 'uh-huh']
+
+ubuntu_versions = {
+ "20.10": "Groovy Gorilla",
+ "20.04": "Focal Fossa",
+ "18.04": "Bionic Beaver",
+ "16.04": "Xenial Xerus",
+ "14.04": "Trusty Tahr",
+}
+
+nova_openstack_versions = {
+ "23": "wallaby",
+ "22": "victoria",
+ "21": "ussuri",
+ "20": "train",
+ "19": "stein",
+ "18": "rocky",
+ "17": "queens"
+}