Skip to main content

BeetleboxCI Free Installation

BeetleboxCI Free is a CI solution for customers who want to experiment with using BeetleboxCI for hardware-in-the-loop testing. BeetleboxCI Free is capable on running on bare metal or on a virtual machine, and it operates on MicroK8s. MicroK8s is a lightweight, production-grade, single-node Kubernetes cluster.

Mininum requirements for installing BeetleboxCI Free:

  • An x64/x86_64/AMD64/Intel 64 system
  • At least 4 CPUs
  • At least 16GB RAM
  • Ubuntu Desktop/Server 20.04/22.04/24.04, Centos Stream 9 or RHEL 9

Recommended:

  • An x64/x86_64/AMD64/Intel 64 system
  • At least 12 CPUs
  • At least 32GB RAM
  • Ubuntu Desktop/Server 20.04/22.04/24.04, Centos Stream 9 or RHEL 9

Introduction

BeetleboxCI Free is designed to be deployed onto a Linux desktop or server. This guide describes the process of installing the free version of BeetleboxCI.

Installing BeetleboxCI

You can sign up and download the installer here: BeetleboxCI.

The tarball contains a self-extracting executable that will install the application.

The hostname of the machine where you install BeetleboxCI may only contain lowercase alphanumeric characters, hyphens and dots. You can find the commands to change the hostname of your machine here: Changing the hostname. Please note that other applications that depend on the current hostname may stop working if the hostname is changed.

  1. Extract the tarball using a terminal and enter the folder that gets extracted:

    tar -xzvf BeetleboxCIv*.tar.gz
    cd clean_install/
  2. Run the BeetleboxCIv*.run file.

  3. You will be prompted to "Enter the path of parameter file". We recommend leaving this blank to select the default file that is bundled with the download unless you have a specific reason to customise the installation.

  4. To access the application within the (virtual) machine where you installed BeetleboxCI, open a web browser and navigate to http://127.0.0.1:32767. If you need to access the BeetleboxCI web application from another machine (on the same local network) other than the machine where you installed the application, then you will need to replace 127.0.0.1 with the IP address, hostname or DNS name of the machine.

Upgrading BeetleboxCI

You can download the latest version of the installer here BeetleboxCI.

The tarball contains a self-extracting executable that can be used to upgrade to a newer version, and the steps to upgrade are below:

  1. Extract the tarball using a terminal and enter the folder that gets extracted:

    tar -xzvf BeetleboxCIv*.tar.gz
    cd update/
  2. Run the ./BeetleboxCIv*.run file.

    ./BeetleboxCIv*.run
  3. You will be prompted to enter the path of the parameter file. The parameter file from the original installation was copied to the Beetlebox installation directory at /mnt/beetleboxci/[parameter_file_name].sh. We recommend using this file. If the field is left blank, the installer will use the default file that is included in the installation bundle.

  1. Run the following command to check that all the modules are running correctly — they may take a few minutes to stabilise, so you may need to run this command again. If you receive an error message, you may need to exit and create a new terminal session.

    microk8s.kubectl get po --all-namespaces
  2. You are now ready to use the latest version of BeetleboxCI.

Services

BeetleboxCI exposes a number of services:

Frontend web application accessed through a browser. (Port 32767)

A local container registry to store images to run jobs. (Port 5000)

An NFS server to allow other nodes to access shared files (Port 2049)

beetleboxci-db - Stores information about users, jobs etc.

beetleboxci-redis-server - Manages the queue of jobs to be run.

beetleboxci-redis-worker-main - Orchestrates user defined jobs.

beetleboxci-redis-worker-poll - Monitors pipelines for changes.

beetleboxci-redis-scheduler - Handles cron jobs.

beetleboxci-nginx - Proxy that handles web server requests.

beetleboxci-web - Backend web server.

metrics-server - Monitors performance of user-defined jobs.

registry - Docker registry for storing custom container images.

Ports

The application exposes a number of ports:

53 - TCP/UDP - Kubernetes DNS server

179 - TCP - Calico CNI

443 - TCP - Metrics server

2049 - TCP - Network File System

2379 - TCP - etcd API

2380 - TCP - etcd internal communication

5000 - TCP - Docker registry

5432 - TCP - PostgreSQL

6443 - TCP - Kubernetes API server

6379 - TCP - Redis

10250 - TCP - Kubelet API

10251 - TCP - Kube-scheduler API

10252 - TCP - Kube-controller-manager API

16443 - TCP - Microk8s API server

32767 - TCP - Web app traffic