Skip to main content

Tools

In this section are described two approaches to set up your environment for the course. There is a Vagrant virtual machine template with all the tools pre-installed, and a list of tools to install on your host machine. You can choose one of the two approaches.

Virtual Machine Template

We prepared a Virtual Machine (VM) template with all the tools pre-installed. We used Vagrant to create the VM template.

In order to use the VM template, you need to install Vagrant and a virtualization provider like VirtualBox.

Vagrant

brew tap hashicorp/tap
brew install hashicorp/tap/hashicorp-vagrant

VirtualBox

brew install --cask virtualbox

You can find the VM template here, you can download it, move it to the root of the project folder (you have to clone the repository first and then checkout the tag course-start running git checkout course-start), and run vagrant up --provider=virtualbox to start the VM.

Host Machine

Operating System

We suggest using a Unix-based operating system like Linux or macOS. If you are using Windows, you can install the Windows Subsystem for Linux (WSL) as explained here. All the following tools have to be installed in the WSL environment not in the Windows environment!

Oh My Zsh

Here you can find the instructions for installing Oh My Zsh, a framework for managing your Zsh configuration with themes and plugins.

Git

We will work with Git, the most popular version control system. You can download it here.

Docker

Docker is a containerization platform. You will need to download the Docker Desktop application.

Buildpacks

Buildpacks is a tool for packaging container applications. Here you can find the instructions for installing the pack CLI based on your operating system.

SDKMAN!

SDKMAN! is an SDK manager for handling multiple Java versions and other tools. See the installation instructions here.

Once installed, check the SDK instructions to install Java 21, which is the version we will use in this course.

Trivy

Trivy is a tool for scanning container images for vulnerabilities. Here are the installation instructions.

Dive

Dive is a tool for analyzing Docker image layers. Check the installation instructions here.

kubectl

kubectl is a CLI tool for interacting with Kubernetes clusters. Follow the installation guide based on your operating system.

Krew

Krew is a plugin manager for kubectl. You can find the installation instructions here.

Kustomize

Kustomize is a tool for customizing Kubernetes configurations. Here is the installation guide.

Helm

Helm is a package manager for Kubernetes. Follow the installation instructions here.

HTTPie

HTTPie is a user-friendly alternative to curl for testing HTTP APIs. Check out the installation here.

oha

oha is a tool for benchmarking HTTP requests. You can find the installation instructions here.

jq

jq is a command-line processor for JSON manipulation and formatting. See how to download it here.