Code Monkey home page Code Monkey logo

s9's Introduction

homelab-cluster

Helm charts for the main apps of the cluster, including the argo projects and instrumentation.

This includes scripts for setup of environment whether thats running in k3d on a laptop or running k3s on a homelab cluster.

This project was inspired by the very cool youtube video and repo but takes the ideas a bit further.

steps to run

The steps i've been using to create and bootstrap the projects are present in the steps directory.

To run this properly you'll need a cloudflare domain which can be used with the cloudflare tunnel service for github webhooks and app ingress.

If you want to run this yourself you'll need to make a few changes:

  • change any instance of mypersonaltld.com to your cloudflare domain, do this in this and the homelab-apps repo
  • change values in the cert-manager/values.base.yaml file
  • make sure to setup the cloudflare tunnel via their cli, an example can be seen in the setup/07-create-tunnel.sh file
  • create a github PAT, cloudflare token and change values in steps/02.example.sh
  • change any github repo paths to forked repo values i.e. https://github.com/chestercodes/homelab-cluster.git -> https://github.com/yourorg/homelab-cluster.git in this and the homelab-apps repo
  • run the steps in the steps folder
  • trigger builds by changing files in the following folders
    • homelab-apps/base-images/pipeline
    • homelab-apps/workflow-reporter
    • homelab-maindb/cluster
    • homelab-maindb/exporter
    • homelab-ping
  • change values in homelab-apps/apps/production/manifests/production.json app to built image versions
  • enjoy?

running on homelab machines

These apps are deployed to a couple of ubuntu machines that are clustered using k3s, there are a few scripts for this in the k3s folder.

running on laptop

I did most of the development on my laptop and had to make a few changes to enable development

hosts file changes

To access the ingress need to add the following to /etc/hosts

127.0.0.1	argocd.local grafana.local argowf.local registry.local registryui.local prometheus.local jaeger.local

inotify max_user_instances

I had to increase the inotify max_user_instances on my laptop

sudo nano /etc/sysctl.conf

# add 
# fs.inotify.max_user_instances = 512

sudo sysctl -p

disabling apache2

I am running this on ubuntu and needed to stop and disable apache2

sudo systemctl stop apache2
sudo systemctl disable apache2
# or maybe sudo update-rc.d apache2 disable

s9's People

Contributors

chestercodes avatar

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.