# 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 customisations 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 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?