CNCF Conformance

Mirantis runs Cloud Native Computing Foundation (CNCF) conformance tests for MKE 3.8.x to verify that the software adheres to published specifications and core behaviors. The test results are provided here to confirm the interoperability, portability, and consistent functionality of the MKE 3.8.x product.

Note

CNCF conformance tests can be run on an MKE 3.8.x cluster that is running in trial mode.

You can reproduce the Mirantis published conformance test results using the Sonobuoy testing tool, as detailed herein. The process sequence is:

  1. Environment configuration

  2. Test using the Sonobuoy tool

  3. Results verification

Environment Configuration

To replicate the CNCF conformance results, you must use the Launchpad provisioning tool. You must also have at least one manager node and two worker nodes, all of which are running a compatible version of Mirantis Container Runtime, though Mirantis recommends that you use one manager node and three worker nodes.

To ensure that the testing suite is able to communicate with the cluster components, you must apply specific installFlags in the cluster configuration:

  • nodeport-range must be set to 30000-32768.

  • default-node-orchestrator must be set to kubernetes.

Example ``launchpad.yaml`` file:

apiVersion: launchpad.mirantis.com/mke/v1.5
kind: mke
metadata:
  name: mke-conformance-test
spec:
  cluster:
    prune: false
  hosts:
  # mke-cncf-MngrA-0 (ssh)
  - role: manager
    ssh:
      address: <manager_ip>
      user: <ssh_user>
      keyPath: <path_to_ssh_key>
  # mke-cncf-WrkA-0 (ssh)
  - role: worker
    ssh:
      address: <worker_0_ip>
      user: <ssh_user>
      keyPath: <path_to_ssh_key>
  # mke-cncf-WrkA-1 (ssh)
  - role: worker
    ssh:
      address: <worker_1_ip>
      user: <ssh_user>
      keyPath: <path_to_ssh_key>
  # mke-cncf-WrkA-2 (ssh)
  - role: worker
    ssh:
      address: <worker_2_ip>
      user: <ssh_user>
      keyPath: <path_to_ssh_key>
  mcr:
    version: <mcr-compatible-version>
    repoURL: https://repos.mirantis.com
    installURLLinux: https://get.mirantis.com/
    installURLWindows: https://get.mirantis.com/install.ps1
    channel: <mke-compatible-version>
    prune: true
  mke:
    version: <mke-compatible-version>
    imageRepo: docker.io/mirantis
    adminUsername: <admin_username>
    adminPassword: <admin_password>
    installFlags:
    - --default-node-orchestrator=kubernetes
    - --nodeport-range=30000-32768
    upgradeFlags:
    - "--force-recent-backup"
    - "--force-minimums"

To create the cluster once the cluster configuration file is set up, run the launchpad apply command in the same directory where you created the launchpad.yaml file.

Test using the Sonobuoy tool

Use the Sonobuoy testing plugin to verify CNFC conformance.

  1. Download the Sonobuoy CLI.

  2. Connect to the Cluster to download and source your client bundle:

    pushd ${HOME}/.mirantis-launchpad/cluster/<metadata.name-from-launchpad.yaml>/bundle/admin && source env.sh && popd
    
  3. Execute the conformance run:

    sonobuoy run \
      --wait \
      --mode=certified-conformance \
      --kube-conformance-image-version=v<kubernetes-version-number> \
      --plugin-env='e2e.E2E_EXTRA_ARGS=--non-blocking-taints=com.docker.ucp.manager'
    

    Important

    The non-blocking-taints argument is essential for MKE clusters, to ensure that the test pods can schedule on manager nodes when necessary.

Results verification