{"id":28376034,"url":"https://github.com/purestorage-openconnect/tripleo-deployment-configs","last_synced_at":"2025-09-19T01:46:05.346Z","repository":{"id":46249885,"uuid":"72655195","full_name":"PureStorage-OpenConnect/tripleo-deployment-configs","owner":"PureStorage-OpenConnect","description":"Files required for RHEL OpenStack Platform Cinder integration for Pure Storage FlashArray","archived":false,"fork":false,"pushed_at":"2025-06-19T16:14:02.000Z","size":3489,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-18T15:52:58.406Z","etag":null,"topics":["openstack","openstack-cinder","purestorage","tripleo"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","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/PureStorage-OpenConnect.png","metadata":{"files":{"readme":"README.rst","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}},"created_at":"2016-11-02T15:46:19.000Z","updated_at":"2025-06-19T16:14:05.000Z","dependencies_parsed_at":"2025-06-26T08:33:22.195Z","dependency_job_id":"b68433cc-c2b1-4648-9e0a-6d34e94c15b3","html_url":"https://github.com/PureStorage-OpenConnect/tripleo-deployment-configs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PureStorage-OpenConnect/tripleo-deployment-configs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PureStorage-OpenConnect%2Ftripleo-deployment-configs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PureStorage-OpenConnect%2Ftripleo-deployment-configs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PureStorage-OpenConnect%2Ftripleo-deployment-configs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PureStorage-OpenConnect%2Ftripleo-deployment-configs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PureStorage-OpenConnect","download_url":"https://codeload.github.com/PureStorage-OpenConnect/tripleo-deployment-configs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PureStorage-OpenConnect%2Ftripleo-deployment-configs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275867607,"owners_count":25542801,"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","status":"online","status_checked_at":"2025-09-18T02:00:09.552Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["openstack","openstack-cinder","purestorage","tripleo"],"created_at":"2025-05-30T00:05:03.583Z","updated_at":"2025-09-19T01:46:05.316Z","avatar_url":"https://github.com/PureStorage-OpenConnect.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"**NOTE: All RHOSO18 Documentation is located** `here \u003chttps://pure-storage-openstack-docs.readthedocs.io/en/latest/cinder/configuration/cinder_config_files/section_rhoso180_flasharray_configuration.html\u003e`_.\r\n\r\nIntroduction\r\n============\r\n\r\nThis document covers the configuration process required to enable a\r\nsingle Pure Storage array to be used as an iSCSI or Fibre Channel \r\nCinder Block Storage backend in Red Hat OpenStack Platform distributions.\r\n\r\nThe following items are assumed by this document:\r\n\r\n-  Ensure your Red Hat OpenStack Platform Overcloud has been correctly\r\n   deployed through the Director, with a correctly functioning Block\r\n   Storage service.\r\n\r\n-  Your Pure Storage Array should be available in the cloud management\r\n   network or routed to the cloud management network with the Pure\r\n   Storage iSCSI ports correctly configured, if using this protocol.\r\n\r\n-  The Pure Storage management IP must have connectivity from the Cinder\r\n   Volume Service controller.\r\n\r\n-  The Pure Storage iSCSI ports (if applicable) must have connectivity\r\n   from the Cinder Volume Service controller and all compute nodes.\r\n\r\n-  You have obtained a privileged API token from the Pure Storage\r\n   FlashArray that will be used by OpenStack Cinder Volume service.\r\n\r\nWhen RHEL OpenStack Platform is deployed through the Director, all\r\nmajor Overcloud settings must be defined and orchestrated through the\r\nDirector as well. This will ensure that the settings persist through any\r\nOvercloud updates.\r\n\r\nThis document will not discuss the different deployment configurations\r\npossible with the backend. To learn more about these see the OpenStack\r\nBest Practises documents provided by Pure Storage.\r\n\r\nConfigure Pure Storage as a Cinder backend\r\n==========================================\r\n\r\nRHEL OpenStack Platform includes all the drivers and puppet manifests\r\nrequired for the Pure Storage FlashArray, however, there are a number of\r\nenvironment files required to be added to your Undercloud for full\r\nintegration of the FlashArray into your Overcloud.\r\n\r\nThe YAML environment files required can be found on the Pure Storage OpenConnect\r\nGitHub repository\r\nhttps://github.com/PureStorage-OpenConnect/tripleo-deployment-configs.\r\nSelect the correct sub-directory for the deployment version you are using.\r\n\r\nRHOSP 8 and 9\r\n=============\r\n\r\n**NOTE: Red Hat OpenStack Platform 8 and 9 are no longer supported by Red Hat or Pure Storage.**\r\n\r\nObtain the YAML files from this repository and copy into the following\r\nlocations in your Undercloud:\r\n\r\n- ``pure-controller-temp.yaml``, ``pure-temp.yaml`` and ``cinder-pure-config.yaml`` into ``~stack/templates/``\r\n\r\n- ``cinder-pure.yaml`` into ``/usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/pre_deploy/controller/``\r\n\r\nRHOSP 10\r\n========\r\n\r\n**NOTE: Red Hat OpenStack Platform 10 is still supported by Red Hat and Pure Storage.**\r\n\r\n**Red Hat Openstack 10 is only supported with Red Hat Enterprise Linux 7.7**\r\n\r\n**Red Hat and Pure Storage will not support Red Hat Openstack 10 after December 15, 2021.**\r\n\r\nObtain the YAML files from this repository and copy into the following\r\nlocations in your Undercloud:\r\n\r\n- ``pure-controller-temp.yaml``, ``pure-temp.yaml`` and ``cinder-pure-config.yaml`` into ``~stack/templates/``\r\n\r\n- ``cinder-pure.yaml`` into ``/usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/pre_deploy/controller/``\r\n\r\nRHOSP 13\r\n========\r\n\r\n**NOTE: Red Hat OpenStack Platform 13 went End of Life on June 27, 2021 and entered Extended Support at this date. RHOSP 13 will not be supported by Red Hat or Pure Storage after June 27, 2023.**\r\n\r\nCopy the YAML files from this subdirectory into the following\r\nlocations in your Undercloud:\r\n\r\n- ``pure-temp.yaml`` and ``cinder-pure-config.yaml`` into ``~stack/templates/``\r\n\r\nUse the ``Dockerfile`` to create a Pure Storage specific Cinder Volume\r\ncontainer::\r\n\r\n  $ docker build .\r\n\r\nThis newly created image can then be pushed to a registry that has been configured\r\nas the sources of images to be used by the RHOSP deployment.\r\n\r\nRed Hat Certified versions of these containers can also be used. These can be found\r\nin the Red Hat Container Catalog. See https://catalog.redhat.com/software/containers/search?q=pure\u0026p=1\r\n\r\nEdit the overcloud container images environment file (usually\r\n``overcloud_images.yaml``, created when using the\r\n``openstack overcloud container image prepare`` command) and change the\r\nappropriate parameter to use the custom container image.\r\n\r\nRHOSP 14 and 15\r\n===============\r\n\r\n**NOTE: Red Hat OpenStack Platform 14 and 15 are no longer supported by Red Hat or Pure Storage.**\r\n\r\nCopy the YAML files from this subdirectory into the following\r\nlocations in your Undercloud:\r\n\r\n- ``pure-temp.yaml`` and ``cinder-pure-config.yaml`` into ``~stack/templates/``\r\n\r\nUse the ``Dockerfile`` to create a Pure Storage specific Cinder Volume\r\ncontainer::\r\n\r\n  $ docker build .\r\n\r\nThis newly created image can then be pushed to a registry that has been configured\r\nas the sources of images to be used by the RHOSP deployment.\r\n\r\nRed Hat Certified versions of these containers can also be used. These can be found\r\nin the Red Hat Container Catalog. See https://catalog.redhat.com/software/containers/search?q=pure\u0026p=1\r\n\r\nEdit the overcloud container images environment file (usually\r\n``overcloud_images.yaml``, created when using the\r\n``openstack overcloud container image prepare`` command) and change the\r\nappropriate parameter to use the custom container image.\r\n\r\nRHOSP 16 (RHEL8)\r\n================\r\n\r\n**NOTE:**\r\n\r\n**Red Hat Openstack 16.0 is no longer supported by Red Hat and Pure Storage.**\r\n\r\n**Red Hat OpenStack 16.1 is only supported with Red Hat Enterprise Linux 8.2. Red Hat and Pure Storage will not support Red Hat Openstack 16.1 with Red Hat Enterprise Linux 8.2 after April 30, 2024**\r\n\r\n**Red Hat OpenStack 16.2 is only supported with Red Hat Enterprise Linux 8.4.**\r\n\r\nCopy the YAML files from this subdirectory into the following\r\nlocations in your Undercloud:\r\n\r\n- ``pure-temp.yaml`` and ``cinder-pure-config.yaml`` into ``~stack/templates/``\r\n\r\nUse the ``Dockerfile`` to create a Pure Storage specific Cinder Volume\r\ncontainer::\r\n\r\n  $ sudo buildah bud . -t \"openstack-cinder-volume-pure:latest\"\r\n\r\nThis newly created image can then be pushed to a local registry that has been configured\r\nas the sources of images to be used by the RHOSP deployment::\r\n\r\n  $ sudo openstack tripleo container image push --local \u003cregistry:port\u003e/\u003cdirectory\u003e/openstack-cinder-volume-pure:latest\r\n\r\nRed Hat Certified versions of these containers can also be used. These can be found\r\nin the Red Hat Container Catalog. See https://catalog.redhat.com/software/containers/search?q=pure\u0026p=1\r\n\r\nEdit the overcloud container images environment file (usually\r\n``overcloud_images.yaml``, created when using the\r\n``openstack overcloud container image prepare`` command) and change the\r\nappropriate parameter to use the custom container image.\r\n\r\nRHOSP 17 (RHEL8)\r\n================\r\n\r\nCopy the YAML files from this subdirectory into the following\r\nlocations in your Undercloud:\r\n\r\n- ``pure-temp.yaml`` and ``cinder-pure-config.yaml`` into ``~stack/templates/``\r\n\r\nUse the ``Dockerfile`` to create a Pure Storage specific Cinder Volume\r\ncontainer::\r\n\r\n  $ sudo buildah bud . -t \"openstack-cinder-volume-pure:latest\"\r\n\r\nThis newly created image can then be pushed to a local registry that has been configured\r\nas the sources of images to be used by the RHOSP deployment::\r\n\r\n  $ sudo openstack tripleo container image push --local \u003cregistry:port\u003e/\u003cdirectory\u003e/openstack-cinder-volume-pure:latest\r\n\r\nRed Hat Certified versions of these containers can also be used. These can be found\r\nin the Red Hat Container Catalog. See https://catalog.redhat.com/software/containers/search?q=pure\u0026p=1\r\n\r\nEdit the overcloud container images environment file (usually\r\n``overcloud_images.yaml``, created when using the\r\n``openstack overcloud container image prepare`` command) and change the\r\nappropriate parameter to use the custom container image.\r\n\r\nAll versions - Configure the Environment File\r\n=============================================\r\n\r\nEdit ``~/templates/cinder-pure-config.yaml`` and populate it with your specific\r\nFlashArray data.\r\n\r\nIn the ``parameter_defaults`` section of this file add the management\r\nvirtual IP address of your FlashArray into the ``CinderPureSanIp`` parameter\r\nand the API Token you had from your FlashArray into the\r\n``CinderPureAPIToken`` parameter.\r\n\r\nOptionally, you can configure your FlashArray to use the iSCSI CHAP\r\nsecurity protocol by changing the default parameter setting of false to\r\nbe true in the parameter ``CinderPureUseChap``.\r\n\r\nMultiple Backends\r\n#################\r\n\r\nIf you wish to create multiple Pure backends then use ``CinderPureMultiConfig``\r\nwhen modifying the ``~/templates/cinder-pure-config.yaml`` as follows:::\r\n\r\n   parameter_defaults:\r\n     CinderPureBackendName:\r\n       - tripleo_pure_1\r\n       - tripleo_pure_2\r\n     CinderPureStorageProtocol: 'iSCSI' # Default value for all Pure backends\r\n     CinderPureUseChap: false # Default value for the Pure backends\r\n     CinderPureMultiConfig:\r\n       tripleo_pure_1:\r\n         CinderPureSanIp: '10.0.0.1'\r\n         CinderPureAPIToken: 'secret'\r\n       tripleo_pure_2:\r\n         CinderPureSanIp: '10.0.0.2'\r\n         CinderPureAPIToken: 'anothersecret'\r\n         CinderPureUseChap: true # Specific value for this backend\r\n\r\n\r\nRequirements\r\n============\r\n\r\nTo deploy the Pure Storage FlashArray Cinder driver you must meet the following\r\nrequirements:\r\n\r\n- Pure Storage FlashArrays deployed and ready to be used as Cinderbackends\r\n- RHOSP Director user credentials to deploy the Overcloud\r\n- RHOSP Overcloud Controller nodes where the Cinder services will be installed  \r\n\r\nDeploying the Configured Backend\r\n================================\r\n\r\nTo deploy the single backend configured above, first, log in as the\r\nstack user to the Undercloud. Then deploy the backend (defined in the\r\nedited ``~/templates/cinder-pure-config.yaml``) by running the\r\n``openstack overcloud deploy`` with the required switches for your\r\ndeployment version together with an additonal templates file defined\r\nby ``–e ~/templates/cinder-pure-config.yaml``::\r\n\r\n  $ openstack overcloud deploy --templates -e ~/templates/cinder-pure-config.yaml\r\n\r\nIf you passed any extra environment files when you created the Overcloud\r\nyou must pass them again here using the ``–e`` option to avoid making\r\nundesired changes to the Overcloud.\r\n\r\nTest the Configured Backend\r\n===========================\r\n\r\nAfter deploying the backend, test whether you can successfully create\r\nvolumes on it. Doing so will require loading the necessary environment\r\nvariables first. These variables are defined in ``/home/stack/overcloudrc``\r\nby default.\r\n\r\nTo load these variables, run the following command as the stack user::\r\n\r\n  $ source /home/stack/overcloudrc\r\n\r\nYou should now be logged into the Controller node. From there you can\r\ncreate a *volume type*, which can be used to specify the back end you\r\nwant to use (in this case the newly-defined backend). This is required\r\nin an OpenStack deployment where you have other backends enabled.\r\n\r\nTo create a volume type named pure, run::\r\n\r\n  $ cinder type-create pure\r\n\r\nNext, map this volume type to the backend defined above and given the\r\nbackend name ``tripleo_pure`` (as defined in through the\r\n**CinderPureBackendName** parameter) by running::\r\n\r\n  $ cinder type-key pure set volume_backend_name=tripleo_pure\r\n\r\nYou should now be able to create a 2GB volume on your newly defined\r\nbackend by invoking its volume type. To do this run::\r\n\r\n  $ cinder create --volume-type pure 2\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpurestorage-openconnect%2Ftripleo-deployment-configs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpurestorage-openconnect%2Ftripleo-deployment-configs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpurestorage-openconnect%2Ftripleo-deployment-configs/lists"}