Giter Site home page Giter Site logo

danmanners / homelab-kube-cluster Goto Github PK

View Code? Open in Web Editor NEW
198.0 6.0 15.0 2.41 MB

Dan's Homelab Kubernetes Cluster - Operated through Kustomize & ArgoCD

License: Creative Commons Zero v1.0 Universal

Shell 21.72% TypeScript 78.28%
k3s ansible homelab turing-pi k8s-at-home kubernetes devops argocd k8s kubernetes-cluster

homelab-kube-cluster's Introduction

Dan Manners' Homelab

All of the readme’s are in a state of flux at this moment. I’m working on refactoring much of the repository, but I’m happy to answer any questions in the k8s@Home Discord server or on Discord! Feel free to reach me at danmanners with any questions or at [email protected]!

This homelab repository is aimed at applying widely-accepted tools and established practices within the DevOps/SRE world. Its primary objectives are to efficiently carry out the intended service functions while also serving as a valuable reference for individuals looking to enhance their own learning. This repository is not intended to be a "one-size-fits-all" solution, but rather a starting point for others to build upon and learn from.

🔍 Features

  • ✓ Make GitOps easy to learn

  • ✓ Modularity; make it easy to add/remove components

  • ✓ External DNS; declarative DNS management for public-facing services

  • ✓ Cert-Manager; Automagic cert management

  • ✓ Harbor; In-Cluster Container Registry

  • ❏ Monitoring and alerting 🚧

  • ❏ Hybrid Multi-Cloud 🚧

💡 Current Tech Stack

Name Description

Argo CD

GitOps for Kubernetes

Argo Events

Event based dependency management for Kubernetes

Argo Workflows

Kubernetes-native workflow engine

AWS

Cloud Provider

Blocky

Fast and lightweight DNS proxy as ad-blocker

Buildah

Container Building

Cert-Manager

Certificate Manager

Cilium

CNI utilizing eBPF for Observability and Security

CloudNativePG

Kubernetes operator covering lifecycle of HA PostgreSQL Clusters

CSI-Driver-NFS

Kubernetes NFS Driver for persistent storage

Rook Ceph

Cloud-Native File, Block, and Object Storage for Kubernetes

Dex IDP

Federated OIDC

External-DNS

Configure and manage External DNS servers

GitHub

Popular Code Management through Git

Grafana

Metrics Visualization

Harbor

Open Source Container Registry

Helm

Kubernetes Package Management

Jenkins

Open-Source Automation Server

Kubernetes

Container Orchestration

Let’s Encrypt

Free TLS certificates

Maddy

Composable all-in-one mail server

MetalLB

Kubernetes bare-metal Load Balancer

SOPS

Simple and flexible tool for managing secrets

Podman

Container and Pod management

Prometheus

Metrics and Data Collection

Python

Python Programming Language

Raspberry Pi

Baremetal ARM SoC Hardware!

SonarQube

Static code analysis

Sonatype Nexus-OSS

Manage binaries and build artifacts

Tekton

Cloud-Native CI/CD

Ubuntu

Operating System

Talos Linux

The Kubernetes Operating System

Talhelper

A tool to help creating Talos Kubernetes cluster

Uptime Kuma

Fancy self-hosted system monitoring

WikiJS

Open-Source Wiki/Documentation Service

Deployment Order of Operations

To-Do Items

  • Ensure that ALL services are tagged for the appropriate hardware (arm64 or amd64) to ensure runtime success

    • Alternatively, ensure that all containers are built for multi-architecture.

  • Ensure that ALL application and service subdirectories have READMEs explaining what they’re doing and what someone else may need to modify for their own environment

Gratitude and Thanks

This README redesign was inspired by several other homelab repos, individuals, and communities.

Communities


The DevOps Lounge

Discord

K8s-at-Home

Discord

Without the inspiration and help of these individuals and communities, I don’t think my own project would be nearly as far. Make sure to check out their projects as well!

homelab-kube-cluster's People

Contributors

danmanners avatar renovate-bot avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

homelab-kube-cluster's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Repository problems

