Skip to content

AWS Peripherals Deployment

This guide covers deploying the peripheral (supporting) services for Kindo on AWS using the kindo-peripheries Terraform module.

Overview

Peripheries are third-party and open-source services that Kindo depends on:

ServicePurposeRequired
External Secrets OperatorSyncs secrets from AWS Secrets Manager to KubernetesRecommended
UnleashFeature flag managementYes
Unleash EdgeFeature flag edge proxyYes
PresidioPII detection and anonymizationYes
SpeachesText-to-speech/transcriptionYes
OTEL CollectorObservability telemetry collectionRecommended
ALB Ingress ControllerAWS Application Load Balancer integrationYes
QdrantVector database (if not using Pinecone)Optional

Quick Start

  1. Set up the peripheries stack:

    Terminal window
    cd kindo-modules/stacks/peripheries
    cp terraform.tfvars.example terraform.tfvars
  2. Configure terraform.tfvars with infrastructure and secrets outputs.

  3. Deploy:

    Terminal window
    terraform init
    terraform plan
    terraform apply

Configuration

Core Settings

project_name = "mycompany"
environment = "production"
aws_region = "us-west-2"
# From infra-aws outputs
eks_cluster_name = "mycompany-production-eks"
eks_cluster_endpoint = "https://xxx.eks.amazonaws.com"

Feature Toggles

enable_external_secrets = true # AWS Secrets Manager sync
enable_otel_collector = true # OpenTelemetry collection
enable_qdrant = false # Self-hosted vector DB
enable_presidio = true # PII detection

Deployed Components

External Secrets Operator

Syncs AWS Secrets Manager entries to Kubernetes secrets. Creates a ClusterSecretStore configured for AWS.

Unleash and Unleash Edge

Feature flag management platform with edge proxy for low-latency flag resolution. Connected to the PostgreSQL unleash database.

ALB Ingress Controller

AWS Application Load Balancer controller that automatically provisions ALBs for Kubernetes Ingress resources.

OTEL Collector

OpenTelemetry collector configured to receive traces, metrics, and logs from Kindo services and export to your observability backend.

Verification

Terminal window
# Check all periphery pods
kubectl get pods -n unleash
kubectl get pods -n external-secrets
kubectl get pods -n presidio
# Verify Unleash is accessible
kubectl get ingress -n unleash
# Verify External Secrets sync
kubectl get externalsecrets -A

Next Steps

Proceed to AWS Applications Deployment to deploy the core Kindo application stack.