The purpose of this repo is to show several examples of Openshift and upstream Kubernetes concepts as reference examples that can be used and expanded on. You can run this demo anywhere OpenShift runs - this demo has been tested on AWS, Azure, GCP, RHV, and VMware.
The focus of openshift-testbed is to show value in the following key areas:
- Standardization - Applications leverage GitOps patterns to standardize application and configuration management
- Reliability - Applications leverage Kubernetes Operators where possible to simplify management and operations
- Observability - Monitoring provides visibility from infrastructure up to the application layers
- Portability - Build on OpenShift, run anywhere
- Automation - Declarative cluster, application, and configuration management allows for agile operations
- Self Service - Use of software catalog to explore, learn, and develop using new and certified solutions
Backend Platform Components:
- ArgoCD Operator (gitops)
- Strimzi Operator (kafka)
- ActiveMQ Artemis Operator (mq)
- Prometheus Operator (metrics)
- Integr8ly Grafana Operator (dashboards)
- Openshift Pipelines Operator (CI/CD)
- Container Security Operator (container scanning)
- Node Feature Discovery Operator (node label discovery)
- Openshift Service Mesh Operator (istio)
- Metering Operator (chargeback reports)
- Namespace Config Operator (cluster-config)
- Open Data Hub (Data Science)
- Web Terminal Operator (Embedded Terminal)
Frontend Applications:
- Real-time Streaming Temperature IoT Dashboard Application
- Podium Collaboration Portal
- Openshift CodeReady Workspaces - web based IDE
- Airline Prediction Generator (kafka producer) tekton pipeline
- Airline Prediction Kafka Streams app
- Basic Spring Boot tekton pipeline
- Kafka load testing app
- Istio Book Info app
Developer Tooling:
- Builds with source-to-image and docker strategies
- CI/CD with Openshift Pipelines (Tekton)
- CI/CD with Jenkins
- CodeReady Workspaces (web-based IDE)
- GitOps with ArgoCD
- Service Mesh monitoring and tracing (Kiali & Jaeger)
Cloud Native App Development:
- Streaming Architectures
- GitOps
- Cloud Native CI/CD
- Service Mesh
- Data Science
- ML/AI
Operations:
- Scaling and Upgrading your cluster
- Autoscaling
- Upgrading
- Infrastructure Node Pools
- Monitoring
- Multi-cloud
- Failure recovery
- Centralized Configuration Management
- Image Vulnerability Scanning
- Node Feature Discovery
- Multi Node Openshift Cluster - this guide has been tested on:
- AWS - 3x m5.xlarge workers (4CPU x 16GB RAM)
- Azure - 3x Standard_D3s_v3 workers (4CPU x 16GB RAM)
- GCP - 3x n2-standard-4 (4CPU x 16GB RAM)
- vSphere - 3x (4CPU x 16GB RAM) VMs
- Admin Privileges (i.e. cluster-admin RBAC privileges or logged in as system:admin user)
oc
client installed (see https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/)- Storage configured on cluster (this demo has been tested on AWS, Azure, GCP, and vSphere storage)
This is able to build and deploy itself using Openshift Build strategies.
oc create -f https://raw.githubusercontent.com/ably77/openshift-testbed/master/build-strategies/build-internal-registry/docker/openshift-testbed-installer/openshift-testbed-installer.yaml
What this will do:
- Create a BuildConfig that points to a git repo (https://github.com/ably77/oc-client)
- Builds oc-client image including demo dependencies (git, openshift-testbed, argo CLI, tkn CLI)
- Deploys built image and installs openshift-testbed
To view the logs, replace the hash with your own:
oc logs openshift-testbed-installer-1-p4t72 -n default -f
If you have an Openshift cluster up, argocd
CLI installed, and are authenticated to the oc
CLI just run the installation script below and follow the output in your console. The script itself has more commented information on the steps and commands if you prefer to run through this demo step-by-step
./scripts/runme.sh
Once the install is complete, run the script below to open demo routes on your local machine
./scripts/open-routes.sh
Lab instructions have been created to help walk you through the capabilities of openshift-testbed
- Lab - GitOps Setup
- Lab - Navigating ArgoCD
- Lab - Autoscaling
- Lab - Cluster Monitoring
- Lab - Vulnerability Scanning using Container Security Operator
- Lab - Monitoring Kafka with Grafana and Prometheus
- Lab - Scaling and Upgrading your Cluster
- Lab - Node Feature Discovery
- Lab - Tekton Pipelines Demo - Pet Clinic Web App
./scripts/uninstall.sh