Installation

AWS EKS Installation Guide using Helm Charts

This installation guide provides an overview of the steps for installing the OvalEdge platform on the AWS containerized environment using Helm charts.

Pre-Installation Steps

The following are the pre-installation steps required for installing the OvalEdge platform on the AWS containerized environment using Helm charts.

Step # 1: Create an OvalEdge DB in AWS RDS. 

For more information, please refer to the article AWS RDS Installation Guide instructions.

Step # 2: Create an EKS cluster in the preferred region. 

For more information, please refer to the recommended cluster sizing mentioned in the below table. Here you can choose the appropriate sizing based on the targeted deployment environment.

Sl.

Component

Deployment Model

New/ Existing

Sizing Required

Deployment Environment

Remarks

AWS Components

1

Elastic Kubernetes Service (EKS)

AWS; PaaS

New

t3.xlarge (3 nodes)

Production

OvalEdge application

2

Elastic Kubernetes Service (EKS)

AWS; PaaS

New

t3.xlarge (2 nodes)

Development

OvalEdge application

3

Elastic Kubernetes Service (EKS)

AWS; PaaS

New

t3.xlarge (1 node)

POC/Sandbox

OvalEdge application

Note: These specifications can be changed to suit the actual requirements.

Step # 3: Install External Secrets using the following helm commands in the AWS command.

helm repo add external-secrets

https://external-secrets.github.io/kubernetes-external-secrets/

helm install [RELEASE_NAME] external-secrets/kubernetes-external-secrets

line: This is required to store the credentials for OvalEdge database, which are used by the application during runtime to access it. This ensures that the credentials are not stored or used in clear. 

Step # 4: Create a secret for the TLS certificate and key. Here you should keep the TLS certificate and key file ready in a local folder, use the command below in the AWS command line, and provide the path to the certificate and key files in the local folder.

kubectl create secret generic nginx-certs-keys

--from-file=/c/chakri/certificates/MyCertificate.crt

--from-file=/c/chakri/certificates/MyKey.key

Step # 5: Install nginx ingress controller using the command given below in the AWS command line:

kubectl create -f

https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.47.0/deploy/statis/provider/aws/deploy.yaml

Step # 6: Add database credentials in the secret manager service. This can be added as plain text. 

For more information, please refer to the sample mentioned below:

{

"username":"ovaledge",

"password":"ovaedge",

"jdbcurl":"jdbc:mysql:

}

Prepare Helm Chart Files for Deployment

OvalEdge provides the sample helm chart files for automating the deployment on the AWS EKS service.

Update configurations in values.yaml file

Update the values in the file to match the environment in which OvalEdge is being deployed. Here the properties that need to be modified are bordered by a red box below <Screenshot#1>.

  • Job pod replicas 
    • Job pod replicas count. The minimum number of job pods to be set up with a minimum value as “1”.
    • Job pod maximum replicas count
  • User pod replicas 
    • User pod replicas count. The minimum number of user pods is to be set up with a minimum value as “1”.
    • User pod maximum replicas count

Note: 

  1. Suppose the OvalEdge Autoscaling is enabled to “True”. In that case, the Job and User pods will scale according to the minimum and maximum replicas count, based on the parameters specified or otherwise; the replicas count is set to minimum by default. 
  2. The target parameters for horizontal pod auto scaling can be configured in hpcjob.yaml and hpcui.yaml.
  • Secret manager name 
  • Environment values

1EKSenvironvalue

Screenshot #1: values.yaml

  • IAM Role

2EKSserviceaccount

Screenshot #2: values.yaml

  • Host Name

3EKShostname

Screenshot #3: values.yaml

  • Shared storage NFS

4EKSshareNFS

Screenshot #4: values.yaml

Deploy Helm Chart

  1. Connect to the EKS cluster created for the deployment. 
  2. Deploy the helm chart to complete the installation and run the following command in the command line:
helm install ovaledgehelmchartfinal <path to helm charts folder>

AWS Services & Recommended Size

The following are the recommended sizing for the AWS components mentioned below for your reference and these sizing can be changed on the requirements bases.

Sl.

Component

Deployment Model

New/ Existing

Sizing Required

Deployment Environment

Remarks

AWS EKS Cluster 

1

Elastic Kubernetes Service (EKS)

AWS; PaaS

New

t3.xlarge (3 nodes)

Production

OvalEdge application

2

Elastic Kubernetes Service (EKS)

AWS; PaaS

New

t3.xlarge (2 nodes)

Development

OvalEdge application

3

Elastic Kubernetes Service (EKS)

AWS; PaaS

New

t3.xlarge (1 node)

POC/Sandbox

OvalEdge application

Other Components

1

AWS RDS MySQL 

AWS; PaaS

New

t3.xlarge (5.7 version 100gb ssd)

-

OvalEdge database

2

AWS SECRET MANAGER 

AWS; PaaS

New

-

-

 

3

NFS

AWS; PaaS

New

min 100 MB

-