{"id":20111311,"url":"https://github.com/openstack/puppet-cinder","last_synced_at":"2025-04-04T16:12:50.131Z","repository":{"id":7855943,"uuid":"9227997","full_name":"openstack/puppet-cinder","owner":"openstack","description":"OpenStack Cinder Puppet Module. Mirror of code maintained at opendev.org.","archived":false,"fork":false,"pushed_at":"2025-03-14T16:06:06.000Z","size":2862,"stargazers_count":57,"open_issues_count":0,"forks_count":75,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-03-17T23:56:54.150Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://opendev.org/openstack/puppet-cinder","language":"Puppet","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":"CHANGELOG.md","contributing":"CONTRIBUTING.rst","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":"2013-04-04T21:03:37.000Z","updated_at":"2025-03-14T16:06:10.000Z","dependencies_parsed_at":"2023-10-11T06:43:12.023Z","dependency_job_id":"ea7e8d12-e927-47cf-8483-c49736736247","html_url":"https://github.com/openstack/puppet-cinder","commit_stats":null,"previous_names":[],"tags_count":138,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fpuppet-cinder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fpuppet-cinder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fpuppet-cinder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fpuppet-cinder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openstack","download_url":"https://codeload.github.com/openstack/puppet-cinder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247208140,"owners_count":20901570,"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-13T18:15:30.717Z","updated_at":"2025-04-04T16:12:50.115Z","avatar_url":"https://github.com/openstack.png","language":"Puppet","funding_links":[],"categories":[],"sub_categories":[],"readme":"Team and repository tags\n========================\n\n[![Team and repository tags](https://governance.openstack.org/tc/badges/puppet-cinder.svg)](https://governance.openstack.org/tc/reference/tags/index.html)\n\n\u003c!-- Change things from this point on --\u003e\n\ncinder\n======\n\n#### Table of Contents\n\n1. [Overview - What is the cinder module?](#overview)\n2. [Module Description - What does the module do?](#module-description)\n3. [Setup - The basics of getting started with cinder](#setup)\n4. [Implementation - An under-the-hood peek at what the module is doing](#implementation)\n5. [Limitations - OS compatibility, etc.](#limitations)\n6. [Development - Guide for contributing to the module](#development)\n7. [Contributors - Those with commits](#contributors)\n8. [Release Notes - Release notes for the project](#release-notes)\n9. [Repository - The project source code repository](#repository)\n\nOverview\n--------\n\nThe cinder module is a part of [OpenStack](https://opendev.org/openstack),\nan effort by the OpenStack infrastructure team to provide continuous\nintegration testing and code review for OpenStack and OpenStack community\nprojects as part of the core software. The module its self is used to flexibly\nconfigure and manage the block storage service for OpenStack.\n\nModule Description\n------------------\n\nThe cinder module is a thorough attempt to make Puppet capable of managing\nthe entirety of cinder. This includes manifests to provision such things as\nkeystone endpoints, RPC configurations specific to cinder, and database\nconnections. Types are shipped as part of the cinder module to assist in\nmanipulation of configuration files.\n\nThis module is tested in combination with other modules needed to build\nand leverage an entire OpenStack software stack.\n\nSetup\n-----\n\n**What the cinder module affects**\n\n* [Cinder](https://docs.openstack.org/cinder/latest/), the block storage service\n  for OpenStack.\n\n### Installing cinder\n\n    puppet module install openstack/cinder\n\n### Beginning with cinder\n\nTo utilize the cinder module's functionality you will need to declare\nmultiple resources. This is not an exhaustive list of all the components\nneeded, we recommend you consult and understand the\n[core OpenStack](https://docs.openstack.org) documentation.\n\n**Define a cinder control node**\n\n```puppet\nclass { 'cinder':\n  database_connection   =\u003e 'mysql://cinder:secret_block_password@openstack-controller.example.com/cinder',\n  default_transport_url =\u003e 'rabbit://cinder:secret_password@openstack-controller.example.com:5672',\n}\n\nclass { 'cinder::api':\n  keystone_password       =\u003e $keystone_password,\n  keystone_user           =\u003e $keystone_user,\n  keystone_auth_uri       =\u003e $keystone_auth_uri,\n  service_port            =\u003e $keystone_service_port,\n  package_ensure          =\u003e $cinder_api_package_ensure,\n  bind_host               =\u003e $cinder_bind_host,\n  enabled                 =\u003e $cinder_api_enabled,\n}\n\nclass { 'cinder::scheduler': }\n```\n\n**Define a cinder storage node**\n\n```puppet\nclass { 'cinder':\n  database_connection   =\u003e 'mysql://cinder:secret_block_password@openstack-controller.example.com/cinder',\n  default_transport_url =\u003e 'rabbit://cinder:secret_password@openstack-controller.example.com:5672',\n}\n\nclass { 'cinder::volume': }\n\ncinder::backend::iscsi {\n  'iscsi_example':\n    target_ip_address =\u003e '10.0.0.2',\n}\n```\n\n**Define a cinder storage node with multiple backends **\n\n```puppet\nclass { 'cinder':\n  database_connection   =\u003e 'mysql://cinder:secret_block_password@openstack-controller.example.com/cinder',\n  default_transport_url =\u003e 'rabbit://cinder:secret_password@openstack-controller.example.com:5672',\n}\n\nclass { 'cinder::volume': }\n\ncinder::backend::iscsi {'iscsi1':\n  target_ip_address =\u003e '10.0.0.2',\n}\n\ncinder::backend::iscsi {'iscsi2':\n  target_ip_address =\u003e '10.0.0.3',\n}\n\ncinder::backend::iscsi {'iscsi3':\n  target_ip_address   =\u003e '10.0.0.4',\n  volume_backend_name =\u003e 'iscsi',\n}\n\ncinder::backend::iscsi {'iscsi4':\n  target_ip_address   =\u003e '10.0.0.5',\n  volume_backend_name =\u003e 'iscsi',\n}\n\ncinder::backend::rbd {'rbd-images':\n  rbd_pool =\u003e 'images',\n  rbd_user =\u003e 'images',\n}\n\ncinder_type {'iscsi':\n  ensure     =\u003e present,\n  properties =\u003e ['volume_backend_name=iscsi,iscsi1,iscsi2'],\n}\n\ncinder_type {'rbd-images':\n  ensure     =\u003e present,\n  properties =\u003e ['volume_backend_name=rbd-images'],\n}\n\nclass { 'cinder::backends':\n  enabled_backends =\u003e ['iscsi1', 'iscsi2', 'rbd-images']\n}\n```\n\nNote: that the name passed to any backend resource must be unique across all\n      backends otherwise a duplicate resource will be defined.\n\n** Using cinder_type **\n\nCinder allows for the usage of type to set extended information that can be\nused for various reasons. We have resource provider for ``cinder_type``\nand if you want create some cinder type, you should set ensure to absent.\nProperties field is optional and should be an array. All items of array\nshould match pattern key=value1[,value2 ...]. In case when you want to\ndelete some type - set ensure to absent.\n\n\nImplementation\n--------------\n\n### cinder\n\ncinder is a combination of Puppet manifest and ruby code to delivery\nconfiguration and extra functionality through types and providers.\n\n### Types\n\n#### cinder_config\n\nThe `cinder_config` provider is a children of the ini_setting provider.\nIt allows one to write an entry in the `/etc/cinder/cinder.conf` file.\n\n```puppet\ncinder_config { 'DEFAULT/api_paste_config' :\n  value =\u003e '/etc/cinder/api-paste.ini',\n}\n```\n\nThis will write `api_paste_config=/etc/cinder/api-paste.ini` in the `[DEFAULT]` section.\n\n##### name\n\nSection/setting name to manage from `cinder.conf`\n\n##### value\n\nThe value of the setting to be defined.\n\n##### secret\n\nWhether to hide the value from Puppet logs. Defaults to `false`.\n\n##### ensure_absent_val\n\nIf value is equal to ensure_absent_val then the resource will behave as if\n`ensure =\u003e absent` was specified. Defaults to `\u003cSERVICE DEFAULT\u003e`\n\nLimitations\n-----------\n\n* Setup of storage nodes is limited to Linux and LVM, i.e. Puppet won't\n  configure a Nexenta appliance but nova can be configured to use the Nexenta\n  driver with Class['cinder::volume::nexenta'].\n\nDevelopment\n-----------\n\nDeveloper documentation for the entire puppet-openstack project.\n\n* https://docs.openstack.org/puppet-openstack-guide/latest/\n\nContributors\n------------\n\n* https://github.com/openstack/puppet-cinder/graphs/contributors\n\nRelease Notes\n-------------\n\n* https://docs.openstack.org/releasenotes/puppet-cinder\n\nRepository\n----------\n\n* https://opendev.org/openstack/puppet-cinder\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenstack%2Fpuppet-cinder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenstack%2Fpuppet-cinder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenstack%2Fpuppet-cinder/lists"}