Files
workshops/data/app-delivery

OpenShift Workshops

This repository contains a basic nextjs frontend designed to be exported as a static site and served via github pages.

The frontend is used to serve workshop instructions for several workshops.

Setting up a cluster for the workshop

The workshop expects an OpenShift 4.14 cluster with a few pre-requisites.

Add redhat-cop helm chart repository

Required so the Gitea helm chart will be available for all users.

cat << EOF | oc apply --filename -
apiVersion: helm.openshift.io/v1beta1
kind: HelmChartRepository
metadata:
  name: redhat-cop
spec:
  connectionConfig:
    url: 'https://redhat-cop.github.io/helm-charts'
  name: Red Hat Community
EOF

Install web terminal operator

So our workshop participants don't need to install oc locally.

cat << EOF | oc apply --filename -
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: web-terminal
  namespace: openshift-operators
spec:
  channel: fast
  installPlanApproval: Automatic
  name: web-terminal
  source: redhat-operators
  sourceNamespace: openshift-marketplace
EOF

Create an operatorgroup for each user

We want each user to be able to install the same operator so we can pre-create namespaces and seed them with OperatorGroups to reduce complexity.

cat << EOF > operatorgroup.yaml
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
  name: grafana-og
spec:
  targetNamespaces:
    - user$user
  upgradeStrategy: Default
EOF

for user in $(seq 1 30); do
    export user=${user}
    oc new-project user"${user}"
    envsubst < operatorgroup.yaml | oc create --filename - --namespace user"${user}"
    oc adm policy add-role-to-user --namespace user"${user}" admin user"${user}"
done