Skip to content

ssmiller25/blast

Repository files navigation

Blast

Open in Gitpod

Blast (Bare Metal Immutable cluster) is a simplified Kubernetes Distribution and Cluster definitions for my personal clusters. While the primary focus will be to be usable for bare-metal installs, cloud installations will be readily usable.

Gitpod One Time Setup

Set the Civo API key as a Gitpod Secret

gp env CIVO_API_KEY=<api key here>

Bootstrap: blast-otr (Blast - On The Run)

make blast-otr

Repository Layout

Based on FluxV2 Repository Layout (and yes, I do realize the irony of using Flux's layout while deploying ArgoCD)

  • /clusters: Actual cluster definition in ClusterAPI, as well as ArgoCD Cluster Definitions
  • /infrastructure: Core Infrastructure that is generally installed across all clusters
  • /apps: Individual apps to be installed by end-clusters
  • /docker: Docker build and associated build tooling
  • /scripts: Scripting to support primarily the bootstraping process. Most scripts should be embedded in docker containers.

Architecture

Network

Should work across all network equipment.

Server

  • Core Infrastructure
    • k3d: For bootstrapping and CI/CD purposes. Choosen for minimal resources
    • Kubernetes Cluster API: Central way to define clusters
      • Talos: - Native K8S Linux Distro, will be default for all cloud providers that support it
      • Sidero - Bootstrap for on-prem hardware installs
    • Crossplane.io: To be used to manage any resources NOT natively defined in k8s
  • Core K8S AddOns
    • Klum: Easy way to manage users/kubeconfigs
    • ArgoCD: GitOps Opertor for once Clusters are provisioned
    • SealedSecrets: For safe secrets management directly in the repository
  • Storage
    • Mayastore or Rook Distributed storage. Would rather avoid centralized NAS/storage for primary storage
    • hostdir for large or IO intensive storage. Backup would have to be one-off jobs.
  • Backup
    • Minio for providing external storage in a bucket interface
    • Kastaen K10 Easiest way to backup

Applications/Resource

Standards