Skip to content

Configuration

All configuration is via Helm values. Override defaults with --set or a custom values file:

bash
helm install gerty gerty/gerty -f my-values.yaml

Global

ParameterTypeDefaultDescription
nameOverridestring""Override the chart name
fullnameOverridestring""Override the full release name
image.registrystringghcr.io/gerty-labsContainer image registry
image.tagstringChart appVersionImage tag for all components
image.pullPolicystringIfNotPresentImage pull policy

Agent

ParameterTypeDefaultDescription
agent.image.repositorystringgerty-agentAgent image name
agent.image.digeststring""Image digest override
agent.resources.requests.cpustring50mCPU request
agent.resources.requests.memorystring50MiMemory request
agent.resources.limits.cpustring100mCPU limit
agent.resources.limits.memorystring100MiMemory limit
agent.scrapeIntervalstring30sKubelet scrape interval
agent.pushIntervalstring5mServer push interval
agent.nodeSelectorobject{}Node selector
agent.tolerationslist[]Tolerations

Server

ParameterTypeDefaultDescription
server.image.repositorystringgerty-serverServer image name
server.image.digeststring""Image digest override
server.replicasint1Replica count
server.resources.requests.cpustring250mCPU request
server.resources.requests.memorystring256MiMemory request
server.resources.limits.cpustring500mCPU limit
server.resources.limits.memorystring512MiMemory limit
server.service.typestringClusterIPService type
server.service.portint8080Service port
server.nodeSelectorobject{}Node selector
server.tolerationslist[]Tolerations

Server Persistence

Gerty persists aggregator state so recommendations survive pod restarts. By default, it uses an embedded database backed by a PVC. For multi-AZ clusters, an external PostgreSQL database can be used instead.

ParameterTypeDefaultDescription
server.persistence.enabledbooltrueEnable state persistence
server.persistence.storageClassstring""PVC storage class (empty = cluster default)
server.persistence.sizestring1GiPVC size
server.persistence.accessModeslist[ReadWriteOnce]PVC access modes
server.externalDatabase.enabledboolfalseUse external PostgreSQL instead of embedded storage
server.externalDatabase.urlstring""PostgreSQL connection string

TIP

PVCs bind to a single availability zone. In multi-AZ clusters, either pin the server to an AZ via nodeAffinity, use a cross-AZ StorageClass, or set server.externalDatabase.enabled=true with a PostgreSQL URL.

AI Reasoning

ParameterTypeDefaultDescription
slm.enabledboolfalseEnable AI reasoning
slm.tierstringstandardIntelligence tier (lite, standard, or premium)
slm.scaling.maxMemoryBudgetstring12GiMax total RAM Gerty can consume for AI reasoning
slm.scaling.maxCpuBudgetstring4Max total CPU cores for AI reasoning
slm.scaling.minClusterHeadroomstring20%Never consume more than this % of free cluster resources
slm.persistence.enabledboolfalseEnable persistent model storage
slm.persistence.sizestring5GiPVC size
slm.persistence.storageClassstring""Storage class

Intelligence Tiers

All tiers are included at every pricing level. The tier determines reasoning depth, not workload capacity.

slm.tierReasoning DepthBest For
liteFast scanning, good recommendationsMost clusters, tight resource budgets
standardDeeper analysis for complex workloadsProduction clusters with mixed workload types
premiumMaximum reasoning qualityLarge clusters with complex, heterogeneous workloads

Gerty's AI scales automatically based on demand. Standard and Premium tiers include a deeper analysis layer that scales from zero when needed, then scales back down. Gerty checks cluster headroom before scaling and degrades gracefully if resources are tight.

GitOps

ParameterTypeDefaultDescription
gitops.providerstring""Git provider (github or gitlab). Auto-detected from repo URL if not set
gitops.tokenstring""Personal access token or deploy token
gitops.tokenSecretRefstring""Reference to an existing Secret containing the token
gitops.gitlab.urlstringhttps://gitlab.comGitLab instance URL (for self-hosted)
gitops.prTemplatestring""Custom PR/MR description template (Go text/template). Uses built-in default if empty

PR Template

The default PR template includes workload name, namespace, pattern classification, confidence score, resource changes table, metrics summary, and risk assessment. All values are populated from the rules engine. If AI reasoning is enabled, an optional reasoning section is appended.

Override with a custom Go text/template. Available fields:

FieldTypeDescription
.WorkloadstringWorkload name (e.g. deployment/api-gateway)
.NamespacestringKubernetes namespace
.PatternstringClassification (steady, burstable, batch)
.Confidencefloat64Confidence score (0.0 - 1.0)
.ObservationDaysintNumber of days of metrics data
.Changes[]ChangeList of resource changes (.Resource, .Current, .Recommended, .Delta)
.MetricsMetricsSummary metrics (.CPUP95, .MemP95, .Samples)
.RiskstringRisk level (LOW, MEDIUM, HIGH)
.ReasoningstringAI explanation (empty if AI reasoning disabled)

Integrations

ParameterTypeDefaultDescription
gcpMarketplace.enabledboolfalseEnable GCP Marketplace integration
serviceAccount.createbooltrueCreate a ServiceAccount
serviceAccount.namestring""ServiceAccount name override
serviceAccount.annotationsobject{}ServiceAccount annotations
grafana.dashboards.enabledboolfalseDeploy Grafana dashboard ConfigMap
networkPolicy.enabledbooltrueEnable NetworkPolicy
networkPolicy.allowExternalIngressbooltrueAllow external ingress to server
slack.enabledboolfalseEnable Slack notifications
slack.webhookURLstring""Slack webhook URL
slack.channelstring#gertySlack channel
slack.digestIntervalstring1hDigest send interval
slack.minSeveritystringoptimisationMinimum severity to notify