We'll start by deploying the go-demo-2 application and use it to explore Namespaces.
cat ns/go-demo-2.yml
The definition is the same as the one we used before, so we'll skip the explanation of the YAML file. Instead, we'll jump right away into the deployment.
Unlike previous cases, we'll deploy a specific tag of the application. If this would be a Docker Swarm stack, we'd define the tag of the vfarcic/go-demo-2 image as an environment variable with the default value set to latest. Unfortunately, Kubernetes does not have that option. Since I don't believe that it is a good idea to create a different version of the YAML file for each release, we'll use sed to modify the definition before passing it to kubectl.
Using sed to alter Kubernetes definitions is not a good solution. Heck, it's a terrible one. We should...