2.6 KiB
OpenShift Application Delivery Workshop
This repository contains a basic nextjs frontend designed to be exported as a static site and served via 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:
# 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