- docs/guides/application-capabilities.md: the .with(...) menu, by-reference wiring, and a recipe for writing a capability; disambiguates the overloaded 'capability' (topology vs application) flagged in DX review; wired into the book. - Deprecate ApplicationScore, features::Monitoring, features::PackagingDeployment (+ doc-deprecate the ApplicationFeature trait) in favour of harmony_app + ComposeDeploy/.with(...) (ADR-026). Legacy examples now warn; harmony lib is warning-clean (internal self-refs allowed).
2.4 KiB
2.4 KiB
Capabilities Catalog (Topology)
Note: this page lists Topology capabilities — what a cluster can do, exposed as trait bounds a
Scorerequires. For application capabilities — add-ons you attach to an app with.with(...)(databases, monitoring, …) — see Application Capabilities.
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.
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).