Giter VIP home page Giter VIP logo

home-ops's Introduction

whoami

home-ops's People

Contributors

bjw-s avatar buroa avatar dcplaya avatar jahanson avatar jtcarnes avatar onedr0p avatar renovate-bot avatar repo-duster[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

home-ops's Issues

Apply generated sealed-secrets when the CI pipeline runs

Sometimes there is a race condition between Flux deploying and the correct sealed-secrets being applied.

One solution could be to explicitly apply all sealed-secrets from the pipeline, so that the correct values are in place before Flux comes along.

Steps:

  • Add kubeconfig (ENCRYPTED!) to the cluster
  • Make the pipeline use this kubeconfig file
  • Add a step in the sealed-secrets workflow to apply all sealed-secrets

Replace setup script with Ansible

Currently there is overlap between the setup script and the fact that there is Ansible code present. Therefore the setup script should somehow converge into an Ansible role

Docs: Link checker failures reported

Errors were reported while checking the availability of links.


๐Ÿ“ Summary
---------------------
๐Ÿ” Total..........115
โœ… Successful.....114
โณ Timeouts.........0
๐Ÿ”€ Redirected.......0
๐Ÿ‘ป Excluded.........0
๐Ÿšซ Errors...........1

Errors in networking/dns/index.html
โœ— https://opnsense.org/ (error sending request for url (https://opnsense.org/): error trying to connect: dns error: failed to lookup address information: Temporary failure in name resolution)

Full Github Actions output

[Question] NFS server options.

Can you explain a bit on the server side options of NFS ?
Are you using root_squash ?
If yes then how are you managing all the user permissions ? A lot of containers/pods chown to different users:groups and it becomes a bit hectic to keep track of all of them.

Node reboot is causing issues with zigbee network/adapter

After Kured drained and rebooted my worker nodes, zigbee2mqtt would no longer actually perform any commands even though it seemed to be up and running.

The error message was as follows:

Error while starting zigbee-herdsman
Error: Failed to connect to adapter (Error: SRSP - SYS - ping after 6000ms)

Resolution:

  • Scale down the zigbee2mqtt deployment to 0 replicas
  • Unplug the CC2652R adapter and replug it
  • Scale up the zigbee2mqtt deployment to 1 replicas

zigbee-herdsman now succesfully started and the zigbee network was now reachable again.

Since having the lights not respond once every two weeks (current Kured schedule) is not acceptable, I've decided to remove Kured from the cluster for now.

Add a monitoring stack to the repo

Currently there is nothing in place for collecting metrics, and presenting them.

Add something like a Prometheus / Grafana stack for this.

Docs: Link Checker Report

Errors were reported while checking the availability of links.


๐Ÿ“ Summary
---------------------
๐Ÿ” Total..........132
โœ… Successful.....120
โณ Timeouts.........0
๐Ÿ”€ Redirected.......0
๐Ÿ‘ป Excluded.........0
๐Ÿšซ Errors..........12

Errors in index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in networking/dns/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in storage/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in storage/backups/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in networking/multus/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in networking/podgateway/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in 404.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in networking/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in gitops/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in home/cluster_overview/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in home/tools/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in home/repo_structure/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Full Github Actions output

Link Checker Dashboard

Summary

Status Count
๐Ÿ” Total 31
โœ… Successful 28
โณ Timeouts 0
๐Ÿ”€ Redirected 0
๐Ÿ‘ป Excluded 0
โ“ Unknown 0
๐Ÿšซ Errors 3

Errors per input

Errors in ./docs/networking/dns.md

  • file:///home/runner/work/home-ops/home-ops/_assets/images/dns_graph.svg: Failed: Cannot find file

Errors in ./docs/home/cluster_overview.md

  • file:///home/runner/work/home-ops/home-ops/storage: Failed: Cannot find file
  • file:///home/runner/work/home-ops/home-ops/networking: Failed: Cannot find file

Full Github Actions output

Docs: Link Checker Report

Errors were reported while checking the availability of links.


๐Ÿ“ Summary
---------------------
๐Ÿ” Total..........132
โœ… Successful.....120
โณ Timeouts.........0
๐Ÿ”€ Redirected.......0
๐Ÿ‘ป Excluded.........0
๐Ÿšซ Errors..........12

Errors in networking/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in home/tools/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in storage/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in storage/backups/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in gitops/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in networking/dns/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in networking/multus/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in networking/podgateway/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in 404.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in home/repo_structure/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Errors in home/cluster_overview/index.html
โœ— https://fonts.gstatic.com/ (HTTP status client error (404 Not Found) for url (https://fonts.gstatic.com/))

Full Github Actions output

Intermittent errors in CronJobs

Details

What steps did you take and what happened:

I have a few CronJobs that run in my cluster periodically. They run fine, but randomly throw an error stating that a volume was not registered.

What did you expect to happen:

They run fine and don't raise any errors.

Additional Information:

The error is harmless otherwise, but wanted to document it here otherwise.

Upstream issue: kubernetes/kubernetes#105204

Link Checker Dashboard

Summary

Status Count
๐Ÿ” Total 31
โœ… Successful 28
โณ Timeouts 0
๐Ÿ”€ Redirected 0
๐Ÿ‘ป Excluded 0
โ“ Unknown 0
๐Ÿšซ Errors 3

Errors per input

Errors in ./docs/networking/dns.md

  • file:///home/runner/work/home-ops/home-ops/_assets/images/dns_graph.svg: Failed: Cannot find file

Errors in ./docs/home/cluster_overview.md

  • file:///home/runner/work/home-ops/home-ops/networking: Failed: Cannot find file
  • file:///home/runner/work/home-ops/home-ops/storage: Failed: Cannot find file

Full Github Actions output

dsmr-reader: Replace Kubegres cluster with singular Postgres instance

Details

Describe the solution you'd like:

Do something similar to the home-assistant deployment:

  • Split into two Kustomizations: database and application (with application depending on database)
  • Do a pg_dump from the existing database and pg_restore into the new one
  • Remove the Kubegres manifest from dsmr-reader

Link Checker Dashboard

Summary

Status Count
๐Ÿ” Total 31
โœ… Successful 28
โณ Timeouts 0
๐Ÿ”€ Redirected 0
๐Ÿ‘ป Excluded 0
โ“ Unknown 0
๐Ÿšซ Errors 3

Errors per input

Errors in ./docs/home/cluster_overview.md

  • file:///home/runner/work/home-ops/home-ops/storage: Failed: Cannot find file
  • file:///home/runner/work/home-ops/home-ops/networking: Failed: Cannot find file

Errors in ./docs/networking/dns.md

  • file:///home/runner/work/home-ops/home-ops/_assets/images/dns_graph.svg: Failed: Cannot find file

Full Github Actions output

Move rook-ceph into Requirements

Context:
Currently my rook-ceph stuff lives in the cluster-apps Kustomization. I should move these to the cluster-requirements Kustomization so that any errors in apps don't potentially nuke the cluster storage.

Tasks

  • Move rook-ceph folder from apps to requirements
  • Set prune: false on cluster-requirements Kustomization
  • Check if there are any CRD's that need to be manually managed

Link Checker Dashboard

Summary

Status Count
๐Ÿ” Total 31
โœ… Successful 28
โณ Timeouts 0
๐Ÿ”€ Redirected 0
๐Ÿ‘ป Excluded 0
โ“ Unknown 0
๐Ÿšซ Errors 3

Errors per input

Errors in ./docs/home/cluster_overview.md

  • file:///home/runner/work/home-ops/home-ops/storage: Failed: Cannot find file
  • file:///home/runner/work/home-ops/home-ops/networking: Failed: Cannot find file

Errors in ./docs/networking/dns.md

  • file:///home/runner/work/home-ops/home-ops/_assets/images/dns_graph.svg: Failed: Cannot find file

Full Github Actions output

Use something like OPA to enforce pod limits

Currently I have a few places where a hpa is used to enforce min/max replicas. This is less then ideal for a number of reasons:

  • if the new replicacount exceeds the specified maximum, it will first scale up and then scale down, causing a temporary situation max+1 situation.
  • not all charts support hpa out of the box

In order to remedy this, I should probably look into something like Open Policy Agent

Links:

Flatten `cluster-0` and `global` folders

Details

Describe the solution you'd like:

Now that I only have one cluster to manage it makes sense to roll the global folder back in to the cluster-0 folder.

Additional Information:

Depends on #2514

Migrate all desired applications to this repository

Due to the old cluster going down while I was still migrating stuff into this repo, not everything is in place yet.

The following services still need to be migrated:

Applications:

  • blocky
  • Node-RED ("brains")
  • calibre-web
  • dsmr-reader
  • LazyLibrarian
  • Radarr
  • ssh server
  • zigbee2mqtt

Scripts:

  • Email backup script
  • Series cleanup script

Deploy Kyverno

Details

Describe the solution you'd like:

Instead of adding the same custom annotation anywhere, implement a mutating policy with Kyverno.

Link Checker Dashboard

Summary

Status Count
๐Ÿ” Total 31
โœ… Successful 28
โณ Timeouts 0
๐Ÿ”€ Redirected 0
๐Ÿ‘ป Excluded 0
โ“ Unknown 0
๐Ÿšซ Errors 3

Errors per input

Errors in ./docs/networking/dns.md

  • file:///home/runner/work/home-ops/home-ops/_assets/images/dns_graph.svg: Failed: Cannot find file

Errors in ./docs/home/cluster_overview.md

  • file:///home/runner/work/home-ops/home-ops/storage: Failed: Cannot find file
  • file:///home/runner/work/home-ops/home-ops/networking: Failed: Cannot find file

Full Github Actions output

Deploy theme.park to add some themes

Details

Describe the solution you'd like:

Deploy https://github.com/GilbN/theme.park/ in the cluster to add themes to apps.

Relevant links

Additional Information:

Run on port 8080 because the container runs as non-root

Depends on #2494

Docs: Link checker failures reported

Errors were reported while checking the availability of links.


๐Ÿ“ Summary
---------------------
๐Ÿ” Total..........115
โœ… Successful.....114
โณ Timeouts.........0
๐Ÿ”€ Redirected.......0
๐Ÿ‘ป Excluded.........0
๐Ÿšซ Errors...........1

Errors in networking/dns/index.html
โœ— https://opnsense.org/ (error sending request for url (https://opnsense.org/): error trying to connect: dns error: failed to lookup address information: Temporary failure in name resolution)

Full Github Actions output

How to start things up ?

Hi,
i'd like to use your work to create my first home cluster (zero experience on that).
I first tried k8s-at-home/template-cluster-k3s, i followed all the steps and it worked but i'd like to use yours so i'm "yelling" for a little help. Actually is a big please.

Hardware that i have:

  • Mikrotik router which seems able to work with CoreDNS
  • TrueNas for storage
  • XCP-ng Hypervisor for VMs

Things that confuses me:

  • i don't see any ansible so how can i deploy cluster (seems to be in .gitignore) ?
  • what is "siderio", it seems is another cluster that deploys "cluster-o" ?
  • is a must to have multiple nodes for this cluster to work ?

Could you lease help me with some hints to deploy the cluster, set networks, storages, lb, dns ? :)

