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:
- 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.
- The target parameters for horizontal pod auto scaling can be configured in hpcjob.yaml and hpcui.yaml.
- Secret manager name
- Environment values
Screenshot #1: values.yaml
- IAM Role
Screenshot #2: values.yaml
- Host Name
Screenshot #3: values.yaml
- Shared storage NFS
Screenshot #4: values.yaml
Deploy Helm Chart
- Connect to the EKS cluster created for the deployment.
- 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 |
- |