{"id":13646297,"url":"https://github.com/longhorn/longhorn-manager","last_synced_at":"2025-05-14T03:10:06.415Z","repository":{"id":37382040,"uuid":"90179690","full_name":"longhorn/longhorn-manager","owner":"longhorn","description":"Millions and millions of volumes orchestrated","archived":false,"fork":false,"pushed_at":"2025-05-13T04:42:10.000Z","size":55444,"stargazers_count":179,"open_issues_count":12,"forks_count":158,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-05-13T05:24:41.529Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"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/longhorn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2017-05-03T18:17:50.000Z","updated_at":"2025-05-13T04:22:13.000Z","dependencies_parsed_at":"2023-10-02T02:38:46.091Z","dependency_job_id":"8c6d50c9-44c0-45a3-a086-4842e77b5ffd","html_url":"https://github.com/longhorn/longhorn-manager","commit_stats":{"total_commits":3807,"total_committers":81,"mean_commits":47.0,"dds":0.8268978198056212,"last_synced_commit":"d887221e5b0f5f5a59b3307d10f5f66dcd0a85a5"},"previous_names":["rancher/longhorn-manager"],"tags_count":270,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longhorn%2Flonghorn-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longhorn%2Flonghorn-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longhorn%2Flonghorn-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longhorn%2Flonghorn-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/longhorn","download_url":"https://codeload.github.com/longhorn/longhorn-manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254059511,"owners_count":22007769,"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":[],"created_at":"2024-08-02T01:02:52.425Z","updated_at":"2025-05-14T03:10:01.406Z","avatar_url":"https://github.com/longhorn.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"Longhorn Manager\n========\n[![Build Status](https://github.com/longhorn/longhorn-manager/actions/workflows/build.yml/badge.svg)](https://github.com/longhorn/longhorn-manager/actions/workflows/build.yml)[![Go Report Card](https://goreportcard.com/badge/github.com/rancher/longhorn-manager)](https://goreportcard.com/report/github.com/rancher/longhorn-manager)\n\nManager for Longhorn.\n\n## Requirements\n\n- Kubernetes cluster:\n  - Kubernetes v1.21 or later is installed.\n  - [Mount propagation](https://kubernetes-csi.github.io/docs/deploying.html#enabling-mount-propagation) is enabled.\n- Host:\n  - `iscsiadm`/`open-iscsi` and `nfs-common`/`nfs-utils`/`nfs-client` are installed.\n  - The filesystem (ext4 or XFS) supports the `file extents` feature for data storage.\n\nRun the [environment_check.sh](https://raw.githubusercontent.com/longhorn/longhorn/master/scripts/environment_check.sh) script to check if your system meets the listed requirements. For more information, see the [Longhorn documentation](https://longhorn.io/docs/latest/deploy/install/#installation-requirements).\n\n## Build\n\n`make`\n\n## Deployment\n\n- `kubectl create -f https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml`\n\nIt will deploy the following components in the `longhorn-system` namespace:\n\n- Longhorn Manager\n- Longhorn Instance Manager\n- Longhorn CSI plugin components\n- Longhorn UI\n\nFor more information, see the [Longhorn documentation](https://longhorn.io/docs/latest/deploy/install/).\n\n## Cleanup\n\nLonghorn CRD has finalizers in them, so user should delete the volumes and related resource first, give manager a chance to clean up after them.\n\nTo prevent damage to the Kubernetes cluster, we recommend deleting all Kubernetes workloads using Longhorn volumes (PersistentVolume, PersistentVolumeClaim, StorageClass, Deployment, StatefulSet, DaemonSet, etc).\n\n1. Ensure that the value of the Longhorn setting `deleting-confirmation-flag` is `true`.\n\n```bash\nkubectl -n longhorn-system edit setting deleting-confirmation-flag\n```\n\n2. Create the uninstallation job to cleanly purge CRDs from the system. Verify that uninstallation was successful.\n\n```bash\nkubectl create -f https://raw.githubusercontent.com/longhorn/longhorn/master/uninstall/uninstall.yaml\nkubectl get job/longhorn-uninstall -w\n```\n\nExample output:\n\n```bash\n$ kubectl create -f https://raw.githubusercontent.com/longhorn/longhorn/master/uninstall/uninstall.yaml\nserviceaccount/longhorn-uninstall-service-account created\nclusterrole.rbac.authorization.k8s.io/longhorn-uninstall-role created\nclusterrolebinding.rbac.authorization.k8s.io/longhorn-uninstall-bind created\njob.batch/longhorn-uninstall created\n\n$ kubectl -n longhorn-system get job/longhorn-uninstall -w\nNAME                 COMPLETIONS   DURATION   AGE\nlonghorn-uninstall   0/1           3s         3s\nlonghorn-uninstall   1/1           20s        20s\n^C\n```\n\n3. Remove remaining components.\n\n```bash\nkubectl delete -f https://raw.githubusercontent.com/longhorn/longhorn/master/uninstall/uninstall.yaml\nkubectl delete -f https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml\n\n```\n\nTip: If you try `kubectl delete -Rf deploy/install` first and get stuck there, pressing `Ctrl C` then running `kubectl create -f deploy/uninstall/uninstall.yaml` can also help you remove Longhorn. Finally, don't forget to cleanup remaining components by running `kubectl delete -f deploy/uninstall/uninstall.yaml`.\n\n## Unit Test\n\nTo execute all unit tests, make sure there are no uncommitted changes and run:\n\n```bash\nmake test\n```\n\nIf there are uncommitted changes, only the affected modules will be tested.\nTo execute specific unit tests or all tests matching a regex, run:\n\n```bash\nTESTS==\"NodeControllerSuite.*\" make test\n```\n\n## Integration test\n\nSee [longhorn-tests repo](https://github.com/rancher/longhorn-tests/tree/master/manager/integration)\n\n## Contribution\n\nPlease check [the Longhorn repo](https://github.com/longhorn/longhorn#community) for the contributing guide.\n\n## License\n\nCopyright (c) 2014-2025 The Longhorn Authors\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n[http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flonghorn%2Flonghorn-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flonghorn%2Flonghorn-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flonghorn%2Flonghorn-manager/lists"}