{"id":13632800,"url":"https://github.com/cguertin14/infra","last_synced_at":"2025-12-29T12:00:48.148Z","repository":{"id":37093532,"uuid":"350925996","full_name":"cguertin14/infra","owner":"cguertin14","description":"My homelab infra running on a hybrid arm64/amd64 Kubernetes Cluster.","archived":false,"fork":false,"pushed_at":"2025-12-13T19:52:25.000Z","size":3137,"stargazers_count":8,"open_issues_count":3,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-14T17:06:39.162Z","etag":null,"topics":["ansible","cloud-native","k3s","kubernetes","terraform"],"latest_commit_sha":null,"homepage":"","language":"YAML","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/cguertin14.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-03-24T02:48:36.000Z","updated_at":"2025-12-13T19:52:29.000Z","dependencies_parsed_at":"2023-11-02T23:26:13.871Z","dependency_job_id":"acdb19da-cfbd-4dc7-9aae-8be5c054da77","html_url":"https://github.com/cguertin14/infra","commit_stats":null,"previous_names":[],"tags_count":51,"template":false,"template_full_name":null,"purl":"pkg:github/cguertin14/infra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cguertin14%2Finfra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cguertin14%2Finfra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cguertin14%2Finfra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cguertin14%2Finfra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cguertin14","download_url":"https://codeload.github.com/cguertin14/infra/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cguertin14%2Finfra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28115768,"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","status":"online","status_checked_at":"2025-12-29T02:00:07.021Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ansible","cloud-native","k3s","kubernetes","terraform"],"created_at":"2024-08-01T22:03:15.985Z","updated_at":"2025-12-29T12:00:48.130Z","avatar_url":"https://github.com/cguertin14.png","language":"YAML","funding_links":[],"categories":["YAML"],"sub_categories":[],"readme":"# infra\n\n[![CircleCI](https://circleci.com/gh/cguertin14/infra.svg?style=shield)](https://circleci.com/gh/cguertin14/infra)\n\nMy infrastructure running on a hybrid arm64/amd64 Kubernetes Cluster.\n\n## Architecture\n\nMultiple Storage Classes exist:\n1. `ceph-block` -\u003e for all the k8s data (RWO);\n2. `ceph-bucket` -\u003e for S3-like volumes (RWO);\n3. `ceph-filesystem` -\u003e for `RWX` k8s volumes;\n4. `nfs-media-client` -\u003e for all the media data.\n\n![](https://uml.planttext.com/plantuml/png/VLHHJy8m47vUVyM5Tn1Q86gC0J568nAYF9gOibPP7Ars7P0O_xlTsZ4wAY_BxhlhzzrzwswKQQfqlauX4U-A0bNnAj4yrhdY2CMfp1ay2CsLuBgAf-CP_A08HK8o3a_ciNRlpp8tfIwOIifkQ4f5N42Pbef-S9YDN-fWmhzM24MMDaxpp9m6ca7hCL-MaZo3YOFXLG10xm9tUiFpJhVJFSFz5d9Q4ocqakdSgF6YDukkQN6ovuVO3ucXY1ZLT4ap3bp734M_5UsjmHkSMwa-3pXjYFsG-67V3mU5GENUxdpuDZClMQ40O1lZB37Dg4tXcyF49Za6rub84hthsexTjD3EszTk43VnCKGEeC9_Qt6R6UpGIXJL3fJ9yklLFTi3zYDMybSbkBSf1ECmJC9mFmmF2W-h0OEYE2oAmw8uB8eRehM3GKqIrYHXJHBM9FyDMZdWtH0_vL-Knh7zVMbE5o349mXnax3PUO2FdE0ZHtpcGbTh1zhAfCer0vTmlrZCGV7ld6SQMR3CszLZ2kwasbB5zZKkKHOThgH0gPSk6wh-ZEDQDEA2cRtv1m00)\n\n## Backups\n\nBackups are created on S3 periodically for both etcd (k8s resources) and persistent volumes (PVCs and PVs).\nThere is a runbook available [here](./services/velero-backups/README.md) for information on how to restore backups.\n\n## Structure of this repository\n\nThe [services/](./services) folder contains subfolders which contain different kinds of web/networking/other services.\n\n## Dependencies\n\n* [Docker](https://docker.io)\n* [Terraform](https://terraform.io)\n* [Ansible](https://www.ansible.com/)\n* [Kubectl](https://kubernetes.io)\n* [Kustomize](https://kustomize.io)\n* [Kind](https://kind.sigs.k8s.io/)\n* [SOPS](https://github.com/mozilla/sops)\n* [Kustomize-Sops](https://github.com/viaduct-ai/kustomize-sops)\n\n## Kubeconfig Setup\n\n### NGINX Setup\n\nFirst off, make sure the port `8000` is not used on your local machine, and then run the following command:\n```bash\n$ make start-lb\n...\n```\n\n### Kubeconfig Server Modifications\n\nSecond, you're going to want to edit your `~/.kube/config` file like this:\n```yaml\n...\nserver: https://127.0.0.1:8000\n...\n```\n\nAnd that's it! Your local setup is now fully functional.\n\n## Start a local cluster\n\n```bash\n$ make local-cluster\n...\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcguertin14%2Finfra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcguertin14%2Finfra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcguertin14%2Finfra/lists"}