Install Patient Journey Intelligence on Amazon EKS
This guide installs Patient Journey Intelligence on an existing Amazon EKS cluster: connect to the cluster, prepare ingress, run the installer with --eks, verify external access, and point your DNS name at the load balancer. Review the common prerequisites and prepare the required release files first.
If you are installing through an AWS Marketplace subscription, follow the AWS Marketplace Installation Guide instead. It covers the Marketplace release bundle, container registry, and metering configuration.
Connect to the EKS cluster
aws eks update-kubeconfig --region <region> --name <cluster>
kubectl get nodes
Prepare the ingress-nginx controller
Follow Managed Cluster Ingress to install the required ingress-nginx controller and check its external address. Review the ingress maintenance guidance on that page before deployment.
Install Patient Journey Intelligence
Replace <namespace> with your application namespace and <fqdn> with its DNS hostname, such as pjapp.example.com. Use the same namespace in the verification commands, and the same namespace and hostname when upgrading.
./pj-app-installer.sh --eks \
--namespace <namespace> \
--host <fqdn> \
--license-file license.json
For a first EKS install when the Patient Journey Intelligence EFS/EBS StorageClasses are not already present, add --efs:
./pj-app-installer.sh --eks --efs \
--namespace <namespace> \
--host <fqdn> \
--license-file license.json
What --eks and --efs configure
--eks points shared, multi-pod PVCs at the EFS-backed pj-app-efs StorageClass and disables relationaldb.hostPort. This avoids AWS EBS Multi-Attach failures when pods such as API, Airflow, deidservice, imaging, and the local-upload scanner run on different nodes.
--efs also provisions the AWS storage resources from the current EKS context: the EFS filesystem, mount targets, EFS CSI driver, EBS CSI driver, pj-app-efs, and pj-app-gp3. If your kube-context is not an EKS ARN, set EFS_CLUSTER_NAME=<cluster> and EFS_REGION=<region> before running the script. To use a differently named RWX class, set EFS_STORAGE_CLASS=<name>.
--host takes a DNS namePass a DNS name, not an IP address, with --host. Kubernetes Ingress host validation rejects IP addresses. If you do not pass --host, the shared ingress is created without a host rule.
Verify external access
kubectl get ingress -n <namespace> -w
kubectl get ingress -n <namespace> -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{range .status.loadBalancer.ingress[*]}{.hostname}{.ip}{"\n"}{end}{end}{"\n"}'
Point your DNS name at the load balancer
For a subdomain such as pjapp.example.com, create a DNS CNAME record pointing to the load balancer hostname returned above. Use that application domain with --host when installing and updating Patient Journey Intelligence. A standard A record accepts an IP address, not a hostname.
If you use Amazon Route 53, you can instead create an alias A record targeting the load balancer. This also supports a root domain such as example.com, where a CNAME is not allowed. See Route 53 routing to an ELB load balancer.
Next steps
Use Configuration for storage, HTTPS, and optional integrations. Preserve your environment settings when upgrading.
Frequently asked questions
Run pj-app-installer.sh with --eks, together with --namespace, --host, and --license-file. Add --efs on a first install when the pj-app-efs and pj-app-gp3 StorageClasses do not exist yet.
Several pods, such as API, Airflow, deidservice, imaging, and the local-upload scanner, share volumes and can run on different nodes. --eks points these shared PVCs at the EFS-backed pj-app-efs StorageClass, which avoids AWS EBS Multi-Attach failures.
It provisions the EFS filesystem, mount targets, EFS CSI driver, EBS CSI driver, and the pj-app-efs and pj-app-gp3 StorageClasses from the current EKS context. Set EFS_CLUSTER_NAME and EFS_REGION if your kube-context is not an EKS ARN.
For a subdomain, create a CNAME record pointing to the load balancer hostname. With Amazon Route 53, an alias A record also works and supports a root domain such as example.com, where a CNAME is not allowed.
No. AWS Marketplace subscriptions use the AWS Marketplace Installation Guide, which covers the Marketplace release bundle, container registry, and metering configuration.