import logging
import os
+from pathlib import Path
import re
import subprocess
import time
__logger = logging.getLogger(__name__)
- config = '/root/.kube/config'
+ config = f'{Path.home()}/.kube/config'
gcr_repo = os.getenv("MIRROR_REPO", "gcr.io")
- k8s_gcr_repo = os.getenv("MIRROR_REPO", "k8s.gcr.io")
+ k8s_gcr_repo = os.getenv("MIRROR_REPO", "registry.k8s.io")
def __init__(self, **kwargs):
super().__init__(**kwargs)
"""Run the test suites"""
cmd_line = [
'ginkgo', f'--nodes={kwargs.get("nodes", 1)}',
- '--noColor', '/usr/local/bin/e2e.test', '--',
+ '--no-color', '/usr/local/bin/e2e.test', '--',
'-kubeconfig', self.config,
'-provider', kwargs.get('provider', 'local'),
'-report-dir', self.res_dir]
if "NON_BLOCKING_TAINTS" in os.environ:
cmd_line.extend(
['-non-blocking-taints', os.environ["NON_BLOCKING_TAINTS"]])
- cmd_line.extend(['-disable-log-dump', 'true'])
+ cmd_line.extend(['-disable-log-dump'])
self._generate_repo_list_file()
self.__logger.info("Starting k8s test: '%s'.", cmd_line)
env = os.environ.copy()
r' ([0-9]+) Pending \| ([0-9]+) Skipped',
boutput.decode("utf-8", errors="ignore"),
re.MULTILINE | re.DOTALL)
- assert grp
+ try:
+ assert grp
+ except AssertionError:
+ self.__logger.exception(
+ "Can not find the overall result in \n%s",
+ boutput.decode("utf-8", errors="ignore"))
+ return False
self.details['passed'] = int(grp.group(2))
self.details['failed'] = int(grp.group(3))
self.details['pending'] = int(grp.group(4))
re.MULTILINE | re.DOTALL)
if grp2:
self.__logger.error(grp2.group(1))
+ return True
def run(self, **kwargs):
+ res = self.EX_RUN_ERROR
if not os.path.exists(self.res_dir):
os.makedirs(self.res_dir)
if not os.path.isfile(self.config):
return self.EX_RUN_ERROR
self.start_time = time.time()
try:
- self.run_kubetest(**kwargs)
- res = self.EX_OK
+ if self.run_kubetest(**kwargs):
+ res = self.EX_OK
except Exception: # pylint: disable=broad-except
self.__logger.exception("Error with running kubetest:")
- res = self.EX_RUN_ERROR
self.stop_time = time.time()
return res
gcr_repo = os.getenv("GCR_REPO", self.gcr_repo)
k8s_gcr_repo = os.getenv("K8S_GCR_REPO", self.k8s_gcr_repo)
repo_list = {
- "GcAuthenticatedRegistry":
+ "gcAuthenticatedRegistry":
f"{gcr_repo}/authenticated-image-pulling",
- "E2eRegistry": f"{gcr_repo}/kubernetes-e2e-test-images",
- "PromoterE2eRegistry": f"{k8s_gcr_repo}/e2e-test-images",
- "BuildImageRegistry": f"{k8s_gcr_repo}/build-image",
- "InvalidRegistry": "invalid.com/invalid",
- "GcEtcdRegistry": k8s_gcr_repo,
- "GcRegistry": k8s_gcr_repo,
- "SigStorageRegistry": f"{k8s_gcr_repo}/sig-storage",
- "PrivateRegistry": f"{gcr_repo}/k8s-authenticated-test",
- "SampleRegistry": f"{gcr_repo}/google-samples",
- "GcrReleaseRegistry": f"{gcr_repo}/gke-release",
- "MicrosoftRegistry": "mcr.microsoft.com"
+ "e2eRegistry": f"{gcr_repo}/kubernetes-e2e-test-images",
+ "promoterE2eRegistry": f"{k8s_gcr_repo}/e2e-test-images",
+ "buildImageRegistry": f"{k8s_gcr_repo}/build-image",
+ "invalidRegistry": "invalid.com/invalid",
+ "gcEtcdRegistry": k8s_gcr_repo,
+ "gcRegistry": k8s_gcr_repo,
+ "sigStorageRegistry": f"{k8s_gcr_repo}/sig-storage",
+ "privateRegistry": f"{gcr_repo}/k8s-authenticated-test",
+ "sampleRegistry": f"{gcr_repo}/google-samples",
+ "gcrReleaseRegistry": f"{gcr_repo}/gke-release",
+ "microsoftRegistry": "mcr.microsoft.com"
}
with open(
f"{self.res_dir}/repositories.yml", 'w',