in actions/devel/redis/nuvolaris/config.py [0:0]
def detect_labels(labels=None):
# skip autodetection of nuvolaris.kube if already available in _config
if exists('nuvolaris.kube') and get('nuvolaris.kube') != 'auto':
logging.info(f"*** configuration provided already a nuvolaris.kube={get('nuvolaris.kube')}")
return {}
# read labels if not available
if not labels:
import nuvolaris.kube as kube
labels = kube.kubectl("get", "nodes", jsonpath='{.items[].metadata.labels}')
res = {}
kube = None
for i in labels:
for j in list(i.keys()):
if j.startswith("nuvolaris.io/"):
key = f"nuvolaris.{j[13:]}"
res[key] = i[j]
_config[key] = i[j]
for i in labels:
for j in list(i.keys()):
# detect the kube type
if j.find("eksctl.io") >= 0:
kube ="eks"
break
if j.find("k8s.io/cloud-provider-aws") >= 0:
kube ="eks"
break
elif j.find("microk8s.io") >= 0:
kube = "microk8s"
break
elif j.find("lke.linode.com") >=0:
kube = "lks"
break
elif j.find("node.openshift.io") >=0:
kube = "openshift"
break
elif j.endswith("kubernetes.io/instance-type") and i[j] == "k3s":
kube = "k3s"
break
elif j.find("cloud.google.com/gke") >=0:
kube = "gke"
break
elif j.find("kubernetes.azure.com") >=0:
kube = "aks"
break
# assign all the 'nuvolaris.io' labels
if kube:
res["nuvolaris.kube"] = kube
_config["nuvolaris.kube"] = kube
return res
# defaults to generic if it is not yet detected
if exists('nuvolaris.kube') and get('nuvolaris.kube') == 'auto':
_config["nuvolaris.kube"] = "generic"
res["nuvolaris.kube"] = "generic"
return res