Skip to main content
Qualification runs before any Mixpeek workload is deployed. It answers one question: can Mixpeek be attached to this cluster safely, and if not, which part is the problem. You get the report. It is plain text, one line per check.

Two reports, at two different times

There are two suites, and the difference is when they can run. Start with the substrate report. Everything it asks has an answer that should stop an install rather than be discovered halfway through one.

Substrate checks

pvc-durability and storage-throughput are the only rows that write anything. Between them they create two small PersistentVolumeClaims and three short-lived pods, and delete all of it. Both are opt-in behind --allow-provision; everything else in the substrate report is read-only.It is worth understanding why it goes to that trouble. A pod that writes to its mount and reads the value back passes on an emptyDir, which persists nothing. So the row writes a marker unique to that run, deletes the pod, and requires a second pod on the same claim to read that exact marker back. A volume returning some other marker fails as loudly as an empty one: a claim quietly carrying another workload’s data is the worse finding of the two.

What the Ray suite checks

Twenty checks in five groups. Every one is a claim about your cluster, not about Mixpeek.

Cluster

Security

Connectivity

Every one of these asks can the cluster reach it, not can this laptop reach it. They run as jobs inside your cluster and report from there, because those differ in exactly the cases that matter: a private endpoint, a workload identity, an egress policy.

Workloads

Isolation

Fault handling, and where the boundary of the suite sits

The suite reports on your cluster. Some platform behaviour is a property of the software and holds on any cluster, so it is stated here rather than measured per install. The distinction matters when you read a report. A row that passed is a statement about your cluster. A behaviour in the second group is a statement about Mixpeek, and a green report does not re-derive it.

Reading a verdict

INCOMPLETE is the one worth understanding. It means no check contradicted anything and some checks could not run: a missing credential, a permission the running identity lacks, or a check that could not run. The row names which. It is not a pass, and it is not a failure. Treating it as either is the mistake the verdict exists to prevent.

Rows that skip, and why that is deliberate

A skipped row states what it could not do:
This matters more than it looks. The alternative is a check that reports a failure of your cluster when the truth is that our probe lacked a permission, and a report that blames the customer for the auditor’s access is worse than no report. The same discipline applies to absence. network-policy will tell you it could not read your NetworkPolicies rather than telling you there are none. kuberay distinguishes “not installed” from “could not read whether it is installed”, and only the first is a statement about your cluster.

Running it yourself

The substrate suite is the one you can run before granting us anything. It needs a kubeconfig, kubectl, and the python3 already on your machine. No Ray, no Mixpeek, no dependencies to install.
--require-cpu and --require-memory are the capacity the install needs; ask us for the numbers for your configuration. Without them the capacity row skips rather than guessing, because a check that capacity exceeds the capacity it just observed cannot fail. The one-liner that checks the most important RBAC claim needs nothing at all:
Both suites live in the Mixpeek repository. Ask us to run them against your cluster and send you the reports, or ask for the suites and run them yourself.
The compatibility matrix of Ray, KubeRay and Kubernetes versions we publish as supported is generated from CI results rather than written by hand. See Compatibility.