These problems occurred while renovating this repository. View logs.

  • WARN: Error obtaining docker token
  • WARN: Package lookup failures

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • Update Helm release reloader to v1.0.119
  • Update dependency aws/eks-charts to v0.0.176
  • Update docker.io/louislam/uptime-kuma Docker tag to v1.23.13
  • Update ghcr.io/foxcpp/maddy Docker tag to v0.7.1
  • Update Helm release argo-workflows to v0.41.11
  • Update Helm release aws-ebs-csi-driver to v2.32.0
  • Update Helm release aws-load-balancer-controller to v1.8.1
  • Update Helm release cert-manager to v1.15.1
  • Update Helm release cilium to v1.15.7
  • Update Helm release cloudnative-pg to v0.21.5
  • Update Helm release coredns to v1.31.0
  • Update Helm release dex to v0.18.0
  • Update Helm release external-dns to v1.14.5
  • Update Helm release harbor to v1.15.0
  • Update Helm release ingress-nginx to v4.11.1
  • Update Helm release metallb to v0.14.8
  • Update Helm release node-feature-discovery to v0.16.3
  • Update Helm release nvidia-device-plugin to v0.16.0
  • Update dependency @pulumi/aws to v5.43.0
  • Update dependency argoproj/argo-events to v1.9.2
  • Update dependency kubernetes-sigs/node-feature-discovery to v0.16.3
  • Update dependency prometheus-operator/prometheus-operator to v0.75.1
  • Update docker.io/library/sonarqube Docker tag to v10.6.0
  • Update ghcr.io/0xerr0r/blocky Docker tag to v0.24
  • Update Helm release app-template to v3
  • Update Helm release argo-cd to v7
  • Update Helm release gitea to v10
  • Update Helm release kube-prometheus-stack to v61
  • Update Helm release oauth2-proxy to v7
  • 🔐 Create all rate-limited PRs at once 🔐

Warning

Renovate failed to look up the following dependencies: Failed to look up docker package core.harbor.homelab.danmanners.com/docker.io/curlimages/curl, Failed to look up docker package core.harbor.homelab.danmanners.com/docker.io/aquasec/trivy, Failed to look up docker package core.harbor.homelab.danmanners.com/ghcr.io/onedr0p/postgres-initdb, Failed to look up docker package core.harbor.homelab.danmanners.com/ghcr.io/linuxserver/wikijs, Failed to look up docker package core.harbor.homelab.danmanners.com/docker.io/library/docker, Failed to look up docker package core.harbor.homelab.danmanners.com/docker.io/jenkins/jenkins, Failed to look up docker package ghcr.io/onedr0p/postgres-initdb, Failed to look up docker package core.harbor.homelab.danmanners.com/docker.io/tabbyml/tabby, Failed to look up docker package core.harbor.homelab.danmanners.com/ghcr.io/netbootxyz/netbootxyz, Failed to look up docker package core.harbor.homelab.danmanners.com/library/huashengdun/webssh.

Files affected: manifests/workloads/kubeclarity/values.yaml, manifests/workloads/wikijs/values.yaml, manifests/workloads/gitea/database/kustomization.yaml, manifests/workloads/gitea/runners/kustomization.yaml, manifests/workloads/jenkins-oss/kustomization.yaml, manifests/workloads/sonarqube-oss/kustomization.yaml, manifests/workloads/tabby/kustomization.yaml, manifests/workloads/talos-pxeboot/kustomization.yaml, manifests/workloads/webssh/kustomization.yaml


Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

github-actions
.github/workflows/sonarqube-scan.yml
  • actions/checkout v4
  • sonarsource/sonarqube-scan-action v2
helm-values
manifests/bootstrapping-cloud/07-argocd/values.yaml
  • viaductoss/ksops v4
manifests/bootstrapping-onprem/08-argocd/values.yaml
manifests/workloads/blocky/values.yaml
  • ghcr.io/0xerr0r/blocky v0.22
manifests/workloads/excalidraw/values.yaml
manifests/workloads/jenkins-oss/values.yaml
manifests/workloads/kubeclarity/values.yaml
  • core.harbor.homelab.danmanners.com/docker.io/curlimages/curl 8.4.0
  • core.harbor.homelab.danmanners.com/docker.io/aquasec/trivy 0.47.0
