#+TITLE: OpenShift Workshops #+AUTHOR: James Blair #+DATE: <2024-07-24 Wed> This repository contains a basic [[https://nextjs.org/][nextjs]] frontend designed to be exported as a static site and served via [[https://pages.github.com/][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. #+begin_src bash 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 #+end_src *** Install web terminal operator So our workshop participants don't need to install ~oc~ locally. #+begin_src bash 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 #+end_src *** 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. #+begin_src bash 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 #+end_src