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.