def test_pod_create_delete_exitcode(self): repo = self.mk_repo() conf = ConfigLoader.load(workspace_dir=repo.working_dir) with KubernetesRunner(config=conf) as kr: kr._vol_claim_create() step = Box( { "id": "test", "uses": "docker://alpine:3.9", "runs": ("echo", "hello"), }, default_box=True, ) kr._pod_name = kr._base_pod_name + f"-{step.id}" kr._pod_create(step, "alpine:3.9") self.assertEqual(kr._pod_exit_code(), 0) response = self._kclient.read_namespaced_pod(kr._pod_name, namespace="default") self.assertEqual(response.status.phase, "Succeeded") kr._pod_delete() self.assertRaises( Exception, self._kclient.read_namespaced_pod, **{ "name": kr._pod_name, "namespace": "default" }, ) time.sleep(5) step = Box( { "id": "test", "uses": "docker://alpine:3.9", "runs": ("ecdho", "hello"), }, default_box=True, ) kr._pod_name = kr._base_pod_name + f"-{step.id}" kr._pod_create(step, "alpine:3.9") self.assertEqual(kr._pod_exit_code(), 1) response = self._kclient.read_namespaced_pod(kr._pod_name, namespace="default") self.assertEqual(response.status.phase, "Failed") kr._pod_delete() kr._vol_claim_delete() self.assertRaises( Exception, self._kclient.read_namespaced_pod, **{ "name": kr._pod_name, "namespace": "default" }, )
def test_copy_ctx(self): repo = self.mk_repo() conf = ConfigLoader.load(workspace_dir=repo.working_dir) with KubernetesRunner(config=conf) as kr: kr._vol_claim_create() kr._init_pod_create() time.sleep(5) response = self._kclient.read_namespaced_pod(kr._init_pod_name, namespace="default") self.assertEqual(response.status.phase, "Running") kr._copy_ctx() kr._init_pod_delete() kr._vol_claim_delete() repo.close() shutil.rmtree(repo.working_dir, ignore_errors=True)
def test_vol_claim_create_delete(self): repo = self.mk_repo() conf = ConfigLoader.load(workspace_dir=repo.working_dir) with KubernetesRunner(config=conf) as kr: kr._vol_claim_create() response = self._kclient.read_namespaced_persistent_volume_claim( kr._vol_claim_name, namespace="default") self.assertEqual(response.status.phase, "Bound") kr._vol_claim_delete() self.assertRaises( Exception, self._kclient.read_namespaced_persistent_volume_claim, { "name": kr._vol_claim_name, "namespace": "default" }, ) repo.close() shutil.rmtree(repo.working_dir, ignore_errors=True)