{"id":13574294,"url":"https://github.com/wrmilling/k3s-gitops","last_synced_at":"2026-01-23T01:25:58.711Z","repository":{"id":37250739,"uuid":"192210936","full_name":"wrmilling/k3s-gitops","owner":"wrmilling","description":"GitOps principles to define kubernetes cluster state via code","archived":false,"fork":false,"pushed_at":"2025-03-28T13:39:02.000Z","size":8927,"stargazers_count":218,"open_issues_count":4,"forks_count":9,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-28T19:07:10.436Z","etag":null,"topics":["cert-manager","flux","flux2","gitops","grafana","helm","k3s","k8s-at-home","kubernetes","metallb","nginx-ingress","prometheus","renovate","rook","sops","velero"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wrmilling.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-16T16:05:19.000Z","updated_at":"2025-03-28T13:38:33.000Z","dependencies_parsed_at":"2023-10-16T10:00:44.766Z","dependency_job_id":"9021b542-8aa8-4c98-8d03-9fc4b8dc4c7e","html_url":"https://github.com/wrmilling/k3s-gitops","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrmilling%2Fk3s-gitops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrmilling%2Fk3s-gitops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrmilling%2Fk3s-gitops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrmilling%2Fk3s-gitops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wrmilling","download_url":"https://codeload.github.com/wrmilling/k3s-gitops/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247194253,"owners_count":20899454,"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":["cert-manager","flux","flux2","gitops","grafana","helm","k3s","k8s-at-home","kubernetes","metallb","nginx-ingress","prometheus","renovate","rook","sops","velero"],"created_at":"2024-08-01T15:00:49.811Z","updated_at":"2026-01-23T01:25:58.698Z","avatar_url":"https://github.com/wrmilling.png","language":"Shell","funding_links":[],"categories":["Shell","prometheus"],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable MD033 --\u003e\n\n\u003ch1 align=\"center\"\u003e\n  \u003ca id=\"user-content--k3s-gitops-\" class=\"anchor\" aria-hidden=\"true\" href=\"#-k3s-gitops-\"\u003e\n    \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\n      \u003cpath fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"\u003e\u003c/path\u003e\n    \u003c/svg\u003e\n  \u003c/a\u003e k3s-gitops\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/k8s-at-home\" alt=\"Image used with permission from k8s-at-home\"\u003e\u003cimg alt=\"Image used with permission from k8s-at-home\" src=\"https://avatars.githubusercontent.com/u/61287648\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://k3s.io/\"\u003e\u003cimg alt=\"k3s\" src=\"https://img.shields.io/badge/k3s-v1.35.0-orange?logo=kubernetes\u0026logoColor=white\u0026style=flat-square\"\u003e\u003c/a\u003e \u003ca href=\"https://github.com/WRMilling/k3s-gitops/stargazers\"\u003e\u003cimg alt=\"GitHub Stars\" src=\"https://img.shields.io/github/stars/WRMilling/k3s-gitops?logo=github\u0026color=green\u0026logoColor=white\u0026style=flat-square\"\u003e\u003c/a\u003e \u003ca href=\"https://github.com/WRMilling/k3s-gitops/commits/master\"\u003e\u003cimg alt=\"GitHub Last Commit\" src=\"https://img.shields.io/github/last-commit/WRMilling/k3s-gitops?logo=git\u0026logoColor=white\u0026color=purple\u0026style=flat-square\"\u003e\u003c/a\u003e \u003ca href=\"https://discord.gg/home-operations\"\u003e\u003cimg alt=\"Home Operations Discord\" src=\"https://img.shields.io/badge/discord-chat-7289DA.svg?logo=discord\u0026logoColor=white\u0026maxAge=60\u0026style=flat-square\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\nUsing GitOps principals and workflow to manage a lightweight \u003ca href=\"https://k3s.io\"\u003ek3s\u003c/a\u003e cluster.\n\u003c/p\u003e\n\n## :book:\u0026nbsp; Overview\n\n![k3s Nodes](https://i.imgur.com/2hBUBi1.png)\n\nThis repository utilizes [Flux2](https://fluxcd.io/) to implement GitOps principals and define the state of my cluster using code.\n\n## :computer:\u0026nbsp; Infrastructure\n\nSetup for the individual nodes is now via NixOS and my [nixos-configuration](https://github.com/wrmilling/nixos-configuration) repository. Individual node names from the screenshot in [overview](#overview) can be searched for under the `hosts` directory of the aforementioned repo.\n\nThe current cluster consists of one (1) virtual master node, hosted on my TrueNAS Scale NAS, three (3) Minisforum UN100C mini-PCs, and one (1) BMax B4 Plus mini-PC. The mini-PCs double as both compute and ceph nodes.\n\n## :gear:\u0026nbsp; Setup\n\nSetup for Flux2, secrets, and the rest of the GitOps workflow can be found here under the [setup](setup/README.md) directory.\n\n## :wrench:\u0026nbsp; Namespaces\n\n* [cert-manager](cert-manager/README.md)\n* [default](default/README.md)\n* [development](development/README.md)\n* [flux-system](flux-system-extra/README.md)\n* [kube-system](kube-system/README.md)\n* [media](media/README.md)\n* [monitoring](monitoring/README.md)\n* [rook-ceph](rook-ceph/README.md)\n* [social](social/README.md)\n\n## :handshake:\u0026nbsp; Credits + Community\n\nA huge thanks to the community at Home Operations via [discord chat](https://discord.gg/home-operations). Home Operations Logo image used with permission, check out the community for some awesome and helpful people.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwrmilling%2Fk3s-gitops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwrmilling%2Fk3s-gitops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwrmilling%2Fk3s-gitops/lists"}