Skip to main content

Tenant Onboarding

This guide walks through provisioning a new LogClaw tenant from zero to fully operational. Expected time: 30 minutes after prerequisites are met.

Prerequisites

Kubernetes Cluster
  • Kubernetes >= 1.27
  • Control plane: 4 vCPU, 8 GB RAM
  • Workers (minimum 3): 8 vCPU, 32 GB RAM each
Operators (install once per cluster)
  • Strimzi Kafka Operator (operators/strimzi/)
  • Flink Kubernetes Operator (operators/flink-operator/)
  • External Secrets Operator (operators/eso/)
  • cert-manager (operators/cert-manager/)
  • OpenSearch Operator (operators/opensearch-operator/)
GitOps
  • ArgoCD installed with logclaw AppProject applied
  • ArgoCD ApplicationSet logclaw-tenants applied
  • Unique tenantId chosen (lowercase letters, numbers, hyphens; max 40 chars)
  • Kubernetes StorageClass available (e.g. gp3, standard, pd-ssd)
  • Object storage bucket pre-created and accessible from cluster
  • Secrets backend configured (AWS Secrets Manager, GCP Secret Manager, Vault, or Azure Key Vault)
  • Image pull secret logclaw-registry-pull created (or omit if using public registry)
  • Ticketing provider credentials stored in secret backend (if ticketing agent enabled)
  • Write access to the LogClaw Git repository
  • ArgoCD UI or CLI access to monitor sync status

Step 1: Create the Tenant Values File

Copy the template and fill in required fields:
Set the required global values:

Enable Components

Toggle components based on your requirements:
For development environments, enable bridge and dashboard while disabling flink, mlEngine, and airflow to reduce resource requirements.
See the Values Reference for the full list of configurable fields.

Step 2: Commit and Push

The ArgoCD Git generator polls every 3 minutes. To trigger immediately:

Step 3: Monitor Deployment

Watch the tenant application sync:
Expected sync wave order:
1

Namespace + Platform (t=0–5m)

Namespace creation, RBAC, NetworkPolicy, ClusterSecretStore
2

Kafka (t=5–10m)

Strimzi reconciles KRaft cluster. Wait for READY=True.
3

OTel Collector + OpenSearch (t=10–15m)

Deploy in parallel. OTel Collector connects to Kafka bootstrap. OpenSearch cluster reaches green.
4

Flink + Bridge (t=15–20m)

Flink jobs enter RUNNING state. Bridge connects to Kafka + OpenSearch.
5

ML Engine + Airflow (t=20–25m)

KServe InferenceService ready. Airflow scheduler + webserver healthy.
6

Ticketing Agent + Dashboard (t=25–30m)

Agent validates ticketing credentials. Dashboard available on ClusterIP.

Step 4: Verify Components

Run the built-in Helm test suite:

Individual Component Checks

Step 5: Send Your First Logs

After verification, send a test log via OTLP HTTP:
Verify it appears in OpenSearch:

Troubleshooting

Check the “Conditions” section for error details.
Common causes: StorageClass not found, PVC provisioning failure, resource limits too low.
Common causes: Insufficient memory (2 Gi minimum per data node), disk pressure.
Common causes: IAM role not attached, wrong region, missing permissions.