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.
- MacOS
- Windows
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.