Files
harmony/examples
2026-04-10 15:41:09 -04:00
..
2026-01-09 17:30:51 -05:00
2026-03-19 22:52:05 -04:00

Examples

This directory contains runnable examples demonstrating Harmony's capabilities. Each example is a self-contained program that can be run with cargo run -p example-<name>.

Quick Reference

Example Description Local K3D Existing Cluster Hardware Needed
postgresql Deploy a PostgreSQL cluster
ntfy Deploy ntfy notification server
tenant Create a multi-tenant namespace
cert_manager Provision TLS certificates
node_health Check Kubernetes node health
monitoring Deploy Prometheus alerting
monitoring_with_tenant Monitoring + tenant isolation
operatorhub_catalog Install OperatorHub catalog
validate_ceph_cluster_health Verify Ceph cluster health Rook/Ceph
remove_rook_osd Remove a Rook OSD Rook/Ceph
brocade_snmp_server Configure Brocade switch SNMP Brocade switch
opnsense_node_exporter Node exporter on OPNsense OPNsense firewall
okd_pxe PXE boot configuration for OKD
okd_installation Full OKD bare-metal install
okd_cluster_alerts OKD cluster monitoring alerts OKD cluster
multisite_postgres Multi-site PostgreSQL failover Multi-cluster
nats Deploy NATS messaging Multi-cluster
nats-supercluster NATS supercluster across sites Multi-cluster
lamp LAMP stack deployment
openbao Deploy OpenBao vault
zitadel Deploy Zitadel identity provider
try_rust_webapp Rust webapp with packaging Submodule
rust Rust webapp with full monitoring
rhob_application_monitoring RHOB monitoring setup
sttest Full OKD stack test
application_monitoring_with_tenant App monitoring + tenant OKD cluster
kube-rs Direct kube-rs client usage
k8s_drain_node Drain a Kubernetes node
k8s_write_file_on_node Write files to K8s nodes
harmony_inventory_builder Discover hosts via subnet scan
cli CLI tool with inventory discovery
tui Terminal UI demonstration

Status Legend

Symbol Meaning
Works out-of-the-box
Not applicable or requires specific setup

By Category

Data Services

  • postgresql — Deploy a PostgreSQL cluster via CloudNativePG
  • multisite_postgres — Multi-site PostgreSQL with failover
  • public_postgres — Public-facing PostgreSQL (⚠️ uses NationTech DNS)

Kubernetes Utilities

  • node_health — Check node health in a cluster
  • k8s_drain_node — Drain and reboot a node
  • k8s_write_file_on_node — Write files to nodes
  • validate_ceph_cluster_health — Verify Ceph/Rook cluster health
  • remove_rook_osd — Remove an OSD from Rook/Ceph
  • kube-rs — Direct Kubernetes client usage demo

Monitoring & Alerting

  • monitoring — Deploy Prometheus alerting with Discord webhooks
  • monitoring_with_tenant — Monitoring with tenant isolation
  • ntfy — Deploy ntfy notification server
  • okd_cluster_alerts — OKD-specific cluster alerts

Application Deployment

  • try_rust_webapp — Deploy a Rust webapp with packaging (⚠️ requires tryrust.org submodule)
  • rust — Rust webapp with full monitoring features
  • rhob_application_monitoring — Red Hat Observability Stack monitoring
  • lamp — LAMP stack deployment (⚠️ uses NationTech DNS)
  • application_monitoring_with_tenant — App monitoring with tenant isolation

Infrastructure & Bare Metal

  • okd_installation — Full OKD cluster from scratch
  • okd_pxe — PXE boot configuration for OKD
  • sttest — Full OKD stack test with specific hardware
  • brocade_snmp_server — Configure Brocade switch via SNMP
  • opnsense_node_exporter — Node exporter on OPNsense firewall

Multi-Cluster

  • nats — NATS deployment on a cluster
  • nats-supercluster — NATS supercluster across multiple sites
  • multisite_postgres — PostgreSQL with multi-site failover

Identity & Secrets

  • openbao — Deploy OpenBao vault (⚠️ uses NationTech DNS)
  • zitadel — Deploy Zitadel identity provider (⚠️ uses NationTech DNS)

Cluster Services

  • cert_manager — Provision TLS certificates
  • tenant — Create a multi-tenant namespace
  • operatorhub_catalog — Install OperatorHub catalog sources

Development & Testing

  • cli — CLI tool with inventory discovery
  • tui — Terminal UI demonstration
  • harmony_inventory_builder — Host discovery via subnet scan

Running Examples

# Build first
cargo build --release

# Run any example
cargo run -p example-postgresql
cargo run -p example-ntfy
cargo run -p example-tenant

For examples that need an existing Kubernetes cluster:

export KUBECONFIG=/path/to/your/kubeconfig
export HARMONY_USE_LOCAL_K3D=false
export HARMONY_AUTOINSTALL=false

cargo run -p example-monitoring

Notes on Private Infrastructure

Some examples use NationTech-hosted infrastructure by default (DNS domains like *.nationtech.io, *.harmony.mcd). These are not suitable for public use without modification. See the Getting Started Guide for the recommended public examples.