Technical manual
...
iR Engine on AWS
EKS Deploy
7 min
deploy to eks using helm with all of the networking set up, you can finally deploy the codebase to eks there's a couple of steps to this, which will involve deploying things with most but not all of the needed configuration values, and then letting the deployment process fill in the rest fill in helm config file with variables template helm config files for dev and prod deployments can be found in configs https //github com/ir engine/ir engine ops/blob/master/configs \<dev/prod> template values yaml before filling them in, make a copy elsewhere, call that '\<dev/prod> values yaml', and edit that copy both the builder and main deployments should use the same config file when the builder seeds the database, it needs a number of values that only need to be configured for the other services, so all of the values need to be defined in one config file there are many fields to fill in, most marked with <> not all are necessary for all situations if you're not using social login, for instance, you don't need credentials for github/google/facebook/etc configuration variables of note here are some configuration variables that you'll probably need to change based on your specific setup \<api/instanceserver/taskserver> extraenv auth secret this is a secret value that is used to sign the jwts that authenticate users you can use any string for this value, and a randomly generated one of sufficient length, i e 32 or more characters, will suffice if this is changed after some users have signed in, their login credentials won't work any more \<api/client/taskserver> affinity nodeaffinity within the sections of the config for the api, client, instanceserver, etc , is a section that looks something like this affinity nodeaffinity requiredduringschedulingignoredduringexecution nodeselectorterms \ matchexpressions \ key eks amazonaws com/nodegroup operator in values \ ng 1 the value, ng 1 in this example, must be changed to match whatever the name of the nodegroup that that service will be running on, e g if you create a nodegroup for the instanceservers called abcd instanceservers 5 , then you'd use that value under values if your eks setup created a nodegroup for you, and you want to use that for the api, client, and task servers, make sure to change the affinity value for them to whatever eks named the initial nodegroup builder extraenv private ecr if you're using a private ecr repo, set this to "true" in the builder config file (everything) image repository you'll need to replace every \<repository name> with the full ecr url of your non builder repos, e g abcd1234efgh dkr ecr us west 1 amazonaws com/ir engine dev api each service has to have the proper \<service> suffix on it, e g api , client , etc github client id/github client secret if you plan to backup projects you create in the editor to github, or install project from github, it is necessary to set up the oauth app that will facilitate this before the initial installation see this document /setupgithuboauth for more information, and enter the appropriate id/secret in these variables run helm install run helm install f \</path/to/\<release name> values yaml> \<release name> builder ir engine/ir engine builder and then run helm install f \</path/to/\<release name> values yaml> \<release name> ir engine/ir engine this will spin up the main and builder deployments using the helm config file, \<dev/prod> values yaml neither will fully work yet, since there's no valid image in the repos yet the github actions and builder processes will make those images and update the deployments with the tags of the images they've built so that they can pull down and use those images