Getting Started

From zero to a working ITOps dashboard in under 10 minutes.

What you get

Architecture (60 seconds)

your clusters                  platform (1 namespace)           dashboards
  +---------+                  +------------------+              +---------+
  |cluster 1| -- agent ------> | itops-core (API) | <-- UI -----> | admins  |
  |cluster 2| -- agent ------> | itops-ui         |              |         |
  |bare mtl | -- push --------> | postgres         | <-- portal --| clients |
  +---------+                  +------------------+              +---------+

One central platform, one agent per cluster, HTTP push for anything non-K8s. Services land under a 5-level hierarchy (organization/platform/environment/cluster/service) so naming collisions between clusters are impossible.

Three steps to live

1. Install the platform

helm repo add itops https://charts.mlops.hu
helm repo update
helm install itops itops/itops -n itops --create-namespace

Deploys core API, UI, and bundled PostgreSQL. Default login: admin / Password123!. Expose externally by setting ingress.hosts[0].host and uiIngress.hosts[0].host. See Installation.

2. Connect a cluster (agent)

helm install itops-agent itops/itops-agent \
  --set node.id="myorg/myplatform/prod/cluster1" \
  --set itops.url="https://api.yourdomain.com" \
  --set itops.apiKey.value="<OPERATOR_API_KEY>" \
  -n itops --create-namespace

node.id is the 4-level prefix for everything this cluster owns. The agent watches every namespace listed in watch.namespaces (default: all). See Agent Deploy.

3. Declare a service

# Inside any of your app's Helm charts:
apiVersion: v1
kind: ConfigMap
metadata:
  name: my-app-itops
  labels:
    itops.io/config: "true"          # REQUIRED — agent discovers by this label
data:
  it-ops.yaml: |
    path: "myorg/myplatform/prod/cluster1/my-app"

One line. The service appears in the Operations Catalog within 30 seconds. Add slaGroup, backup, health, etc. to unlock more features. See GitOps Schema for the full reference.

Non-Kubernetes services

Bare-metal hosts, external S3 buckets, RDS instances — skip the ConfigMap and push directly:

curl -X POST https://api.yourdomain.com/api/v1/health/report \
  -H "X-API-Key: $OPERATOR_API_KEY" \
  -d '{
    "path": "myorg/infra/prod/baremetal/galera-node1",
    "status": "OPERATIONAL",
    "criticality": "critical",
    "slaGroup": "database-cluster",
    "tags": ["database","baremetal"]
  }'

First push auto-creates the service and the hierarchy node. See Push Endpoints.

Where to look next