{"id":13820369,"url":"https://github.com/h3mmy/bloopySphere","last_synced_at":"2025-05-16T10:31:00.646Z","repository":{"id":36952322,"uuid":"421941726","full_name":"h3mmy/bloopySphere","owner":"h3mmy","description":"My home cluster. ","archived":false,"fork":false,"pushed_at":"2024-10-29T17:29:32.000Z","size":22162,"stargazers_count":61,"open_issues_count":45,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-29T18:51:27.202Z","etag":null,"topics":["gitops","k8s-at-home","kubernetes"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/h3mmy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"h3mmy","issuehunt":"h3mmy","custom":["https://www.buymeacoffee.com/h3mmy"]}},"created_at":"2021-10-27T19:05:13.000Z","updated_at":"2024-10-29T17:29:35.000Z","dependencies_parsed_at":"2024-06-07T04:32:03.841Z","dependency_job_id":"00282eca-1b24-4b7e-abe4-9344860c0d12","html_url":"https://github.com/h3mmy/bloopySphere","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":"onedr0p/cluster-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h3mmy%2FbloopySphere","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h3mmy%2FbloopySphere/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h3mmy%2FbloopySphere/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h3mmy%2FbloopySphere/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/h3mmy","download_url":"https://codeload.github.com/h3mmy/bloopySphere/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225423597,"owners_count":17472145,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gitops","k8s-at-home","kubernetes"],"created_at":"2024-08-04T08:01:02.173Z","updated_at":"2024-11-19T20:30:27.561Z","avatar_url":"https://github.com/h3mmy.png","language":"HCL","funding_links":["https://github.com/sponsors/h3mmy","https://issuehunt.io/r/h3mmy","https://www.buymeacoffee.com/h3mmy"],"categories":["HCL"],"sub_categories":[],"readme":"#\n\u003c!-- markdownlint-disable-next-line --\u003e\n##\n\u003c!-- markdownlint-disable-next-line --\u003e\n\u003cdiv align=\"center\"\u003e\n\u003c!-- markdownlint-disable-next-line --\u003e\n\u003cimg src=\"https://camo.githubusercontent.com/5b298bf6b0596795602bd771c5bddbb963e83e0f/68747470733a2f2f692e696d6775722e636f6d2f7031527a586a512e706e67\" align=\"center\" width=\"144px\" height=\"144px\"/\u003e\n\n### A home Kubernetes cluster :sailboat\n\n_... managed with Flux and Renovate_ :robot:\n\n\u003c/div\u003e\n\u003c!-- markdownlint-disable-next-line --\u003e\n\u003cbr/\u003e\n\u003c!-- markdownlint-disable-next-line --\u003e\n\u003cdiv align=\"center\"\u003e\n\n[![k3s](https://img.shields.io/badge/k3s-v1.30.1-brightgreen?style=for-the-badge\u0026logo=kubernetes\u0026logoColor=white)](https://k3s.io/)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white\u0026style=for-the-badge)](https://github.com/pre-commit/pre-commit)\n[![renovate](https://img.shields.io/badge/renovate-enabled-brightgreen?style=for-the-badge\u0026logo=renovatebot\u0026logoColor=white)](https://github.com/renovatebot/renovate)\n\n\u003c/div\u003e\n\u003c!-- markdownlint-disable-next-line --\u003e\n\u003cdiv align=\"center\"\u003e\n\n[![Mozilla HTTP Observatory Grade](https://img.shields.io/mozilla-observatory/grade-score/bloopnet.xyz?publish\u0026style=for-the-badge)](https://observatory.mozilla.org/)\n[![Uptime](https://img.shields.io/uptimerobot/ratio/m790142441-faed6f7043db9c588f5e949f?style=for-the-badge)](https://uptimerobot.com)\n[![GitHub last commit](https://img.shields.io/github/last-commit/h3mmy/bloopySphere?style=for-the-badge)](https://github.com/h3mmy/bloopySphere/commits/main)\n\n[![GitHub branch checks state](https://img.shields.io/github/checks-status/h3mmy/bloopySphere/main?style=for-the-badge)](https://github.com/h3mmy/bloopySphere/actions?query=branch%3Amain)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/h3mmy/bloopySphere/deploy-keycloak-theme.yaml?branch=main\u0026label=Keycloak%20Theme\u0026style=for-the-badge)](https://github.com/h3mmy/bloopySphere/actions/workflows/deploy-keycloak-theme.yaml)\n[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/h3mmy/bloopysphere/Lint?label=Lint\u0026style=for-the-badge)](https://github.com/h3mmy/bloopySphere/actions/workflows/lint.yaml)\n\n![Snyk Vulnerabilities for GitHub Repo](https://img.shields.io/snyk/vulnerabilities/github/h3mmy/bloopysphere?style=for-the-badge)\n\u003c/div\u003e\n\n---\n\n## :book:\u0026nbsp; Overview\n\nThis is my home Kubernetes cluster. [Flux](https://github.com/fluxcd/flux2) watches this Git repository and makes the changes to my cluster based on the manifests in the [cluster](./cluster/) directory.\n [Renovate](https://github.com/renovatebot/renovate) also watches this Git repository and creates pull requests when it finds updates to Docker images, Helm charts, and other dependencies.\n\n~~For more information, head on over to my [docs](https://h3mmy.github.io/bloopySphere/).~~\nI have nested README files that should be visible as you browse the repo.\n\nMy [Gitlab](https://gitlab.com/h3mmy) has more of my projects\n\n## Useful Snippets\n\nList of container images in use cluster-wide\n\n`kubectl get pods --all-namespaces -o go-template --template=\"{{range .items}}{{range .spec.containers}}{{.image}} {{end}}{{end}}\" | sed 's/ /\\n/g' | uniq \u003e ./container_images_in_use.txt`\n\nList of container images in use that have arm64 images available (grep -q --\u003e grep -vq for inversion)\n\n`kubectl get po -A -o yaml | grep 'image:' | cut -f2- -d':' | sed 's/^[[:space:]]*//g' | grep '/' | sort -u | xargs -I{} bash -c \"docker manifest inspect {} | grep -q arm64 \u0026\u0026 echo {}\" \u003e ./container_images_with_arm64.txt`\n\nSnippet for nodeAffinity for non-ARM pods\n\n`affinity:\n  nodeAffinity:\n    requiredDuringSchedulingIgnoredDuringExecution:\n      nodeSelectorTerms:\n        - matchExpressions:\n            - key: \"kubernetes.io/arch\"\n                operator: In\n                values:\n                  - amd64\n                  - i386\n                  - i686\n                  - x86`\n\nIf using a node-taint for arm nodes[1], this will allow toleration\n\n`tolerations:\n\n- key: \"arch\"\n  operator: \"Equal\"\n  value: \"arm64\"\n  effect: \"NoSchedule\"`\n\n[1]While Bootstrapping: `--kubelet-extra-args` `--register-with-taints=\"kubernetes.io/arch=arm64:NoSchedule\"`\nElse: `kubectl taint no k8s-0 kubernetes.io/arch=arm64:NoSchedule`\n\nOther useful snippets:\n`kubectl label node k8s-0 node-role.kubernetes.io/worker=true`\n\n`kubectl apply --kustomize=./cluster/base/flux-system`\n\n`cat ~/.config/sops/age/keys.txt |\nkubectl -n flux-system create secret generic sops-age --from-file=age.agekey=/dev/stdin`\n\n`kubectl  create namespace flux-system --dry-run=client -o yaml | kubectl apply -f -`\n\n`kubectl get secret db-user-pass -o json | jq '.data | map_values(@base64d)'`\n\nLoki snippets. If you know you know.\n\n```logql\n{app=\"traefik\"} | json message_extracted=\"message\" |  line_format \"{{.message_extracted}}\" | json | DownstreamStatus!=`200`\n```\n\n```logql\n{app=\"authentik\"} | json message_extracted=\"message\"| line_format \"{{.message_extracted}}\" | json level=\"level\",timestamp=\"timestamp\",event=\"event\" | level=`error`\n```\n\n`kubectl get namespace \"monitoring\" -o json   | tr -d \"\\n\" | sed \"s/\\\"finalizers\\\": \\[[^]]\\+\\]/\\\"finalizers\\\": []/\"   | kubectl replace --raw /api/v1/namespaces/monitoring/finalize -f -`\n\n\nPublicly available DoH server lists\n\n\n\nhttps://github.com/curl/curl/wiki/DNS-over-HTTPS#publicly-available-servers\n\nhttps://cln.io/blog/combined-list-of-dns-servers/\n\nhttps://github.com/Sekhan/TheGreatWall\n\nhttps://github.com/crypt0rr/public-doh-servers/tree/main\n\n\n\n\n## :handshake:\u0026nbsp; Community\n\nThanks to all the people who donate their time to the [Kubernetes @Home](https://github.com/k8s-at-home/) community.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh3mmy%2FbloopySphere","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fh3mmy%2FbloopySphere","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh3mmy%2FbloopySphere/lists"}