diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 849b4c1..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.build -*.swp -*.rpm diff --git a/LICENSE b/LICENSE deleted file mode 100644 index e06d208..0000000 --- a/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ -Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/README.md b/README.md deleted file mode 100644 index 6735c61..0000000 --- a/README.md +++ /dev/null @@ -1,47 +0,0 @@ -SwiftStack Plugin for Fuel -========================== - - -Overview --------- - -SwiftStack plugin for Fuel provides the functionality to integrate SwiftStack -Swift cluster for Mirantis OpenStack as object storage backend option. - - -Requirements ------------- - -| Requirement | Version/Comment | -|--------------------------------|-----------------| -| Mirantis OpenStack compatility | 8.0 or higher | -| A running SwiftStack Swift cluster | all versions, the `Keystone Auth` and `'Keystone Auth Token Support` middlewares must be enable | - - -Limitations ------------ - -The plugin is only support integration a running SwiftStack Swift cluster in first stage. - - -Build Fuel plugin ------------------ - -``` -# Create a virtualenv for Fuel to build plugin -$ sudo apt-get install python-dev python-pip python-virtualenv -$ virtualenv fuel - -# Clone fule-plugin-builder and SwiftStack Swift Fuel plugin -$ git clone https://github.com/openstack/fuel-plugins -$ git clone https://github.com/openstack/fuel-plugin-swiftstack - -$ source fuel/bin/activate -(fuel) $ cd fuel-plugins/fuel_plugin_builder/ -(fuel) fuel-plugins/fuel_plugin_builder $ pip install -e . - -(fuel) $ cd fuel_plugin_swiftstack/ -(fuel) fuel_plugin_swiftstack $ fpb --build ./ -Plugin is built -``` - diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..86e34d6 --- /dev/null +++ b/README.rst @@ -0,0 +1,10 @@ +This project is no longer maintained. + +The contents of this repository are still available in the Git +source code management system. To see the contents of this +repository before it reached its end of life, please check out the +previous commit with "git checkout HEAD^1". + +For any further questions, please email +openstack-discuss@lists.openstack.org or join #openstack-dev on +Freenode. diff --git a/deployment_scripts/puppet/manifests/sscluster-glance.pp b/deployment_scripts/puppet/manifests/sscluster-glance.pp deleted file mode 100755 index 417f772..0000000 --- a/deployment_scripts/puppet/manifests/sscluster-glance.pp +++ /dev/null @@ -1,49 +0,0 @@ -notice('MODULAR: SwiftStack Swift cluster integration/sscluster-glance.pp') - -$swiftstack = hiera_hash('swiftstack', {}) - -if $swiftstack['metadata']['enabled'] { - - # Plugin options - $swift_as_glance_backend = $swiftstack['swift_as_glance_backend'] - - $glance_hash = hiera_hash('glance', {}) - $management_vip = hiera('management_vip') - $ssl_hash = hiera_hash('use_ssl', {}) - - # Glance options - $glance_user = pick($glance_hash['user'],'glance') - $glance_user_password = $glance_hash['user_password'] - $glance_tenant = pick($glance_hash['tenant'],'services') - $region = hiera('region','RegionOne') - - $internal_auth_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'protocol', 'http') - $internal_auth_address = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'hostname', [hiera('service_endpoint', ''), $management_vip]) - - $auth_uri = "${internal_auth_protocol}://${internal_auth_address}:5000/" - - if $swift_as_glance_backend { - notice("Switch Glance backend to Swift Cluster") - - class { 'glance::backend::swift': - swift_store_user => "${glance_tenant}:${glance_user}", - swift_store_key => $glance_user_password, - swift_store_create_container_on_put => 'True', - swift_store_auth_address => "${auth_uri}/v2.0/", - swift_store_region => $region, - } - glance_api_config { - 'glance_store/stores': value => 'glance.store.swift.Store'; - } - Class['glance::backend::swift'] -> - Glance_api_config['glance_store/stores'] ~> - Service['glance-api'] - } - - notice("Start Glance API Service") - service { 'glance-api': - ensure => "running", - hasrestart => true, - hasstatus => true, - } -} diff --git a/deployment_scripts/puppet/manifests/sscluster-keystone.pp b/deployment_scripts/puppet/manifests/sscluster-keystone.pp deleted file mode 100755 index 6a9556a..0000000 --- a/deployment_scripts/puppet/manifests/sscluster-keystone.pp +++ /dev/null @@ -1,50 +0,0 @@ -notice('MODULAR: SwiftStack Swift cluster integration/sscluster-keystone.pp') - -$swiftstack = hiera_hash('swiftstack', {}) - -if $swiftstack['metadata']['enabled'] { - - # Plugin options - $swift_api_address = $swiftstack['swift_api_address'] - $swift_api_fqdn = $swiftstack['swift_api_fqdn'] - $swift_tls_enabled = pick($swiftstack['swift_tls_enabled'], false) - $swift_endpoint_prefix = pick($swiftstack['swift_endpoint_prefix'], 'KEY') - - $swift_hash = hiera_hash('swift', {}) - - # swift_hash options - $password = $swift_hash['user_password'] - $auth_name = pick($swift_hash['auth_name'], 'swift') - $configure_endpoint = pick($swift_hash['configure_endpoint'], true) - $service_name = pick($swift_hash['service_name'], 'swift') - $tenant = pick($swift_hash['tenant'], 'services') - $region = pick($swift_hash['region'], hiera('region', 'RegionOne')) - - $api_address = pick($swift_api_fqdn, $swift_api_address) - - if $swift_tls_enabled { - $swift_protocol = 'https' - $swift_port = pick($swiftstack['port'], 443) - } - else { - $swift_protocol = 'http' - $swift_port = pick($swiftstack['port'], 80) - } - $swift_url = "${swift_protocol}://${api_address}:${swift_port}/v1/${swift_endpoint_prefix}_%(tenant_id)s" - $swift_s3_url = "${swift_protocol}://${api_address}:${swift_port}" - - class { '::swift::keystone::auth': - password => $password, - auth_name => $auth_name, - configure_endpoint => $configure_endpoint, - service_name => $service_name, - public_url => $swift_url, - internal_url => $swift_url, - admin_url => $swift_url, - public_url_s3=> $swift_s3_url, - internal_url_s3 => $swift_s3_url, - admin_url_s3 => $swift_s3_url, - region => $region, - tenant => $tenant, - } -} diff --git a/deployment_scripts/puppet/manifests/sscluster-tls-setup.pp b/deployment_scripts/puppet/manifests/sscluster-tls-setup.pp deleted file mode 100755 index 8f32b0c..0000000 --- a/deployment_scripts/puppet/manifests/sscluster-tls-setup.pp +++ /dev/null @@ -1,76 +0,0 @@ -notice('MODULAR: SwiftStack Swift cluster integration/sscluster-tls-setup.pp') - -$swiftstack = hiera_hash('swiftstack', {}) - -if $swiftstack['metadata']['enabled'] { - - # Plugin options - $swift_api_address = $swiftstack['swift_api_address'] - $swift_api_fqdn = $swiftstack['swift_api_fqdn'] - $swift_tls_enabled = pick($swiftstack['swift_tls_enabled'], false) - $swift_tls_cert = $swiftstack['swift_tls_cert'] - $swift_modify_hosts = $swiftstack['swift_modify_hosts'] - - if $swift_modify_hosts and !empty($swift_api_fqdn) { - host { $swift_api_fqdn: - name => $swift_api_fqdn, - ensure => present, - ip => $swift_api_address, - } - } - - # Add TLS certificate - - File { - owner => 'root', - group => 'root', - mode => '0644', - } - - if $swift_tls_enabled and !empty($swift_tls_cert) { - Exec { - path => '/bin:/usr/bin:/sbin:/usr/sbin', - } - - case $::osfamily { - 'RedHat': { - file { '/etc/pki/ca-trust/source/anchors/swiftstack.pem': - ensure => file, - content => $swift_tls_cert['content'], - notify => Exec['enable_trust'], - } - - exec { 'enable_trust': - command => 'update-ca-trust force-enable', - refreshonly => true, - notify => Exec['add_trust_redhat'], - } - - exec { 'add_trust_redhat': - command => 'update-ca-trust extract', - refreshonly => true, - } - } - - 'Debian': { - file { '/usr/local/share/ca-certificates/swiftstack.crt': - ensure => file, - content => $swift_tls_cert['content'], - notify => Exec['add_trust_debian'], - } - - exec { 'add_trust_debian': - command => 'update-ca-certificates', - refreshonly => true, - } - } - - default: { - fail("Unsupported OS: ${::osfamily}/${::operatingsystem}") - } - } - } - else { - notice("WARNING: you enabled TLS for SwiftStack plugin but did not specified self-signed certificate for adding to OS trust chain. Assuming usage of trusted SwiftStack cert") - } -} diff --git a/deployment_tasks.yaml b/deployment_tasks.yaml deleted file mode 100644 index ce7889c..0000000 --- a/deployment_tasks.yaml +++ /dev/null @@ -1,66 +0,0 @@ -- id: swift - version: 2.0.0 - type: skipped - -- id: primary-swift - version: 2.0.0 - type: skipped - -- id: openstack-haproxy-swift - version: 2.0.0 - type: skipped - -- id: swift-rebalance-cron - version: 2.0.0 - type: skipped - -- id: swift-keystone - version: 2.0.0 - type: skipped - -- id: swift_zone - version: 2.0.0 - type: skipped - -- id: upload_cirros - version: 2.0.0 - type: shell - role: [primary-controller] - condition: "settings:swiftstack.upload_cirros_test.value == true" - -- id: swiftstack-tls-setup - version: 2.0.0 - role: [primary-controller, controller, compute, compute-vmware, cinder, cinder-vmware, primary-mongo, mongo, ceph-osd, virt] - requires: [post_deployment_start] - required_for: [post_deployment_end] - type: puppet - parameters: - puppet_manifest: puppet/manifests/sscluster-tls-setup.pp - puppet_modules: puppet/modules:/etc/puppet/modules/ - timeout: 420 - -- id: swiftstack-configure-swift-endpoint - version: 2.0.0 - role: [primary-controller] - required_for: [post_deployment_end, swiftstack-enable-glance-backend] - requires: [post_deployment_start,swiftstack-tls-setup] - type: puppet - parameters: - puppet_manifest: puppet/manifests/sscluster-keystone.pp - puppet_modules: puppet/modules:/etc/puppet/modules/ - timeout: 420 - -- id: swiftstack-enable-glance-backend - version: 2.0.0 - role: [primary-controller, controller] - required_for: [post_deployment_end] - requires: [post_deployment_start, swiftstack-tls-setup] - cross-depends: - - name: swiftstack-configure-swift-endpoint - type: puppet - parameters: - puppet_manifest: puppet/manifests/sscluster-glance.pp - puppet_modules: puppet/modules:/etc/puppet/modules/ - timeout: 420 - - diff --git a/doc/Makefile b/doc/Makefile deleted file mode 100644 index 6e99431..0000000 --- a/doc/Makefile +++ /dev/null @@ -1,226 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) - $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don\'t have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source - -.PHONY: help -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " epub3 to make an epub3" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " coverage to run coverage check of the documentation (if enabled)" - -.PHONY: clean -clean: - rm -rf $(BUILDDIR)/* - -.PHONY: html -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -.PHONY: dirhtml -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -.PHONY: singlehtml -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -.PHONY: pickle -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -.PHONY: json -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -.PHONY: htmlhelp -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -.PHONY: qthelp -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/SwiftStackPluginforFuel80.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/SwiftStackPluginforFuel80.qhc" - -.PHONY: applehelp -applehelp: - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -.PHONY: devhelp -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/SwiftStackPluginforFuel80" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/SwiftStackPluginforFuel80" - @echo "# devhelp" - -.PHONY: epub -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -.PHONY: epub3 -epub3: - $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 - @echo - @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." - -.PHONY: latex -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -.PHONY: latexpdf -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - cp $(BUILDDIR)/latex/*.pdf . - mv test-plan.pdf TestPlanforSwiftStackFuelPlugin.pdf - mv test-report.pdf TestReportforSwiftStackFuelPlugin.pdf - -.PHONY: latexpdfja -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: text -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -.PHONY: man -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -.PHONY: texinfo -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -.PHONY: info -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -.PHONY: gettext -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -.PHONY: changes -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -.PHONY: linkcheck -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -.PHONY: doctest -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -.PHONY: coverage -coverage: - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -.PHONY: xml -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -.PHONY: pseudoxml -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/doc/SwiftStackPluginforFuel.pdf b/doc/SwiftStackPluginforFuel.pdf deleted file mode 100644 index 92122da..0000000 Binary files a/doc/SwiftStackPluginforFuel.pdf and /dev/null differ diff --git a/doc/TestPlanforSwiftStackFuelPlugin.pdf b/doc/TestPlanforSwiftStackFuelPlugin.pdf deleted file mode 100644 index fca976b..0000000 Binary files a/doc/TestPlanforSwiftStackFuelPlugin.pdf and /dev/null differ diff --git a/doc/TestReportforSwiftStackFuelPlugin.pdf b/doc/TestReportforSwiftStackFuelPlugin.pdf deleted file mode 100644 index 906b642..0000000 Binary files a/doc/TestReportforSwiftStackFuelPlugin.pdf and /dev/null differ diff --git a/doc/source/appendix.rst b/doc/source/appendix.rst deleted file mode 100644 index 47ecc62..0000000 --- a/doc/source/appendix.rst +++ /dev/null @@ -1,10 +0,0 @@ -Appendix -======== - -* SwiftStack Quick Start Guide: https://swiftstack.com/docs/install/index.html -* SwiftStack Admin Guide - Middleware: https://swiftstack.com/docs/admin/middleware.html -* SwiftStack Admin Guide - Keystone Auth Middleware: https://swiftstack.com/docs/admin/middleware/keystone_auth.html -* SwiftStack Admin Guide - Keystone Auth Token Middleware: https://swiftstack.com/docs/admin/middleware/keystone_auth_token.html -* SwiftStack Admin Guide - Swift S3 Emulation Layer Middleware: https://swiftstack.com/docs/admin/middleware/s3_middleware.html -* SwiftStack docs: https://swiftstack.com/docs/ - diff --git a/doc/source/conf.py b/doc/source/conf.py deleted file mode 100644 index 5bb8543..0000000 --- a/doc/source/conf.py +++ /dev/null @@ -1,305 +0,0 @@ -# -*- coding: utf-8 -*- -# -# SwiftStack Plugin for Fuel documentation build configuration file, created by -# sphinx-quickstart on Sun Apr 3 14:11:54 2016. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys -import datetime - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# source_suffix = ['.rst', '.md'] -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' -plugin_guide = 'plugin-guide' -test_plan = 'test-plan' -test_report = 'test-report' - -# General information about the project. -project = u'SwiftStack Plugin for Fuel 8.0' -copyright = u'2015–%s, SwiftStack Inc.' % datetime.date.today().year -author = u'SwiftStack Inc.' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = u'0.3.0' -# The full version, including alpha/beta/rc tags. -release = u'0.3-0.3.0-1' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This patterns also effect to html_static_path and html_extra_path -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = False - - - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -#html_theme = 'flask' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. -# " v documentation" by default. -html_title = 'SwiftStack Plugin for Fuel (v0.3.0)' - -# A shorter title for the navigation bar. Default is the same as html_title. -html_short_title = 'SwiftStack Plugin for Fuel' - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (relative to this directory) to use as a favicon of -# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -#html_extra_path = [] - -# If not None, a 'Last updated on:' timestamp is inserted at every page -# bottom, using the given strftime format. -# The empty string is equivalent to '%b %d, %Y'. -#html_last_updated_fmt = None - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} -html_sidebars = { - '**': ['localtoc.html', 'relations.html', - 'sourcelink.html', 'searchbox.html'] -} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -html_show_sourcelink = False - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh' -#html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# 'ja' uses this config value. -# 'zh' user can custom change `jieba` dictionary path. -#html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = 'SwiftStackPluginforFueldoc' - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', - -# Latex figure (float) alignment -#'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, 'SwiftStackPluginforFuel.tex', u'SwiftStack Plugin for Fuel Documentation', - author, 'manual'), - (plugin_guide, 'plugin-guide.tex', u'Guide for SwiftStack Fuel Plugin', - author, 'howto'), - (test_plan, 'test-plan.tex', u'Test Plan for SwiftStack Fuel Plugin', - author, 'howto'), - (test_report, 'test-report.tex', u'Test Report for SwiftStack Fuel Plugin', - author, 'howto'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'swiftstackpluginforfuel', u'SwiftStack Plugin for Fuel Documentation', - [author], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# make latex stop printing blank pages between sections -# http://stackoverflow.com/questions/5422997/sphinx-docs-remove-blank-pages-from-generated-pdfs -latex_elements = { 'classoptions': ',openany,oneside', 'babel' : '\\usepackage[english]{babel}' } - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, 'SwiftStackPluginforFuel', u'SwiftStack Plugin for Fuel Documentation', - author, 'SwiftStackPluginforFuel', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False diff --git a/doc/source/images/1_add_nodes.png b/doc/source/images/1_add_nodes.png deleted file mode 100644 index f962736..0000000 Binary files a/doc/source/images/1_add_nodes.png and /dev/null differ diff --git a/doc/source/images/2_enable_plugin.png b/doc/source/images/2_enable_plugin.png deleted file mode 100644 index 2c6c7a2..0000000 Binary files a/doc/source/images/2_enable_plugin.png and /dev/null differ diff --git a/doc/source/images/3-1_proxy_outward-facing.png b/doc/source/images/3-1_proxy_outward-facing.png deleted file mode 100644 index 9b12475..0000000 Binary files a/doc/source/images/3-1_proxy_outward-facing.png and /dev/null differ diff --git a/doc/source/images/3-2_swift_api_ip.png b/doc/source/images/3-2_swift_api_ip.png deleted file mode 100644 index 5577f9a..0000000 Binary files a/doc/source/images/3-2_swift_api_ip.png and /dev/null differ diff --git a/doc/source/images/3_config_network.png b/doc/source/images/3_config_network.png deleted file mode 100644 index 340a08b..0000000 Binary files a/doc/source/images/3_config_network.png and /dev/null differ diff --git a/doc/source/images/3_config_network_mgmt.png b/doc/source/images/3_config_network_mgmt.png deleted file mode 100644 index 70b4dfc..0000000 Binary files a/doc/source/images/3_config_network_mgmt.png and /dev/null differ diff --git a/doc/source/images/3_config_network_storage.png b/doc/source/images/3_config_network_storage.png deleted file mode 100644 index b6735dd..0000000 Binary files a/doc/source/images/3_config_network_storage.png and /dev/null differ diff --git a/doc/source/images/3_config_network_swift_cluster.png b/doc/source/images/3_config_network_swift_cluster.png deleted file mode 100644 index ba4d6f9..0000000 Binary files a/doc/source/images/3_config_network_swift_cluster.png and /dev/null differ diff --git a/doc/source/images/4_config_interfaces.png b/doc/source/images/4_config_interfaces.png deleted file mode 100644 index d960269..0000000 Binary files a/doc/source/images/4_config_interfaces.png and /dev/null differ diff --git a/doc/source/images/5_config_key1.png b/doc/source/images/5_config_key1.png deleted file mode 100644 index 95c90bd..0000000 Binary files a/doc/source/images/5_config_key1.png and /dev/null differ diff --git a/doc/source/images/6_config_key2.png b/doc/source/images/6_config_key2.png deleted file mode 100644 index 6b5bcf8..0000000 Binary files a/doc/source/images/6_config_key2.png and /dev/null differ diff --git a/doc/source/images/7_deploy_verify1.png b/doc/source/images/7_deploy_verify1.png deleted file mode 100644 index 32e24ae..0000000 Binary files a/doc/source/images/7_deploy_verify1.png and /dev/null differ diff --git a/doc/source/images/enable_s3token.png b/doc/source/images/enable_s3token.png deleted file mode 100644 index bb2e1f8..0000000 Binary files a/doc/source/images/enable_s3token.png and /dev/null differ diff --git a/doc/source/images/enable_swift3.png b/doc/source/images/enable_swift3.png deleted file mode 100644 index 42d35ce..0000000 Binary files a/doc/source/images/enable_swift3.png and /dev/null differ diff --git a/doc/source/images/horizon_access.png b/doc/source/images/horizon_access.png deleted file mode 100644 index 9f57be1..0000000 Binary files a/doc/source/images/horizon_access.png and /dev/null differ diff --git a/doc/source/images/show_ec2.png b/doc/source/images/show_ec2.png deleted file mode 100644 index bc55fb8..0000000 Binary files a/doc/source/images/show_ec2.png and /dev/null differ diff --git a/doc/source/images/use_on_prem.png b/doc/source/images/use_on_prem.png deleted file mode 100644 index fcd1889..0000000 Binary files a/doc/source/images/use_on_prem.png and /dev/null differ diff --git a/doc/source/images/use_platform.png b/doc/source/images/use_platform.png deleted file mode 100644 index c39d238..0000000 Binary files a/doc/source/images/use_platform.png and /dev/null differ diff --git a/doc/source/index.rst b/doc/source/index.rst deleted file mode 100644 index 76edd31..0000000 --- a/doc/source/index.rst +++ /dev/null @@ -1,13 +0,0 @@ - -Guide to the Swiftstack plugin for Fuel ver. 0.3.0.3.0-1 -======================================================== - -.. toctree:: - :maxdepth: 2 - - overview - install - user - troubleshoot - appendix - diff --git a/doc/source/install.rst b/doc/source/install.rst deleted file mode 100644 index ca865b8..0000000 --- a/doc/source/install.rst +++ /dev/null @@ -1,40 +0,0 @@ -Installation Guide -================== - -Prepare Fuel Environment ------------------------- -#. Prepare a Fuel Master node to install `MOS 8.0`_ - -#. Download plugin from `Fuel Plugins Catalog`_ - -.. _MOS 8.0: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide/install_install_fuel.html -.. _Fuel Plugins Catalog: https://www.mirantis.com/validated-solution-integrations/fuel-plugins/ - - -Install Plugin --------------- - -#. Copy plugin to the Fuel Master node - - .. code-block:: bash - - $ scp swiftstack-0.3.0.3.0-1.noarch.rpm root@:/tmp/ - -#. Install SwiftStack plugin - - .. code-block:: bash - - [root@fuel ~]$ fuel plugins --install swiftstack-0.3.0.3.0-1.noarch.rpm - -#. List all Fuel plugins and make sure it’s running - - .. code-block:: bash - - [root@fuel ~]$ fuel plugins - - id | name | version | package_version - ---|------------|---------|---------------- - 2 | swiftstack | 0.3.0 | 4.0.0 - - - diff --git a/doc/source/overview.rst b/doc/source/overview.rst deleted file mode 100644 index 875eea3..0000000 --- a/doc/source/overview.rst +++ /dev/null @@ -1,63 +0,0 @@ -SwiftStack Fuel Plugin -====================== - -Allow Mirantis OpenStack environment able to use a running Swift cluster managed by -a SwiftStack Controller. In SwiftStack fuel plugin, it disables the default Swift cluster -on Controller and Primary-Controller nodes, and then reconfigures Swift API endpoints, -Keystone, Glance settings and point them to a running SwiftStack Swift cluster. - - -Key terms, acronyms and abbreviations -------------------------------------- - -SwiftStack On-Premises controller - Provides a management service inside user's private place to help users to deploy - and manage Swift clusters. - -SwiftStack Public Controller - Provides a public management service in public cloud that help users to deploy and - manage Swift clusters. - -SwiftStack Nodes - A node installed SwiftStack agents and packages, that can be managed by a - SwiftStack Controller, the node could be assigned a Swift role likes ``Swift node`` - (Proxy/Account/Container/Object services are running in a single node) - -Requirements ------------ - -+-----------------------------------+---------------------------------------------+ -|Requirement | Version | -+===================================+=============================================+ -|Mirantis OpenStack compatibility | 8.0 | -+-----------------------------------+---------------------------------------------+ -|A running SwiftStack Swift cluster | All versions | -| | | -| | Please enable **Keystone Auth** and | -| | **Keystone Auth Token Support** middlewares | -+-----------------------------------+---------------------------------------------+ - -Limitations ------------ - -The plugin only supports a running SwiftStack Swift cluster and it able to reach -from the OpenStack environment. Make sure you have the correct network configuration -for the Swift cluster and Mirantis OpenStack environment before you enable this plugin. - - - -Known issues ------------- - -#. Need DNS server support to map Swift APIs hostname and IP - - SwiftStack provides a software load balancer, which requries an external DNS server - to operate. Please use DNS server insteand of static hostname records in /etc/hosts. - -#. Self-signed SSL certificates are not supported in the SwiftStack plugin - - Self-signed certificates could be an issue when used in a production environment - because all clients need to trust the cert to pass the TLS/SSL verification. - It is highly recommended to use certificates signed by a known, trusted Certificate - Authority if you require TLS/SSL for your Swift cluster endpoint. - diff --git a/doc/source/plugin-guide.rst b/doc/source/plugin-guide.rst deleted file mode 100644 index 70f7b75..0000000 --- a/doc/source/plugin-guide.rst +++ /dev/null @@ -1,102 +0,0 @@ -************************************************************ -Guide to the SwiftStack Plugin version 0.3-0.3.0-1 for Fuel -************************************************************ - -This document provides instructions for installing, configuring and using -SwiftStack plugin for Fuel. - -Key terms, acronyms and abbreviations -===================================== - -SwiftStack On-Premises controller - Provides a management service inside user's private place to help users to deploy - and manage Swift clusters. - -SwiftStack Public Controller - Provides a public management service in public cloud that help users to deploy and - manage Swift clusters. - -SwiftStack Nodes - A node installed SwiftStack agents and packages, that can be managed by a - SwiftStack ccontroller, the node could be assigned a Swift role likes ``Swift node`` - (Proxy/Account/Container/Object services are running in a single node) - - -SwiftStack Fuel Plugin -====================== - -Allow Mirantis OpenStack environment able to use a running Swift cluster managed by -a SwiftStack Controller. SwiftStack fuel plugin disables the default Swift cluster -that deployed on the Controller or Primary-Controller nodes, and then reconfigures -Swift API endpoints, Keystone and Glance settings to a running SwiftStack Swift cluster. - -Requirements ------------- - - -License -------- - -========================== ================== -Component License type -========================== ================== -No components are present -========================== ================== - - -Requirements ------------- - -+-----------------------------------+---------------------------------------------+ -|Requirement | Version/Comment | -+===================================+=============================================+ -|Mirantis OpenStack compatibility | 8.0 | -+-----------------------------------+---------------------------------------------+ -|A running SwiftStack Swift cluster | All versions | -| | | -| | Please enable **Keystone Auth** and | -| | **Keystone Auth Token Support** middlewares | -+-----------------------------------+---------------------------------------------+ - -Limitations ------------ - -The plugin only supports a running SwiftStack Swift cluster and it able to reach -from the OpenStack environment. Make sure you have the correct network configuration -for the Swift cluster and Mirantis OpenStack environment before you enable this plugin. - - -Installation Guide -================== - -.. toctree:: - :maxdepth: 2 - - install - - -User Guide -========== - -.. toctree:: - :maxdepth: 2 - - user - -Known issues -============ - -#. Need DNS server support to map Swift APIs hostname and IP - - SwiftStack provides a software load balancer, which requries an external DNS server - to operate. Please use DNS server insteand of static hostname records in /etc/hosts. - -#. Self-signed SSL certificates are not supported in the SwiftStack plugin - - Self-signed certificates could be an issue when used in a production environment - because all clients need to trust the cert to pass the TLS/SSL verification. - It is highly recommended to use certificates signed by a known, trusted Certificate - - -.. include:: appendix.rst - diff --git a/doc/source/test-plan.rst b/doc/source/test-plan.rst deleted file mode 100644 index 9c4c5a2..0000000 --- a/doc/source/test-plan.rst +++ /dev/null @@ -1,590 +0,0 @@ -Test Plan for SwiftStack Fuel Plugin -==================================== - -Revision history -================ - -.. tabularcolumns:: |p{1.5cm}|p{2.5cm}|p{6cm}|p{5.6cm}| - -.. list-table:: - :header-rows: 1 - - * - Version - - Revision Date - - Editor - - Comment - * - 1.0 - - 27.08.2015 - - Charles Hsu(chsu@swiftstack.com) - - Created - * - 2.0 - - 06.07.2016 - - Charles Hsu(chsu@swiftstack.com) - - Revised for Fuel 8.0 - * - 2.1 - - 06.15.2016 - - Charles Hsu(chsu@swiftstack.com) - - Update contents and rewrite in RST - -SwiftStack Fuel Plugin -====================== - -Allow Mirantis OpenStack environment able to use an existing Swift cluster -managed by SwiftStack Controller. SwiftStack plugin will disable the swift -cluster deployed in the nodes are role **Controller** or **Primary-controller**. -And then reconfigures API endpoints, keystone and glance settings to point -an existing SwiftStack Swift cluster. - -Here are two basic Fuel OpenStack environments as follows: - -Use SwiftStack On-Premises Controller -------------------------------------- - -Please setup an On-Premises SwiftStack controller first, and then setup a single node Swift -cluster with SwiftStack controller, here is our `quick start guide`_. - - * 1 SwiftStack On-Premises controller - * 1 Swift cluster (single node) - -Also prepare a Fuel environment using Slave nodes according to the `Fuel Install Guide`_. - - .. note:: - In this diagram, the Swift cluster is also connected to Fuel Storage network for SwiftStack - cluster-facing and data replication network, if you have performance concern, please consider - to separate Swift cluster-facing and data replication network out of Fuel networks. - That prevents network starvation on Fuel Storage network when Swift service daemons are - moving data or clients upload large data into the Swift cluster. - - Also, SwiftStack Nodes need to communicate with the On-Premises controller over Fuel - Management network, so please make sure the On-Premises controller also connected to Fuel Management - network. You can run a CLI command ``ssdiag`` on SwiftStack nodes to check the connectivity - between SwiftStack Nodes and Controller. - - .. image:: images/use_on_prem.png - - - -Use SwiftStack Public Controller (Platform) -------------------------------------------- - -Please setup a single node Swift cluster with our public controller, here is our `quick start guide`_. - - * 1 Swift cluster (single node) - -Also prepare a Fuel environment using Slave nodes according to the `Fuel Install Guide`_. - - - .. note:: - In this diagram, the Swift cluster is also connected to Fuel Storage network for SwiftStack - cluster-facing and data replication network, if you have performance concern, please consider - to separate Swift cluster-facing and data replication network out of Fuel networks. - That prevents network starvation on Fuel Storage network when Swift service daemons are - moving data or clients upload large data into the Swift cluster. - - Also, SwiftStack Nodes need to communicate with SwiftStack Public controller over Fuel - Public network, so please make sure SwiftStack Nodes able to reach Internet. - - .. image:: images/use_platform.png - - -.. _quick start guide: https://swiftstack.com/docs/install/index.html -.. _Fuel Install Guide: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide.html - - -Developer’s specification -========================= - -See developers specification in this repository: https://github.com/openstack/fuel-plugin-swiftstack - -Limitations -=========== - -The plugin only supports a running SwiftStack Swift cluster and it able to reach -from the OpenStack environment. Make sure you have the correct network -configuration for the Swift cluster and Mirantis OpenStack environment before -you enable this plugin. - -Test strategy -============= - -Types of tests included ------------------------ - - * Check Swift API endpoints - * Basic Swift APIs operations - * System Tests - -Types of tests not included ---------------------------- - - * Swift cluster operations - -Acceptance criteria -------------------- - -These tests should be pass: - - * Check Swift API endpoints - * Basic Swift APIs operation - * System Tests - -Test environment and infrastructure ------------------------------------ - -Before install the plugin to your fuel environment, make sure you have a running -SwiftStack Swift cluster managed by SwiftStack Platform controller or On-Premises -controller. You’ll need to configure few middlewares from the controller and push -configuration to the SwiftStack cluster. - - * A running SwiftStack Swift cluster - -Product compatibility matrix ----------------------------- - -.. tabularcolumns:: |p{8cm}|p{7.6cm}| - -.. list-table:: - :header-rows: 1 - - * - Issue - - Version - * - Mirantis OpenStack - - 8.0 - -Check Swift API endpoints -========================= - - * Swift API endpoint should be like - http[s]://:[80|443]/v1/KEY_%(tenant_id)s - - * Disable TLS with Swift endpoint - - * http://:80/v1/KEY_%(tenant_id)s - - * Enable TLS with Swift endpoint - - * https://:443/v1/KEY_%(tenant_id)s - - - .. code-block:: bash - ### Login to Controller node - ~$ source ~/openrc - ~$ cat ~/openrc | grep OS_AUTH_URL - export OS_AUTH_URL='http://192.168.0.2:5000/' - - ## - ## Correct OS_AUTH_URL, append ‘v2.0’ in the end of line - ## - ~$ export OS_AUTH_URL='http://192.168.0.2:5000/v2.0' - - ~$ keystone endpoint-list |grep KEY - | b858f41ee3704f32a05060932492943b | RegionOne | - http://172.16.0.100:80/v1/KEY_%(tenant_id)s | - http://172.16.0.100:80/v1/KEY_%(tenant_id)s | - http://172.16.0.100:80/v1/KEY_%(tenant_id)s | - 19966ec76f0d455d94caa87d9569a347 | - - -Basic Swift APIs operation -========================== - -#. Verify Swift account with Keystone authentication. - - .. code-block:: bash - - # Login to one of nodes of Swift cluster. - - # Test admin account - root@node-23:~$ cat rc.admin - export ST_AUTH=http://192.168.0.2:5000/v2.0 - export ST_USER=admin:admin - export ST_KEY=admin - export ST_AUTH_VERSION=2 - - ~$ source rc.admin - - ~$ swift stat - Account: KEY_8408a5a799364d06b81542a8017e7975 - Containers: 0 - Objects: 0 - Bytes: 0 - X-Put-Timestamp: 1465289155.00899 - X-Timestamp: 1465289155.00899 - X-Trans-Id: tx1d35d328e5294c88baf5e-00575689c2 - Content-Type: text/plain; charset=utf-8 - - -#. Upload/download object and check md5sum - - .. code-block:: bash - - ~$ swift upload test rc.admin - rc.admin - - ~$ swift stat test rc.admin - Account: KEY_8408a5a799364d06b81542a8017e7975 - Container: test - Object: rc.admin - Content Type: application/octet-stream - Content Length: 117 - Last Modified: Tue, 07 Jun 2016 08:46:16 GMT - ETag: 4a97d36410af1b380fe5b014a6cd8db5 - Meta Mtime: 1465288847.821181 - Accept-Ranges: bytes - X-Timestamp: 1465289175.47789 - X-Trans-Id: tx13823ad38c084e529c20d-00575689de - - ~$ swift download test rc.admin -o rc.admin.download - rc.admin [auth 1.171s, headers 1.452s, total 1.460s, 0.000 MB/s] - - ~$ md5sum rc.admin* - 4a97d36410af1b380fe5b014a6cd8db5 rc.admin - 4a97d36410af1b380fe5b014a6cd8db5 rc.admin.download - -System testing -============== - -Install plugin and deploy environment -------------------------------------- - -.. tabularcolumns:: |p{3cm}|p{13cm}| - -.. list-table:: - :header-rows: 0 - - * - Test Case ID - - install_plugin_deploy_env - * - Steps - - - #. Copy the plugin to the Fuel Master node - #. Install the plugin. - #. Ensure that plugin is installed successfully with running - ``fuel plugins --list`` command in the Fuel CLI. - #. Create an environment with enabled plugin in the Fuel Web UI. - #. Add 3 nodes with Controller role and 1 node with Compute and Cinder role. - #. Finalize environment configuration (e.g. networking, nodes interfaces). - #. Run network verification check. - #. Deploy the cluster. - #. Run OSTF. - * - Expected Result - - - #. Plugin is installed successfully at the Fuel Master node and the - corresponding output appears in the CLI. - #. Cluster is created and network verification check is passed. - #. OSTF tests (Health Checks) are passed. - #. Environment is deployed successfully. - - -Install plugin and deploy environment with Swift API hostname -------------------------------------------------------------- - -.. tabularcolumns:: |p{3cm}|p{13cm}| - -.. list-table:: - :header-rows: 0 - - * - Test Case ID - - install_plugin_deploy_env_with_swift_hostname - * - Steps - - - #. Copy the plugin to the Fuel Master node - #. Install the plugin. - #. Ensure that plugin is installed successfully with running - ``fuel plugins --list`` command in the Fuel CLI. - #. Create an environment with enabled plugin in the Fuel Web UI. - #. Add 3 nodes with Controller role and 1 node with Compute and Cinder role. - #. Finalize environment configuration (e.g. networking, nodes interfaces). - #. Run network verification check. - #. Enabled Swift API hostname in the plugin section - #. Deploy the cluster. - #. Run OSTF. - * - Expected Result - - - #. Plugin is installed successfully at the Fuel Master node and the - corresponding output appears in the CLI. - #. Cluster is created and network verification check is passed. - #. OSTF tests (Health Checks) are passed. - #. Environment is deployed successfully. - - -Modifying env with enabled plugin (removing/adding controller nodes) --------------------------------------------------------------------- - -.. tabularcolumns:: |p{3cm}|p{13cm}| - -.. list-table:: - :header-rows: 0 - - * - Test Case ID - - modify_env_with_plugin_remove_add_controller - * - Steps - - - #. Copy the plugin to the Fuel Master node - #. Install the plugin. - #. Ensure that plugin is installed successfully with running - ``fuel plugins --list`` command in the Fuel CLI. - #. Create an environment with enabled plugin in the Fuel Web UI. - #. Add 3 nodes with Controller role and 1 node with Compute and Cinder role. - #. Finalize environment configuration (e.g. networking, nodes interfaces). - #. Enable the plugin and configure it following the instructions - from the Plugin Guide. - #. Run network verification check. - #. Deploy the cluster. - #. Run OSTF. - #. Remove 1 node with Controller role - #. Re-deploy the cluster. - #. Run OSTF. - #. Add 1 new node with Controller role. - #. Re-deploy the cluster. - #. Run OSTF. - * - Expected Result - - - #. Plugin is installed successfully at the Fuel Master node and the - corresponding output appears in the CLI. - #. Cluster is created and network verification check is passed. - #. Plugin is enabled and configured in the Fuel Web UI. - #. OSTF tests (Health Checks) are passed. - #. Environment is deployed successfully. - #. When adding/removing Controller node (where plugin-related services are run): - - #. all plugins resources are migrated to another Controller node - #. the environment is redeployed successfully when adding/removing Controller node. - - - -Modifying env with enabled plugin (removing/adding compute node) ----------------------------------------------------------------- - -.. tabularcolumns:: |p{3cm}|p{13cm}| - -.. list-table:: - :header-rows: 0 - - * - Test Case ID - - modify_env_with_plugin_remove_add_compute - * - Steps - - - #. Copy the plugin to the Fuel Master node - #. Install the plugin. - #. Ensure that plugin is installed successfully with running - ``fuel plugins --list`` command in the Fuel CLI. - #. Create an environment with enabled plugin in the Fuel Web UI. - #. Add 3 nodes with Controller role and 1 node with Compute and Cinder role. - #. Finalize environment configuration - #. Enable the plugin and configure it following the instructions from the Plugin Guide. - #. Run network verification check. - #. Deploy the cluster. - #. Run OSTF. - #. Add 1 new node with Compute role. - #. Re-deploy the cluster. - #. Run OSTF. - #. Remove 1 node with Compute role - #. Re-deploy the cluster. - #. Run OSTF. - * - Expected Result - - - #. Plugin is installed successfully at the Fuel Master node and the - corresponding output appears in the CLI. - #. Cluster is created and network verification check is passed. - #. Plugin is enabled and configured in the Fuel Web UI. - #. OSTF tests (Health Checks) are passed. - #. Environment is deployed successfully. - #. When adding/removing Compute node (where plugin-related services are run): - - #. all plugins resources are migrated to another Compute node - #. the environment is re-deployed successfully when adding/removing Compute node - - - -Fuel create mirror and update (setup) of core repos ---------------------------------------------------- - -.. tabularcolumns:: |p{3cm}|p{13cm}| - -.. list-table:: - :header-rows: 0 - - * - Test Case ID - - Fuel_create_mirror_update_core_repos - * - Steps - - - #. Copy the plugin to the Fuel Master node - #. Install the plugin. - #. Ensure that plugin is installed successfully with running - ``fuel plugins --list`` command in the Fuel CLI. - #. Create an environment with enabled plugin in the Fuel Web UI. - #. Add 3 nodes with Controller role and 1 node with Compute and Cinder role. - #. Finalize environment configuration (e.g. networking, nodes interfaces). - #. Enable the plugin and configure it following the instructions from the Plugin Guide. - #. Run network verification check. - #. Deploy the cluster. - #. Run OSTF. - #. Go in cli through controller / compute / storage /etc nodes and get - pid of services which were launched by plugin and store them. - #. Launch the following command on the Fuel Master node: - - fuel-createmirror -M - - #. Launch the following command on the Fuel Master node: - - #. For MOS < 8.0: - - fuel --env node --node-id - --tasks upload_core_repos - - #. For MOS 8.0: - - fuel --env node --node-id - --tasks setup_repositories - #. Go to controller/plugin/storage node and check if plugin's services - are alive and aren't changed their pid. - #. Check with fuel nodes command that all nodes are remain in ready status. - #. Rerun OSTF. - - * - Expected Result - - - #. Plugin is installed successfully at the Fuel Master node and - the corresponding output appears in the CLI. - #. Cluster is created and network verification check is passed. - #. Plugin is enabled and configured in the Fuel Web UI. - #. OSTF tests (Health Checks) are passed. - #. Environment is deployed successfully. - #. Plugin's services shouldn't be restarted after corresponding - task was executed. If they are restarted as some exception, - this information should be added to plugin's User Guide. - #. Cluster (nodes) should remain in ready state. - #. OSTF test should be passed on rerun. - -Uninstall of plugin in the deployed environment ------------------------------------------------ - -.. tabularcolumns:: |p{3cm}|p{13cm}| - -.. list-table:: - :header-rows: 0 - - * - Test Case ID - - uninstall_plugin_with_deployed_env - * - Steps - - - #. Copy the plugin to the Fuel Master node - #. Install the plugin. - #. Ensure that plugin is installed successfully with running - ``fuel plugins --list`` command in the Fuel CLI. - #. Add 3 nodes with Controller role and 1 node with Compute and Cinder role. - #. Finalize environment configuration (e.g. networking, nodes interfaces). - #. Enable the plugin and configure it following the instructions from the Plugin Guide. - #. Run network verification check. - #. Deploy the cluster. - #. Run OSTF. - #. Uninstall the plugin with running - ``fuel plugins --remove == (e.g. 1.0.1)``` - - Ensure that the following output appears in CLI: - "400 Client Error: Bad Request (Can't delete plugin which is enabled for some environment.)" - - * - Expected Result - - - #. Plugin is installed successfully at the Fuel Master node and - the corresponding output appears in the CLI. - #. Cluster is created and network verification check is passed. - #. Plugin is enabled and configured in the Fuel Web UI. - #. OSTF tests (Health Checks) are passed. - #. Environment is deployed successfully. - #. Alert is displayed when trying the uninstall the plugin. - - -Uninstall of plugin in the non-deployed environment ---------------------------------------------------- - -.. tabularcolumns:: |p{3cm}|p{13cm}| - -.. list-table:: - :header-rows: 0 - - * - Test Case ID - - uninstall_plugin - * - Steps - - - #. Copy the plugin to the Fuel Master node - #. Install the plugin. - #. Ensure that plugin is installed successfully with running - ``fuel plugins --list`` command in the Fuel CLI. - #. Add 3 nodes with Controller role and 1 node with Compute and Cinder role. - #. Finalize environment configuration (e.g. networking, nodes interfaces). - #. Enable the plugin and configure it following the instructions from the Plugin Guide. - #. Run network verification check. - #. Delete listed environment - #. Uninstall the plugin with running - ``fuel plugins --remove == (e.g. 1.0.1)`` for more details. - #. Install the plugin. - * - Expected Result - - - #. Plugin is installed successfully at the Fuel Master node and - the corresponding output appears in the CLI. - #. Cluster is created and network verification check is passed. - #. Plugin is enabled and configured in the Fuel Web UI. - #. When uninstalling the plugin, no plugin-related elements are - left in the environment (e.g. UI elements disappear, Nailgun - database is restored to the default state, no output for - command ``fuel plugins --list``). - - -Apply maintenance updates to deployed environment -------------------------------------------------------------- -Mirantis OpenStack features the ability to receive patches via the common -flow called `Maintenance Updates`_. Please reach out to Partner Enablement team -about the latest Maintenance Updates portion to test against with you plugin. - -.. tabularcolumns:: |p{3cm}|p{13cm}| - -.. list-table:: - :header-rows: 0 - - * - Test Case ID - - apply_mu - * - Steps - - - #. Copy the plugin to the Fuel Master node - #. Install the plugin. - #. Ensure that plugin is installed successfully with running - ``fuel plugins --list`` command in the Fuel CLI. - #. Add 3 nodes with Controller role and 1 node with Compute and cinder role. - #. Finalize environment configuration (e.g. networking, nodes interfaces). - #. Enable the plugin and configure it following the instructions from the Plugin Guide. - #. Run network verification check. - #. Deploy the cluster. - #. Run OSTF. - #. Once environment is deployed, apply maintenance updates following the instructions. - #. Check is plugin services continue running. - #. Make sure all nodes are in ready state and no regression is observed. - #. Run OSTF checks. - - * - Expected Result - - - #. Plugin is installed successfully at the Fuel Master node and - the corresponding output appears in the CLI. - #. Cluster is created and network verification check is passed. - #. Plugin is enabled and configured in the Fuel Web UI. - #. OSTF tests (Health Checks) are passed. - #. Environment is deployed successfully. - #. Maintenance Updates do not affect running services related to the plugin - (e.g. the services aren't restarted). - #. Cluster remains in the fully operational state after applying Maintenance Updates. - -.. _Maintenance Updates: https://docs.mirantis.com/openstack/fuel/fuel-8.0/maintenance-updates.html#mu8-0-how-to-update - - -Appendix -======== - -.. tabularcolumns:: |p{1cm}|p{14cm}| - -.. list-table:: - :header-rows: 1 - - * - # - - Resource title - * - - - - diff --git a/doc/source/test-report.rst b/doc/source/test-report.rst deleted file mode 100644 index 2f5fb25..0000000 --- a/doc/source/test-report.rst +++ /dev/null @@ -1,224 +0,0 @@ -Test Report for SwiftStack Fuel Plugin -====================================== - -Revision history -================ - -.. tabularcolumns:: |p{1.5cm}|p{2.5cm}|p{6cm}|p{5.6cm}| - -.. list-table:: - :header-rows: 1 - - * - Version - - Revision Date - - Editor - - Comment - * - 1.0 - - 27.08.2015 - - Charles Hsu(chsu@swiftstack.com) - - Created - * - 2.0 - - 06.07.2016 - - Charles Hsu(chsu@swiftstack.com) - - Revised for Fuel 8.0 - * - 2.1 - - 06.15.2016 - - Charles Hsu(chsu@swiftstack.com) - - Update contents and rewrite in RST - * - - - - - - - - -Document purpose -================ - -This document provides test run results for Integration testing of SwiftStack -Fuel Plugin 0.3.0 on Mirantis OpenStack 8.0. - -Test environment -================ - -The following is the hardware configuration for target nodes used for -verification. For other configuration settings, please see the test plan. - - * Mirantis OpenStack: 8.0 - * Plugin release version: 0.3.0 - * Lab environment: - * 4 nodes (3 controllers and 1 compute nodes) or more - * 1 SwiftStack Swift cluster - -Plugin's RPM ------------- - -.. tabularcolumns:: |p{8cm}|p{7.6cm}| - -.. list-table:: - :header-rows: 1 - - - * - Name - - md5 checksum - * - swiftstack-0.3-0.3.0-1.noarch.rpm - - 7116620d039d9b93731aa38ababe48fa - - -Test coverage and metrics -------------------------- - - * Test Coverage – 100% - * Tests Passed – 100% - * Tests Failed – 0% - -Test results summary -==================== - -SwiftStack plugin is an integration plugin, so we run - -* System testing - - * Manuel Test (8) - - -Type of testing -=============== - -Coverage of features --------------------- - -.. tabularcolumns:: |p{12cm}|p{3.6cm}| - -.. list-table:: - :header-rows: 1 - - * - Parameter - - Value - * - Total quantity of executed test cases - - 8 - * - Total quantity of not executed test cases - - 0 - * - Quantity of automated test cases - - 0 - * - Quantity of not automated test cases - - 8 - -Detailed test run results -------------------------- - -.. tabularcolumns:: |p{1cm}|p{7cm}|p{1.3cm}|p{1.3cm}|p{1.3cm}|p{3cm}| - -.. list-table:: - :header-rows: 1 - - * - # - - Test case ID - - Passed - - Failed - - Skipped - - Comment - * - 1 - - install_plugin_deploy_env - - yes - - - - - - - * - 2 - - install_plugin_deploy_env_with_swift_hostname - - yes - - - - - - - * - 3 - - modify_env_with_plugin_remove_add_controller - - yes - - - - - - - * - 4 - - modify_env_with_plugin_remove_add_compute - - yes - - - - - - - * - 5 - - Fuel_create_mirror_update_core_repos - - yes - - - - - - - * - 6 - - uninstall_plugin_with_deployed_env - - yes - - - - - - - * - 7 - - uninstall_plugin - - yes - - - - - - - * - 8 - - apply_mu - - yes - - - - - - - * - - - - - - - - - - - - * - Total - - - - 8 - - - - - - - * - Total, % - - - - 100% - - - - - - - -Known issues -============ - -.. list-table:: - :header-rows: 1 - - * - # - - Description - - Severity - - Status - * - - - - - - - - - -Logs -==== - -.. list-table:: - :header-rows: 1 - - * - # - - Title - * - - - - -Appendix -======== - -.. list-table:: - :header-rows: 1 - - * - # - - Title of resource - * - - - - - diff --git a/doc/source/troubleshoot.rst b/doc/source/troubleshoot.rst deleted file mode 100644 index 43452be..0000000 --- a/doc/source/troubleshoot.rst +++ /dev/null @@ -1,148 +0,0 @@ -Troubleshooting Guide -===================== - - -Source file (~/openrc) ----------------------- -If you try run swift cli in controller nodes, please check OS_AUTH_URL is correct. -If the value is ``http://:5000/``, please correct it to ``http://:5000/v2.0`` as following. - - .. code-block:: python - - root@node-17:~# cat openrc - #!/bin/sh - ... - export OS_AUTH_URL='http://:5000/v2.0' - ... - - - -External Load Balancer ----------------------- - -If there is a external load balancer in front of you Swift cluster, and you confgiure the swift cluster with it. -Please fill the external LB IP for ``Swift API IP Address`` in :ref:`plugin page `. - - -Swift endpoint in Keystone DB ------------------------------ - -Before you upload any VM image to Glance, we suggest to check the Swift endpoint in Keystone DB first. Make sure the Swift endpoint is correct. - -For swift endpoint, please make sure the endpoints (``publicurl`` and ``internalurl``) look like ``http://:80/v1/KEY_%(tenant_id)s``. - - .. code-block:: python - - $ openstack endpoint list | grep swift - - -401 Unauthorized issue from clients ------------------------------------ - -If any client runs into ``401 Unauthorized`` issue, please use Swift CLI verify it again and make sure the settings of middlewares in Swift cluster are correct. - -For example, if you get a error with ``swift stat``. - - .. code-block:: python - - $ swift stat - Account HEAD failed: http://10.200.5.5:80/v1/KEY_32f0b6cd7299412e9f7966b324 - fb6aea - 401 Unauthorized - -Try to use ``--debug`` to get more details. - - .. code-block:: python - - $ swift --debug stat -v - .... - INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection - (1): 10.200.5.5 - DEBUG:requests.packages.urllib3.connectionpool:"HEAD /v1/KEY_32f0b6cd72994 - 12e9f7966b324fb6aea HTTP/1.1" 401 0 - INFO:swiftclient:REQ: curl -i http://10.200.5.5:80/v1/KEY_32f0b6cd7299412e - 9f7966b324fb6aea -I -H "X-Auth-Token: gAAAAABXMe1s87mzqZK1Ee8hyJQ86fv9 - NDcSChKCLk-PTQfa353J5t3N4EL-OCHbZuqt6hRFBJehUozgF4FNNd5Q_rfXBejo817U_F - f6mAy6-hP2l0KWbxON1mfZL_UCfjjWclrSD2-bK38JvTfrqWdM99cqfdMBDZS-wqHn1dZz - O0g2r-Kzxcc" - INFO:swiftclient:RESP STATUS: 401 Unauthorized - INFO:swiftclient:RESP HEADERS: [('Content-Length', '0'), ('Connection', - 'keep-alive'), ('X-Trans-Id', 'txecd82ae98e714ef0b4c0c-005731ed6c') , - ('Date', 'Tue, 10 May 2016 14:17:16 GMT'), ('Content-Type', 'text/htm - l; charset=UTF-8'), ('Www-Authenticate', 'Swift realm="KEY_32f0b6cd72 - 99412e9f7966b324fb6aea", Keystone uri=\'http://10.200.7.2:5000/\'')] - ERROR:swiftclient:Account HEAD failed: http://10.200.5.5:80/v1/KEY_32f0b6c - d7299412e9f7966b324fb6aea 401 Unauthorized - Traceback (most recent call last): - File "/usr/lib/pymodules/python2.7/swiftclient/client.py", line 1261, - in _retry - rv = func(self.url, self.token, *args, **kwargs) - File "/usr/lib/pymodules/python2.7/swiftclient/client.py", line 541, - in head_account - http_response_content=body) - ClientException: Account HEAD failed: http://10.200.5.5:80/v1/KEY_32f0b6cd - 7299412e9f7966b324fb6aea 401 Unauthorized - Account HEAD failed: http://10.200.5.5:80/v1/KEY_32f0b6cd7299412e9f7966b32 - 4fb6aea 401 Unauthorized - - - -If the keystone IP and Swift user and password are correct, please :ref:`find the password -from deployment yaml files` -and :ref:`config Swift middlewares ` first. Once that're done, -please :ref:`verify it with Swift CLI`. - - -403 Forbidden issue from clients through S3 APIs ------------------------------------------------- - -When you saw clients get 403 response from S3 APIs, please check **Swift3 Keystone Integration Middleware** -first and make sure auth_url is point to keystone amdinurl. - - .. code-block:: bash - - ~$ ./s3get.sh test http://172.16.0.100:80 \ - > e8f3617f41d34d02a7ba129f8581a3b6 \ - > 85f2ae90a9614a8b832747af3c6e6c9b \ - > test rc.admin - Wed, 15 Jun 2016 14:15:14 UTC - /test/rc.admin - * Hostname was NOT found in DNS cache - * Trying 172.16.0.100... - * Connected to 172.16.0.100 (172.16.0.100) port 80 (#0) - > GET /test/rc.admin HTTP/1.1 - > User-Agent: curl/7.35.0 - > Host: 172.16.0.100 - > Accept: */* - > Date: Wed, 15 Jun 2016 14:15:14 UTC - > Authorization: AWS e8f3617f41d34d02a7ba129f8581a3b6:RG6hF77QUN/fmMMLSFP5SauMD7Q= - > - < HTTP/1.1 403 Forbidden - HTTP/1.1 403 Forbidden - < x-amz-id-2: tx6359093a27f642db8a398-00576162f3 - x-amz-id-2: tx6359093a27f642db8a398-00576162f3 - < x-amz-request-id: tx6359093a27f642db8a398-00576162f3 - x-amz-request-id: tx6359093a27f642db8a398-00576162f3 - < Content-Type: application/xml - Content-Type: application/xml - < X-Trans-Id: tx6359093a27f642db8a398-00576162f3 - X-Trans-Id: tx6359093a27f642db8a398-00576162f3 - < Date: Wed, 15 Jun 2016 14:15:15 GMT - Date: Wed, 15 Jun 2016 14:15:15 GMT - < Transfer-Encoding: chunked - Transfer-Encoding: chunked - -And if that is still can't solve the problem or you see other error codes -(500 Internal server error, etc.) from S3 APIs, please try to check the -swift logs (/var/log/swift/all.log) to see is any exception on that. And you -will have a ``X-Trams-Id`` for each request, so please use that to grep Swift -logs likes, - - .. code-block:: bash - - # Please login to SwiftStack Nodes - $ grep tx6359093a27f642db8a398-00576162f3 /var/log/swift/all.log - -And send the output to `SwiftStack Support`_. - -.. _SwiftStack Support: https://swiftstack.zendesk.com/ diff --git a/doc/source/user.rst b/doc/source/user.rst deleted file mode 100644 index c4f3a4d..0000000 --- a/doc/source/user.rst +++ /dev/null @@ -1,614 +0,0 @@ -User Guide -========== - -SwiftStack provides **On-Premises** and **Public(Platform)** Controller to manage -Swift clusters. Here is an overview for network topology between SwiftStack cluster, -controller and Fuel slave nodes. - - - -SwiftStack Swift Cluster ------------------------- - -In SwiftStack Swift cluster, that have three network interfaces need to configure for each node. - - #. Outward-facing interface: - - The clients traffic come into this interface, so if you consider putting an external - load balancer in front of the cluster, you should add these outward-facing IPs to the load - balancer pool. - - #. Cluster-facing interface: - - The interface for Swift internal traffic likes proxy-server from/to object-server. - - #. Data replication interface: - - This interface is dedicated for object replication. - -If the node only has one network interface, you can assign all network interfaces to this -interface, but it'll be mixed all traffic together. So we suggest using dedicated interface for -these three network. Check `Configure network`_ to get more detail. - -.. _Configure network: https://swiftstack.com/docs/admin/node_management/configure_network.html#network - - -SwiftStack Controller ---------------------- - -SwiftStack provide two types of controllers, first one is **public controller** (we called `Platform controller`) -and the second one is **On-Premises controller**. The public controller is for customers they don't want to setup -a SwiftStack Controller on their data center and also allow the nodes have internet connectivity for management -purpose. So, if you don't have an controller account yet, `try to create it`_ . - -In On-Premises controller, you need to get the setup script and tarball from SwiftStack sales, and they'll help -you to setup an On-Premises controller. - -And make sure you have an account can login to controller and able to setup a Swift cluster before you start -to test the plugin. - -The network configuration in SwiftStack Controller is quite simple, just check the SwiftStack Nodes can reach -SwiftStack controller because SwiftStack Nodes communciate with controller over OpenVPN connections. But if -you have a firewall in the middle; please check `SwiftStack Controller Security`_ and `SwiftStack Node Security`_ -to configure the firewall. - - .. note:: - There is no difference when you use On-Premises or Platform controller to create you own Swift cluster, - and do the integration with SwiftStack Fuel plugin. All configuration of SwiftStack Fuel plugin will - be the same. - - The Swift cluster is outside of Fuel environment, so using the Controller to create and configure your - external Swift cluster which will be more efficienct from scratch. - -.. _Platform controller: https://platform.swiftstack.com -.. _try to create it: https://www.swiftstack.com/try-it-now/ - -.. _SwiftStack Controller Security: https://swiftstack.com/docs/security/controller.html#swiftstack-controller-security -.. _SwiftStack Node Security: https://swiftstack.com/docs/security/node.html#swiftstack-node-security - - -Fuel Slave Nodes ----------------- - -Fuel slave nodes have three major networks(public, storage, management) to configure, so if SwiftStack Nodes are -connected to these three networks and use same IP range of `Fuel's configuration`_, you need to skip the IPs that -used for SwiftStack Nodes. The reason is the Fuel master doesn't know which IP is taken from SwiftStack Nodes. - -The SwiftStack Swift cluster is a standalone cluster, and each client should come from Outward-facing network -(Fuel Public Network). So connected to the Fuel slave nodes with Outward-facing network that's for clients. -Then Fuel Managment network will use for doing user token validation between the Swift cluster and Keystone -server. The SwiftStack cluster-facing and data replication network should be over Fuel Storage network. - -.. _Fuel's configuration: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide/install/install_change_network_interface.html#configure-a-network-interface-for-the-fuel-web-ui - -Network summary ---------------- - -Please make sure the network configuration like: - - #. Fuel controller nodes (Keystone, Glance) can talk to Swift Proxy-server (i.e., - Proxy-only, PAC, PACO node) over Fuel Management network - - #. Clients can talk to :ref:`Swift API IP Address` (Swift Proxy or - External/Internal Load Balancer) - - #. SwiftStack nodes can optionally talk to each over Fuel Storage network - - #. SwiftStack nodes can talk to SwiftStack Controller via Management (SwiftStack) - network (for On-Premises) or Public network (for public Swiftstack Controller) - - .. note:: - - We only use one PACO (Proxy/Account/Comtainer/Object) nodes to deploy a all-in-one - Swift cluster in this document and is a minimum deployment. - In real environment, as the cluster scales, it might be necessary to specalize nodes - into separate Proxy/Account/Container/Object tiers. - If the Fuel Storage network does not have adequate bandwidth to support Replication & - Cluster-Facing traffic, these interfaces can be on a network external to Fuel - - -Use SwiftStack On-Premises Controller -------------------------------------- - -Please setup an On-Premises SwiftStack controller first, and then setup a single node Swift -cluster with SwiftStack controller, here is our `quick start guide`_. - - * 1 SwiftStack On-Premises controller - * 1 Swift cluster (single node) - -Also prepare a Fuel environment using Slave nodes according to the `Fuel Install Guide`_. - - .. note:: - In this diagram, the Swift cluster is also connected to Fuel Storage network for SwiftStack - cluster-facing and data replication network, if you have performance concern, please consider - to separate Swift cluster-facing and data replication network out of Fuel networks. - That prevents network starvation on Fuel Storage network when Swift service daemons are - moving data or clients upload large data into the Swift cluster. - - Also, SwiftStack Nodes need to communicate with the On-Premises controller over Fuel - Management network, so please make sure the On-Premises controller also connected to Fuel Management - network. You can run a CLI command ``ssdiag`` on SwiftStack nodes to check the connectivity - between SwiftStack Nodes and Controller. - - .. image:: images/use_on_prem.png - - - -Use SwiftStack Public Controller (Platform) -------------------------------------------- - -Please setup a single node Swift cluster with our public controller, here is our `quick start guide`_. - - * 1 Swift cluster (single node) - -Also prepare a Fuel environment using Slave nodes according to the `Fuel Install Guide`_. - - - .. note:: - In this diagram, the Swift cluster is also connected to Fuel Storage network for SwiftStack - cluster-facing and data replication network, if you have performance concern, please consider - to separate Swift cluster-facing and data replication network out of Fuel networks. - That prevents network starvation on Fuel Storage network when Swift service daemons are - moving data or clients upload large data into the Swift cluster. - - Also, SwiftStack Nodes need to communicate with SwiftStack Public controller over Fuel - Public network, so please make sure SwiftStack Nodes able to reach Internet. - - .. image:: images/use_platform.png - - -.. _quick start guide: https://swiftstack.com/docs/install/index.html -.. _Fuel Install Guide: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide.html - - -Deploying Mirantis OpenStack with a SwiftStack Swift cluster ------------------------------------------------------------- - -#. Create a new environment with available Slave nodes: - - * Select **Liberty on Ubuntu Trusty (14.04)** as the distribution - * Select **Neutron with VLAN segmentation** as the networking setup - * Use all default settings - * Select node roles according to the `Fuel Install Guide`_. - - .. image:: images/1_add_nodes.png - - .. _swift_api_ip_address: - -.. _Fuel Install Guide: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide.html - - -#. Go to the Settings tab of the Fuel Web UI, - scroll down to **Storage** section, select **Enable SwiftStack Swift Cluster Integration** checkbox - and fill up all parameters. - - #. **Enable TLS for Swift endpoints**: - - This option will use HTTPS for Swift endpoints include public, admin and internal urls. - - #. **Swift API IP Address** and **Swift API hostname**: - - The IP address is the default value for Swift endpoints, if you fill up the API hostname, that - overwrites Swift endpoints with hostname. - - #. **Use Swift as Glance backend** and **Enable upload test**: - - These two options for Glance integration - - .. note:: - If **Use Swift as Glance backend** is disabled, - please consider enabling **Ceph RBD for images (Glance)** or other storage for Glance backend. - - If **Enable upload test** is disabled, Fuel won't upload testVM image(cirros-testvm) - to Glance and store in Swift cluster. That means some **Functional tests** won't pass: - ``Create volume and boot instance from it``. - - The settings in below, - - #. Swift API IP Address: ``172.16.0.100``. - #. Use Swift as Glance backend: ``Checked`` - #. Enable upload test: ``Checked`` - - .. image:: images/2_enable_plugin.png - -#. Go to the **Networks** tab, scroll down to **Public** section and then - modify **IP Range** to skip the IPs of SwiftStack Outward-facing and - Swift API IP Address. - - Here is our network configuration for a single SwiftStack node. - - .. image:: images/3_config_network_swift_cluster.png - - Skip `172.16.0.100` (Outward-facing) on Public network. - - .. image:: images/3_config_network.png - - Also, skip the IPs of SwiftStack Cluster-facing and data replication in **IP Range** of - **Storage** section, so skip `192.168.1.100` (Cluster-facing/data replication) on Storage - network - - .. image:: images/3_config_network_storage.png - - If you use SwiftStack On-Premises Controller, you need to do same thing in **Management** - section to skip the IPs of SwiftStack nodes and On-Premises Contorller. - - .. image:: images/3_config_network_mgmt.png - - .. _proxy_outward_facing_ip: - .. _swift_api_ip: - - .. note:: - If you have more than one Proxy server (Proxy-only, PAC, PACO nodes), - or you use external/internal load balancer (Swift API IP Address) for - your Swift cluster, please consider to skip these IPs. - - * ``Outtward-facing IP from SwiftStack Controller UI`` - - .. image:: images/3-1_proxy_outward-facing.png - - * ``Swift API IP address(Load balancer IP) from SwiftStack Controller UI`` - - .. image:: images/3-2_swift_api_ip.png - - -#. Go to the **Nodes** tab of the Fuel Web UI, - drag **Storage** interface to **eth2** and untagged the VLAN for all nodes: - - .. image:: images/4_config_interfaces.png - - .. note:: - The management network is tagged with VLAN ID 101 by default, so you also need - to configure VLAN ID for interfaces of SwiftStack Nodes and On-Premises Controller - - .. _find_keystone_password: - -#. Find the settings from deployment information: - * Keystone IP Address (management_vip) - * Swift password - - Please login to the Fuel master and create a script file called **swiftstack.sh** - with contents in below, - - .. code-block:: bash - - #!/bin/bash - cd /root - fuel env - echo -e "\n\n" - read -p "Which environment?" environment - - # Export environment - fuel deployment --env $environment --default - - # put error checking here - SwiftIP=$(sed -e '/ management:/,/ipaddr:/!d' \ - deployment_*/primary-controller*.yaml \ - | grep ipaddr | awk '{print $2}') - SwiftPW=$(sed -e '/swift:/,/user_password:/!d' \ - deployment_*/primary-controller*.yaml \ - | grep user_password| awk '{print $2}') - - echo "Configure Keystone Auth Token Support middleware with the parameters below :" - echo "----------------------------------------------------------------------------" - echo " identity_url : http://$SwiftIP:5000/" - echo " auth_url : http://$SwiftIP:5000/" - echo " auth_url (for s3) : http://$SwiftIP:35357/" - echo " admin_user : swift" - echo " admin_password : $SwiftPW" - - Change permissions and run it. - - .. code-block:: bash - - [root@fuel ~]$ chmod +x swiftstack.sh - [root@fuel ~]$ ./swiftstack.sh - - id | status | name | release_id | pending_release_id - ---|--------|---------|------------|------------------- - 5 | new | MOS 8.0 | 2 | None - - - Which environment?5 - Default deployment info was downloaded to /root/deployment_5 - Configure Keystone Auth Token Support middleware with the parameters below : - ---------------------------------------------------------------------------- - identity_url : http://192.168.0.2:5000/ - auth_url : http://192.168.0.2:5000/ - auth_url (for s3) : http://192.168.0.2:35357/ - admin_user : swift - admin_password : v4LiGbh6xPU0vtqXQSMeDjxc - - .. _setup_swift_middleware: - -#. Once we get Keystone IP (192.168.0.2) and Swift user’s password (``v4LiGbh6xPU0vtqXQSMeDjxc``), \ - let’s login to SwiftStack Controller UI to configure Swift cluster - - * Go to the **Middleware** tab, enable and configure **Keystone Auth Token Support** middleware as below: - - .. code-block:: bash - - identity_url: http://192.168.0.2:5000/ - auth_url: http://192.168.0.2:5000/ - admin_user: swift - admin_password: v4LiGbh6xPU0vtqXQSMeDjxc - admin_tenant_name: services - - - .. image:: images/5_config_key1.png - - * Enable and configure **Keystone Auth** middleware as below: - - .. code-block:: bash - - reseller_admin_role: admin - - - .. image:: images/6_config_key2.png - -#. If you want to your Swift cluster supports S3 APIs, please also enabled - `Swift S3 Emulation Layer Middleware`_ and **Swift3 Keystone Integration Middleware** - - #. Enable Swift S3 Emulation Layer Middleware, select ``Enabled`` checkbox and submit it - - .. image:: images/enable_swift3.png - - - #. Enable Swift3 Keystone Integration Middleware, select ``Enabled`` checkbox - and fill **http://192.168.0.2:35357/** to ``auth_url`` and then submit it - - .. code-block:: bash - - auth_url (for s3): http://192.168.0.2:35357/ - - .. image:: images/enable_s3token.png - - -.. _Swift S3 Emulation Layer Middleware: https://swiftstack.com/docs/admin/middleware/s3_middleware.html - - -#. Push configure settings to SwiftStack Swift cluster. - -#. Netwerk verification check - Please check Fuel network configuration and SwiftStack settings before you deploy - the OpenStack environment: - - #. SwiftStack Nodes should able to reach Keystone endpoint (internalURL) - on Management network. - #. Clients should able to reach SwiftStack Nodes over Public network. - #. All IPs of SwiftStack Nodes (includes Load Balancer) should be skip in Fuel networks. - #. If you use VLAN, please check VLAN settings on each node - -#. Get back to the Fuel Web UI and deploy your OpenStack environment. - -#. Once Mirantis OpenStack environment is done, you will see the SwiftStack plugin is also deployed. - -.. image:: images/7_deploy_verify1.png - -Verification ------------- - -Please run the verification steps below to ensure your SwiftStack plugin is configured properly: - -Check API endpoints with Keystone CLI: -++++++++++++++++++++++++++++++++++++++ - - .. code-block:: bash - - ### Login to Controller node - ~$ source ~/openrc - ~$ cat ~/openrc | grep OS_AUTH_URL - export OS_AUTH_URL='http://192.168.0.2:5000/' - - ## - ## Correct OS_AUTH_URL, append ‘v2.0’ in the end of line - ## - ~$ export OS_AUTH_URL='http://192.168.0.2:5000/v2.0' - - ~$ keystone endpoint-list |grep KEY - | b858f41ee3704f32a05060932492943b | RegionOne | - http://172.16.0.100:80/v1/KEY_%(tenant_id)s | - http://172.16.0.100:80/v1/KEY_%(tenant_id)s | - http://172.16.0.100:80/v1/KEY_%(tenant_id)s | - 19966ec76f0d455d94caa87d9569a347 | - - -.. _verity_cluster_swift_cli: - -Verify Swift cluster, Keystone and Glance integration through Swift cli -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - Check admin account - - .. code-block:: bash - - # Login to one of nodes of Swift cluster. - - # Test admin account - ~$ cat rc.admin - export ST_AUTH=http://192.168.0.2:5000/v2.0 - export ST_USER=admin:admin - export ST_KEY=admin - export ST_AUTH_VERSION=2 - - ~$ source rc.admin - ~$ swift stat -v - StorageURL: http://172.16.0.100:80/v1/KEY_9f12acc2fc1c4b4cb - 75916b2724e2903 - Auth Token: gAAAAABXV5CFn_cx-Y2pJK4de7XDDXvEmfo4SlhmCAAOweG - -RHLkSCCqfc_mGHoJ-7ee4cACSzzx5bXijCtopbRA-Mh2vr - _SGK9GKSB1AIt-Q1kSsUJTNgjL0T6Hws66r7gh4PmiTFwhO - uhV9BTswzF9GzIHdUpKusd3jhrclcc9ipQdnF_bF1c - Account: KEY_9f12acc2fc1c4b4cb75916b2724e2903 - Containers: 0 - Objects: 0 - Bytes: 0 - X-Put-Timestamp: 1465356423.33437 - X-Timestamp: 1465356423.33437 - X-Trans-Id: txf07064e2471544b29f84d-0057579086 - Content-Type: text/plain; charset=utf-8 - - Check glance account when **Use Swift as Glance backend** is enabled - - .. code-block:: bash - - # Find glance password from deployment yaml - [root@fuel ~]$ sed -e '/glance:/,/user_password:/!d' \ - deployment_*/primary-controller*.yaml - glance: - db_password: XkyxjTF4LKu7FgaY2YyXlUMI - image_cache_max_size: '13928339865' - user_password: iqxWViMcHUjxbWD0hqkvjbon - - - - # Test glance account - ~$ cat rc.glance - export ST_AUTH=http://192.168.0.2:5000/v2.0 - export ST_USER=services:glance - export ST_KEY=iqxWViMcHUjxbWD0hqkvjbon - export ST_AUTH_VERSION=2 - - ~$ swift stat -v - StorageURL: http://172.16.0.100:80/v1/KEY_63bda2 - 0adcb24e2eb37d2dcb13d2a29b - Auth Token: gAAAAABXV4-d_FKAboXyxKOoWVdmbiDCLtgX - 0diSqMed9gzXTPHkt5ko7AMffp28iKBX984g - KXqUKk82pjqQ9tpSIu-TA9cTLoZYz0Cabp9Y - s-zIH-BJOP1DZsEaOIOB8wTrvU2i_eGyPKgN - 25iaARIahh2MYUkNU21Xfzg7Q7bQlwvFFhMo - d7g - Account: KEY_63bda20adcb24e2eb37d2dcb13d2a29b - Containers: 1 - Objects: 1 - Bytes: 13287936 - Containers in policy "standard-replica": 1 - Objects in policy "standard-replica": 1 - Bytes in policy "standard-replica": 13287936 - Accept-Ranges: bytes - X-Account-Project-Domain-Id: default - X-Timestamp: 1465322384.96195 - X-Trans-Id: txa59a5b16d6724fc68adb7-0057578f9e - Content-Type: text/plain; charset=utf-8 - - - -Verify S3 APIs, Swift cluster and Keystone -++++++++++++++++++++++++++++++++++++++++++ - - Find EC2 access key and secret key from Horizon - - .. image:: images/horizon_access.png - - When you click ``View Credentials``, it shows a diaglog for EC2 keys - in below, - - .. image:: images/show_ec2.png - - Or you can use keystone CLI to get EC2 keys. - - .. code-block:: bash - - ~$ keystone ec2-credentials-list - +--------+----------------------------------+----------------------------------+ - | tenant | access | secret | - +--------+----------------------------------+----------------------------------+ - | admin | e8f3617f41d34d02a7ba129f8581a3b6 | 85f2ae90a9614a8b832747af3c6e6c9b | - +--------+----------------------------------+----------------------------------+ - - - Upload single file to a container - - .. code-block:: bash - - ~$ swift upload test rc.admin - ~$ swift stat test rc.admin - Account: KEY_5f88ea5c603f4c3bb091aac02001b318 - Container: test - Object: rc.admin - Content Type: application/octet-stream - Content Length: 115 - Last Modified: Wed, 15 Jun 2016 12:48:44 GMT - ETag: ed6eb254c7a7ba2cba19728f3fff5645 - Meta Mtime: 1465994722.799261 - Accept-Ranges: bytes - X-Timestamp: 1465994923.49250 - X-Trans-Id: tx3dd9b89f2ebc4579857b7-005761743f - - - Please create a script file called s3get.sh and add contents in below, - - .. code-block:: bash - - #!/bin/bash - - url=$1 - s3key=$2 - s3secret=$3 - bucket=$4 - file=$5 - - # Path style - resource="/${bucket}/${file}" - fullpath="${url}/${bucket}/${file}" - - dateValue=`date -u +%a,\ %d\ %h\ %Y\ %T\ %Z` - - echo ${dateValue} - echo ${resource} - - stringToSign="GET\n\n\n${dateValue}\n${resource}" - signature=`echo -en ${stringToSign}|openssl sha1 -hmac ${s3secret} -binary|base64` - curl -I -v -X GET \ - -H "Date: ${dateValue}" \ - -H "Authorization: AWS ${s3key}:${signature}" \ - ${fullpath} - - Try to retrieve the object (container: test, object: rc.admin) through S3 APIs. - - .. code-block:: bash - - ~$ ./s3get.sh http://172.16.0.100:80 \ - > e8f3617f41d34d02a7ba129f8581a3b6 \ - > 85f2ae90a9614a8b832747af3c6e6c9b \ - > test rc.admin - Wed, 15 Jun 2016 15:25:51 UTC - /test/rc.admin - * Hostname was NOT found in DNS cache - * Trying 172.16.0.100... - * Connected to 172.16.0.100 (172.16.0.100) port 80 (#0) - > GET /test/rc.admin HTTP/1.1 - > User-Agent: curl/7.35.0 - > Host: 172.16.0.100 - > Accept: */* - > Date: Wed, 15 Jun 2016 15:25:51 UTC - > Authorization: AWS e8f3617f41d34d02a7ba129f8581a3b6:tHnRZjiCzPzeJhs8SAQ8msBWH3Y= - > - < HTTP/1.1 200 OK - HTTP/1.1 200 OK - < Content-Length: 115 - Content-Length: 115 - < x-amz-id-2: tx43598dcd71274707a7adc-0057617380 - x-amz-id-2: tx43598dcd71274707a7adc-0057617380 - < x-amz-meta-mtime: 1465994722.799261 - x-amz-meta-mtime: 1465994722.799261 - < Last-Modified: Wed, 15 Jun 2016 12:48:44 GMT - Last-Modified: Wed, 15 Jun 2016 12:48:44 GMT - < ETag: "ed6eb254c7a7ba2cba19728f3fff5645" - ETag: "ed6eb254c7a7ba2cba19728f3fff5645" - < x-amz-request-id: tx43598dcd71274707a7adc-0057617380 - x-amz-request-id: tx43598dcd71274707a7adc-0057617380 - < Content-Type: application/octet-stream - Content-Type: application/octet-stream - < X-Trans-Id: tx43598dcd71274707a7adc-0057617380 - X-Trans-Id: tx43598dcd71274707a7adc-0057617380 - < Date: Wed, 15 Jun 2016 15:25:52 GMT - Date: Wed, 15 Jun 2016 15:25:52 GMT - - < - * Excess found in a non pipelined read: excess = 115 url = /test/rc.admin - (zero-length body) - * Connection #0 to host 172.16.0.100 left intact - - - - diff --git a/environment_config.yaml b/environment_config.yaml deleted file mode 100644 index 515fe7d..0000000 --- a/environment_config.yaml +++ /dev/null @@ -1,80 +0,0 @@ -attributes: - metadata: - toggleable: true - group: 'storage' - restrictions: - - condition: "settings:storage.objects_ceph.value == true" - action: disable - - swift_api_address: - value: '192.168.1.100' - label: 'Swift API IP Address' - description: | - If enabled, - * Swift deployment in controller nodes will be disabled - * Swift API endpoint in Keysthone DB will redirect to external Swift cluster. - weight: 5 - type: "text" - regex: - source: '^((?:\d|1?\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d|1?\d\d|2[0-4]\d|25[0-5])){3})$' - error: "Invalid IP address. NOTE: it cannot be empty" - - swift_api_fqdn: - value: '' - label: 'Swift API Hostname' - description: "Swift API Hostname" - weight: 10 - type: "text" - -# swift_modify_hosts: -# weight: 15 -# type: "checkbox" -# value: True -# label: "Add SwiftStack FQDN to /etc/hosts" -# description: | -# Use this option when you need to use domain name for your SwiftStack cluster, -# but it cannot be resolved by DNS server specifed for Fuel environment -# (f.e. in case of self-signed certificates usage). Enabled by default. - - swift_tls_enabled: - weight: 20 - type: "checkbox" - value: False - label: "Enable TLS for Swift endpoints" - description: | - Configures all Swift endpoint urls (public/internal/admin) with TLS support. - restrictions: - - condition: "settings:public_ssl.services.value == true" - message: "TLS for OpenStack public endpoints is enabled" - action: none - -# swift_tls_cert: -# value: '' -# label: 'SwiftStack self-signed certificate' -# description: "If you use self-signed certificate for your SwiftStack cluster, please add it here for distribution of Fuel nodes" -# weight: 25 -# type: "file" -# restrictions: -# - condition: "settings:swiftstack.swift_tls_enabled.value == false" -# action: hide - - swift_as_glance_backend: - weight: 30 - type: "checkbox" - value: false - label: "Use Swift as Glance backend" - description: "Config Glance backend storage to Swift cluster" - restrictions: - - condition: "settings:storage.images_ceph.value == true" - action: disable - - upload_cirros_test: - weight: 35 - type: "checkbox" - value: false - label: "Enable upload test" - description: "Upload cirros base image to Glance and store it in Swift when the depoloyment is done" - restrictions: - - condition: "settings:swiftstack.swift_as_glance_backend.value == false" - action: disable - diff --git a/metadata.yaml b/metadata.yaml deleted file mode 100644 index a5e37b7..0000000 --- a/metadata.yaml +++ /dev/null @@ -1,31 +0,0 @@ -# Plugin name -name: swiftstack -# Human-readable name for your plugin -title: Enable SwiftStack Swift cluster integration -# Plugin version -version: '0.3.0' -# Description -description: Integrate Keystone, Glance and an existing SwiftStack Swift cluster -# Required fuel version -fuel_version: ['8.0'] -is_hotpluggable: true - -# The plugin is compatible with releases in the list -releases: - - os: ubuntu - version: liberty-8.0 - mode: ['ha'] - deployment_scripts_path: deployment_scripts/ - repository_path: repositories/ubuntu - -# Version of plugin package -package_version: '4.0.0' -# Licences -licenses: ['Apache License Version 2.0'] -# Specify author or company name -authors: ['SwiftStack Inc.'] -# A link to the plugin homepage -homepage: 'https://github.com/openstack/fuel-plugin-swiftstack' -groups: ['storage'] - - diff --git a/repositories/centos/.gitkeep b/repositories/centos/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/repositories/ubuntu/.gitkeep b/repositories/ubuntu/.gitkeep deleted file mode 100644 index e69de29..0000000