{"id":28253161,"url":"https://github.com/robertomachorro/fleet-foundation","last_synced_at":"2026-01-26T03:32:09.542Z","repository":{"id":290195431,"uuid":"973630912","full_name":"RobertoMachorro/fleet-foundation","owner":"RobertoMachorro","description":"Starting point for a Fleet-Rancher-Kubernetes infrastructure.","archived":false,"fork":false,"pushed_at":"2025-04-27T20:04:59.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-15T23:41:03.768Z","etag":null,"topics":["continuous-delivery","continuous-deployment","fleet","gitops","gitops-deploy-repo","kubernetes","rancher"],"latest_commit_sha":null,"homepage":"https://roberto.machorro.net/fleet-foundation/","language":null,"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/RobertoMachorro.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}},"created_at":"2025-04-27T12:06:32.000Z","updated_at":"2025-04-27T20:07:14.000Z","dependencies_parsed_at":"2025-04-27T14:36:19.011Z","dependency_job_id":null,"html_url":"https://github.com/RobertoMachorro/fleet-foundation","commit_stats":null,"previous_names":["robertomachorro/fleet-foundation"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/RobertoMachorro/fleet-foundation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertoMachorro%2Ffleet-foundation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertoMachorro%2Ffleet-foundation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertoMachorro%2Ffleet-foundation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertoMachorro%2Ffleet-foundation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RobertoMachorro","download_url":"https://codeload.github.com/RobertoMachorro/fleet-foundation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertoMachorro%2Ffleet-foundation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28765907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T03:19:35.311Z","status":"ssl_error","status_checked_at":"2026-01-26T03:19:13.815Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["continuous-delivery","continuous-deployment","fleet","gitops","gitops-deploy-repo","kubernetes","rancher"],"created_at":"2025-05-19T16:17:50.955Z","updated_at":"2026-01-26T03:32:09.537Z","avatar_url":"https://github.com/RobertoMachorro.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# fleet-foundation\nStarting point for a Kubernetes GitOps based infrastructure using [Fleet](https://fleet.rancher.io).\n\nThis repo can be used as a stand-alone Fleet instance or as a Github Template, to start your own environment (recommended).\nA fresh K8s setup is recommended with only Fleet installed, this way, everything you add is in GitOps!\nEither [K3S](https://k3s.io) or [RKE2](https://rke2.io) are loved and tested.\n\n**Note:** Replace in the instructions fleet-local namespace with fleet-default as needed, depending on where your automation is going to run (single cluster? downstream clusters? etc). Refer to the [Fleet Proper Namespace](https://fleet.rancher.io/gitrepo-add#proper-namespace) documentation.\n\n## Setup\n\n1. Bootstrap Fleet on a fresh Kubernetes install using [Helm](https://helm.sh):\n```\nhelm repo add fleet https://rancher.github.io/fleet-helm-charts/\nhelm -n cattle-fleet-system install --create-namespace --wait fleet-crd fleet/fleet-crd\nhelm -n cattle-fleet-system install --create-namespace --wait fleet fleet/fleet\n```\n\nAn alternative is to use a HelmChart operator (built into [K3S](https://k3s.io) and [RKE2](https://rke2.io)). By copying your manifests to a folder, such as */var/lib/rancher/rke2/server/manifests/* in RKE2, you don't even need Helm CLI. \n\n```yaml\napiVersion: v1\nkind: Namespace\nmetadata:\n  name: cattle-fleet-system\n---\napiVersion: helm.cattle.io/v1\nkind: HelmChart\nmetadata:\n  name: fleet-crd\n  namespace: cattle-fleet-system\nspec:\n  repo: https://rancher.github.io/fleet-helm-charts/\n  chart: fleet-crd\n  targetNamespace: cattle-fleet-system\n---\napiVersion: helm.cattle.io/v1\nkind: HelmChart\nmetadata:\n  name: fleet\n  namespace: cattle-fleet-system\nspec:\n  repo: https://rancher.github.io/fleet-helm-charts/\n  chart: fleet\n  targetNamespace: cattle-fleet-system\n```\n\n2. Unless you have a public GitOps repo, you will need to generate an SSH Key Pair for Git/Github Authentication. This allows your Fleet setup to access your Git repository:\n```\nssh-keygen -f /path/to/your/id_rsa-gitkey -t rsa -b 4096\n```\n```\nkubectl create secret generic gh-ssh-key -n fleet-local --from-file=ssh-privatekey=/path/to/your/id_rsa-gitkey --from-file=ssh-publickey=/path/to/your/id_rsa-gitkey.pub --type=kubernetes.io/ssh-auth\n```\n\nThen add the public key to your Git repo for authentication. In Github, go to your repository's **Settings**, **Deploy keys**, **Add deploy key**. Write access *is not* needed by Fleet.\n\n3. Prior to deploying Fleet setups, you should add any Secrets, TLS certs, connection strings, etc. that are required.\n\n4. Review all **fleet.yaml** files to make sure all values and settings are correct. Commit and push changes.\n\n5. Time to deploy! Apply a manifest similar to this, select the paths you want to include in your setup:\n```yaml\napiVersion: fleet.cattle.io/v1alpha1\nkind: GitRepo\nmetadata:\n  name: fleet-foundation-gitops\n  namespace: fleet-local\nspec:\n  repo: git@github.com:RobertoMachorro/fleet-foundation.git\n  branch: main\n  clientSecretName: gh-ssh-key\n  pollingInterval: 60s\n  paths:\n  - infrastructure/longhorn\n  - ... paths ...\n```\n\n**Note:** Replace fleet-foundation and RobertoMachorro/fleet-foundation above with your own name and repository path. Also replace the clientSecretName to the one you created in step 2.\n\n6. Check resources:\n```\nkubectl -n fleet-local get fleet\n```\n```\nkubectl top pod -A --sort-by memory --sum\n```\n\n## Installing Rancher\n\nIf you opted for the infrastructure/rancher path in this repo, take a couple of extra steps:\n\n1. Configure the IP address and other Rancher options at infrastructure/rancher/fleet.yaml .\n\n2. Commit and let the setup redeploy.\n\n3. When setup completes, access Rancher at https://-your ip-.sslip.io/dashboard/ , using the password revealed by the command:\n```\nkubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}{{ \"\\n\" }}'\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertomachorro%2Ffleet-foundation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobertomachorro%2Ffleet-foundation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertomachorro%2Ffleet-foundation/lists"}