Files
harmony/docs/catalogs/scores.md
Ian Letourneau bb6b4b7f88
All checks were successful
Run Check Script / check (pull_request) Successful in 1m43s
docs: New docs structure & rustdoc for HostNetworkConfigScore
2025-11-13 18:42:26 -05:00

5.5 KiB

Scores Catalog

A Score is a declarative description of a desired state. Find the Score you need and add it to your harmony! block's scores array.

Application Deployment

Scores for deploying and managing end-user applications.

  • ApplicationScore: The primary score for deploying a web application. Describes the application, its framework, and the features it requires (e.g., monitoring, CI/CD).
  • HelmChartScore: Deploys a generic Helm chart to a Kubernetes cluster.
  • ArgoHelmScore: Deploys an application using an ArgoCD Helm chart.
  • LAMPScore: A specialized score for deploying a classic LAMP (Linux, Apache, MySQL, PHP) stack.

OKD / Kubernetes Cluster Setup

This collection of Scores is used to provision an entire OKD cluster from bare metal. They are typically used in order.

  • OKDSetup01InventoryScore: Discovers and catalogs the physical hardware.
  • OKDSetup02BootstrapScore: Configures the bootstrap node, renders iPXE files, and kicks off the SCOS installation.
  • OKDSetup03ControlPlaneScore: Renders iPXE configurations for the control plane nodes.
  • OKDSetupPersistNetworkBondScore: Configures network bonds on the nodes and port channels on the switches.
  • OKDSetup04WorkersScore: Renders iPXE configurations for the worker nodes.
  • OKDSetup06InstallationReportScore: Runs post-installation checks and generates a report.
  • OKDUpgradeScore: Manages the upgrade process for an existing OKD cluster.

Cluster Services & Management

Scores for installing and managing services inside a Kubernetes cluster.

  • K3DInstallationScore: Installs and configes a local K3D (k3s-in-docker) cluster. Used by K8sAnywhereTopology.
  • CertManagerHelmScore: Deploys the cert-manager Helm chart.
  • ClusterIssuerScore: Configures a ClusterIssuer for cert-manager, (e.g., for Let's Encrypt).
  • K8sNamespaceScore: Ensures a Kubernetes namespace exists.
  • K8sDeploymentScore: Deploys a generic Deployment resource to Kubernetes.
  • K8sIngressScore: Configures an Ingress resource for a service.

Monitoring & Alerting

Scores for configuring observability, dashboards, and alerts.

  • ApplicationMonitoringScore: A generic score to set up monitoring for an application.
  • ApplicationRHOBMonitoringScore: A specialized score for setting up monitoring via the Red Hat Observability stack.
  • HelmPrometheusAlertingScore: Configures Prometheus alerts via a Helm chart.
  • K8sPrometheusCRDAlertingScore: Configures Prometheus alerts using the PrometheusRule CRD.
  • PrometheusAlertScore: A generic score for creating a Prometheus alert.
  • RHOBAlertingScore: Configures alerts specifically for the Red Hat Observability stack.
  • NtfyScore: Configures alerts to be sent to a ntfy.sh server.

Infrastructure & Networking (Bare Metal)

Low-level scores for managing physical hardware and network services.

  • DhcpScore: Configures a DHCP server.
  • OKDDhcpScore: A specialized DHCP configuration for the OKD bootstrap process.
  • OKDBootstrapDhcpScore: Configures DHCP specifically for the bootstrap node.
  • DhcpHostBindingScore: Creates a specific MAC-to-IP binding in the DHCP server.
  • DnsScore: Configures a DNS server.
  • OKDDnsScore: A specialized DNS configuration for the OKD cluster (e.g., api.*, *.apps.*).
  • StaticFilesHttpScore: Serves a directory of static files (e.g., a documentation site) over HTTP.
  • TftpScore: Configures a TFTP server, typically for serving iPXE boot files.
  • IPxeMacBootFileScore: Assigns a specific iPXE boot file to a MAC address in the TFTP server.
  • OKDIpxeScore: A specialized score for generating the iPXE boot scripts for OKD.
  • OPNsenseShellCommandScore: Executes a shell command on an OPNsense firewall.

Infrastructure & Networking (Cluster)

Network services that run inside the cluster or as part of the topology.

  • LoadBalancerScore: Configures a general-purpose load balancer.
  • OKDLoadBalancerScore: Configures the high-availability load balancers for the OKD API and ingress.
  • OKDBootstrapLoadBalancerScore: Configures the load balancer specifically for the bootstrap-time API endpoint.
  • K8sIngressScore: Configures an Ingress controller or resource.
  • HighAvailabilityHostNetworkScore: Configures network bonds on a host and the corresponding port-channels on the switch stack for high-availability.

Tenant Management

Scores for managing multi-tenancy within a cluster.

  • TenantScore: Creates a new tenant (e.g., a namespace, quotas, network policies).
  • TenantCredentialScore: Generates and provisions credentials for a new tenant.

Utility

Helper scores for discovery and inspection.

  • LaunchDiscoverInventoryAgentScore: Launches the agent responsible for the OKDSetup01InventoryScore.
  • DiscoverHostForRoleScore: A utility score to find a host matching a specific role in the inventory.
  • InspectInventoryScore: Dumps the discovered inventory for inspection.