Test Assistant
TA Installation Guide
This installation guide contains requirements and instructions to Test Automation in Kubernetes provisioned through a cloud provider or running in an on-premises environment.
Intended audience
This installation guide is intended for Infrastructure Administrators, DevOps engineers, and Kubernetes Administrators responsible for deploying, configuring, and maintaining cloud-native infrastructure and container orchestration platforms. A basic understanding of Kubernetes, containerization, and system administration is expected.
Prerequisites
System requirements
Before deploying Test Automation to Kubernetes, you must make sure you have the following:
Kubernetes Cluster
- Version 1.31 or newer
- Cluster Resources
- Minimum of 16vCPU
- Minimum of 32 GB
PostgreSQL server
- Version 15
- Instance Requirements
- At least 2vCPU
- 8GB Memory
- 100GB Storage
- Databases
- Test Automation DB Pack
- Framework DB Pack
SSL/TLS certificate
Valid SSL/TKS Certificate for the DNS that the Test Automation will be hosted on.
Helm
Setup on local machine to run Helm commands. For installation instructions, refer to Installing Helm.
Kubectl
A local kubectl configured to access your Kubernetes cluster. For installation instructions, refer to Installing kubectl.
Configuration requirements
The application also requires a .p12 format of SSL/TLS certificate to load into the containers. To generate a .p12 format certificate, follow the following instructions:
Generate p12 certificate from the SSL/TLS certificate
- Ensure that the file names of the certificates are as follows:
tls.crtis the full chain certificate.tls.keyis the certificate key.
openssl pkcs12 -export -in tls.crt -inkey tls.key -out keystore.p12
Use RIA@2021 as password
- Create the certificates as Kubernetes secret.
kubectl create secret generic subdomain-certificate \
--from-file=tls.crt=tls.crt \
--from-file=tls.key=tls.key \
--from-file=keystore.p12=keystore.p12 \
--type=kubernetes.io/tls \
Initialize the database
If you want to initialize your database using a script, see Initialize your database using a script.
- Create a database in PostgreSQL that will hold the initial data of the Test Automation.
- Restore
database-pack.tarin the database.
You can also initialize the database as part of the installation; however, this would require providing Super Admin user to the configuration file.
#The following must be added in the values.yaml in the next step
initDb:
enabled: true
DB_SUPER_ADMIN_USER: "USER"
DB_SUPER_ADMIN_PASSWORD: "PASSWORD"
global:
DB_HOST: "SERVER_HOSTNAME_OR_IP"
Install Test Automation
The default installation of Test Automation uses a containerized PostgreSQL Database, ensure you have initialized your database before doing the following steps.
- Prepare a values
values.yamlwith required configurations.
database:
postgresql:
enabled: true
# To set a default storage class for the PostgreSQL database,
uncomment the line below and set the desired storage class.
# If not set, the default storage class of the cluster will be
used.
# global:
# defaultStorageClass: ""
#To use an existing existing PersistentVolumeClaim for the PostgreSQL
database, uncomment the lines below and set the name of the
existing claim.
# If you want to use a PersistentVolumeClaim, ensure that the
claim exists in the same namespace as the PostgreSQL deployment.
# Default size is set to 100Gi, but you can adjust it as
needed.
# primary:
# persistence:
# enabled: true
# existingClaim: ""
# size: 100Gi
ta:
enabled: true
# To enable ingress-nginx controller, uncomment the lines below.
# If you want to use a specific ingress class, set the className
field.
# replace host[0] and tls[0].hosts with your desired host.
fw:
ssologin:
ingress:
enabled: true
className: "nginx"
annotations:
# Annotations for kubernetes.io NGINX Ingress Controller
nginx.ingress.kubernetes.io/proxy-body-size: 32m
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
# Annotation for F5 NGINX Ingress Controller
nginx.org/proxy-buffer-size: 32m
nginx.org/ssl-services: "fw-ssologin"
hosts:
- host: 'ta.example.com'
paths:
- path: /
pathType: Prefix
backend:
service:
name: fw-ssologin
port:
number: 8443
tls:
- secretName: subdomain-certificate
hosts:
- 'ta.example.com'
- Add the RIA Helm Chart repository.
helm repo add riacharts https://charts.devops.riaproducts.com/charts --username riauser --password 7WHm6FK8p7EBSHWy
helm repo update
- Install Test Automation.
helm install testautomation riaapps/apps -f values- override.yaml