# Capabilities Catalog A `Capability` is a specific feature or API that a `Topology` offers. `Interpret` logic uses these capabilities to execute a `Score`. This list is primarily for developers **writing new Topologies or Scores**. As a user, you just need to know that the `Topology` you pick (like `K8sAnywhereTopology`) provides the capabilities your `Scores` (like `ApplicationScore`) need. - [Capabilities Catalog](#capabilities-catalog) - [Kubernetes & Application](#kubernetes-application) - [Monitoring & Observability](#monitoring-observability) - [Networking (Core Services)](#networking-core-services) - [Networking (Hardware & Host)](#networking-hardware-host) ## Kubernetes & Application - **K8sClient**: Provides an authenticated client to interact with a Kubernetes API (create/read/update/delete resources). - **HelmCommand**: Provides the ability to execute Helm commands (install, upgrade, template). - **TenantManager**: Provides methods for managing tenants in a multi-tenant cluster. - **Ingress**: Provides an interface for managing ingress controllers and resources. ## Monitoring & Observability - **Grafana**: Provides an API for configuring Grafana (datasources, dashboards). - **Monitoring**: A general capability for configuring monitoring (e.g., creating Prometheus rules). ## Networking (Core Services) - **DnsServer**: Provides an interface for creating and managing DNS records. - **LoadBalancer**: Provides an interface for configuring a load balancer (e.g., OPNsense, MetalLB). - **DhcpServer**: Provides an interface for managing DHCP leases and host bindings. - **TftpServer**: Provides an interface for managing files on a TFTP server (e.g., iPXE boot files). ## Networking (Hardware & Host) - **Router**: Provides an interface for configuring routing rules, typically on a firewall like OPNsense. - **Switch**: Provides an interface for configuring a physical network switch (e.g., managing VLANs and port channels). - **NetworkManager**: Provides an interface for configuring host-level networking (e.g., creating bonds and bridges on a node).