cnf_testsuite

Tool to check for and provide feedback on the use of K8s + cloud native best practices in networking applications and platforms cloud-native cnf k8s telecom testing testsuite
0.9.0 released

CNF Conformance

| Master | |---| |Build Status|

The CNF Conformance program enables interoperability of Cloud native Network Functions (CNFs) from multiple vendors running on top of Kubernetes. The goal is to provide an open source test suite to demonstrate conformance and implementation of best practices for both open and closed source Cloud native Network Functions.

The CNF Conformance Test Suite will inspect CNFs for the following characteristics:

  • Compatibility - CNFs should work with any Certified Kubernetes product and any CNI-compatible network that meet their functionality requirements.
  • Statelessness - 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.
  • Security - CNF containers should be isolated from one another and the host.
  • Microservice - The CNF should be developed and delivered as a microservice.
  • Scalability - CNFs should support horizontal scaling (across multiple machines) and vertical scaling (between sizes of machines).
  • Configuration and Lifecycle - The CNF's configuration and lifecycle should be managed in a declarative manner, using ConfigMaps, Operators, or other declarative interfaces.
  • Observability - CNFs should externalize their internal states in a way that supports metrics, tracing, and logging.
  • Installable and Upgradeable - CNFs should use standard, in-band deployment tools such as Helm (version 3) charts.
  • Hardware Resources and Scheduling - The CNF container should access all hardware and schedule to specific worker nodes by using a device plugin.
  • Resilience - CNFs should be resilient to failures inevitable in cloud environments. CNF Resilience should be tested to ensure CNFs are designed to deal with non-carrier-grade shared cloud HW/SW platform.

See the Conformance Test Categories Documentation for a complete overview of the tests.

Contributing

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

Communication and community meetings

Implementation overview

The CNF Conformance Test Suite 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 Packet 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.

Installation

To quickly get CNF Conformance up and running, see the Installation Guide.

Usage

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

Code of Conduct

The CNF Conformance community follows the CNCF Code of Conduct.

License terms

CNF Conformance is available under the Apache 2 license.

cnf_testsuite:
  github: cncf/cnf-testsuite
  version: ~> 0.9.0
License MIT
Crystal 0.35.1

Authors

Dependencies 7

  • commander ~> 0.3.5
    {'github' => 'mrrooijen/commander', 'version' => '~> 0.3.5'}
  • crinja 849bd8a3c9600256ef797db66315dd757a1686a0
    {'commit' => '849bd8a3c9600256ef797db66315dd757a1686a0', 'github' => 'straight-shoota/crinja'}
  • halite ba22d2aa96bbb99702145839df8be516b4ceca90
    {'commit' => 'ba22d2aa96bbb99702145839df8be516b4ceca90', 'github' => 'icyleaf/halite'}
  • icr master
    {'branch' => 'master', 'github' => 'crystal-community/icr'}
  • retriable
    {'github' => 'Sija/retriable.cr'}
  • sam~vulk c243db2
    {'commit' => 'c243db2', 'github' => 'vulk/sam.cr'}
  • totem 0.6.0
    {'github' => 'icyleaf/totem', 'version' => '0.6.0'}

Development Dependencies 1

  • ameba ~> 0.12.0
    {'github' => 'crystal-ameba/ameba', 'version' => '~> 0.12.0'}

Dependents 0

Last synced .
search fire star recently