qovery demo up. It creates a local k3s cluster with Docker and installs the Qovery Operator on it. The table below applies to clusters you run yourself: the local demo is the only k3s setup that uses the Operator. See Local cluster for development.
Which installation to use
Both installations need Kubernetes 1.31 or later.
The rest of this page covers the Qovery Operator installation: the checks to run before you install, its prerequisites and the components that must not already run on the cluster.
Most failed installations come from a component that already exists on the cluster, such as cert-manager, or from a missing default StorageClass. Run the preflight first: it takes a few seconds and changes nothing on the cluster.
Check your cluster before you install
The preflight reads your cluster with your current kubeconfig context and reports each check asPASS, WARN, FAIL or SKIP, with the fix for each problem. It needs no Qovery account and is available from Qovery CLI 1.180.0.
1
Install the Qovery CLI
- Linux
- MacOS
- Windows
- Docker
- *nix
- Arch Linux
- Manual
To download and install Qovery CLI on any Linux distribution:
2
Point kubectl to your cluster
--context <name> and, if needed, --kubeconfig <path>.3
Run the preflight
s3, gcs or s3Compatible) instead of the default pvc storage, add --loki-object-storage. Add --json for a machine-readable report.4
Fix the failed checks
The command exits with status
1 when at least one check fails. A failed check would make the installation or the first deployment of the cluster fail, so fix it and run the preflight again. A warning does not block the installation but can break a feature, for example autoscaling without metrics-server.What the preflight checks
The table describes the checks for the Qovery Operator installation. When the preflight picks the installation with the Qovery CLI (any cluster other than EKS, GKE or Kapsule, or
--install-path cli):
- An existing cert-manager, ExternalDNS or Envoy Gateway is a warning, not a failure.
qovery cluster installinstalls these components too: turn off the Qovery copy in the Helm values file it generates, or remove the existing one. - An existing Helm release
qoveryis your CLI installation, so it passes. - The cloud provider result tells you which installation to use and never fails.
What the preflight does not check
Some prerequisites cannot be verified without creating a resource on the cluster. Check them yourself:-
Outbound access and public DNS from a Pod. The lookup must return an address:
This command creates a temporary Pod and deletes it when it ends.
-
Public load balancers. The preflight only looks at LoadBalancer Services that already exist. If there are none, it reports
SKIP. The Qovery gateway needs the cluster to create a public load balancer. - Free capacity. The preflight compares the allocatable CPU and memory of each node with what a build needs. It does not know what your workloads already use.
Operator installation: providers and versions
Kubernetes 1.30 can reject part of the Gateway API CRDs that Qovery installs, and older versions lack an API they use. The preflight fails below 1.30 and warns on 1.30.
For any other cluster, such as Azure AKS, k3s or an on-premise cluster, use the installation with the Qovery CLI.
Operator installation: prerequisites
The full list, with the cloud credential permissions, is in Prerequisites. In short, the cluster needs:kubectlaccess withcluster-adminrights andhelmon your machine, only to install the Operator once.- At least one Linux node with 4 vCPU and 8 GiB of memory free, for the builder pods.
- A default StorageClass, unless Loki stores logs in object storage. On EKS, the Amazon EBS CSI driver add-on with its IAM role.
- The ability to create a public load balancer for a Service of type
LoadBalancer. On EKS, the public subnets must carry thekubernetes.io/role/elb=1tag. - A working cluster DNS (CoreDNS) that resolves public names.
- Outbound internet access to Qovery and to public container registries.
- metrics-server, for services with autoscaling.
Components that must not already run on the cluster
Qovery installs these components in theqovery namespace and manages them. It does not take over an installation that already exists.
Get help
If the preflight reports a problem you cannot fix, or you are not sure which installation fits your cluster, contact Qovery Support through your usual channel: in-app chat, shared Slack or Microsoft Teams channel, or email. Include the output ofqovery cluster preflight --json. It contains no credential.