manifests/workloads/sonarqube-oss/values.yaml
manifests/workloads/spiderfoot/values.yaml
manifests/workloads/tabby/values.yaml
manifests/workloads/talos-pxeboot/values.yaml
manifests/workloads/webssh/values.yaml
manifests/workloads/wikijs/values.yaml
  • core.harbor.homelab.danmanners.com/ghcr.io/onedr0p/postgres-initdb 14.8
  • core.harbor.homelab.danmanners.com/ghcr.io/linuxserver/wikijs 2.5.300
kustomize
manifests/bootstrapping-cloud/01-cilium/kustomization.yaml
  • cilium 1.14.4
manifests/bootstrapping-cloud/02-cert-manager/kustomization.yaml
  • cert-manager v1.13.2
manifests/bootstrapping-cloud/03-external-dns/kustomization.yaml
  • external-dns 1.13.1
manifests/bootstrapping-cloud/04-aws-lb-controller/kustomization.yaml
  • aws/eks-charts v0.0.155
  • aws-load-balancer-controller 1.6.2
manifests/bootstrapping-cloud/05-ingress-nginx/kustomization.yaml
  • ingress-nginx 4.8.3
manifests/bootstrapping-cloud/06-aws-ebs-csi-driver/kustomization.yaml
  • aws-ebs-csi-driver 2.25.0
manifests/bootstrapping-cloud/07-argocd/kustomization.yaml
  • argo-cd 5.51.2
manifests/bootstrapping-onprem/01-cilium/kustomization.yaml
  • cilium 1.14.4
manifests/bootstrapping-onprem/02-metallb/kustomization.yaml
  • metallb 0.13.12
manifests/bootstrapping-onprem/03-cert-manager/kustomization.yaml
  • cert-manager v1.13.2
manifests/bootstrapping-onprem/04-coredns/kustomization.yaml
  • coredns 1.28.1
manifests/bootstrapping-onprem/05-rookceph/kustomization.yaml
  • rook-ceph v1.12.7
  • rook-ceph-cluster v1.12.7
manifests/bootstrapping-onprem/06-ingress-nginx/kustomization.yaml
  • ingress-nginx 4.8.3
manifests/bootstrapping-onprem/07-external-dns/kustomization.yaml
  • external-dns 1.13.1
manifests/bootstrapping-onprem/08-argocd/kustomization.yaml
  • argo-cd 5.51.2
manifests/bootstrapping-onprem/09-kube-prom-stack/kustomization.yaml
  • kube-prometheus-stack 52.1.0
manifests/bootstrapping-onprem/10-harbor/kustomization.yaml
  • harbor 1.13.1
manifests/workloads/actions-runner-controller/app/kustomization.yaml
  • actions-runner-controller 0.23.5
manifests/workloads/actions-runner-scale-set/controller/kustomization.yaml
  • gha-runner-scale-set-controller 0.6.1
manifests/workloads/argo-events/kustomization.yaml
  • argoproj/argo-events v1.8.1
  • argo-events 2.4.1
manifests/workloads/argo-workflows/dexidp/kustomization.yaml
  • dex 0.15.3
manifests/workloads/argo-workflows/kustomization.yaml
  • argo-workflows 0.39.3
manifests/workloads/blocky/kustomization.yaml
  • kah-common-chart 1.2.2
manifests/workloads/cloudnative-pg/helm/kustomization.yaml
  • cloudnative-pg 0.19.1
manifests/workloads/excalidraw/kustomization.yaml
  • app-template 1.5.1
manifests/workloads/gitea/database/kustomization.yaml
  • core.harbor.homelab.danmanners.com/ghcr.io/onedr0p/postgres-initdb 14.8
manifests/workloads/gitea/kustomization.yaml
  • gitea 9.6.1
manifests/workloads/gitea/runners/kustomization.yaml
  • core.harbor.homelab.danmanners.com/docker.io/library/docker 24.0.7-dind
manifests/workloads/jenkins-oss/kustomization.yaml
  • core.harbor.homelab.danmanners.com/docker.io/jenkins/jenkins 2.414.3-lts
  • app-template 1.5.1
manifests/workloads/node-feature-discovery/kustomization.yaml
  • node-feature-discovery 0.14.3
