{"id":16860977,"url":"https://github.com/akerouanton/cinder-volume-driver","last_synced_at":"2026-05-21T04:02:02.054Z","repository":{"id":76244214,"uuid":"357325901","full_name":"akerouanton/cinder-volume-driver","owner":"akerouanton","description":"Docker volume driver to make OpenStack Block Storage volumes (aka Cinder volumes) available as Docker volumes.","archived":false,"fork":false,"pushed_at":"2021-04-21T10:31:00.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-24T19:24:25.332Z","etag":null,"topics":["cinder","docker","docker-plugin","openstack"],"latest_commit_sha":null,"homepage":"","language":"Go","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/akerouanton.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":"2021-04-12T20:10:42.000Z","updated_at":"2021-04-21T10:30:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"625913f8-e860-4472-995a-c331ad21ec66","html_url":"https://github.com/akerouanton/cinder-volume-driver","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akerouanton%2Fcinder-volume-driver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akerouanton%2Fcinder-volume-driver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akerouanton%2Fcinder-volume-driver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akerouanton%2Fcinder-volume-driver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akerouanton","download_url":"https://codeload.github.com/akerouanton/cinder-volume-driver/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244245583,"owners_count":20422443,"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":["cinder","docker","docker-plugin","openstack"],"created_at":"2024-10-13T14:28:25.053Z","updated_at":"2026-05-21T04:01:57.014Z","avatar_url":"https://github.com/akerouanton.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cinder-volume-driver\n\nThis Docker volume driver makes OpenStack Block Storage volumes (aka Cinder volumes)\navailable as Docker volumes.\n\nIt was written to circumvent a big issue found in rexray/cinder: it uses the\ndevice name of volume attachments returned by OpenStack API whereas this field\nis guessed by OpenStack and thus shall not be trusted. From a higher-level,\nthis means Block Storage volumes could be mixed up when attached/mounted by\nrexray, leading to the wrong containers writing to the wrong volumes. This has\nbeen a source of service disruption, data loss, etc... for one of my client.\n\nSince rexray/cinder uses libstorage which is meant to potentially run on another\nserver than the one which got volume attached/mounted, the above issue can't be\neasily fixed. Also, the code of libstorage and rexray is a bit complex and\nthus hard to debug.\n\nMoreover, this plugin adds new features not found in rexray/cinder like:\n\n* The ability to specify the uid/gid and filemode to apply to volumes' root folder after formatting them ;\n* The ability to specify the ID of a snapshot to use to create a volume ;\n* And others volume options (see below).\n\n## How to install?\n\nYou can install this plugin with:\n\n```\n$ docker plugin install --alias cinder akerouanton/cinder:v0.1 \u003cenv-vars\u003e\n```\n\n## Supported env vars\n\nHere's the list of env vars supported by this plugin:\n\n| Name                             | Default Value | Description                                                                       |\n|----------------------------------|---------------|-----------------------------------------------------------------------------------|\n| OS_AUTH_URL                      |               | See [1].                                                                          |\n| OS_USERNAME                      |               | See [1].                                                                          |\n| OS_USERID                        |               | See [1].                                                                          |\n| OS_PASSWORD                      |               | See [1].                                                                          |\n| OS_PASSCODE                      |               | See [1].                                                                          |\n| OS_TENANT_ID                     |               | See [1].                                                                          |\n| OS_TENANT_NAME                   |               | See [1].                                                                          |\n| OS_DOMAIN_ID                     |               | See [1].                                                                          |\n| OS_DOMAIN_NAME                   |               | See [1].                                                                          |\n| OS_APPLICATION_CREDENTIAL_ID     |               | See [1].                                                                          |\n| OS_APPLICATION_CREDENTIAL_NAME   |               | See [1].                                                                          |\n| OS_APPLICATION_CREDENTIAL_SECRET |               | See [1].                                                                          |\n| OS_PROJECT_ID                    |               | See [1].                                                                          |\n| OS_PROJECT_NAME                  |               | See [1].                                                                          |\n| OS_REGION_NAME                   |               | Name of the OpenStack region where Compute \u0026 Block Storage resources are located. |\n| DEFAULT_SIZE                     | `20`          | Default volume size in GB.                                                        |\n| VOLUME_PREFIX                    |               | Name prefix of volumes managed by this plugin.                                    |\n| LOG_LEVEL                        | `debug`       | Log level (either: trace, debug, info, warn, error, fatal, panic).                |\n| DEBUG                            |               | Enable /pprof/trace endpoint when the value is not empty.                         |\n\n[1] https://docs.openstack.org/python-openstackclient/pike/cli/man/openstack.html#environment-variables\n\n## Supported volume options\n\nHere's the list of options you can pass when creating a volume :\n\n| Name                | Default Value                       | Description                                                                             |\n|---------------------|-------------------------------------|-----------------------------------------------------------------------------------------|\n| `size`              | The value of `DEFAULT_SIZE` env var | The size of the underlying Block Storage volume.                                        |\n| `availability_zone` | N/A                                 | AZ where the underlying Block Storage volume should be created.                         |\n| `consistency_group` | N/A                                 | See https://docs.openstack.org/cinder/latest/admin/blockstorage-consistency-groups.html |\n| `description`       | N/A                                 | Description of the underlying Block Storage volume.                                     |\n| `source_snapshot`   | N/A                                 | ID of the Block Storage snaphost used to create the volume.                             |\n| `source_backup`     | N/A                                 | ID of the Block Storage backup used to create the volume.                               |\n| `volume_type`       | N/A                                 | Block storage volume type.                                                              |\n| `uid`               | 0                                   | Default UID set on the volume root dir after formatting the volume.                     |\n| `gid`               | 0                                   | Default GID set on the volume root dir after formatting the volume.                     |\n| `mode`              | 0750                                | Default file mode set on the volume root dir after formatting the volume.               |\n\nFor instance, if you want to define the size of a volume and the source snapshot the volume should be created from, with Docker CLI:\n\n```\n$ docker volume create -d cinder -o size=40 -o source_snapshot=\u003csnapshot-uuid\u003e test\n```\n\nAnd with `docker-compose`:\n\n```yaml\nservices:\n  # ...\n\nvolumes:\n  test:\n    name: test\n    driver: cinder\n    driver_opts:\n      size: 40\n      source_snapshot: \"\u003csnapshot-uuid\u003e\"\n```\n\n## How to work on this?\n\nYou can create a new `devel` plugin release with `make plugin` and you can\ninstall it with `make install` (you have to set env vars in .env file first).\n\nTo release a new version you have to use: `PLUGIN_VERSION=vX.Y make release`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakerouanton%2Fcinder-volume-driver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakerouanton%2Fcinder-volume-driver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakerouanton%2Fcinder-volume-driver/lists"}