nolte / k8s-home-lab

Home Lab K8S Cluster, build with Kind or Talos and managed with ArgoCD and ArgoWorkflow

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


Personal Cluster

This project will be used to create different flavours/collections of services running on Kubernetes.

K8S clusters will be configured for different use cases such as SmartHome, DevOps services or private storage.

The basics of the deployment process are ArgoCD for deployment/control of K8S manifests from the repository (SCM) and Argo Workflow as a process automation tool.

Project Structure

.
β”œβ”€πŸ“ .github          # Github Actions and configurations, like linting etc.
β”œβ”€πŸ“ .taskfiles       # Taskfiles with Reusable small util commands
β”œβ”€πŸ“ docs             # The Required Files for the mkdocs based Documentation  
β”œβ”€πŸ“ hack             # The Sources for configure the Local Bootstrapping Cluster
β”œβ”€πŸ“ src              # All required Sources for manage the Cluster
β””β”€πŸ“ README.md        # The Application Specific Readme, used as Service Documentation.
Folder Description
docs Folder for mkdocs based documentation.
hack Useful scripts for local Cluster Bootstrapping.
src/applications Preconfigured ArgoCD Applications, for deploy different type of Services.
src/bundles Will Be combine a different set of Services, into one "Product".
src/clusters Represent the Different Clusters with the different Service Set for each one.
src/kustomization-common Reusable Kustomize overlays, like Namespace Handling etc.
src/terraground-common Shared Terragrunt Configs, like Statefile Handling or Module Versions.
src/talos-configs The Talos K8S Cluster configs.

For more Information take a look into the README.md inside the subfolder like /src/applications.

Docs

docker run \
    -ti --rm \
    --name mkdocs \
    -p 9000:9000 \
    -e "ADD_MODULES=mkdocs-include-markdown-plugin pymdown-extensions mkdocs-material" \
    -e "LIVE_RELOAD_SUPPORT=true" \
    -e "FAST_MODE=true" \
    -e "DOCS_DIRECTORY=/mydocs" \
    -e "AUTO_UPDATE=true" \
    -e "UPDATE_INTERVAL=1" \
    -e "DEV_ADDR=0.0.0.0:9000" \
    -v $(pwd):/mydocs \
    polinux/mkdocs

or you will be use the task alias task docs, for starting the mkdocs Container.

Local Deploy

 kustomize build .  --load-restrictor LoadRestrictionsNone | kubectl apply -f -

Links

About

Home Lab K8S Cluster, build with Kind or Talos and managed with ArgoCD and ArgoWorkflow


Languages

Language:HCL 87.8%Language:Smarty 10.7%Language:Groovy 1.5%