{"id":18690437,"url":"https://github.com/kvaps/linstor-scheduler-extender","last_synced_at":"2025-10-11T10:13:37.431Z","repository":{"id":43659546,"uuid":"459160244","full_name":"kvaps/linstor-scheduler-extender","owner":"kvaps","description":"LINSTOR scheduler extender plugin for Kubernetes","archived":false,"fork":false,"pushed_at":"2022-05-12T10:30:33.000Z","size":106,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-28T02:30:14.157Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/kvaps.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-02-14T12:50:24.000Z","updated_at":"2022-12-30T07:59:18.000Z","dependencies_parsed_at":"2022-08-23T04:20:19.798Z","dependency_job_id":null,"html_url":"https://github.com/kvaps/linstor-scheduler-extender","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvaps%2Flinstor-scheduler-extender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvaps%2Flinstor-scheduler-extender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvaps%2Flinstor-scheduler-extender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvaps%2Flinstor-scheduler-extender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kvaps","download_url":"https://codeload.github.com/kvaps/linstor-scheduler-extender/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239550283,"owners_count":19657541,"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-11-07T10:47:33.826Z","updated_at":"2025-10-11T10:13:32.390Z","avatar_url":"https://github.com/kvaps.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# linstor-scheduler-extender\n\n![Latest release](https://img.shields.io/github/v/release/kvaps/linstor-scheduler-extender)\n\nLINSTOR scheduler extender plugin for Kubernetes which allows a storage driver to give the Kubernetes scheduler hints about where to place a new pod so that it is optimally located for storage performance.\n\n## Get started\n\nIf you want to get started directly with an existing LINSTOR setup, check out the [single file deployment](./deploy/all.yaml)\nThe deployment will create:\n\n* All needed RBAC resources\n* A Deployment spawning 2 replicas of the Kube-scheduler with linstor-scheduler-existing, configured to connect to `http://piraeus-op-cs.default.svc`\n\nCopy the file, make any desired changes (see the [options](#options) below) and apply:\n\n```console\n$ kubectl apply -f deploy/all.yaml\nconfigmap/linstor-scheduler created\ndeployment.apps/linstor-scheduler created\nserviceaccount/linstor-scheduler created\nclusterrole.rbac.authorization.k8s.io/linstor-scheduler created\nrole.rbac.authorization.k8s.io/linstor-scheduler created\nclusterrolebinding.rbac.authorization.k8s.io/linstor-scheduler created\nrolebinding.rbac.authorization.k8s.io/linstor-scheduler created\n\n$ kubectl -n kube-system get pods -l app.kubernetes.io/name=linstor-scheduler\nNAME                                 READY   STATUS    RESTARTS   AGE\nlinstor-scheduler-6bb88fc66c-bq4fm   2/2     Running   0          52s\nlinstor-scheduler-6bb88fc66c-tllgm   2/2     Running   0          52s\n```\n\n## Usage\n\nTo make your applications using linstor-scheduler, use the `schedulerName: linstor` field.\nFor example, Pod Templates in a StatefulSet should look like:\n\n```yaml\napiVersion: apps/v1\nkind: StatefulSet\nmetadata:\n  name: my-stateful-app\nspec:\n  serviceName: my-stateful-app\n  selector:\n    matchLabels:\n      app.kubernetes.io/name: my-stateful-app\n  template:\n    metadata:\n      labels:\n        app.kubernetes.io/name: my-stateful-app\n    spec:\n      schedulerName: linstor\n    ...\n```\n\n## Configuration\n\n`linstor-scheduler-extender` uses the environment variables specified in the [`golinstor` library](https://pkg.go.dev/github.com/LINBIT/golinstor/client#NewClient)\nfor configuration.\n\n| Variable              | Description                                                         |\n|-----------------------|---------------------------------------------------------------------|\n| `LS_CONTROLLERS`      | A comma-separated list of LINSTOR controller URLs to connect to.    |\n| `LS_USERNAME`         | Username to use for HTTP basic auth.                                |\n| `LS_PASSWORD`         | Password to use for HTTP basic auth.                                |\n| `LS_ROOT_CA`          | CA certificate to use for authenticating the server.                |\n| `LS_USER_KEY`         | TLS key to use for authenticating the client to the server.         |\n| `LS_USER_CERTIFICATE` | TLS certificate to use for authenticating the client to the server. |\n\n\nThe linstor-scheduler-extender itself can be configured using the following flags:\n\n```\n--verbose      Enable verbose logging\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkvaps%2Flinstor-scheduler-extender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkvaps%2Flinstor-scheduler-extender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkvaps%2Flinstor-scheduler-extender/lists"}