76 lines
1.9 KiB
Org Mode
76 lines
1.9 KiB
Org Mode
#+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
|