# Supported Environments

Use the imageid within your scenario's index.json.

Environment Implementation Notes ImageID
Ubuntu 18.04 Docker installed and running ubuntu:1804
Ubuntu 20.04 Docker installed and running ubuntu:2004
Centos 7 Docker installed and running TBC
Kubernetes Cluster 1.18 2 nodes with kubeadm installed, nothing running. Based on Ubuntu.
Designed for teaching how to use Kubernetes from scratch
kubernetes-cluster:1.18
Kubernetes Cluster 1.18 (Pre-configured) 2 node cluster with 1 master, 1 node. Based on Ubuntu.
Run launch.sh when the scenario starts to ensure cluster is running.
kubernetes-cluster-running:1.18
Java / Scala openjdk:15
Kotlin kotlin:1.3.61
Python 3 python:3.6
Go golang:1.14
Rust TBC
Ruby TBC
C# (dotnet core 3.1) dotnet:3.1
R rlang:3.4
Node.js nodejs:12
Bash Lightweight Linux instance without Docker bash

Test the environments at https://katacoda.com/scenario-examples/courses/environment-usages

If you need to make Customizations please read customizing-environment.html

# Deprecated Environments

It is recommended not to use these versions as they will be removed in future. If you are currently building content against these environments we strongly recommend you update to the above environemnt.

Environment Implementation Notes ImageID
Docker Docker installed and running docker
Ubuntu 16.04 Docker installed and running ubuntu / ubuntu:1604
Ubuntu 19.04 Docker installed and running ubuntu1904
Centos 7 Docker installed and running TBC
Kubernetes Cluster 1.14 2 nodes with kubeadm installed, nothing running. Based on Ubuntu.
Designed for teaching how to use Kubernetes from scratch
kubernetes-cluster / kubernetes-cluster:1.14
Kubernetes Cluster 1.14 (Pre-configured) 2 node cluster with 1 master, 1 node. Based on Ubuntu.
Run launch.sh when the scenario starts to ensure cluster is running.
kubernetes-cluster-running / kubernetes-cluster-running:1.14

# Implemention Notes

Certain environments have additional functionality or items to be aware of when working with them.

# Kubernetes / Minikube Port Fowarding

If you are planning to use the kubectl port-forward functionality within your scenario then please be aware that by default this only accepts connections from 127.0.0.1 and as such the Katacoda Proxy won't be able to access the port. Instead, please ensure that the command binds to 0.0.0.0 using kubectl port-forward --address 0.0.0.0.

# Kubernetes Cluster Running

With the running environment we aim that the user will always connect. However, when we have an unexpected load spike the cluster might still be starting when the user is connected.

To provide the user with feedback, we recommend that you automatically run a script called launch.sh when the user connects. This can be done automatically via a Foreground Script.

Without running launch.sh, users will see the following error when they attempt to access Kubernetes before it has started.

The connection to the server localhost:8080 was refused - did you specify the right host or port?