Thank you

Link Checker Dashboard

Summary

Status Count
๐Ÿ” Total 31
โœ… Successful 28
โณ Timeouts 0
๐Ÿ”€ Redirected 0
๐Ÿ‘ป Excluded 0
โ“ Unknown 0
๐Ÿšซ Errors 3

Errors per input

Errors in ./docs/networking/dns.md

  • file:///home/runner/work/home-ops/home-ops/_assets/images/dns_graph.svg: Failed: Cannot find file

Errors in ./docs/home/cluster_overview.md

  • file:///home/runner/work/home-ops/home-ops/storage: Failed: Cannot find file
  • file:///home/runner/work/home-ops/home-ops/networking: Failed: Cannot find file

Full Github Actions output

Implement pull-through image cache

Because of the impending rate limits on Docker Hub I need to set up a pull-through cache.

Most likely solution: run the Nexus as a docker container on my NAS and add that as a mirror repository to the k3s config

Add more documentation to repo

  • General: Landing page
  • General: Add shields to landing page
  • General: Hardware
  • General: Networking
  • General: Storage
  • General: Storage backups
  • Automation: GitOps / Flux
  • Automation: Renovate
  • Networking: DNS
  • Networking: Multus
  • Networking: PodGateway

Rename `k8s` folder to `kubernetes`

Details

Describe the solution you'd like:

Rename the root k8s folder to kubernetes. This means that a lot of Flux resources need to be updated as well, and potentially CI configuration.

Anything else you would like to add:

Additional Information:

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: .github/renovate.json5
Error type: The renovate configuration file contains some invalid settings
Message: Invalid configuration option: flux

Separate CRDโ€™s and add to bootstrap

Currently some critical (prometheus, certmanager) CRD's are installed by Helm charts. In order to prevent chicken/egg situations when (re)deploying the cluster I should probably separate these and add them to the bootstrap script/role.

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.