diff --git a/fuel_ccp/kubernetes.py b/fuel_ccp/kubernetes.py index f092451d..129a6674 100644 --- a/fuel_ccp/kubernetes.py +++ b/fuel_ccp/kubernetes.py @@ -207,11 +207,14 @@ def list_cluster_ingress(): namespace=CONF.kubernetes.namespace) -def list_cluster_statefulsets(): +def list_cluster_statefulsets(selector=None): + ccp_selector = "ccp=true" + if selector: + ccp_selector += ',' + selector client = get_client() return pykube.StatefulSet.objects(client).filter( namespace=CONF.kubernetes.namespace, - selector="ccp=true") + selector=ccp_selector) def get_object_names(items): diff --git a/fuel_ccp/status.py b/fuel_ccp/status.py index 80913768..475d252b 100644 --- a/fuel_ccp/status.py +++ b/fuel_ccp/status.py @@ -64,6 +64,14 @@ def get_pod_states(components=None): states[app_name]["job_completed"] += ( job.obj["status"].get("succeeded", 0)) + for ss in kubernetes.list_cluster_statefulsets(selector): + states.setdefault(ss.name, copy.deepcopy(STATE_TEMPLATE)) + states[ss.name]["pod_total"] = ss.obj["spec"]["replicas"] + for pod in kubernetes.list_cluster_pods(ss.name): + if all((cont["ready"] for cont in + pod.obj["status"]["containerStatuses"])): + states[ss.name]["pod_running"] += 1 + if CONF.configs.ingress.enabled: url_template = "https://%s" if CONF.configs.ingress.get("port"):