host=gerrit.opnfv.org
port=29418
project=functest-kubernetes.git
+defaultbranch=stable/v1.31
Functions Virtualization requirements. Raspberry PI is also supported to verify
datacenters as the lowest cost (50 euros hardware and software included).
-| Functest releases | Kubernetes releases |
-|-------------------|-------------------------------|
-| v1.22 | v1.22 |
-| v1.23 | v1.23 |
-| v1.24 | v1.24 |
-| v1.25 | v1.25 |
-| v1.26 | v1.26 |
-| v1.27 | v1.27 |
-| v1.28 | v1.28 |
-| v1.29 | v1.29 |
-| **Master** | **v1.30.0-alpha.0 (rolling)** |
+| Functest releases | Kubernetes releases |
+|-------------------|---------------------|
+| v1.28 | v1.28 |
+| v1.29 | v1.29 |
+| v1.30 | v1.30 |
+| v1.31 | v1.31 |
+| **Master** | **latest** |
## Prepare your environment
```bash
sudo docker run --env-file env \
-v $(pwd)/config:/home/xtesting/.kube/config \
- opnfv/functest-kubernetes-healthcheck
+ opnfv/functest-kubernetes-healthcheck:v1.31
```
```
```bash
sudo docker run --env-file env \
-v $(pwd)/config:/home/xtesting/.kube/config \
- opnfv/functest-kubernetes-smoke
+ opnfv/functest-kubernetes-smoke:v1.31
```
```
```bash
sudo docker run --env-file env \
-v $(pwd)/config:/home/xtesting/.kube/config \
- opnfv/functest-kubernetes-security
+ opnfv/functest-kubernetes-security:v1.31
```
```
```bash
sudo docker run --env-file env \
-v $(pwd)/config:/home/xtesting/.kube/config \
- opnfv/functest-kubernetes-benchmarking
+ opnfv/functest-kubernetes-benchmarking:v1.31
```
```
```bash
sudo docker run --env-file env \
-v $(pwd)/config:/home/xtesting/.kube/config \
- opnfv/functest-kubernetes-cnf
+ opnfv/functest-kubernetes-cnf:v1.31
```
```
- role: collivier.xtesting
project: functest-kubernetes
db_project: functest
+ docker_tags:
+ - v1.31:
+ branch: stable/v1.31
suites:
- container: functest-kubernetes-healthcheck
tests:
gerrit_project: functest-kubernetes
git_url: https://gerrit.opnfv.org/gerrit/functest-kubernetes
docker_tags:
- - latest:
- branch: master
- dependency: '3.16'
+ - v1.31:
+ branch: stable/v1.31
+ dependency: '3.20'
builds:
dependency:
repo: _
- role: collivier.xtesting
project: functest-kubernetes
db_project: functest
+ docker_tags:
+ - v1.31:
+ branch: stable/v1.31
suites:
- container: functest-kubernetes-healthcheck
tests:
build_opts=(--pull=true --no-cache --force-rm=true)
find . -name Dockerfile -exec sed -i \
- -e "s|opnfv/functest-kubernetes-core|\
-${repo}/functest-kubernetes-core:amd64-latest|g" {} +
+ -e "s|opnfv/functest-kubernetes-core:v1.31|\
+${repo}/functest-kubernetes-core:amd64-v1.31|g" {} +
find . -name Dockerfile -exec sed -i \
- -e "s|opnfv/functest-kubernetes-healthcheck|\
-${repo}/functest-kubernetes-healthcheck:amd64-latest|g" {} +
+ -e "s|opnfv/functest-kubernetes-healthcheck:v1.31|\
+${repo}/functest-kubernetes-healthcheck:amd64-v1.31|g" {} +
find . -name Dockerfile -exec sed -i \
- -e "s|opnfv/functest-kubernetes-smoke|\
-${repo}/functest-kubernetes-smoke:amd64-latest|g" {} +
+ -e "s|opnfv/functest-kubernetes-smoke:v1.31|\
+${repo}/functest-kubernetes-smoke:amd64-v1.31|g" {} +
for dir in ${amd64_dirs}; do
(cd "${dir}" &&
docker build "${build_opts[@]}" \
- -t "${repo}/functest-kubernetes-${dir##**/}:amd64-latest" .)
- docker push "${repo}/functest-kubernetes-${dir##**/}:amd64-latest"
+ -t "${repo}/functest-kubernetes-${dir##**/}:amd64-v1.31" .)
+ docker push "${repo}/functest-kubernetes-${dir##**/}:amd64-v1.31"
[ "${dir}" != "docker/core" ] &&
(docker rmi \
- "${repo}/functest-kubernetes-${dir##**/}:amd64-latest" || true)
+ "${repo}/functest-kubernetes-${dir##**/}:amd64-v1.31" || true)
done
[ ! -z "${amd64_dirs}" ] &&
(docker rmi \
- "${repo}/functest-kubernetes-core:amd64-latest" \
- alpine:3.16 || true)
+ "${repo}/functest-kubernetes-core:amd64-v1.31" \
+ alpine:3.20 || true)
find . -name Dockerfile -exec git checkout {} +
find . -name Dockerfile -exec sed -i \
- -e "s|alpine:3.16|arm64v8/alpine:3.16|g" {} +
+ -e "s|alpine:3.20|arm64v8/alpine:3.20|g" {} +
find . -name Dockerfile -exec sed -i \
- -e "s|opnfv/functest-kubernetes-core|\
-${repo}/functest-kubernetes-core:arm64-latest|g" {} +
+ -e "s|opnfv/functest-kubernetes-core:v1.31|\
+${repo}/functest-kubernetes-core:arm64-v1.31|g" {} +
find . -name Dockerfile -exec sed -i \
- -e "s|opnfv/functest-kubernetes-healthcheck|\
-${repo}/functest-kubernetes-healthcheck:arm64-latest|g" {} +
+ -e "s|opnfv/functest-kubernetes-healthcheck:v1.31|\
+${repo}/functest-kubernetes-healthcheck:arm64-v1.31|g" {} +
find . -name Dockerfile -exec sed -i \
- -e "s|opnfv/functest-kubernetes-smoke|\
-${repo}/functest-kubernetes-smoke:arm64-latest|g" {} +
+ -e "s|opnfv/functest-kubernetes-smoke:v1.31|\
+${repo}/functest-kubernetes-smoke:arm64-v1.31|g" {} +
for dir in ${arm64_dirs}; do
(cd "${dir}" && docker build "${build_opts[@]}" \
- -t "${repo}/functest-kubernetes-${dir##**/}:arm64-latest" .)
- docker push "${repo}/functest-kubernetes-${dir##**/}:arm64-latest"
+ -t "${repo}/functest-kubernetes-${dir##**/}:arm64-v1.31" .)
+ docker push "${repo}/functest-kubernetes-${dir##**/}:arm64-v1.31"
[ "${dir}" != "docker/core" ] &&
(docker rmi \
- "${repo}/functest-kubernetes-${dir##**/}:arm64-latest" || true)
+ "${repo}/functest-kubernetes-${dir##**/}:arm64-v1.31" || true)
done
[ ! -z "${arm64_dirs}" ] &&
- (docker rmi "${repo}/functest-kubernetes-core:arm64-latest" \
- arm64v8/alpine:3.16 || true)
+ (docker rmi "${repo}/functest-kubernetes-core:arm64-v1.31" \
+ arm64v8/alpine:3.20 || true)
find . -name Dockerfile -exec git checkout {} +
find . -name Dockerfile -exec sed -i \
- -e "s|alpine:3.16|arm32v7/alpine:3.16|g" {} +
+ -e "s|alpine:3.20|arm32v7/alpine:3.20|g" {} +
find . -name Dockerfile -exec sed -i \
- -e "s|opnfv/functest-kubernetes-core|\
-${repo}/functest-kubernetes-core:arm-latest|g" {} +
+ -e "s|opnfv/functest-kubernetes-core:v1.31|\
+${repo}/functest-kubernetes-core:arm-v1.31|g" {} +
find . -name Dockerfile -exec sed -i \
- -e "s|opnfv/functest-kubernetes-healthcheck|\
-${repo}/functest-kubernetes-healthcheck:arm-latest|g" {} +
+ -e "s|opnfv/functest-kubernetes-healthcheck:v1.31|\
+${repo}/functest-kubernetes-healthcheck:arm-v1.31|g" {} +
find . -name Dockerfile -exec sed -i \
- -e "s|opnfv/functest-kubernetes-smoke|\
-${repo}/functest-kubernetes-smoke:arm-latest|g" {} +
+ -e "s|opnfv/functest-kubernetes-smoke:v1.31|\
+${repo}/functest-kubernetes-smoke:arm-v1.31|g" {} +
for dir in ${arm_dirs}; do
(cd "${dir}" && docker build "${build_opts[@]}" \
- -t "${repo}/functest-kubernetes-${dir##**/}:arm-latest" .)
- docker push "${repo}/functest-kubernetes-${dir##**/}:arm-latest"
+ -t "${repo}/functest-kubernetes-${dir##**/}:arm-v1.31" .)
+ docker push "${repo}/functest-kubernetes-${dir##**/}:arm-v1.31"
[ "${dir}" != "docker/core" ] &&
(docker rmi \
- "${repo}/functest-kubernetes-${dir##**/}:arm-latest" || true)
+ "${repo}/functest-kubernetes-${dir##**/}:arm-v1.31" || true)
done
[ ! -z "${arm_dirs}" ] &&
- (docker rmi "${repo}/functest-kubernetes-core:arm-latest" \
- arm32v7/alpine:3.16 || true)
+ (docker rmi "${repo}/functest-kubernetes-core:arm-v1.31" \
+ arm32v7/alpine:3.20 || true)
find . -name Dockerfile -exec git checkout {} +
exit $?
-FROM opnfv/functest-kubernetes-smoke
+FROM opnfv/functest-kubernetes-smoke:v1.31
-ARG NETPERF_TAG=master
-ARG PLOTPERF_TAG=master
+ARG NETPERF_TAG=1104ce23f6c1758796e88f3c23b050099074cf81
+ARG PLOTPERF_TAG=2455313f4b9581795a8f642243acaad472d91804
USER root
COPY plotperf.py.patch /tmp/plotperf.py.patch
-FROM opnfv/functest-kubernetes-core
+FROM opnfv/functest-kubernetes-core:v1.31
+ARG K8S_TAG=1.31
ARG CNF_TESTSUITE_TAG=v1.0.0
ARG HELM_TAG=v3.3.1
USER root
RUN apk --no-cache add --update wget curl libc6-compat ncurses && \
- tag=$(curl -s https://storage.googleapis.com/kubernetes-release/release/latest-1.30.txt) && \
+ tag=$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable-$K8S_TAG.txt) && \
case $(uname -m) in armv7l) arch=arm;; aarch64) arch=arm64;; x86_64) arch=amd64;; esac && \
curl https://storage.googleapis.com/kubernetes-release/release/$tag/bin/linux/$arch/kubectl \
--output /usr/local/bin/kubectl && \
FROM alpine:3.20
-ARG BRANCH=master
-ARG OPENSTACK_TAG=master
+ARG BRANCH=stable/v1.31
+ARG OPENSTACK_TAG=stable/2024.1
COPY Try-a-quick-fix-vs-asynchronuous-issues.patch /tmp/Try-a-quick-fix-vs-asynchronuous-issues.patch
COPY Switch-to-threading.Thread-for-Rally-tasks.patch /tmp/Switch-to-threading.Thread-for-Rally-tasks.patch
-FROM opnfv/functest-kubernetes-core
+FROM opnfv/functest-kubernetes-core:v1.31
+ARG K8S_TAG=1.31
USER root
RUN apk --no-cache add --update curl libc6-compat && \
- tag=$(curl -s https://storage.googleapis.com/kubernetes-release/release/latest-1.30.txt) && \
+ tag=$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable-$K8S_TAG.txt) && \
case $(uname -m) in armv7l) arch=arm;; aarch64) arch=arm64;; x86_64) arch=amd64;; esac && \
curl https://storage.googleapis.com/kubernetes-release/release/$tag/bin/linux/$arch/kubectl \
-s --output /usr/local/bin/kubectl && \
-FROM opnfv/functest-kubernetes-core
+FROM opnfv/functest-kubernetes-core:v1.31
COPY testcases.yaml /etc/xtesting/testcases.yaml
-FROM opnfv/functest-kubernetes-healthcheck
+FROM opnfv/functest-kubernetes-healthcheck:v1.31
COPY testcases.yaml /etc/xtesting/testcases.yaml
CMD ["run_tests", "-t", "all"]
#!/bin/bash
download-frozen-image-v2.sh /data/docker/functest-kubernetes \
- opnfv/functest-kubernetes-healthcheck:latest \
- opnfv/functest-kubernetes-smoke:latest \
- opnfv/functest-kubernetes-benchmarking:latest \
- opnfv/functest-kubernetes-security:latest \
- opnfv/functest-kubernetes-cnf:latest
+ opnfv/functest-kubernetes-healthcheck:v1.31 \
+ opnfv/functest-kubernetes-smoke:v1.31 \
+ opnfv/functest-kubernetes-benchmarking:v1.31 \
+ opnfv/functest-kubernetes-security:v1.31 \
+ opnfv/functest-kubernetes-cnf:v1.31
git clone https://git.opnfv.org/functest-kubernetes /home/debian/functest-kubernetes
chown -R 1000:1000 /home/debian/functest-kubernetes
effect: NoSchedule
containers:
- name: kube-bench
- image: {{ dockerhub_repo }}/aquasec/kube-bench:latest
+ image: {{ dockerhub_repo }}/aquasec/kube-bench:v0.6.10
command: ["kube-bench", "run", "--targets", "master", "--json"]
volumeMounts:
- name: var-lib-etcd
hostPID: true
containers:
- name: kube-bench
- image: {{ dockerhub_repo }}/aquasec/kube-bench:latest
+ image: {{ dockerhub_repo }}/aquasec/kube-bench:v0.6.10
command: ["kube-bench", "run", "--targets", "node", "--json"]
volumeMounts:
- name: var-lib-etcd
spec:
containers:
- name: kube-hunter
- image: {{ dockerhub_repo }}/aquasec/kube-hunter:latest
+ image: {{ dockerhub_repo }}/aquasec/kube-hunter:0.6.8
command: ["kube-hunter"]
args: ["--pod", "--report", "json", "--statistics"]
restartPolicy: Never
[testenv]
usedevelop = True
deps =
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt
- -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
+ -c{toxinidir}/upper-constraints.txt
+ -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/stable/2024.1/upper-constraints.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
install_command = pip install --use-deprecated=legacy-resolver {opts} {packages}
functest_kubernetes
[testenv:pep8]
-basepython = python3.10
+basepython = python3.12
commands = flake8
[testenv:pylint]
-basepython = python3.10
+basepython = python3.12
commands = pylint \
--ignore-imports=y --min-similarity-lines=10 \
--disable=locally-disabled,wrong-import-order --reports=n functest_kubernetes
[testenv:yamllint]
-basepython = python3.10
+basepython = python3.12
files =.travis.yml docker
commands =
yamllint {[testenv:yamllint]files}
[testenv:bandit]
-basepython = python3.10
+basepython = python3.12
commands = bandit -r functest_kubernetes -x tests -n 5 -ll
[testenv:bashate]
-basepython = python3.10
+basepython = python3.12
files =build.sh functest_kubernetes/ci/download_images.sh
commands = bashate -e E005,E006,E042,E043 {[testenv:bashate]files}
[testenv:perm]
-basepython = python3.10
+basepython = python3.12
allowlist_externals = bash
path=. -not -path './.tox/*' -not -path './.git/*' -not -path './doc/pres/reveal.js/*' -not -path './elements/functest-kubernetes/install.d/*'
commands =
find {[testenv:perm]path} -exec file \{\} + | grep CRLF && exit 1 || exit 0"
[testenv:pre-commit]
-basepython = python3.10
+basepython = python3.12
commands =
pre-commit run --all-files --show-diff-on-failure