Deploying Eggplant Functional (Fusion Engine) in Containers
Intended Audience: Test developers familiar with using Git source control software workflows, automated pipelines, and containerized software.
Eggplant Functional's script execution engine is also known as the Eggplant Fusion Engine. The Fusion Engine is essentially Eggplant Functional running in command-line mode. When we refer to Eggplant Functional running in a container, we usually refer to it as the "Fusion Engine." However, we refer to it as both on this page.
You can integrate Eggplant Functional (EPF) tests into your continuous integration/continuous delivery (CI/CD) pipelines by deploying EPF in a container. To run in a container, you launch EPF with its runscript
command. The runscript
command can run EPF without its graphical user interface (GUI) from a command-line interface (CLI), which allows it to run in a container.
This page covers following topics:
Methods for Running Eggplant Functional (Fusion Engine) in a Container
You can run Eggplant Functional (Fusion Engine) in a container in one of two ways:
-
By passing a specific Eggplant SenseTalk test script to run as an argument with the
runscript
command. In this scenario, Eggplant Fusion Engine only runs for the duration of the specified script run. Below is an examplerunscript
command for this scenario:runscript /tests/Demo.suite/Scripts/check_tutorial_sut.script
For more information the
runscript
options available when you run the Eggplant Fusion Engine this way, see The Runscript Command, Running fron the Command Line, and Runscript Command Line Options. -
By running in Drive Mode, where you pass the
drivemode yes -driveport <port>
arguments with therunscript
command to run Eggplant Fusion Engine as a background service. Drive Mode provides a simple XML-RPC interface that other applications, such as the Eggplant DAI Run Agent, can use to send messages to and from Eggplant Fusion Engine. In Drive Mode, Eggplant Fusion Engine runs continuously to receive and send messages until you or a process explicitly stops it. Below is an examplerunscript
command for Drive Mode:runscript driveport 5400 -CommandLineOutput yes
For more information about the options available when you run Fusion Engine in Drive Mode, see About Eggdrive and Using Eggdrive with Eggplant Functional.
Container Image Options
To run Eggplant Functional (Fusion Engine) in a container (to containerize it), you have the following options:
-
You can use the prebuilt images as described in Using the Prebuilt Eggplant Functional Container Images.
-
You can build your own as described in Building Your Own Container Image.
Be sure to review the prerequisites below to ensure you have everything you need to run the Eggplant Fusion Engine in a container.
Container Prerequisites
To run Eggplant Functional (Fusion Engine) in a container, you need the following software:
General Requirements
Requirement | Notes |
---|---|
Git source control software | The latest version, if you plan to run your Fusion Engine container in a Gitlab pipeline. |
container software | Such as Docker, Ranger, or Red Hat Linux (RHEL) Podman or the pre-configured Eggplant Functional (Fusion Engine) container images, available in the Quay.io reository or Iron Bank repositories |
Eggplant Functional (Fusion Engine) Requirements
Requirement | Notes |
---|---|
Supported Linux OSs running on Intel (x86_64) systems only | See the Eggplant Functional Prerequisites page for information about Eggplant Fusion Engine (Eggplant Functional) supported Linux operating systems and versions. |
Eggplant Functional (Fusion Engine) | Launched using runscript . |
Reprise License Manager (RLM) Server | The currently supported version of the RLM Server as documented in the Eggplant Functional Prerequisites page. |
Eggplant Functional Reprise License Manager (RLM) license(s) | 1 Developer or Execution license for each instance of Eggplant Fusion Engine (Eggplant Functional) you want to run. You must use licenses served from an RLM Server. You cannot use node-locked licenses when you run Eggplant Fusion Engine in a container. For information about using the RLM Server for licenses, see Using RLM for Team License Management. You can create licenses through the Keysight Software Manager. |
network access to an RLM Server host | The Eggplant Fusion Engine in a container must have network access to the system running the RLM Server it from which it needs to check out a license. |
Disable the BonJour Discovery option | You must set the Eggplant Fusion Engine (Eggplant Functional) BonjourDiscoveryEnabled option to false when you run it in a container. This option is unnecessary when you run a Fusion Engine container in a pipeline where it does not need the ability to poll for other VNC Servers. |
Using Prebuilt Eggplant Functional (Fusion Engine) Container Images
Keysight provides Red Hat Enterprise Linux (RHEL) containers prebuilt with the Eggplant Functional script execution engine (Fusion Engine) that you can use. The entrypoint
for these containers are wrappers around the Eggplant Functional runscript
command, which can run from a Docker image on any Open Container Initiative (OCI) Runtime. For information about OCI Runtime specifications, see the Linux Foundation Open Container Initiative site. The containers are available from two repositories:
-
Red Hat Quay.io Eggplant Fusion Engine in a Container, which is also linked on our Eggplant Functional Software Downloads page.
-
Iron Bank Eggplant Functional Container, which is Platform One's hardened container image repository. This repository provides a secure software supply chain for all software engineers in the greater United States Department of Defense (DoD) community. For more information, visit Platform One.