Workshop Instructor Guide

This page is for the instructor who runs a delivery of the workshop.

What the Workshop Covers

Attendees should know the basics of Kubernetes (pods, services, deployments and namespaces), be able to read YAML, and have used the oc command line. Each workshop’s start page lists its own prerequisites and what attendees can do afterwards.

Workshop Covers Time

Helm Workshop

The Helm CLI, chart file structure and templating, and storing and distributing charts as files or OCI artifacts. Four modules.

Advanced Deployment Workshop

Pod scheduling and priority, node affinity, taints and topology spread, descheduling, horizontal and vertical pod autoscaling, and image distribution. Four modules.

Istio Service Mesh Workshop

Sidecar injection and mutual TLS, Gateways and VirtualServices, DestinationRules, request authentication and authorization policies, and observability, on OpenShift Service Mesh 3.4. Four modules.

Prometheus Query Workshop

PromQL selectors, aggregation and advanced query patterns, alerting and recording rules with user workload monitoring, and Grafana dashboards. Six modules.

Environment and Requirements

Each workshop lists the cluster components, Operators, command-line tools, roles and access it needs on its own page. Prepare everything for the workshops you deliver:

Shared by all the workshops: attendees who don’t want to install the command-line tools run the workshop CLI tools image on the cluster, as Shared CLI tools describes. Make sure attendees can pull that image, or mirror it for a disconnected cluster.

Downloads has every file of the release: the PDF, the Helm chart, the list of images to mirror and the guide for running the workshop in a disconnected cluster. Deploy the Workshop shows how to deploy them.

Deploy the Workshop

A release has everything needed to run the workshop: the site image, the tools image and a Helm chart that deploys both. Get the files from Downloads. On a cluster that can reach ghcr.io, you need only the chart; on a disconnected cluster, you also mirror the images first.

Part What it runs

ghcr.io/shpwrck/openshift-102-workshop:v1.0.14

This site, served over HTTP on port 8080.

ghcr.io/shpwrck/openshift-102-workshop-tools:v1.0.14

A pod with the command-line tools the exercises use, as Shared CLI tools describes.

openshift-102-workshop-1.0.14.tgz

The Helm chart: a Deployment, Service and Route for the site, and a Deployment for the tools pod.

You need oc and helm on your workstation, and a user who can create a project. The tools image has both, if you’d rather run the steps from a pod.

Deploy on a Connected Cluster

  1. Download openshift-102-workshop-1.0.14.tgz from Downloads.

  2. Create a project for the workshop:

    oc new-project workshop
  3. Install the chart into it:

    helm upgrade --install workshop \
      ./openshift-102-workshop-1.0.14.tgz \
      --namespace workshop
  4. Print the site’s address and open it in a browser:

    oc get route workshop-openshift-102-workshop \
      --namespace workshop \
      --output jsonpath='{.spec.host}{"\n"}'

The chart’s notes, printed after the install, repeat these steps. To leave out the tools pod, add --set tools.enabled=false to the install.

Deploy on a Disconnected Cluster

  1. Download openshift-102-workshop-1.0.14.tgz, images-mirror.txt and DISCONNECTED.md from Downloads on a host that can reach both ghcr.io and your registry.

  2. Set the registry and path to mirror to, replacing the example with your own:

    REGISTRY=registry.example.com/workshop
  3. Mirror the site image:

    oc image mirror \
      ghcr.io/shpwrck/openshift-102-workshop:v1.0.14 \
      $REGISTRY/openshift-102-workshop:v1.0.14
  4. Mirror the tools image the same way:

    oc image mirror \
      ghcr.io/shpwrck/openshift-102-workshop-tools:v1.0.14 \
      $REGISTRY/openshift-102-workshop-tools:v1.0.14
  5. Mirror the images the exercises pull, which each workshop’s setup requirements list.

  6. Create a project for the workshop:

    oc new-project workshop
  7. Install the chart, pointing it at the mirrored images, from a host that can reach the cluster and has the chart and REGISTRY set:

    helm upgrade --install workshop \
      ./openshift-102-workshop-1.0.14.tgz \
      --namespace workshop \
      --set image.repository=$REGISTRY/openshift-102-workshop \
      --set tools.image.repository=$REGISTRY/openshift-102-workshop-tools
  8. Print the site’s address and open it in a browser:

    oc get route workshop-openshift-102-workshop \
      --namespace workshop \
      --output jsonpath='{.spec.host}{"\n"}'

DISCONNECTED.md has the same steps for reading offline.

Deploy Without Helm

  • The site: the offline bundle on the release page has the built site in www/. Any web server can serve that folder as it is.

  • The tools pod: import tools-deployment.yaml from Downloads in the web console, as Shared CLI tools describes.

Check the Deployment

  • The site opens at the Route’s address, on the Workshop Home page.

  • The tools pod is running:

    oc get deployment workshop-openshift-102-workshop-tools \
      --namespace workshop
  • Each workshop’s setup requirements end with a verification checklist; run it before the attendees start.

Before the Day

  1. Prepare the environment from the setup requirements above, for every attendee.

  2. Deploy the workshop, as Deploy the Workshop describes.

  3. Run the workshop end to end once on an environment built the same way.

  4. Send attendees the Workshop Attendee Guide page so they can check their workstation.

Delivery Notes

  • Some steps wait for the cluster: the autoscaling exercises in Module 3 of the Advanced Deployment Workshop take a few minutes before the HPA and VPA respond, and so does the outlier ejection in Module 3 of the Istio Service Mesh Workshop.

  • The CLI tools pod has no container engine, so in Module 4 of the Helm Workshop attendees who use it push charts to a registry the pod can reach instead of a local one.