cnti-testcatalog / testsuite

πŸ“žπŸ“±β˜ŽοΈπŸ“‘πŸŒ Cloud Native Telecom Initiative (CNTI) Test Catalog is a tool to check for and provide feedback on the use of K8s + cloud native best practices in networking applications and platforms
https://wiki.lfnetworking.org/display/LN/Test+Catalog
Apache License 2.0
169 stars 70 forks source link
best-practices cloud-native cnf cnfs conformance-tests crystal good-first-issue k8s kubernetes

CNTI Test Catalog

Main
Build Status

The CNTI Test Catalog is a tool that validates telco application's adherence to cloud native principles and best practices.

This Test Catalog focus area is one part of LF Networking's Cloud Native Telecom Initiative (CNTI) and works closely with the CNTI Best Practices and CNTI Certification focus areas.

Installation and Usage

To get the CNTI Test Catalog 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.

  1. Install the latest test suite binary: source <(curl -s https://raw.githubusercontent.com/cnti-testcatalog/testsuite/main/curl_install.sh)
  2. Run setup to prepare the cnf-testsuite: cnf-testsuite setup
  3. Pull down an example CNF configuration to try: curl -o cnf-testsuite.yml https://raw.githubusercontent.com/cnti-testcatalog/testsuite/main/example-cnfs/coredns/cnf-testsuite.yml
  4. Initialize the test suite for using the CNF: cnf-testsuite cnf_setup cnf-config=./cnf-testsuite.yml
  5. Run all of application/workload tests: cnf-testsuite workload

More Usage docs

Check out the usage documentation for more info about invoking commands and logging.

Cloud Native Categories

The CNTI Test Catalog will inspect CNFs for the following characteristics:

See the Complete Test Documentation for a complete overview of the tests.

Contributing

Welcome! We gladly accept contributions on new tests, example CNFs, updates to documentation, enhancements, bug reports, and more.

Communication and community meetings

Past Presentations

CNTI Test Catalog Demo 2021

Crystal in the Cloud: A cloud native journey at Crystal 1.0 Conference 2021

Implementation overview

The CNTI Test Catalog leverages upstream tools such as OPA Gatekeeper, Helm linter, and Promtool for testing CNFs. The upstream tool installation, configuration, and versioning has been made repeatable.

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 CNTI Test Catalog community follows the CNCF Code of Conduct.

License terms

The CNTI Test Catalog is available under the Apache 2 license.