Skip to content

yusufcanb/kubot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

28 Commits

Repository files navigation

Kubot - Parallelizing Robot Scripts over Kubernetes Workloads

Kubot is a command-line interface (CLI) program designed to parallelize and distribute the execution of Robot Framework scripts over Kubernetes workloads. It enables efficient and scalable execution of robot scripts using the power of Kubernetes.

Features

  • Parallel Execution: Kubot utilizes Kubernetes workloads to parallelize the execution of Robot Framework scripts, significantly reducing the overall execution time.
  • Flexible Workspace: You can specify the workspace path where your robot scripts are located, allowing you to easily manage and organize your test suites.
  • Batch Execution: Define the batch size for parallel execution, controlling the number of scripts executed concurrently.

Installation

To install Kubot, you need to have Go programming language. Then, run the following command:

go get github.com/yusufcanb/kubot

Usage

kubot exec --workspace=/path/to/scripts \
           --name="Daily UI Scan" \
           --batchsize=15 \
           --namespace=kubot \
           --image=docker.io/marketsquare/robotframework-browser:latest

Flags

  • --workspace (-w): Specifies the path to the workspace containing your robot scripts.
  • --name (-n): Sets the top-level suite name for logs and reports generated by the execution.
  • --batchsize (-b): Defines the execution batch size, controlling the number of scripts executed concurrently. The default value is 25.
  • --namespace: Specifies the Kubernetes namespace where the workloads will be created.
  • --image (-i): Sets the Docker image to be used for the execution of robot scripts.
  • --selector (-s): Allows you to specify a script selector, such as tasks/*, to execute specific scripts or groups of scripts within your workspace.

Workload Configuration

Here is the workload configuration parameters you can use;

Name Description Default
KUBOT_POD_CPU_REQUEST CPU request per Pod 250m
KUBOT_POD_MEMORY_REQUEST Memory request per Pod 128Mi
KUBOT_POD_CPU_LIMIT CPU limit per Pod 250m
KUBOT_POD_MEMORY_LIMIT Memory limit per Pod 256Mi

Contributing

Contributions to Kubot are welcome! If you encounter any issues or have suggestions for improvements, please submit an issue or a pull request to the GitHub repository.

Before contributing, please familiarize yourself with the general contribution guidelines.