CNF Test Suite
This Test Suite initiative works closely with the CNF WG which determines requirements for the CNF Test Suite program.
Installation and Usage
To get the CNF Test Suite up and running, see the Installation Guide.
To give it a try immediately you can use these quick install steps
Prereqs: kubernetes cluster, wget, curl, helm 3.1.1 or greater on your system already.
- Install the latest test suite binary:
source <(curl -s https://raw.githubusercontent.com/cncf/cnf-testsuite/main/curl_install.sh)
setupto prepare the cnf-testsuite:
- Pull down an example CNF configuration to try:
curl -o cnf-testsuite.yml https://raw.githubusercontent.com/cncf/cnf-testsuite/main/example-cnfs/coredns/cnf-testsuite.yml
- Initialize the test suite for using the CNF:
cnf-testsuite cnf_setup cnf-config=./cnf-testsuite.yml
- Run all of application/workload tests:
More Usage docs
Check out the usage documentation for more info about invoking commands and logging.
Cloud Native Categories
The CNF Test Suite will inspect CNFs for the following characteristics:
- Configuration - The CNF's configuration should be managed in a declarative manner, using ConfigMaps, Operators, or other declarative interfaces.
- Compatibility, Installability & Upgradability - CNFs should work with any Certified Kubernetes product and any CNI-compatible network that meet their functionality requirements while using standard, in-band deployment tools such as Helm (version 3) charts.
- Microservice - The CNF should be developed and delivered as a microservice.
- State - The CNF's state should be stored in a custom resource definition or a separate database (e.g. etcd) rather than requiring local storage. The CNF should also be resilient to node failure.
- Reliability, Resilience & Availability - CNFs should be reliable, resilient and available to failures inevitable in cloud environments. CNFs should be tested to ensure they are designed to deal with non-carrier-grade shared cloud HW/SW platforms.
- Observability & Diagnostics - CNFs should externalize their internal states in a way that supports metrics, tracing, and logging.
- Security - CNF containers should be isolated from one another and the host. CNFs are to be verified against any common CVE or other vulnerabilities.
See the Test Categories Documentation for a complete overview of the tests.
Welcome! We gladly accept contributions on new tests, example CNFs, updates to documentation, enhancements, bug reports, and more.
Communication and community meetings
Join the conversation on CNCF's Slack channels
Join the weekly Office Hours meeting
- Meetings every Tuesday at 7:15am - 8am Pacific Time
- Meeting minutes are here
Join the weekly CNF Working Group meeting on Mondays.
Request an Intro to the CNF Certification here
CNF Test Suite Demo
Crystal in the Cloud: A cloud native journey at Crystal 1.0 Conference
The test framework and tests (using the upstream tools) are written in the human-readable, compiled language, Crystal. Common capabilities like dependencies between tests and categories are supported.
Setup of vanilla upstream K8s on Equinix Metal is done with the CNF Testbed platform tool chain, which includes k8s-infra, Kubespray. To add support for other providers, please submit a Pull Request to the CNF Testbed repo.
Code of Conduct
The CNF Test Suite community follows the CNCF Code of Conduct.
The CNF Test Suite is available under the Apache 2 license.