102 lines
2.6 KiB
Org Mode
102 lines
2.6 KiB
Org Mode
#+TITLE: OpenShift Application Delivery Workshop
|
|
#+AUTHOR: James Blair
|
|
#+DATE: <2023-12-04 Mon>
|
|
|
|
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 contains a walkthrough for workshop designed to be run over three hours covering basic application delivery, monitoring and security on OpenShift. The workshop content is tailored towards participants that are new to containers and kubernetes and will not be developing applications but will instead be expected to deliver existing applications onto OpenShift.
|
|
|
|
|
|
** Local development
|
|
|
|
To set up a local development environment run the following:
|
|
|
|
#+begin_src bash
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Build and serve the site
|
|
npm run build && npm run serve
|
|
#+end_src
|
|
|
|
|
|
** Exporting static site
|
|
|
|
To export the site to static html to serve for example via github pages, run:
|
|
|
|
#+begin_src bash
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Build and export the site
|
|
npm run build && npm run export
|
|
#+end_src
|
|
|
|
|
|
** 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
|