{"id":20111429,"url":"https://github.com/openstack/charm-cinder","last_synced_at":"2026-03-05T06:33:09.511Z","repository":{"id":50753231,"uuid":"52858711","full_name":"openstack/charm-cinder","owner":"openstack","description":"Juju Charm - Cinder. Mirror of code maintained at opendev.org.","archived":false,"fork":false,"pushed_at":"2025-12-17T18:00:55.000Z","size":2758,"stargazers_count":14,"open_issues_count":0,"forks_count":21,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-12-21T06:30:02.747Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://opendev.org/openstack/charm-cinder","language":"Python","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/openstack.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":"copyright","agents":null,"dco":null,"cla":null}},"created_at":"2016-03-01T07:53:52.000Z","updated_at":"2025-12-17T18:00:59.000Z","dependencies_parsed_at":"2023-02-12T22:15:27.781Z","dependency_job_id":"ed52baf2-af2a-445b-b9b4-36de3306b5a6","html_url":"https://github.com/openstack/charm-cinder","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/openstack/charm-cinder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fcharm-cinder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fcharm-cinder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fcharm-cinder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fcharm-cinder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openstack","download_url":"https://codeload.github.com/openstack/charm-cinder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fcharm-cinder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30112252,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T03:40:26.266Z","status":"ssl_error","status_checked_at":"2026-03-05T03:39:15.902Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":[],"created_at":"2024-11-13T18:16:02.311Z","updated_at":"2026-03-05T06:33:04.496Z","avatar_url":"https://github.com/openstack.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\n\nThe cinder charm deploys [Cinder][upstream-cinder], the Block Storage (volume)\nservice for OpenStack. The charm works alongside other Juju-deployed OpenStack\nservices.\n\n# Usage\n\n## Configuration\n\nTo display all configuration option information run `juju config\n\u003capplication\u003e`. If the application is not deployed then see the charm's\n[Configure tab][cinder-configure] in the Charmhub. Finally, the [Juju\ndocumentation][juju-docs-config-apps] provides general guidance on configuring\napplications.\n\n## Deployment\n\nThe cinder application requires the following applications to be present:\nkeystone, nova-cloud-controller, nova-compute, rabbitmq-server, and a cloud\ndatabase.\n\nThe database application is determined by the series. Prior to focal\n[percona-cluster][percona-cluster-charm] is used, otherwise it is\n[mysql-innodb-cluster][mysql-innodb-cluster-charm]. In the example deployment\nbelow mysql-innodb-cluster has been chosen.\n\nDeploy Cinder itself (here, to a container on machine '1'), add relations to\nthe core cloud applications, and then connect it to the cloud database:\n\n    juju deploy --to lxd:1 --config cinder.yaml cinder\n    juju add-relation cinder:identity-service keystone:identity-service\n    juju add-relation cinder:cinder-volume-service nova-cloud-controller:cinder-volume-service\n    juju add-relation cinder:amqp rabbitmq-server:amqp\n\n    juju deploy mysql-router cinder-mysql-router\n    juju add-relation cinder-mysql-router:db-router mysql-innodb-cluster:db-router\n    juju add-relation cinder-mysql-router:shared-db cinder:shared-db\n\nMultiple backend storage solutions are described next.\n\n### Ceph-backed storage\n\nCinder can be backed by Ceph, which is the recommended storage method for\nproduction Cinder deployments. This functionality is provided by the\n[cinder-ceph][cinder-ceph-charm] subordinate charm.\n\n### LVM-backed storage\n\nCinder can be backed by storage local to the cinder unit, where local block\ndevices are used as LVM physical volumes, and volumes are offered via iSCSI.\nThis functionality is provided by the [cinder-lvm][cinder-lvm-charm]\nsubordinate charm.\n\n\u003e **Note**: Built-in support for LVM in the cinder charm is deprecated.\n\n### NetApp-backed storage\n\nCinder can be backed by a NetApp appliance local to the cinder unit, where\nvolumes are offered via iSCSI or NFS. This functionality is provided by the\n[cinder-netapp][cinder-netapp-charm] subordinate charm.\n\n### Pure Storage-backed storage\n\nCinder can be backed by a Pure Storage appliance reachable by its API endpoint.\nThis functionality is provided by the\n[cinder-purestorage][cinder-purestorage-charm] subordinate charm.\n\n## Separate Volume Service\n\nFor certain operations when an instance is not involved, the cinder application\nwill connect directly to the storage for operations such as cloning a volume\nfrom a glance image. You can deploy a second cinder application for the volume\nservice only where the primary cinder application cannot connect to this\nstorage. This may be required for iSCSI connections because LXD containers\ncannot create iSCSI connections or where you need a physical Fibre Channel\nconnection. This is not required for Ceph deployments which use userspace RBD\ntools.\n\n1. Deploy cinder with enabled-services=api,scheduler\n2. Deploy a second application of cinder named 'cinder-volume' with\n   enabled-services=volume\n3. Relate the storage subordinate (e.g. cinder-purestorage) to the\n   cinder-volume application only (not to the 'cinder' application)\n4. Keystone should be related to cinder:identity-__service__ but\n   cinder-volume:identity-__credentials__\n\n   The primary cinder application gets keystone credentials when registering a\n   service endpoint via the identity-service relation. The cinder-volume\n   application does not register a service, so we need to relate\n   identity-credentials instead. The image volume cache will not work without\n   this relation.\n5. Both cinder and cinder-volume should otherwise have the same relations\n\n## High availability\n\nThis charm supports high availability via HAcluster.\n\nWhen more than one unit is deployed with the [hacluster][hacluster-charm]\napplication the charm will bring up an HA active/active cluster.\n\n## Network spaces\n\nThis charm supports the use of Juju [network spaces][juju-docs-spaces] (Juju\n`v.2.0`). This feature optionally allows specific types of the application's\nnetwork traffic to be bound to subnets that the underlying hardware is\nconnected to.\n\n\u003e **Note**: Spaces must be configured in the backing cloud prior to deployment.\n\nAPI endpoints can be bound to distinct network spaces supporting the network\nseparation of public, internal, and admin endpoints.\n\nAccess to the underlying MySQL instance can also be bound to a specific space\nusing the shared-db relation.\n\nFor example, providing that spaces 'public-space', 'internal-space', and\n'admin-space' exist, the deploy command above could look like this:\n\n    juju deploy --config cinder.yaml cinder \\\n       --bind \"public=public-space internal=internal-space admin=admin-space shared-db=internal-space\"\n\nAlternatively, configuration can be provided as part of a bundle:\n\n```yaml\n    cinder:\n      charm: cs:cinder\n      num_units: 1\n      bindings:\n        public: public-space\n        internal: internal-space\n        admin: admin-space\n        shared-db: internal-space\n```\n\n\u003e **Note**: Existing cinder units configured with the `os-admin-network`,\n  `os-internal-network`, or `os-public-network` options will continue to honour\n  them. Furthermore, these options override any space bindings, if set.\n\n## Actions\n\nThis charm supports actions.\n\n[Actions][juju-docs-actions] allow specific operations to be performed on a\nper-unit basis. To display actions and their descriptions run `juju actions\n--schema \u003capplication\u003e`. If the application is not deployed then see the\ncharm's [Actions tab][cinder-actions] in the Charmhub.\n\n## Policy overrides\n\nThis charm supports the policy overrides feature.\n\nPolicy overrides allow an operator to override the default policy of an\nOpenStack service. See [Policy overrides][cg-policy-overrides] for more\ninformation on this feature.\n\n# Documentation\n\nThe OpenStack Charms project maintains two documentation guides:\n\n* [OpenStack Charm Guide][cg]: the primary source of information for\n  OpenStack charms\n* [OpenStack Charms Deployment Guide][cdg]: a step-by-step guide for\n  deploying OpenStack with charms\n\n# Bugs\n\nPlease report bugs on [Launchpad][cinder-filebug].\n\n\u003c!-- LINKS --\u003e\n\n[cg]: https://docs.openstack.org/charm-guide\n[cdg]: https://docs.openstack.org/project-deploy-guide/charm-deployment-guide\n[cg-policy-overrides]: https://docs.openstack.org/charm-guide/latest/admin/policy-overrides.html\n[juju-docs-spaces]: https://juju.is/docs/olm/network-spaces\n[juju-docs-actions]: https://juju.is/docs/olm/working-with-actions\n[cinder-actions]: https://charmhub.io/cinder/actions\n[juju-docs-config-apps]: https://juju.is/docs/olm/configure-an-application\n[cinder-configure]: https://charmhub.io/cinder/configure\n[cinder-filebug]: https://bugs.launchpad.net/charm-cinder/+filebug\n[lp-bug-1862392]: https://bugs.launchpad.net/charm-cinder/+bug/1862392\n[hacluster-charm]: https://charmhub.io/hacluster\n[cinder-lvm-charm]: https://charmhub.io/cinder-lvm\n[cinder-netapp-charm]: https://charmhub.io/cinder-netapp\n[cinder-purestorage-charm]: https://charmhub.io/cinder-purestorage\n[percona-cluster-charm]: https://charmhub.io/percona-cluster\n[mysql-innodb-cluster-charm]: https://charmhub.io/mysql-innodb-cluster\n[upstream-cinder]: https://docs.openstack.org/cinder/latest/\n[juju-docs-config-apps]: https://juju.is/docs/configuring-applications\n[wiki-uca]: https://wiki.ubuntu.com/OpenStack/CloudArchive\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenstack%2Fcharm-cinder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenstack%2Fcharm-cinder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenstack%2Fcharm-cinder/lists"}