Skip to main content
In an In-VPC (CloudPrem) deployment, you can manage clusters through Kubernetes instead of the Console - using the QueryService custom resource, kubectl, and GitOps. Read Create and manage clusters first for cluster concepts, sizing, and lifecycle; this page covers doing the same through Kubernetes. All examples use <NAMESPACE> for the namespace where e6data is installed.

How it works

The e6data operator watches for QueryService custom resources and reconciles them into the underlying deployments, services, and config that make up a running cluster. You create or patch a QueryService; the operator rolls out the desired state. Every operation - scaling, suspend, resume, version updates - is a change to the QueryService spec, which makes the model fully GitOps-compatible (commit the YAML and let Argo CD or Flux sync it).

Create a cluster

The operator provisions the cluster and moves it through Creating → Running.

Configure

The Console settings map to CRD fields: spec.planner.queryTimeoutSeconds, spec.queryResultCache.enabled / .ttlSeconds, spec.queryHistory.enabled, and spec.transpiler.enabled / .dialect. The CRD also exposes settings not in the Console:
  • Per-component resources - spec.planner.resources, spec.executor.resources (CPU/memory requests and limits).
  • Environment and config variables - spec.planner.environmentVariables, spec.planner.configVariables.
  • Scheduling - spec.tolerations, spec.podAnnotations, spec.podLabels to place cluster pods on dedicated node pools.
  • NVMe scratch - spec.nvme: true for spill-to-disk.
  • PostgreSQL gateway - spec.planner.pgGatewayEnabled and spec.gateway.serviceType.
  • Native executor - spec.nativeExecutor.enabled (a Rust-based engine) alongside or instead of the classic executor.

Scale

Each scaling mode maps to CRD fields, and you can also patch directly:
QPS-based scaling uses spec.planner.qpsEnabled / qpsCount; scale-to-zero sets minExecutors: 0 with auto-suspension enabled.

Suspend and resume

Or configure spec.autoSuspension (maxIdleDurationMinutes) and spec.autoResume (timeoutSeconds).

Version updates

Patch releaseRef to trigger a zero-downtime blue-green upgrade - the operator deploys the new version alongside the current one, switches traffic when healthy, drains the old version, and auto-rolls back on failure:

Monitoring and diagnostics

The QueryService status sub-resource gives full visibility:
Useful status fields: status.phase, status.ready, status.activeReleaseVersion, status.deploymentPhase, the per-component deployment health (plannerDeployment, queueDeployment, executorDeployment), and the activityHistory / scalingHistory / suspensionHistory lists.

See also

Last modified on September 29, 2026