Openshift Test Bed

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.

Youtube Video Demonstration

Youtube Video Demonstration

Business Value Goals:

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

Platform Components and Application Examples

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

Concepts/Examples Reviewed

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

Prerequisites for Lab:

  • 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)

Running this Demo

Running and automated build

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

Running the demo manually

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

Opening routes

Once the install is complete, run the script below to open demo routes on your local machine

./scripts/open-routes.sh

Workshop Labs

Lab instructions have been created to help walk you through the capabilities of openshift-testbed

Uninstall

./scripts/uninstall.sh