2023-12-04 14:02:37 +13:00
2023-12-18 22:48:17 +13:00
2023-12-04 14:33:14 +13:00
2023-12-18 22:48:17 +13:00
2023-12-04 14:02:37 +13:00
2023-12-04 14:57:03 +13:00

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.

Local development

To set up a local development environment run the following:

# Install dependencies
npm install

# Build and serve the site
npm run build && npm run serve

Exporting static site

To export the site to static html to serve for example via github pages, run:

# Install dependencies
npm install

# Build and export the site
npm run build && npm run export

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
Description
A monorepo for hands on workshops hosted with a github pages static site.
Readme GPL-3.0 264 MiB
Languages
MDX 70.4%
JavaScript 28.3%
CSS 1.3%