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.
Extract the tarball using a terminal and enter the folder that gets extracted:
tar -xzvf BeetleboxCIv*.tar.gz
cd clean_install/Run the
BeetleboxCIv*.run
file.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.
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:
Extract the tarball using a terminal and enter the folder that gets extracted:
tar -xzvf BeetleboxCIv*.tar.gz
cd update/Run the
./BeetleboxCIv*.run
file../BeetleboxCIv*.run
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.
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
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