Deploying Dynamic Engine with existing PersistentVolumeClaims
Last updated: 10/22/2026Before you begin
- The three PersistentVolumeClaim resources (job-data, archive, and custom-resources) are created and in Bound state in the environment namespace. If you are using docker-registry, the docker-registry claim must also be in Bound state in the engine namespace.
About this task
Use this procedure when storage is already provisioned in your cluster, for example after setting up EKS with Amazon S3 (see Setting up Amazon EKS with S3) or another pre-provisioned storage system. In this model, the Dynamic Engine Helm charts bind to named PersistentVolumeClaims at deployment time rather than requesting storage from a StorageClass. This is the static provisioning model. For the dynamic provisioning model, where Kubernetes creates volumes automatically from a StorageClass, see Provisioning a storage class dedicated to Dynamic Engine environment services.
Both the Dynamic Engine chart (for the embedded registry volume) and the Dynamic Engine Environment chart (for the three processing volumes) must be configured separately.
Procedure
Configure and deploy the Dynamic Engine chart
Configure and deploy the Dynamic Engine Environment chart
Results
Dynamic Engine and its environment are now running with the existing PersistentVolumeClaims. Confirm that the docker-registry pod in the qlik-dynamic-engine namespace and the dpe-di-job-deployer pod in the qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID namespace are running.
What to do next
Run the following commands to confirm that the pods are running in both namespaces:
kubectl get pods -n qlik-dynamic-engine
kubectl get pods -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID