Install or Upgrade—Deploy or Release—on Amazon EKS
Note: Here is a basic setup for the AWS EKS cluster, use it as a guideline to create K8s cluster to have minimal K8s environment for Digital.ai Deploy or Release installation.
Prerequisites
- Read and understand the Plan Your Installation or Upgrade page
- Read and understand the XL CLI's xl kube command
- A computer that runs Windows, macOS, or Linux to install and run the kubectl and other CLIs
- An AWS account
- An Amazon EKS cluster where you install Digital.ai Deploy or Release
- A domain name on which you want to run Digital.ai Deploy or Release
- kubectl
- XL CLI 23.3.0 or later
- eksctl
- yq 4.18.2 or later
- keytool
Important: If you want to enable the TLS protocol in your cluster, you must have the TLS secret created in the namespace before you start the installation or upgrade. This means that you must create the namespace first, create the TLS secret in that namespace, and use the same namespace and TLS secret during the installation or upgrade of Digital.ai Deploy or Release.
The xl kube install
and xl kube upgrade
options reference let you go with the default (latest) docker image tags available when you install or upgrade Digital.ai Deploy or Release. However, here are the Docker Hub links to verify all the available image tags.
- Digital.ai Deploy Operator Image
- Digital.al Release Operator Image
- Digital.ai Deploy Image
- Digital.ai Release Image
- Digital.ai Deploy Task Engine Image
- Digital.ai Deploy Central Configuration Image
Step 1—Prepare for Installation
You must set up your system for installation, which includes installing the kubectl, the required CLIs, and so on.
Install kubectl, XL CLI, eksctl, and yq
See:
Note: You can also use AWS CLI instead of eksctl to create and work with an EKS cluster. However, eksctl automates a few steps, which you would otherwise be completing manually if you were to use AWS CLI.
Step 2—Set up Your Amazon Account and EKS Cluster
Note: The instructions to set up the cluster are indicative of the process. You may have to keep abreast of the latest developments with regards to the cloud platform you work with and set up the cluster to suit your requirements.
- Sign up for an AWS account if you do not have one. For more information, see Create an AWS Account.
- Log on to your AWS account and gather the
AWSAccessKeyId
andAWSSecretKey
. - Create an access key if you do not have one already. For more information, see Managing access keys.
It is recommended to download and save the AWS access key file immediately after creating the access key as you cannot retrieve your Secret Access Key later.
Create VPC and Subnets
Use existing VPC or create new VPC and Subnets. For more information, see Creating a VPC for your Amazon EKS cluster.
For more information, see Amazon EKS VPC and subnet requirements and considerations
Create AWS EKS Cluster Role
Create an IAM role for your EKS cluster. For more information see Create AWS EKS cluster role.
Create EC2 Node Group Role
See Create EC2 node group role.
Create the Amazon EKS Cluster
-
Gather the following information about your Amazon EKS cluster and keep them handy.
- Your Amazon account's
AWSAccessKeyId
andAWSSecretKey
- The AWS region code (for example,
eu-west-2
) that hosts the EKS cluster - The EKS cluster's name
- The API server endpoint URL
- The Certificate Authority (CA) cert
- Your Amazon account's
Note: If you created your cluster using eksctl, you can skip Creating a kubeconfig for Amazon EKS. The eksctl would have completed the step for you already.
Create Node Group
See Create node group.
Verify the Connection to the Cluster
Run the following command from your system to verify the connection to the Amazon EKS cluster.
kubectl get nodes
Update the kube config of aws-auth
-
Edit the configmap.
kubectl edit configmap -n kube-system aws-auth
For AWS SSO user:
mapRoles:
----
- groups:
- system:bootstrappers
- system:nodes
rolearn: arn:aws:iam::932770550094:role/aws-reserved/sso.amazonaws.com/us-west-2/AWSReservedSSO_XLD-XXXXXXX
username: AWSReservedSSO_XLD-XXXXXXXFor normal users:
mapUsers: |
- userarn: arn:aws:iam::932770550094:user/<userName>
username: <username>
groups:
- system:masters -
Verify the updated configmap.
kubectl describe configmap -n kube-system aws-auth
Register the Domain Name Using Route 53
- Go to the Route 53 console.
- Select hostedZone.
- Create hosted zone or select an available one (for example,
digitalai-testing.com
). - Create a new Route 53 record.
-
Turn on the Alias toggle.
-
Type a record name.
deploy.digitalai-testing.com
in the following example. -
Leave the default values for Record type and Routing policy fields.
-
Set Route Traffic to to Alias to Application and Classic Load Balancer.
-
Set up the Ingress Controller
-
Validate the ingress and service.
kubectl get ing
-
Edit the Route 53 record you just created.
-
Update the region where your cluster is running.
-
Select the load balancer.
Step 3—Install Digital.ai Deploy or Release
- Run the
xl kube install
command. For more information about flags to skip prompts, enable additional logging, and so on, see xl kube install Command Reference. - Answer the questions in the installation options reference.
- When prompted, select AWS EKS as the Kubernetes setup where the Digital.ai Devops Platform will be installed. For more information, see:
- Complete the installation.
- Log on to the Deploy or Release server and verify the installation.
Upgrade Deploy or Release on Amazon EKS
The following upgrade scenarios are supported:
- Upgrading existing sites created using Helm Charts
- Upgrading existing sites created using Operator
Backup and Restore
- Before you upgrade existing Deploy or Release sites using the Operator-based installer, you must back up your volumes, databases, and file systems so that you can revert to the earlier state in case of upgrade failures.
- Back up and restore your data according to your organization's backup policies.
- For more information, see AWS Backup.
Upgrade Digital.ai Deploy or Release
- Run the
xl kube upgrade
command. For more information about flags to skip prompts, enable additional logging, and so on, see xl kube upgrade command reference - Answer the questions in the upgrade options reference.
- When prompted, select AWS EKS as the Kubernetes setup where the Digital.ai Devops Platform will be upgraded. For more information, see:
- Complete the upgrade.
- Log on to the Deploy or Release server and verify the installation.