Doc Fulfilment

DF 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

  1. Ensure that the file names of the certificates are as follows:
    • tls.crt is the full chain certificate.
    • tls.key is the certificate key.
openssl pkcs12 -export -in tls.crt -inkey tls.key -out keystore.p12
Use RIA@2021 as password
  1. 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.

  1. Create a database in PostgreSQL that will hold the initial data of the Test Automation.
  2. Restore database-pack.tar in 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.

  1. Prepare a values values.yaml with 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'
  1. Add the RIA Helm Chart repository.
helm repo add riacharts https://charts.devops.riaproducts.com/charts --username riauser --password 7WHm6FK8p7EBSHWy
helm repo update
  1. Install Test Automation.
helm install testautomation riaapps/apps -f values- override.yaml