def perform(self): possible_labels = [('k8s-app', 'kube-dns'), ('k8s-app', 'core-dns')] pods = K8Kat.pods().ns("kube-system").lbs_inc_any(possible_labels).go() running = [pod for pod in pods if pod.status == 'Running'] outputs = [f"{pod.name}: {pod.phase}" for pod in pods] return self.record_step_performed( outcome=len(running) > 0, outputs=outputs, bundle={} )
def find_and_assoc_pods(self): from k8_kat.base.k8_kat import K8Kat matchers = list(self.pod_select_labels.items()) self.assoced_pods = K8Kat.pods().ns( self.ns).lbs_inc_each(matchers).go()
def stunt_pods(): broker.check_connected_or_raise() garbage = K8Kat.pods().lbs_inc_each(StuntPod.labels()).go() ser = garbage.serialize(PodSerialization.standard) return jsonify(data=ser)
def kill_stunt_pods(): garbage = K8Kat.pods().lbs_inc_each(StuntPod.labels()) garbage.delete_all() return jsonify(status='done')
def events(ns, name): pod = K8Kat.pods().ns(ns).find(name) serializer = EventSerialization.standard serialized = [serializer(e) for e in pod.events()] return jsonify(data=serialized)
def run_command(): j = request.json ns, pod_name, cmd = j['pod_namespace'], j['pod_name'], j['command'] pod = K8Kat.pods().ns(ns).find(pod_name) return jsonify(data=pod.cmd(cmd))
def logs(ns, name): pod = K8Kat.pods().ns(ns).find(name) since_seconds = int(request.args.get('since_seconds', '5000')) return dict(data=pod.logs(since_seconds))
def kill_stunt_pods(): pods = K8Kat.pods().lbs_inc_each(StuntPod.labels()) pods.delete_all()
def find(self): pod = K8Kat.pods().ns(self.namespace).find(self.pod_name) return pod and pod.raw
def names(query=None): query = query or K8Kat.pods() return query.pluck('name')
def test_delete_all(self): self.assertCountEqual(names(), ['p11', 'p12', 'p21']) K8Kat.pods().lbs_inc_each(l1='v1').delete_all() self.assertCountEqual(names(), ['p11', 'p12', 'p21'])