FROM opnfv/functest-kubernetes-core:leguer
ARG K8S_TAG=1.20
-ARG CNF_CONFORMANCE_TAG=v0.9.19
+ARG CNF_TESTSUITE_TAG=v0.11.0
ARG HELM_TAG=v3.3.1
RUN apk --no-cache add --update wget curl libc6-compat && \
chmod +x /usr/local/bin/kubectl /usr/local/bin/helm && \
rm -r /src/helm-$HELM_TAG-linux-$arch.tar.gz /src/linux-$arch && \
case $(uname -m) in x86_64) \
- curl https://github.com/cncf/cnf-conformance/releases/download/$CNF_CONFORMANCE_TAG/cnf-conformance-$CNF_CONFORMANCE_TAG.tar.gz \
- -L --output /src/cnf-conformance-$CNF_CONFORMANCE_TAG.tar.gz && \
- tar zxf /src/cnf-conformance-$CNF_CONFORMANCE_TAG.tar.gz ./cnf-conformance -C /usr/local/bin && \
- chmod +x /usr/local/bin/cnf-conformance && \
- mkdir /src/cnf-conformance && \
- curl -L https://raw.githubusercontent.com/cncf/cnf-conformance/$CNF_CONFORMANCE_TAG/example-cnfs/coredns/cnf-conformance.yml \
- --output /src/cnf-conformance/cnf-conformance.yml && \
- curl -L https://raw.githubusercontent.com/cncf/cnf-conformance/$CNF_CONFORMANCE_TAG/points.yml \
- --output /src/cnf-conformance/points.yml && \
- mkdir -p /src/cnf-conformance/spec/fixtures && \
+ curl https://github.com/cncf/cnf-testsuite/releases/download/$CNF_TESTSUITE_TAG/cnf-testsuite-$CNF_TESTSUITE_TAG.tar.gz \
+ -L --output /src/cnf-testsuite-$CNF_TESTSUITE_TAG.tar.gz && \
+ tar zxf /src/cnf-testsuite-$CNF_TESTSUITE_TAG.tar.gz ./cnf-testsuite -C /usr/local/bin && \
+ chmod +x /usr/local/bin/cnf-testsuite && \
+ mkdir /src/cnf-testsuite && \
+ curl -L https://raw.githubusercontent.com/cncf/cnf-testsuite/$CNF_TESTSUITE_TAG/example-cnfs/coredns/cnf-conformance.yml \
+ --output /src/cnf-testsuite/cnf-conformance.yml && \
+ curl -L https://raw.githubusercontent.com/cncf/cnf-testsuite/$CNF_TESTSUITE_TAG/points.yml \
+ --output /src/cnf-testsuite/points.yml && \
+ mkdir -p /src/cnf-testsuite/spec/fixtures && \
for yml in chaos_network_loss.yml chaos_cpu_hog.yml chaos_container_kill.yml; do \
- curl -L https://raw.githubusercontent.com/cncf/cnf-conformance/$CNF_CONFORMANCE_TAG/spec/fixtures/$yml \
- --output /src/cnf-conformance/spec/fixtures/$yml; done && \
+ curl -L https://raw.githubusercontent.com/cncf/cnf-testsuite/$CNF_TESTSUITE_TAG/spec/fixtures/$yml \
+ --output /src/cnf-testsuite/spec/fixtures/$yml; done && \
helm repo add stable https://cncf.gitlab.io/stable && \
- rm /src/cnf-conformance-$CNF_CONFORMANCE_TAG.tar.gz ;; esac
+ rm /src/cnf-testsuite-$CNF_TESTSUITE_TAG.tar.gz ;; esac
COPY testcases.yaml /usr/lib/python3.8/site-packages/xtesting/ci/testcases.yaml
CMD ["run_tests", "-t", "all"]
The CNF Conformance program enables interoperability of Cloud native Network
Functions (CNFs) from multiple vendors running on top of Kubernetes supplied by
different vendors [1].
-[1] https://github.com/cncf/cnf-conformance
+[1] https://github.com/cncf/cnf-testsuite
"""
from __future__ import division
https://hackmd.io/@vulk/SkY54QnsU
"""
- src_dir = '/src/cnf-conformance'
+ src_dir = '/src/cnf-testsuite'
bin_dir = '/usr/local/bin'
default_tag = 'workload'
self.output_debug_log_name = 'functest-kubernetes.debug.log'
def check_requirements(self):
- """Check if cnf-conformance is in $PATH"""
- if not os.path.exists(os.path.join(self.bin_dir, 'cnf-conformance')):
+ """Check if cnf-testsuite is in $PATH"""
+ if not os.path.exists(os.path.join(self.bin_dir, 'cnf-testsuite')):
self.__logger.warning(
- "cnf-conformance is not compiled for arm and arm64 for the "
+ "cnf-testsuite is not compiled for arm and arm64 for the "
"time being")
self.is_skipped = True
os.path.join(self.src_dir, 'spec/fixtures', cfile),
os.path.join(self.res_dir, 'spec/fixtures', cfile))
os.chdir(self.res_dir)
- cmd = ['cnf-conformance', 'setup']
+ cmd = ['cnf-testsuite', 'setup']
output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
self.__logger.info("%s\n%s", " ".join(cmd), output.decode("utf-8"))
- cmd = ['cnf-conformance', 'cnf_setup',
+ cmd = ['cnf-testsuite', 'cnf_setup',
'cnf-config=cnf-conformance.yml']
output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
self.__logger.info("%s\n%s", " ".join(cmd), output.decode("utf-8"))
def run_conformance(self, **kwargs):
"""Run CNF Conformance"""
- cmd = ['cnf-conformance', kwargs.get("tag", self.default_tag)]
+ cmd = ['cnf-testsuite', kwargs.get("tag", self.default_tag)]
output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
self.__logger.info("%s\n%s", " ".join(cmd), output.decode("utf-8"))
lfiles = glob.glob(os.path.join(
- self.res_dir, 'results', 'cnf-conformance-results-*.yml'))
+ self.res_dir, 'results', 'cnf-testsuite-results-*.yml'))
results = max(lfiles, key=os.path.getmtime)
with open(os.path.join(self.res_dir, 'results', results)) as yfile:
self.details = yaml.safe_load(yfile)
self.stop_time = time.time()
def clean(self):
- cmd = ['cnf-conformance', 'cnf_cleanup',
+ cmd = ['cnf-testsuite', 'cnf_cleanup',
'cnf-config=cnf-conformance.yml']
output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
self.__logger.info("%s\n%s", " ".join(cmd), output.decode("utf-8"))