Testable Enterprise - Kubernetes
- Launching More Test Runners
Installing Testable into a Kubernetes cluster is our recommended route for a production deployment. This will work both in your data center or in the cloud via services like the AWS Kubernetes Service, the Azure Kubernetes Service, or the Google Cloud Kubernetes Service.
- Testable Services & Storage: The core deployments will require 8 vCPU, 16GB RAM, and 50GB of storage in your cluster.
- Test Runner: Each additional test runner will require ~100MB RAM and 5GB storage when not running any tests. Resource utilization per virtual user depends on the scenario type (e.g. OpenFin vs Webdriver.io vs JMeter vs Node.js). The test runner agent will attempt to utilize all resources accessible to it for generating virtual users.
If your company has its own container registry you will need to pull in the following container images available on Docker Hub:
- testable/services-with-browsers:latest (optional - see the Browser Versions section below)
Packaged Helm Charts (if not hosted separately)
Follow below steps to install Testable Helm Chart on Kubernetes:
- Configure your installation using a values.yaml file. An example file with documentation for each property can be found at sample-values.yaml.
2a. No SSL
- Create a new namespace,
testable, and deploy the Testable platform there:
helm install --create-namespace --namespace --timeout 900 -f my-values.yaml testable https://testable-onprem.s3.amazonaws.com/testable-latest.tgz2a. With SSL
- SSL is disabled by default. If you want to ENABLE it, then you first need to download the package and extract it. Follow below steps to enable ssl:
- Add all your ssl related files in the
ssldirectory in the extracted folder.
- Update the ssl related configs in your
- And then run below command:
helm install --create-namespace --namespace --timeout 900 -f my-values.yaml testable PATH_TO_YOUR_EXTRACTED_HELM_CHART_DIRECTORY
- Create a new namespace,
- After helm chart is installed, to find the website URL check the Testable web service using the command:
kubectl --namespace=testable describe svc testable-web
- The value of LoadBalancer Ingress in the response is the URL to your application. Feel free to configure this in your DNS for easier access via a more memorable URL.
- If you have gateway service and proxy service enabled, then to access the respective services run the command in step 4. and replace
To update your installation you can use the following command:
helm upgrade -f helm-chart-values.yaml testable https://testable-onprem.s3.amazonaws.com/testable-latest.tgz
This section is only relevant if you plan to run browser based tests with a tool like Selenium AND you would like to either:
- Use old versions of browsers
- Use the latest version of browsers without having to update the test runner container image
Our test runner image comes with the latest version of each browser pre-installed on it as of the time the container is built. Testable will validate new browser releases and then make them available to our customers. The new version, as well as older versions, are available in two ways:
- Auto-Update: Testable will download the required version automatically from an AWS S3 bucket into your deployment. This requires the deployed environment to have the ability to make HTTP requests out to S3. The S3 bucket has browser versions going back many years available.
- Via Browsers Cache Container: We also publish a version of our micro-services container that includes the last 10 versions of each browser. This can be deployed in your environment if you want to avoid any external network requests. Every time a new browser version is available for our customers we will publish a new build of this container image for you to deploy.
Each test runner region has a deployment named
testable-test-runner-[region-name]. You can simply scale this up with
kubectl scale --replicas=3 deployment testable-test-runner-[region-name]
To persist this change for future deployments make sure to update the
regions property in your
To launch a new test runner region, add it to your
values.yaml file in the
regions dictionary and then run
helm upgrade -f my-values.yaml testable https://testable-onprem.s3.amazonaws.com/testable-latest.tgz.