cmd/

directory
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2026 License: Apache-2.0

README ΒΆ

Kubernaut Command Entry Points

This directory contains entry points for all Kubernaut services following a microservices architecture.

Total: 10 services (6 CRD controllers + 4 stateless) + 1 container image (Must-Gather).


πŸ—οΈ Service Inventory

CRD Controller Services (Go, 6 services)

Each CRD controller runs as a separate microservice with its own binary:

Directory Service CRD Short Name
remediationorchestrator/ Remediation Orchestrator RemediationRequest rr
signalprocessing/ Signal Processing SignalProcessing sp
aianalysis/ AI Analysis AIAnalysis aia
workflowexecution/ Workflow Execution WorkflowExecution wfe
effectivenessmonitor/ Effectiveness Monitor EffectivenessAssessment ea
notification/ Notification NotificationRequest notif
Stateless Services (Go, 3 services)
Directory Service Description
gateway/ Gateway HTTP ingestion endpoint for alerts
datastorage/ DataStorage Persistence and audit storage
authwebhook/ Auth Webhook Kubernetes authentication webhook
Stateless Service (Python, 1 service)
Directory Service Description
holmesgpt-api/ (repo root) HolmesGPT-API (HAPI) LLM-powered root cause analysis

Note: holmesgpt-api/ lives at the repository root, not under cmd/.

Container Images / Tools
Directory Tool Description
must-gather/ Must-Gather Container image for diagnostic triage and root cause analysis

βš™οΈ Port Configuration

All Go services use the same standard ports:

  • Health/Ready: 0.0.0.0:8080 (/healthz, /readyz)
  • Metrics: 0.0.0.0:9090 (/metrics)

πŸ“ Naming Convention

  • Directories: No hyphens (Go convention for package main)
  • Binaries: Hyphens for readability (via -o flag when building manually)

πŸ”„ Service Dependency Flow

Gateway Service (HTTP)
    ↓ creates
RemediationRequest (rr)
    ↓ orchestrated by
Remediation Orchestrator
    ↓ creates child CRDs
    β”œβ†’ SignalProcessing (sp) β†’ Signal Processing Service
    β”œβ†’ AIAnalysis (aia) β†’ AI Analysis Service β†’ calls HAPI (HolmesGPT-API)
    β”œβ†’ WorkflowExecution (wfe) β†’ Workflow Execution Service
    β”œβ†’ NotificationRequest (notif) β†’ Notification Service
    β””β†’ EffectivenessAssessment (ea) β†’ Effectiveness Monitor Service

πŸš€ Building Services

Build Individual Service
# CRD controllers
go build -o bin/remediation-orchestrator ./cmd/remediationorchestrator
go build -o bin/signal-processing ./cmd/signalprocessing
go build -o bin/ai-analysis ./cmd/aianalysis
go build -o bin/workflow-execution ./cmd/workflowexecution
go build -o bin/effectiveness-monitor ./cmd/effectivenessmonitor
go build -o bin/notification-controller ./cmd/notification

# Stateless services
go build -o bin/gateway ./cmd/gateway
go build -o bin/data-storage ./cmd/datastorage
go build -o bin/auth-webhook ./cmd/authwebhook

Or use Make targets (binaries use directory name, e.g. bin/remediationorchestrator):

make build-remediationorchestrator
make build-gateway
# etc.
Build All Go Services
make build-all
Build HolmesGPT-API (Python, repo root)
# Local development
make build-holmesgpt-api

# Docker image (production)
make build-holmesgpt-api-image

# Docker image (E2E, minimal deps)
make build-holmesgpt-api-image-e2e

🐳 Docker Images

Go services use Dockerfiles in the docker/ directory:

# Build all images (native arch)
make image-build-all

# Build individual service images
make image-build-gateway
make image-build-remediationorchestrator
make image-build-aianalysis
make image-build-signalprocessing
make image-build-workflowexecution
make image-build-effectivenessmonitor
make image-build-notification
make image-build-datastorage
make image-build-authwebhook

# HolmesGPT-API (separate target)
make image-build-holmesgpt-api

Dockerfile mappings (from docker/):

Service Dockerfile
gateway docker/gateway.Dockerfile
datastorage docker/data-storage.Dockerfile
remediationorchestrator docker/remediationorchestrator-controller.Dockerfile
signalprocessing docker/signalprocessing-controller.Dockerfile
aianalysis docker/aianalysis.Dockerfile
workflowexecution docker/workflowexecution-controller.Dockerfile
effectivenessmonitor docker/effectivenessmonitor-controller.Dockerfile
notification docker/notification-controller.Dockerfile
authwebhook docker/authwebhook.Dockerfile
holmesgpt-api holmesgpt-api/Dockerfile

πŸ“¦ Deployment

Services are deployed via the Helm chart:

# Install/upgrade via Helm
helm upgrade --install kubernaut ./charts/kubernaut -n kubernaut-system --create-namespace

Chart templates (in charts/kubernaut/templates/):

  • gateway/gateway.yaml
  • datastorage/datastorage.yaml
  • authwebhook/authwebhook.yaml
  • remediationorchestrator/remediationorchestrator.yaml
  • signalprocessing/signalprocessing.yaml
  • aianalysis/aianalysis.yaml
  • workflowexecution/workflowexecution.yaml
  • effectivenessmonitor/effectivenessmonitor.yaml
  • notification/notification.yaml
  • holmesgpt-api/holmesgpt-api.yaml

πŸ§ͺ Development Tools

Must-Gather
  • must-gather/ β€” Diagnostic container; build via cmd/must-gather/Makefile

🎯 Quick Start

  1. Build all Go services:

    make build-all
    
  2. Install CRDs:

    make install
    
  3. Run a service (example):

    ./bin/remediationorchestrator --leader-elect=false
    
  4. Check health:

    curl http://localhost:8080/healthz
    curl http://localhost:9090/metrics
    

πŸ“ Deprecation Note

KubernetesExecution / KubernetesExecutor was eliminated by ADR-025 and replaced by Tekton TaskRun. The kubernetesexecution/ controller and remediationprocessor/ have been removed.


πŸ“š Documentation


Last Updated: 2026-02-24
Microservices Architecture: 6 CRD controllers + 4 stateless services + 1 container image

Directories ΒΆ

Path Synopsis
Package main is the entry point for the AIAnalysis controller.
Package main is the entry point for the AIAnalysis controller.
======================================== SIGNAL PROCESSING CONTROLLER (DD-006) ========================================
======================================== SIGNAL PROCESSING CONTROLLER (DD-006) ========================================

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL