Setup Onyx on AWS EKS
Cluster service role
, create a new IAM role accepting all the defaults for the user. It’s name can
be something like onyx-eks-cluster-role
.
Make sure to click the refresh button if you don’t see it as an option!
For the Kubernetes version
, select a version with standard support still offered and under Upgrade policy
, select Standard
. In the add-ons section, make sure to add the Amazon EBS CSI Driver
add-on, as this is needed for the Persistent Volume Claims (PVCs) to be fulfilled. Also make sure to keep the other default add-ons!
Create
when satisfied. The cluster may take several minutes to become ready.
Compute
tab and then Add node group
.
Name
for the group (something like onyx-node-group
). For Node IAM role
, either select
an existing role that your organization has setup or create a new role. Whichever route we choose, we have to make sure
that the AmazonEBSCSIDriverPolicy
is attached to the role, as this will be needed for our Persistent Volume Claims (PVCs)
to be fulfilled. If creating a role, all the other defaults provided by AWS should work (with the addition of the AmazonEBSCSIDriverPolicy
). Give the role a name like onyx-eks-nodegroup-role
.
Instance Types
with c5.2xlarge
machines (or c5.4xlarge
if you are planning on scaling up beyond 100k documents). For disk, we recommend setting Volume size
somewhere in the 200GB - 800GB range depending on how many documents you plan on indexing (storage is cheap). For most setups, we recommend setting the Desired size
and Minimum size
to 1, although you can increase this if needed to scale the cluster up once traffic picks up. Maximum unavailable can generally be left as default.
After reviewing, keep the default for the Networking section, and then proceed through to Create
!
IAM Dashboard
found here. Select Users
on the left sidebar and then Create user
.
onyx-eks-user
. For the user permissions, click Attach policies directly
and provide the following permissions:
AmazonEKSClusterPolicy
AmazonEKSServicePolicy
Create access key
.
Command Line Interferace (CLI)
option during creation. Be sure to save the Access key
and Secret access key
for later.
Navigate back to the EKS cluster and select Access
and then Create access entry
.
IAM principal
select the IAM ARN that you just created. Then click next.
Policy name
is set to AmazonEKSClusterAdminPolicy
and then click next. Review and then create the Access Policy.
aws configure
and provide the access key and secret key from the IAM you created.
Then configure aws to connect with the cluster filling in the region-code
and cluster-name
in the following command
onyx/deployment/helm/charts/onyx
directory in the repository that you have cloned down. Make sure you have Helm installed.
Before deploying, take a read through the values.yaml
file. Adjust as necessary.
Afterwards, you can run the installation of the Onyx helm chart.
global.version
field in
values.yaml
to the specific version (e.g. something like nightly-latest-20250616
)
we want to upgrade to. Then, we can run: