Dashboard Access
The Kymaros web dashboard is served by the kymaros-frontend pod on port 80. There are three ways to expose it depending on your environment.
Method 1 — Port-Forward (Development)
The fastest way to access the dashboard locally without any cluster-level configuration:
kubectl port-forward svc/kymaros-frontend \
-n kymaros-system \
8080:80
Then open http://localhost:8080 in your browser.
This method is suitable for one-off access or local development. The connection terminates when you stop kubectl port-forward.
Method 2 — Ingress (Production)
For persistent, shared access within your cluster, create an Ingress resource. The following example uses the nginx ingress controller with TLS termination:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kymaros-dashboard
namespace: kymaros-system
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
ingressClassName: nginx
tls:
- hosts:
- kymaros.example.com
# Reference a TLS secret in the same namespace.
# Create it with: kubectl create secret tls kymaros-tls \
# --cert=path/to/cert.pem --key=path/to/key.pem \
# -n kymaros-system
secretName: kymaros-tls
rules:
- host: kymaros.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kymaros-frontend
port:
number: 80
Apply:
kubectl apply -f kymaros-ingress.yaml
Adjust host and secretName to match your environment. If you use cert-manager, add the appropriate cert-manager.io/cluster-issuer annotation instead of creating the secret manually.
Method 3 — Helm Values (Recommended for Production)
The Kymaros Helm chart includes built-in Ingress support. Pass the values at install time or in a values.yaml file.
Install or upgrade with ingress enabled:
helm upgrade --install kymaros kymaros/kymaros \
--namespace kymaros-system \
--create-namespace \
--set ingress.enabled=true \
--set ingress.dashboard.host=kymaros.example.com \
--set ingress.className=nginx \
--set ingress.tls.enabled=true \
--set ingress.tls.secretName=kymaros-tls
Equivalent values.yaml excerpt:
ingress:
enabled: true
className: nginx
dashboard:
host: kymaros.example.com
tls:
enabled: true
secretName: kymaros-tls
Apply with:
helm upgrade --install kymaros kymaros/kymaros \
--namespace kymaros-system \
--create-namespace \
-f values.yaml
Dashboard Pages
Overview
The landing page after login. Shows:
- Score trend chart across all
RestoreTestruns over the past 30 days - Table of all configured
RestoreTestresources with their latest score, result, last run time, and next scheduled run - Quick-access links to each test's most recent report
Report Detail
Full breakdown of a single RestoreReport. Shows the score gauge, the six validation levels with their point contributions, individual health check pass/fail cards, RTO chart (measured vs. SLA), and the completeness table with per-resource-type counts.
Test Form
A form-based editor for creating or editing RestoreTest resources. Submits the manifest through the Kymaros API. Equivalent to kubectl apply but with field validation and inline documentation.
Compliance
Available on Team plan and above. Shows aggregated compliance data: percentage of tests passing, tests at risk (score 70–89), and tests failing, grouped by team or namespace label. Exportable as PDF.
Settings
Configure notification targets (webhook URLs, email addresses), Prometheus scrape settings, and API tokens for CI/CD integration.
Verify the API is Reachable
The frontend calls the Kymaros REST API. If the dashboard loads but shows no data, verify the API pod is healthy:
kubectl get pods -n kymaros-system -l app=kymaros-api
kubectl logs -n kymaros-system deploy/kymaros-api --tail=50
The API listens on port 8443 within the cluster. The frontend communicates with it via the kymaros-api Service in kymaros-system.