manifests/workloads/nvidia/kustomization.yaml
  • nvidia-device-plugin 0.14.3
manifests/workloads/qemu-guest-agent/kustomization.yaml
manifests/workloads/reloader/kustomization.yaml
  • reloader 1.0.52
manifests/workloads/smtp-relay/kustomization.yaml
  • ghcr.io/foxcpp/maddy 0.7.0
  • kah-common-chart 1.2.2
manifests/workloads/sonarqube-oss/kustomization.yaml
  • docker.io/library/sonarqube 10.3.0-community
  • ghcr.io/onedr0p/postgres-initdb 14.8
  • app-template 1.5.1
manifests/workloads/spiderfoot/kustomization.yaml
  • app-template 2.0.3
manifests/workloads/tabby/kustomization.yaml
  • core.harbor.homelab.danmanners.com/docker.io/tabbyml/tabby 0.5.5
  • app-template 2.0.3
manifests/workloads/tailscale/kustomization.yaml
manifests/workloads/talos-pxeboot/kustomization.yaml
  • core.harbor.homelab.danmanners.com/ghcr.io/netbootxyz/netbootxyz 0.6.8-nbxyz4
  • app-template 1.5.1
manifests/workloads/tekton-oauth2-proxy/kustomization.yaml
  • oauth2-proxy 6.19.0
manifests/workloads/uptime-kuma/kustomization.yaml
  • docker.io/louislam/uptime-kuma 1.23.4
  • kah-common-chart 1.2.2
manifests/workloads/webssh/kustomization.yaml
  • core.harbor.homelab.danmanners.com/library/huashengdun/webssh 10ff02db82a9f6055ba9ea94d5d1affed7794a5908b95d1402d67447ec133761
  • app-template 2.0.3
npm
infrastructure-provisioning/cloud/pulumi/package.json
  • @pulumi/aws ^5.0.0
  • @pulumi/awsx ^1.0.0
  • @pulumi/pulumi ^3.0.0
  • eta ^1.12.3
  • @types/node ^14
regex
manifests/bootstrapping-onprem/09-kube-prom-stack/crds/kustomization.yaml
  • prometheus-operator/prometheus-operator v0.69.1
  • prometheus-operator/prometheus-operator v0.69.1
  • prometheus-operator/prometheus-operator v0.69.1
  • prometheus-operator/prometheus-operator v0.69.1
  • prometheus-operator/prometheus-operator v0.69.1
  • prometheus-operator/prometheus-operator v0.69.1
  • prometheus-operator/prometheus-operator v0.69.1
  • prometheus-operator/prometheus-operator v0.69.1
manifests/bootstrapping-onprem/sealed-secrets/crds/kustomization.yaml
manifests/workloads/actions-runner-controller/crds/github/kustomization.yaml
  • actions/actions-runner-controller v0.27.6
  • actions/actions-runner-controller v0.27.6
  • actions/actions-runner-controller v0.27.6
  • actions/actions-runner-controller v0.27.6
  • actions/actions-runner-controller v0.27.6
manifests/workloads/actions-runner-scale-set/crds/kustomization.yaml
  • actions/actions-runner-controller v0.27.6
  • actions/actions-runner-controller v0.27.6
  • actions/actions-runner-controller v0.27.6
  • actions/actions-runner-controller v0.27.6
manifests/workloads/kargo/kustomization.yaml
  • akuity/kargo v0.2.0
  • akuity/kargo v0.2.0
  • akuity/kargo v0.2.0
  • akuity/kargo v0.2.0
  • akuity/kargo v0.2.0
manifests/workloads/node-feature-discovery/kustomization.yaml
  • kubernetes-sigs/node-feature-discovery v0.14.3

  • Check this box to trigger a request for Renovate to run again on this repository

Add Infro PR Checks?

I noticed that this repo uses Argo CD, and I thought I’d let you know that I recently released a Github app called Infro that several companies use internally that allows Argo CD users to preview Kubernetes changes in Github pull requests before they merge. I’m providing it for free to open source projects (here’s an example in the wild). Here’s a setup guide with links to documentation. It’s in early stages, so I’m sure there will be warts. All feedback is welcome!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.