def wait_for_deployment(self, name, ns):
     """
     Waits for the given deployment to have the desired number of replicas.
     """
     logger.info("Checking status for deployment %s/%s" % (ns, name))
     kubectl("-n %s rollout status deployment/%s" % (ns, name))
     kubectl("get pods -n %s -o wide" % ns)
 def is_it_gone_yet(res_name, res_type):
     try:
         kubectl("get %s %s -n%s" % (res_type, res_name, ns),
                 logerr=False)
         raise self.StillThere
     except subprocess.CalledProcessError:
         # Success
         pass
Esempio n. 3
0
    def check_pod_status(self, ns):
        pods = self.cluster.list_namespaced_pod(ns)

        for pod in pods.items:
            logger.info("%s\t%s\t%s", pod.metadata.name, pod.metadata.namespace, pod.status.phase)
            if pod.status.phase != 'Running':
                kubectl("describe po %s -n %s" % (pod.metadata.name, pod.metadata.namespace))
            assert pod.status.phase == 'Running'
Esempio n. 4
0
    def delete_and_confirm(self, name, resource_type, ns="default"):
        try:
            kubectl("delete %s %s -n%s" % (resource_type, name, ns))
        except subprocess.CalledProcessError:
            pass

        def is_it_gone_yet(res_name, res_type):
            try:
                kubectl("get %s %s -n%s" % (res_type, res_name, ns),
                        logerr=False)
                raise self.StillThere
            except subprocess.CalledProcessError:
                # Success
                pass

        retry_until_success(is_it_gone_yet, retries=10, wait_time=10, function_args=[name, resource_type])
 def scale_deployment(self, deployment, ns, replicas):
     return kubectl("scale deployment %s -n %s --replicas %s" %
                    (deployment, ns, replicas)).strip()