cmd/

directory
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 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
kubernaut-agent/ (repo root) Kubernaut Agent (KA) LLM-powered root cause analysis

Note: kubernaut-agent/ 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 KA (Kubernaut Agent)
    β”œβ†’ 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-kubernaut-agent

# Docker image (production)
make build-kubernaut-agent-image

# Docker image (E2E, minimal deps)
make build-kubernaut-agent-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-kubernaut-agent

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
kubernaut-agent kubernaut-agent/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
  • kubernaut-agent/kubernaut-agent.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