K8S Dev Infrastructure

February 26, 2023 ยท View on GitHub

Description

This repository contains a kubernetes dev infrastructure, providing both crosscutting concerns as well as Saas services. This is provided through terraform scripts deploying (mostly) helm charts and custom configuration.

Terraform syntax E2E workflow Infracost

Components

CategoryServiceDescription
NetworkingtraefikReverse Proxy
NetworkinglinkerdService Mesh
Networkingcert-managerCertificates
MonitoringseqLogging
MonitoringlokiLogging
MonitoringjaegerTracing
MonitoringtempoTracing
MonitoringprometheusMetrics
MonitoringgrafanaDashboards
Monitoringk8s dashboardDashboards
Monitoringmetrics-serverMetrics
MonitoringvpaAutoscaling
Monitoringopentelemetry-collectorTelemetry Ingestion
Saas CacheredisCaching
Saas CloudlocalstackAWS emulator
Saas ConfigetcdKey-Value service
Saas ConfigvaultSecrets management
Saas DatabasemongodbDocument database
Saas DatabasemariadbRelational database
Saas DatabasemysqlRelational database
Saas DatabaseoracleRelational database
Saas DatabasepostgresRelational database
Saas DatabasesqlserverRelational database
Saas DeploymentfluxcdGitOps
Saas DeploymentargocdGitOps
Saas MessagingkafkaMessaging
Saas MessagingrabbitmqMessaging
Saas SearchelasticsearchSearch Engine
Saas AuthidentityserverIDP
Saas AuthkeycloakIDP
Saas StorageminioS3 compatible storage
Saas StorageazuriteAzure compatible storage
Saas Storagedocker-registryDocker Registry

Deploy

Quick Start

  • Install the tooling
  • Prepare your local setup (create certificates, DNS, a running cluster, etc..). Just follow the docs.
  • Final step: Deploy!
    • edit terraform.tfvars. You can uncomment the install booleans to choose what to install on your cluster.

    • deploy services:

      cd ./src/terraform
      terraform init
      terraform apply --auto-approve
      

Documentation

The full docs are available at Github Pages

Build the docs locally

pip install --upgrade --user -r requirements.txt
mkdocs build
mkdocs serve