Retire openstack-chef-repo (step 3)

This repository is unused, retire it.

This is step 3 for retiring a project per
https://docs.openstack.org/infra/manual/drivers.html#retiring-a-project

Depends-On: https://review.openstack.org/599241
Change-Id: Ib2db06c9f591c59a8d57803bfee5c44772012e58
This commit is contained in:
Samuel Cassiba 2018-09-02 10:48:32 -07:00
parent 6d9a73e2e5
commit 5f5a010013
92 changed files with 4 additions and 3235 deletions

View File

@ -1,11 +0,0 @@
wfBM0OA4p1hsqM1tsRNCCFhcjDXP4lffgLvFNbTPgMjh6TZvLDHlrwiA41rqMzdI
SOzSsyO9TBlcwfinbyJcObMpLklSv3wNJ6oWEpa1e78YL998RXx3zmMOoT/SEfWI
ZFN/H5xe+YX4T8T3+W+rfjQH3GP0fTbNfOYtgDthsmtUF05LtBlgxxUXscGkG74D
qDO6f3K97Dcd07QFeMorwvrIBkYDtTyU90HqR1aksMD06fpA2LSGfrLu1ykVUUlb
rTi+O9tyMifSs9SLoJjnrDkeujh3UQXRr4vRwP9tkefEtbQE8OiRpRJ72kLPX2eE
FQGQKjKCk3edAknp7RHhzk66GbUUzY/H+FAJfjFHycIR1rLAHxIbJFToH4dKGj9w
jFkHxgnnGK8TPm7mwyrvo6obR8gBSbG+1xgMiA2/fNoLyuiSqtm21n/1/81QPKBc
FllWAaA8xR6l2Ji8JPoJ705Msk6183ODeN//vn2JvwxacUL9HWqI6Gy2SsETQ3yW
A6PzVVnKHpevco7TH9HhuhKIlpYbjWv4YMUlLAz/5PbbLiOJtDGB54o/6hQGqOP0
3jscQ0ciPjpLgwvQmQJztrB/Uvq6Un2moPLLygwQK0TYSNmM5+BMnB00/aK++y7x
mvymJcSxd48DBrA2NuFDhNBWwOcZSB1R/N50Vs/iq5I=

View File

@ -1,16 +0,0 @@
# See http://docs.opscode.com/config_rb_knife.html
# for more information on knife configuration options
current_dir = File.dirname(__FILE__)
log_level :info
log_location STDOUT
node_name 'nodienode'
client_key "#{current_dir}/nodienode.pem"
validation_client_name 'chef-validator'
validation_key "#{current_dir}/validator.pem"
chef_server_url 'https://api.opscode.com/organizations/my_awesome_org'
cache_type 'BasicFile'
cache_options(path: "#{ENV['HOME']}/.chef/checksums")
cookbook_path ["#{current_dir}/../cookbooks",
"#{current_dir}/../site-cookbooks"]
knife[:secret_file] = "#{current_dir}/encrypted_data_bag_secret"

View File

@ -1,9 +0,0 @@
[local_phases]
unit = 'berks vendor cookbooks'
lint = 'cookstyle --display-cop-names --extra-details'
syntax = "./scripts/json_check.sh"
provision = "echo skipping"
deploy = "echo skipping"
smoke = "echo skipping"
functional = "echo skipping"
cleanup = "echo skipping"

19
.gitignore vendored
View File

@ -1,19 +0,0 @@
.DS_Store
.kitchen/
.kitchen.local.yml
.bundle
.vagrant
berks-cookbooks/
Berksfile.lock
clients/
cookbooks/
Gemfile.lock
nodes/
vms/
.chef/nodienode.pem
.chef/validator.pem
.chef/local-mode-cache/
.project
.tox
doc/build
*.egg-info

View File

@ -1,143 +0,0 @@
---
driver:
name: dokken
privileged: true
chef_version: 14
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup
- /lib/modules:/lib/modules:ro
- /run/openvswitch:/run/openvswitch
transport:
name: dokken
provisioner:
name: dokken
encrypted_data_bag_secret_key_path: .chef/encrypted_data_bag_secret
verifier:
name: inspec
platforms:
- name: ubuntu-16.04
driver:
image: dokken/ubuntu-16.04
pid_one_command: /bin/systemd
- name: centos-7
platform: rhel
driver:
image: dokken/centos-7
pid_one_command: /usr/lib/systemd/systemd
suites:
- name: default
driver:
ports:
- '80'
- '8080'
- '443'
- '3460'
- '3306'
- '5672'
- '5000'
- '35357'
- '8774'
- '8776'
- '9292'
- '9696'
- '8000'
- '8003'
- '8004'
run_list:
# run_list taken from roles/allinone.json
- recipe[selinux::disabled]
- recipe[openstack-common]
- recipe[openstack-common::logging]
- recipe[openstack-common::sysctl]
- recipe[openstack-common::client]
- recipe[openstack-ops-database::server]
- recipe[openstack-ops-database::openstack-db]
- recipe[openstack-ops-messaging::rabbitmq-server]
- recipe[openstack-identity::server-apache]
- recipe[openstack-identity::registration]
- recipe[openstack-identity::openrc]
- recipe[openstack-image::api]
- recipe[openstack-image::registry]
- recipe[openstack-image::identity_registration]
- recipe[openstack-network::identity_registration]
- recipe[openstack-network::ml2_core_plugin]
- recipe[openstack-network::ml2_openvswitch]
- recipe[openstack-network]
- recipe[openstack-network::openvswitch]
- recipe[openstack-network::_bridge_config_example]
- recipe[openstack-network::plugin_config]
- recipe[openstack-network::server]
- recipe[openstack-network::l3_agent]
- recipe[openstack-network::dhcp_agent]
- recipe[openstack-network::metadata_agent]
- recipe[openstack-network::openvswitch_agent]
- recipe[openstack-compute::nova-setup]
- recipe[openstack-compute::identity_registration]
- recipe[openstack-compute::conductor]
- recipe[openstack-compute::api-os-compute]
- recipe[openstack-compute::api-metadata]
- recipe[openstack-compute::placement_api]
- recipe[openstack-compute::scheduler]
- recipe[openstack-compute::vncproxy]
- recipe[openstack-compute::compute]
- recipe[openstack-compute::identity_registration]
# NOTE: block-storage, orchestration, dashboard, etc. can be installed
# but are not tested by tempest
- recipe[openstack-block-storage::api]
- recipe[openstack-block-storage::scheduler]
- recipe[openstack-block-storage::volume_driver_lvm]
- recipe[openstack-block-storage::volume]
- recipe[openstack-block-storage::backup]
- recipe[openstack-block-storage::identity_registration]
- recipe[openstack-orchestration::engine]
- recipe[openstack-orchestration::api]
- recipe[openstack-orchestration::api-cfn]
- recipe[openstack-orchestration::identity_registration]
- recipe[openstack-image::image_upload]
- recipe[openstack-dashboard::horizon]
- recipe[openstack-dashboard::neutron-lbaas-dashboard]
- recipe[openstack-integration-test::create_network]
- recipe[openstack-integration-test::setup]
- recipe[openstack-integration-test::run_tempest]
verifier:
inspec_tests:
- test/tempest/default
# from environments/allinone.json
attributes:
# Attributes copied from environments/integration.json
apache:
listen: []
yum:
epel:
enabled: false
openstack:
is_release: true
apt:
update_apt_cache: true
dashboard:
server_hostname: localhost
telemetry:
conf:
DEFAULT:
meter_dispatchers: database
mq:
user: admin
network:
tun_network_bridge_interface: eth0
conf:
DEFAULT:
service_plugins: router
image:
image_upload: true
compute:
conf:
libvirt:
cpu_type: none
virt_type: qemu
secret:
key_path: /opt/kitchen/encrypted_data_bag_secret

View File

@ -1,267 +0,0 @@
---
driver:
name: vagrant
client_rb:
treat_deprecation_warnings_as_errors: true
resource_cloning: false
provisioner:
name: chef_zero
# You may wish to disable always updating cookbooks in CI or other testing
# environments.
# For example:
# always_update_cookbooks: <%= !ENV['CI'] %>
always_update_cookbooks: true
product_name: chef
product_version: 14
# Copy secret to /tmp/kitchen on test VM. Kitchen tries to gather secrets
# before any recipes had a chance to run -> we cannot use a recipe to put the
# secrets file in place.
encrypted_data_bag_secret_key_path: .chef/encrypted_data_bag_secret
attributes:
# Attributes copied from environments/multinode.json
apache:
listen: []
yum:
epel:
enabled: false
openstack:
is_release: true
apt:
update_apt_cache: true
bind_service:
db:
host: '192.168.101.60'
mq:
host: '192.168.101.60'
main:
identity:
host: '0.0.0.0'
admin:
identity:
host: '0.0.0.0'
all:
block-storage:
host: '0.0.0.0'
compute-api:
host: '0.0.0.0'
compute-metadata-api:
host: '0.0.0.0'
image_api:
host: '0.0.0.0'
image_registry:
host: '0.0.0.0'
network:
host: '0.0.0.0'
orchestration-api:
host: '0.0.0.0'
orchestration-api-cfn:
host: '0.0.0.0'
placement-api:
host: '0.0.0.0'
compute:
conf:
libvirt:
cpu_type: none
virt_type: qemu
dashboard:
server_hostname: controller.example.net
endpoints:
db:
host: '192.168.101.60'
mq:
host: '192.168.101.60'
admin:
block-storage:
host: '192.168.101.60'
compute-api:
host: '192.168.101.60'
compute-metadata-api:
host: '192.168.101.60'
identity:
host: '192.168.101.60'
image_api:
host: '192.168.101.60'
image_registry:
host: '192.168.101.60'
network:
host: '192.168.101.60'
orchestration-api:
host: '192.168.101.60'
orchestration-api-cfn:
host: '192.168.101.60'
placement-api:
host: '192.168.101.60'
internal:
block-storage:
host: '192.168.101.60'
compute-api:
host: '192.168.101.60'
compute-metadata-api:
host: '192.168.101.60'
identity:
host: '192.168.101.60'
image_api:
host: '192.168.101.60'
image_registry:
host: '192.168.101.60'
network:
host: '192.168.101.60'
orchestration-api:
host: '192.168.101.60'
orchestration-api-cfn:
host: '192.168.101.60'
placement-api:
host: '192.168.101.60'
public:
block-storage:
host: '192.168.101.60'
compute-api:
host: '192.168.101.60'
compute-metadata-api:
host: '192.168.101.60'
identity:
host: '192.168.101.60'
image_api:
host: '192.168.101.60'
image_registry:
host: '192.168.101.60'
network:
host: '192.168.101.60'
orchestration-api:
host: '192.168.101.60'
orchestration-api-cfn:
host: '192.168.101.60'
placement-api:
host: '192.168.101.60'
image:
image_upload: true
memcached_servers: ['127.0.0.1:11211']
mq:
user: admin
network:
conf:
DEFAULT:
service_plugins: router
ml2:
tenant_network_types: 'vxlan'
plugins:
ml2_openvswitch:
conf:
ml2_type_vxlan:
vni_ranges: '65537:69999'
vxlan_group: '239.1.1.40'
transport_url:
rabbit_host: '192.168.101.60'
tun_network_bridge_interface: 'eth2'
secret:
key_path: /tmp/kitchen/encrypted_data_bag_secret
sysctl:
net.ipv4.ip_forward: 1
telemetry:
conf:
DEFAULT:
meter_dispatchers: database
verifier:
name: inspec
platforms:
- name: ubuntu-16.04
- name: centos-7.5
suites:
- name: compute1
customize:
cpus: 2
memory: 2048
driver:
network:
- ["private_network", {ip: "192.168.100.61"}]
- ["private_network", {ip: "192.168.101.61"}]
run_list:
- recipe[openstack-common]
- recipe[openstack-common::logging]
- recipe[openstack-common::sysctl]
- recipe[openstack-common::python]
- recipe[openstack-compute::compute]
- name: compute2
customize:
cpus: 2
memory: 2048
driver:
network:
- ["private_network", {ip: "192.168.100.62"}]
- ["private_network", {ip: "192.168.101.62"}]
run_list:
- recipe[openstack-common]
- recipe[openstack-common::logging]
- recipe[openstack-common::sysctl]
- recipe[openstack-common::python]
- recipe[openstack-compute::compute]
- name: controller
customize:
cpus: 4
memory: 8192
driver:
network:
- ["private_network", {ip: "192.168.100.60"}]
- ["private_network", {ip: "192.168.101.60"}]
run_list:
# run_list taken from roles/multinode-controller.json
- recipe[openstack-common]
- recipe[openstack-common::logging]
- recipe[openstack-common::sysctl]
- recipe[openstack-common::python]
- recipe[openstack-common::client]
- recipe[openstack-common::etcd]
- recipe[openstack-ops-database::server]
- recipe[openstack-ops-database::openstack-db]
- recipe[openstack-ops-messaging::rabbitmq-server]
- recipe[openstack-identity::server-apache]
- recipe[openstack-identity::registration]
- recipe[openstack-identity::openrc]
- recipe[openstack-image::api]
- recipe[openstack-image::registry]
- recipe[openstack-image::identity_registration]
- recipe[openstack-network::plugin_config]
- recipe[openstack-network::ml2_openvswitch]
- recipe[openstack-network]
- recipe[openstack-network::openvswitch]
- recipe[openstack-network::_bridge_config_example]
- recipe[openstack-network::l3_agent]
- recipe[openstack-network::dhcp_agent]
- recipe[openstack-network::metadata_agent]
- recipe[openstack-network::openvswitch_agent]
- recipe[openstack-compute::nova-setup]
- recipe[openstack-compute::identity_registration]
- recipe[openstack-compute::conductor]
- recipe[openstack-compute::api-os-compute]
- recipe[openstack-compute::api-metadata]
- recipe[openstack-compute::placement_api]
- recipe[openstack-compute::scheduler]
- recipe[openstack-compute::vncproxy]
- recipe[openstack-compute::identity_registration]
# NOTE: block-storage, orchestration, dashboard, etc. will be installed
# but are not tested by tempest
- recipe[openstack-block-storage::api]
- recipe[openstack-block-storage::scheduler]
- recipe[openstack-block-storage::volume_driver_lvm]
- recipe[openstack-block-storage::volume]
- recipe[openstack-block-storage::backup]
- recipe[openstack-block-storage::identity_registration]
- recipe[openstack-orchestration::engine]
- recipe[openstack-orchestration::api]
- recipe[openstack-orchestration::api-cfn]
- recipe[openstack-orchestration::identity_registration]
- recipe[openstack-image::image_upload]
- recipe[openstack-dashboard::horizon]
- recipe[openstack-dashboard::neutron-lbaas-dashboard]
- recipe[openstack-integration-test::create_network]
- recipe[openstack-integration-test::setup]
- recipe[openstack-integration-test::run_tempest]
verifier:
inspec_tests:
- test/tempest/default

View File

@ -1,132 +0,0 @@
<%
public_ip = "10.0.0.81"
%>
---
driver:
name: vagrant
customize:
cpus: 4
memory: 8192
client_rb:
treat_deprecation_warnings_as_errors: true
resource_cloning: false
provisioner:
name: chef_zero
# You may wish to disable always updating cookbooks in CI or other testing
# environments.
# For example:
# always_update_cookbooks: <%= !ENV['CI'] %>
always_update_cookbooks: true
product_name: chef
product_version: 14
# Copy secret to /tmp/kitchen on test VM. Kitchen tries to gather secrets
# before any recipes had a chance to run -> we cannot use a recipe to put the
# secrets file in place.
encrypted_data_bag_secret_key_path: .chef/encrypted_data_bag_secret
verifier:
name: inspec
platforms:
- name: ubuntu-16.04
- name: centos-7.5
suites:
- name: default
run_list:
# run_list taken from roles/allinone.json
- recipe[openstack-common]
- recipe[openstack-common::logging]
- recipe[openstack-common::sysctl]
- recipe[openstack-common::client]
- recipe[openstack-ops-database::server]
- recipe[openstack-ops-database::openstack-db]
- recipe[openstack-ops-messaging::rabbitmq-server]
- recipe[openstack-identity::server-apache]
- recipe[openstack-identity::registration]
- recipe[openstack-identity::openrc]
- recipe[openstack-image::api]
- recipe[openstack-image::registry]
- recipe[openstack-image::identity_registration]
- recipe[openstack-network::identity_registration]
- recipe[openstack-network::ml2_core_plugin]
- recipe[openstack-network::ml2_openvswitch]
- recipe[openstack-network]
- recipe[openstack-network::openvswitch]
- recipe[openstack-network::_bridge_config_example]
- recipe[openstack-network::plugin_config]
- recipe[openstack-network::server]
- recipe[openstack-network::l3_agent]
- recipe[openstack-network::dhcp_agent]
- recipe[openstack-network::metadata_agent]
- recipe[openstack-network::openvswitch_agent]
- recipe[openstack-compute::nova-setup]
- recipe[openstack-compute::identity_registration]
- recipe[openstack-compute::conductor]
- recipe[openstack-compute::api-os-compute]
- recipe[openstack-compute::api-metadata]
- recipe[openstack-compute::placement_api]
- recipe[openstack-compute::scheduler]
- recipe[openstack-compute::vncproxy]
- recipe[openstack-compute::compute]
- recipe[openstack-compute::identity_registration]
# NOTE: block-storage, orchestration, dashboard, etc. can be installed
# but are not tested by tempest
- recipe[openstack-block-storage::api]
- recipe[openstack-block-storage::scheduler]
- recipe[openstack-block-storage::volume_driver_lvm]
- recipe[openstack-block-storage::volume]
- recipe[openstack-block-storage::backup]
- recipe[openstack-block-storage::identity_registration]
- recipe[openstack-orchestration::engine]
- recipe[openstack-orchestration::api]
- recipe[openstack-orchestration::api-cfn]
- recipe[openstack-orchestration::identity_registration]
- recipe[openstack-image::image_upload]
- recipe[openstack-dashboard::horizon]
- recipe[openstack-dashboard::neutron-lbaas-dashboard]
- recipe[openstack-integration-test::create_network]
- recipe[openstack-integration-test::setup]
- recipe[openstack-integration-test::run_tempest]
driver_config:
network:
- ["private_network", {ip: <%= public_ip %>}]
verifier:
inspec_tests:
- test/tempest/default
# from environments/allinone-ubuntu16.json, environments/allinone-centos7.json
attributes:
# Attributes copied from environments/integration-ubuntu16.json
apache:
listen: []
yum:
epel:
enabled: false
openstack:
is_release: true
apt:
update_apt_cache: true
dashboard:
server_hostname: localhost
memcached_servers: ['127.0.0.1:11211']
telemetry:
conf:
DEFAULT:
meter_dispatchers: database
mq:
user: admin
network:
conf:
DEFAULT:
service_plugins: router
image:
image_upload: true
compute:
conf:
libvirt:
cpu_type: none
virt_type: qemu
secret:
key_path: /tmp/kitchen/encrypted_data_bag_secret

View File

@ -1,13 +0,0 @@
inherit_from: .rubocop_todo.yml
AllCops:
Include:
- '**/*.rb'
- '**/Gemfile'
- environments/**/*.rb
- roles/**/*.rb
- .chef/**/*.rb
Exclude:
- cookbooks/**/*
- vms/**/*
- nodes/**/*

View File

@ -1,14 +0,0 @@
# This configuration was generated by
# `rubocop --auto-gen-config`
# on 2017-12-22 17:48:38 -0800 using RuboCop version 0.49.1.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
# versions of RuboCop, may require this file to be generated again.
# Offense count: 1
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: for, each
Style/For:
Exclude:
- 'Rakefile'

View File

@ -1,3 +0,0 @@
- project:
templates:
- noop-jobs

View File

@ -1,26 +0,0 @@
source 'https://supermarket.chef.io'
%w(
integration-test
orchestration
telemetry
block-storage
common
compute
dashboard
dns
identity
image
network
ops-database
ops-messaging
).each do |cookbook|
if Dir.exist?("../cookbook-openstack-#{cookbook}")
cookbook "openstack-#{cookbook}", path: "../cookbook-openstack-#{cookbook}"
else
cookbook "openstack-#{cookbook}", git: "https://git.openstack.org/openstack/cookbook-openstack-#{cookbook}"
end
end
cookbook 'openstackclient', git: 'https://git.openstack.org/openstack/cookbook-openstackclient'
cookbook 'statsd', github: 'librato/statsd-cookbook'

View File

@ -1,35 +0,0 @@
Contributing
============
How To Get Started
------------------
If you would like to contribute to the development of OpenStack Chef Cookbooks,
you must follow the steps in this page:
http://docs.openstack.org/infra/manual/developers.html
Gerrit Workflow
---------------
Once those steps have been completed, changes to OpenStack
should be submitted for review via the Gerrit tool, following
the workflow documented at:
http://docs.openstack.org/infra/manual/developers.html#development-workflow
Pull requests submitted through GitHub will be ignored.
Bugs
----
Bugs should be filed on Launchpad, not GitHub:
https://bugs.launchpad.net/openstack-chef
Contacts
--------
Mailing list: [chef] on the OpenStack-Dev mailing list
IRC: #openstack-chef is our channel on irc.freenode.net
Wiki: https://wiki.openstack.org/wiki/Chef/GettingStarted

201
LICENSE
View File

@ -1,201 +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.

286
README.md
View File

@ -1,286 +1,8 @@
Team and repository tags
========================
This project is no longer maintained.
[![Team and repository tags](http://governance.openstack.org/badges/openstack-chef-repo.svg)](http://governance.openstack.org/reference/tags/index.html)
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".
<!-- Change things from this point on -->
For the replacement to this repository, see https://git.openstack.org/cgit/openstack/openstack-chef
![Chef OpenStack Logo](https://www.openstack.org/themes/openstack/images/project-mascots/Chef%20OpenStack/OpenStack_Project_Chef_horizontal.png)
For any further questions, please email openstack-dev@lists.openstack.org or join #openstack-chef on Freenode.
# Testing framework for deploying OpenStack using Chef
This is the testing framework for OpenStack deployed using
[Chef](https://www.chef.io). We leverage this to test against our changes to our
[cookbooks](https://wiki.openstack.org/wiki/Chef/GettingStarted) to make sure
that you can still build a cluster from the ground up with any changes we
introduce.
This framework also gives us an opportunity to show different Reference
Architectures and a sane example on how to start with OpenStack using Chef.
With the `master` branch of the cookbooks, which is currently tied to the base
OpenStack Ocata release, this supports deploying to Ubuntu 16.04 and CentOS 7
in monolithic, or allinone, and non-HA multinode configurations with Neutron.
The cookbooks support a fully HA configuration, but we do not test for that as
there are far numerous paths to
HA.
## Prerequisites
- [ChefDK](https://downloads.chef.io/chef-dk/) 2.0 or later
- [Vagrant](https://www.vagrantup.com/downloads.html) 2.0 or later with
[VirtualBox](https://www.virtualbox.org/wiki/Downloads) or some other provider
### Getting the Code (this repo)
```shell
$ git clone https://github.com/openstack/openstack-chef-repo.git
$ cd openstack-chef-repo
```
The OpenStack cookbooks by default use encrypted data bags for configuring
passwords. There are four data bags : *user_passwords*, *db_passwords*,
*service_passwords*, *secrets*. There already exists a `data_bags/` directory,
so you shouldn't need to create any for a proof of concept. If you do, something is wrong.
See the [Data Bags](doc/data_bags.md) doc for the gory details.
## Supported Deployments
For each deployment model, there is a corresponding file in the doc/ directory.
Please review that for specific details and additional setup that might be
required before deploying the cloud.
## Kitchen Deploy Commands
These commands will produce various OpenStack cluster configurations, the
simplest being a monolithic Compute Controller with Neutron (allinone). These
deployments are not intended to be production-ready, and will need adaptation
to your environment. This is intended for development and proof of concept
deployments.
## Kitchen Test Scenarios
### Initialize the ChefDK
```bash
$ eval "$(chef shell-init bash)"
```
### Everything self-contained (allinone)
```bash
# allinone with Neutron
$ kitchen test [centos|ubuntu]
```
### Access the machine
```bash
$ kitchen login [centos|ubuntu]
$ sudo su -
```
### Multiple nodes (non-HA)
```bash
# Multinode with Neutron (1 controller + 2 compute nodes)
$ export KITCHEN_YAML=.kitchen.multi.yaml
$ kitchen converge [centos|ubuntu|all]
$ kitchen verify [centos|ubuntu|all]
$ kitchen destroy [centos|ubuntu|all]
```
### Access the Controller
```bash
$ kitchen login controller-[centos|ubuntu]
$ sudo su -
```
### Access the Compute nodes
```bash
$ cd vms
$ kitchen login compute1
# OR
$ kitchen login compute2
$ sudo su -
```
### Testing The Controller
```bash
# Access the controller as noted above
$ source /root/openrc
$ nova --version
$ openstack service list && openstack hypervisor list
$ openstack image list
$ openstack user list
$ openstack server list
```
### Working With Security Groups ###
To allow SSH access to instances, a security group is defined as follows:
```bash
$ openstack security group list
$ openstack security group list default
$ openstack security group create allow_ssh --description "allow ssh to instances"
$ openstack security group rule create allow_ssh --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
$ openstack security group list allow_ssh
```
### Working With Keys ###
To allow SSH keys to be injected into instance, a key pair is defined as follows:
```bash
# generate a new key pair
$ openstack keypair create mykey > mykey.pem
$ chmod 600 mykey.pem
$ openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
# verify the key pair has been imported
$ openstack keypair list
```
#### Booting up a cirros image on the Controller
```bash
$ openstack server create --flavor 1 --image cirros --security-group allow_ssh --key-name mykey test
```
Wait a few seconds and the run `openstack server list` if Status is not Active, wait a few seconds and repeat.
Once status is active you should be able to log in using SSH, or `vagrant ssh <vm_name>`
```bash
$ ssh cirros@<ip address from openstack server list output>
```
#### Accessing The OpenStack Dashboard
If you would like to use the OpenStack dashboard you should go to https://localhost:9443 and the username and password is `admin/mypass`.
#### Verifying OpenStack With Tempest
If you log in to the `controller` machine you can test via the most recent [Tempest](https://github.com/openstack/tempest) release.
```bash
$ cd vms
$ vagrant ssh <controller>
$ sudo su -
root@controller:~ cd /opt/tempest
root@controller:/opt/tempest$ ./run_tempest.sh -V --smoke --serial
[-- snip --]
tempest.tests.test_wrappers.TestWrappers
test_pretty_tox 1.68
test_pretty_tox_fails 1.03
test_pretty_tox_serial 0.61
test_pretty_tox_serial_fails 0.55
Ran 233 tests in 13.869s
OK
Running flake8 ...
root@controller:/opt/tempest#
```
## Cleanup
To remove all the nodes and start over again with a different environment or different environment attribute overrides, using the following rake command.
```bash
$ chef exec rake destroy_machines
```
To refresh all cookbooks, use the following commands.
```bash
$ rm -rf cookbooks
$ chef exec rake berks_vendor
```
To clean up everything, use the following rake command.
```bash
$ chef exec rake clean
```
## Tools
See the doc/tools.md for more information.
## Data Bags
Some basic information about the use of data bags within this repo.
```
# Show the list of data bags
$ chef exec knife data bag list -z
db_passwords
secrets
service_passwords
user_passwords
# Show the list of data bag items
$ chef exec knife data bag show db_passwords -z
cinder
dash
glance
horizon
keystone
neutron
nova
# Show contents of data bag item
$ chef exec knife data bag show db_passwords nova -z
Encrypted data bag detected, decrypting with provided secret.
nova: mypass
id: nova
# Update contents of data bag item
# set EDITOR env var to your editor. eg. EDITOR=vi
$ chef exec knife data bag edit secrets dispersion_auth_user -z
```
### Data Bag Default Values
db_passwords are set to "mypass"
secrets are set to "<key>_token"
service_passwords are set to "mypass"
user_passwords are set to "mypass"
### Default Encrypted Data Bag Secret
The default secret is stored here .chef/encrypted_data_bag_secret
and referenced by .chef/knife.rb.
When we say defaults, we mean that they are known by everyone with access to
this repository. Change these to something else before deploying for real.
## Known Issues and Workarounds
### Windows Platform
When using this on a Windows platform, here are some tweaks to make this work:
- In order to get SSH to work, you will need an SSL client installed. You can use the one that comes with [Git for Windows](http://git-scm.com/download). You will need to append `C:\Program Files (x86)\Git\bin;` to the system PATH.
## TODOs
- Support for floating IPs
- Better instructions for multi-node network setup
- Easier debugging. Maybe a script to pull the logs from the controller.
# License #
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.

162
Rakefile
View File

@ -1,162 +0,0 @@
current_dir = File.dirname(__FILE__)
client_opts = "--force-formatter --no-color -z --config #{current_dir}/.chef/knife.rb"
task default: ['test']
desc 'Default gate tests to run'
task test: %i(rubocop berks_vendor json_check)
def run_command(command)
if File.exist?('Gemfile.lock')
sh %(bundle exec #{command})
else
sh %(chef exec #{command})
end
end
task :destroy_all do
run_command('rm -rf Gemfile.lock && rm -rf Berksfile.lock && rm -rf cookbooks/')
end
desc 'Vendor your cookbooks/'
task :berks_vendor do
run_command('berks vendor cookbooks')
end
desc 'Create Chef Key'
task :create_key do
unless File.exist?('.chef/validator.pem')
require 'openssl'
File.binwrite('.chef/validator.pem', OpenSSL::PKey::RSA.new(2048).to_pem)
end
end
desc 'Blow everything away'
task clean: [:destroy_all]
# CI tasks
require 'cookstyle'
require 'rubocop/rake_task'
desc 'Run RuboCop'
RuboCop::RakeTask.new do |task|
task.options << '--display-cop-names'
end
desc 'Validate data bags, environments and roles'
task :json_check do
require 'json'
['data_bags/*', 'environments', 'roles'].each do |sub_dir|
Dir.glob(sub_dir + '/*.json') do |env_file|
puts "Checking #{env_file}"
JSON.parse(File.read(env_file))
end
end
end
# Helper for running various testing commands
def _run_commands(desc, commands, openstack = true)
puts "## Running #{desc}"
commands.each do |command, options|
options.each do |option|
if openstack
sh %(sudo bash -c '. /root/openrc && #{command} #{option}')
else
sh %(#{command} #{option})
end
end
end
puts "## Finished #{desc}"
end
# use the correct environment depending on platform
if File.exist?('/usr/bin/apt-get')
@platform = 'ubuntu16'
elsif File.exist?('/usr/bin/yum')
@platform = 'centos7'
end
# Helper for looking at the starting environment
def _run_env_queries
_run_commands('basic common env queries', {
'uname' => ['-a'],
'pwd' => [''],
'env' => [''],
},
false)
case @platform
when 'ubuntu16'
_run_commands('basic debian env queries', {
'ifconfig' => [''],
'cat' => ['/etc/apt/sources.list'],
},
false)
when 'centos7'
_run_commands('basic rhel env queries', {
'/usr/sbin/ip' => ['addr'],
'cat' => ['/etc/yum.repos.d/*'],
},
false)
end
end
# Helper for setting up basic query tests
def _run_basic_queries
_run_commands('basic common test queries',
'sudo netstat' => ['-nlp'],
'nova-manage' => ['version', 'db version'],
'nova' => %w(--version service-list hypervisor-list flavor-list),
'glance-manage' => %w(db_version),
'glance' => %w(--version image-list),
'keystone-manage' => %w(db_version),
'openstack' => ['--version', 'user list', 'endpoint list', 'role list',
'service list', 'project list',
'network agent list', 'extension list --network ',
'network list', 'subnet list'],
'ovs-vsctl' => %w(show))
case @platform
when 'ubuntu16'
_run_commands('basic debian test queries',
'rabbitmqctl' => %w(cluster_status),
'ip' => ['addr', 'route', '-6 route'])
when 'centos7'
_run_commands('basic rhel test queries',
'/usr/sbin/rabbitmqctl' => %w(cluster_status),
'/usr/sbin/ip' => ['addr', 'route', '-6 route'])
end
end
def _save_logs(prefix, log_dir)
sh %(sleep 25)
%w(nova neutron keystone glance apache2 rabbitmq mysql mysql-default openvswitch mariadb).each do |project|
sh %(mkdir -p #{log_dir}/#{prefix}/#{project})
sh %(sudo cp -rL /etc/#{project} #{log_dir}/#{prefix}/#{project}/etc || true)
sh %(sudo cp -rL /var/log/#{project} #{log_dir}/#{prefix}/#{project}/log || true)
end
end
desc 'Integration test on Infra'
task integration: %i(create_key berks_vendor) do
log_dir = ENV['WORKSPACE'] + '/logs'
sh %(mkdir #{log_dir})
# This is a workaround for allowing chef-client to run in local mode
sh %(sudo mkdir -p /etc/chef && sudo cp .chef/encrypted_data_bag_secret /etc/chef/openstack_data_bag_secret)
_run_env_queries
# Three passes to ensure idempotency. prefer each to times, even if it
# reads weird
for i in 1..3 do
begin
puts "####### Pass #{i}"
# Kick off chef client in local mode, will converge OpenStack right on the gate job "in place"
sh %(sudo chef-client #{client_opts} -E integration -r 'role[minimal]' > #{log_dir}/chef-client-pass#{i}.txt 2>&1 )
_run_basic_queries
rescue => e
raise "####### Pass #{i} failed with #{e.message}"
ensure
# make sure logs are saved, pass or fail
_save_logs("pass#{i}", log_dir)
sh %(sudo chown -R $USER #{log_dir}/pass#{i})
sh %(sudo chmod -R go+rx #{log_dir}/pass#{i})
end
end
end

View File

@ -1,6 +0,0 @@
# Testing the Openstack Cookbook Repo
Basic tests are rubucop and Berks. To run these test use:
```bash
$ chef exec rake
```

View File

@ -1,5 +0,0 @@
build-essential [platform:dpkg]
liblzma-dev [platform:dpkg]
xz-devel [platform:rpm]
zlib1g-dev [platform:dpkg]
zlib-devel [platform:rpm]

View File

@ -1,11 +0,0 @@
#!/bin/bash -x
## This script is for installing all the needed packages on trusty to run the chef tests with 'chef exec rake'.
## It relies on the common bootstrap.sh from openstack/cookbook-openstack-common for installing common dependencies.
wget -nv -t 3 -O common-bootstrap.sh https://raw.githubusercontent.com/openstack/cookbook-openstack-common/master/bootstrap.sh
/bin/bash -x common-bootstrap.sh
# To enable cookbook Depends-On support, the Common bootstrap above will already
# get the cookbook dependencies cloned into ../openstack-cookbook-xxxx. In order to
# have the repo tests use these cookbooks patches, the Berksfile uses the ZUUL_CHANGES
# variable to trigger using local cookbooks.

View File

@ -1,10 +0,0 @@
{
"id": "horizon.key",
"horizon.key": {
"encrypted_data": "3f0zL64eSf4wlcjb0WqmKpOeP9v232NLo2H9r+kMHWaWTtzU/nd3/O91NTgf\nUL9dx+TrSVniwo32+Q68s9xnes+zNarcdEh7xuzmsKshXl3VfvTRQjsk1Qq5\n18ooFOvRBZzD3sPp+AbYavvzvZfEJY4jYcLIs4lami95KdNdziePm2bD1v5b\n2YcWgfmSuSnNI/LYuxaCx5qQvSCpFbr0YKSCURaGDnB+firpj6gom+pXvVf+\n2ao4gHEjnDtYliwBl7f1jh/LD3a3mmpiNEwEtAR+Jx34EIdo0I0TsIcRvpZ4\nLOHrSO8e0fwgCBg6lQywZg3ZZwT8g75YWyTcaZ3omdPTitUaygyY6HoM3K3R\nwJDD2mslHdH8stEbxNjy0Wz59hTN+rTf+AMr7hadUa5t36dERiQMTb2ua/iY\nNjQGa6Shl0YOp+q+FFEL78pAXcaXCEGhVyVkQ0yVzPeazAQFhHDuz4J8nNco\n9M3ZxoRkUKH2BcNFIlCf1VSPQaPc81Rs3lhy/9kjnKBMyD45iTcSPI2m8zkZ\n4hAv4PFVhkY7QVVsV4iYJadoA1w9MPQndM2Si27ovFYgCmMOvKpeFHvmuPb8\nvw0Oil0lNG9zV5J81sivKXoIFs84W8c3s06roBK8SARatVVGtIj3TNsjJ/IC\n1QsaOuM2vq6aNnANvM2NTwOwicnupE7hGu86ewrtukY1ag7gORRGmfU/A3sN\npSd8RORdMEGQ97ACS98KhAbnQ3nVq+c07JC50txRemzCkqUiVnl6Uqed5q6e\n3Qlfzqud4oWVc91ol/Q90+6ekpdSCONxbXpiglkca1slszaLh8nW2bp0zbYp\nFT61UzGGYDCSrR37dc33cbxieDFHNfpZa/iU1jf97azQokidytjnNEA/DhbB\nAkGCvwoOZRubjR56/sKYgGvz8meyWTY94RnAxEJrzFkrSybUZ8wkIPd9d8B8\nYtiWZNOS/rMM9L1fE9cRDQWrSVHLex4kJDVIG+DBvEMvXve2EaeqfwPymsHi\nRR4o9kSr4i8MxiH5we+Ko33rwQaQEplNAf5qt2st9grbfQYzsf81OBaUtF3L\n3GLACI/3CWUP7bVWfkMH9bo5Tv9KfsKlQgfLZ5Ehp+v57xGYSS/G+V0jZyFi\nwOPH88s6m715zNpH48h0qkgYJjpN/dQrSyAau1OZpY6xfY3NAPVolAOoXAkA\nnTbY6WZULBT5LO0B74XKzvdZtCe8rOqg+iyQIMSEPN3DBb+TJSzfc8m5qQyf\nQ/JUOSbCIpG/uvFFZblkiWeUYt6GDhsALhCbBYdRCv/9ZGmzUkznHBi0ScsD\nvPhkZ5MuTLTfAITP7TFaQDSirMn5Bnag8voddQR5P1ugiK4TCqVD9fuBYEck\nIHRwRPTFNxmvhDmK/5dTGQMCixo+HGdLPrz5w9AcsGQqDyRU1ZyMqL4HfXL7\nOnFrbEa5yPsZWvHETgn02SLrNXCdi3pPrrx5au3yHPp13xz9M8Hvj+a/h876\nU3irt9hxPolArJsmRkNfoUsg2tSxq8CXi/zSXftbTP9pAdgekem1aDxGdOrQ\ntiAUc8wM9Dfr0WvTlVXZZMxSPHjgT/QUL/f4XM3MP3AhgTCcTiVawiJntkQq\nYkq3AM3ZR1tIm6u+AyYy5f6F3qofozO07+6E+k7OyOO/0kpr/g7g5HxzBR2v\n4bcFYeN6mryj6hmC202zNe4wNsRJh/rs25s0/AaBbEX3BDtsES7EIIjMtmSp\nEAwfPjKFAISrv/WbCBsg+NgJAB4VSmD3AK0OZ2bEvn8QO0Y0PwPmc6nXmDut\nWoBcE84bmVM5CmtaZt8uIcHdCrDp4T/UMmvMae3QHTrOPX45OLQGvD1n0qDL\nRteC4cIhD0qYOPZszg7y1rKbjFMnc0RCbrPGBB6CrR4aWtjuf2anlqq4aPO9\nNLxL6NMIJJjLoY9DOxUYGY7diPKp/lutb8zx6ZiEJkdPvTBz08PVAPfMPfay\ndURo0Bu9vvfd4lZw2qcgIpAR2S6wY/xuf2BTI4mySeJ8DiVZmuGt8tYgl9Ub\nRVjVXkGV4Sicz32oPW4MyYmG+/oV12xHLXTkWiWp7dZ2E9VF9zGzD9MuRSBr\n9HyJQZmuikRzLW97clFjEXYXYTBn7CrXkA8oH5dhJhWMYX0sd8OTY4KtTQvH\nd0TlzOF0FGChFe3YWfJUPWZFwN1oKR5rhDHMjXq2V6MnzGDTB2q6ad+UpAj3\nBULnrLfz/iLy78m1N5i8LwT1kE5gKZgC6D4yCm/NYFA3KG1WNBYaDarUS2Zs\nhNYY3CK5znhT\n",
"iv": "AV+8lbESrFCjMXig\n",
"auth_tag": "c6EySjqyezhwtoTOAmNFKg==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "horizon.pem",
"horizon.pem": {
"encrypted_data": "nlKZmdaoD3UcAeN9MRWG5JAP/9TihwjCWtznvohy8FrEMf5VaJjNW5z4kswa\n4y//i+6c4GgRtoGfJ9+aPvwyU+vk78qwetscMmY5EoZ+SlsSkRvWXSuLV0a6\n34hG3GPnaKgvq9+dzmv88kEyK6x95wGCdHJN3eGShjTvoLICc2n6Kwiof3FT\n+qql7UDCehTK3h/5RCai2h51eL20nC0H0+Af8saCRjMYs5U9wl2AFwqBaBaO\nQS7iCag0xWu6IGwAir6jlMDhkhUhpeo3cNu0tbYeQYrC9hSde7fk8ejhsGxi\nQzmdlSaVoEzYXJbRNbhRTLbB7odc4tZmZt1yX8v4xu/N62c33+eoqlvxyx3P\nwXrJNoO7JLo0hiO3t/pmvb2l9cnBupQReABML4fkXBP61IWSx97G0nGCTY8K\njnRaQdSwTFhysYgUyq/DiRkZq/jVf1pFcN+Gn6mKsicYOw8b117UuPyQ+3yS\nV3xC//ugh3C6VNEmpIA/768GUUzX/9VRR4unbTChSVI2TFzmyfmcKqKlY9ZK\nzvV4giGvyC8Sut2cvYV1pvQYHzKzXco97GyM34R3Nko8V7XoINx468IWA3e0\nzP3nCVJnZcRe6lhxL+im9MUueabHp6pJeN6mij2cUjUQjD6UZr1xC7EzfTeR\nVwxuDgU/SzI3HgDiBVNdeFQe/WJZS/9NuWlPZADeKqK+8iLRc7novhfCibyi\n07Ml7vkuMUqj5011+m7+RZVA+0RBJoVCIHimP33GekCkdock3MUJeaLAE0KR\nzJNYZ3jWy9FNGKjvYETt3kizHjaed4NoJm5lc3WIqvETc6l9d0GR0ch5LEry\n5l9kIQk8VEx/18xUIitgsjObLm/btIAYHPv5xFxy8WSSL85pwFcQGzso1y6D\nSZVTifmYKHjo6upmtGfAiBnU9rOF7tw2kzPqkdhYbQA0qL1jvu5oBnz7CfVN\ne46psv2c+HcLvNW7YOpSGEkGIYxDBU2ZqTol/Xgx+MlsHsP7+4lnpXEi6ITa\nImjYv0IEob+Uo1pEAZAEAB5ZFFtCAcakkG2kmF01HMKXb0GJfQijrHxGbcjB\naSfuL7vuYiw6Mn2tJJopBGHjWUt+uvNvYPNgrg7PzbtIo6Gw1AejjZTMb4Qe\nhz2OeFTqbGF6N0LR7Ci0bIBww+mZA7+nX2VFjNmCV1akAvEmyNfEVR6oemMU\naqS0vmSMzvz+d7lodECDii3fgIn1IbGLuzhZLNDlFKrvOihRVUsN+DQow6yb\niPkDvYj+UQbu56dimXaCJheNwp/d7ta+LD/s1DEelvYKMYVgM1djNYOHgPyL\nriUN581WaoprEX7CavK8UVpRe4NjhVaCuIUwYbpisI6HkinlIZx33Z5ObSR1\nKCiyim/BviADlfk0\n",
"iv": "zSD5P5yNXBwg1XMh\n",
"auth_tag": "+PTbpzCL8Z9CCdQlCBlpZg==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "ceilometer",
"ceilometer": {
"encrypted_data": "4FgQ2zK7Pkev7JzeyRqihxQngH+tqh35jg==\n",
"iv": "k+T3QVpvWlWQ30Ut\n",
"auth_tag": "/NA2evvK7si0yxwmnRJ3og==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "cinder",
"cinder": {
"encrypted_data": "1by8qBeRo74m5W3MoqRDpeevrXcRj/vEUg==\n",
"iv": "/s2YnhagoS4L7mHK\n",
"auth_tag": "6Z3rDRZhJN/p1pP15lRvJA==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "dash",
"dash": {
"encrypted_data": "FMorEJGnOtIrwq3ZIv/VWrCtcwk3TYvdWQ==\n",
"iv": "nKg1lu9brBNkKrmP\n",
"auth_tag": "5gYG8p5FkbIumuHcsTU6MQ==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "designate",
"designate": {
"encrypted_data": "rq7N+DifbtXHQiC8s0x8Z0jm5JodjtBJzg==\n",
"iv": "E5z9mnkCS0WG9f6W\n",
"auth_tag": "Q7nnYiGaRRfGEgHTznN10A==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "glance",
"glance": {
"encrypted_data": "lYZcqw2GLqLDglm9ONo0xk+CYhDocWLXAw==\n",
"iv": "uZLZMCwhJrc6R+6l\n",
"auth_tag": "JrQJQWBQDOa32p3bmAHK7Q==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "gnocchi",
"gnocchi": {
"encrypted_data": "0ANqZgd9RLtXx4cGhrgt6aYlXuq2b7d8cQ==\n",
"iv": "8VdizNsosQfKI4Uq\n",
"auth_tag": "G9E/N4P0kTkZbkJ7Yidneg==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "heat",
"heat": {
"encrypted_data": "KhZYFaqHl1+2BGPghfN8St1MvYJ9TR5zhg==\n",
"iv": "BtutaTvxERLrI5EH\n",
"auth_tag": "Y+hr4cMfo8huhbZrtEem5w==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "horizon",
"horizon": {
"encrypted_data": "JJ7qeWAKWjFlpkBJvdbCNLRISgCieLUR/A==\n",
"iv": "qTo/3JGrAhW5MnrP\n",
"auth_tag": "MrsnHjmayCq4GXsG0uXLSw==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "keystone",
"keystone": {
"encrypted_data": "QWQZ5jZzkxsysPC3B/6QPvYc5tza3rZOoA==\n",
"iv": "JQydX+XgeIoCaNHt\n",
"auth_tag": "exz+tonoekz8puDjdFd3QA==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "mysqlroot",
"mysqlroot": {
"encrypted_data": "pY87wT67k8N3bwTC9rerphVa6yPv/eNnQQ==\n",
"iv": "QFUJNOQUAzv37RcS\n",
"auth_tag": "v0/GwZ2VQplMr7FPkseQuw==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "neutron",
"neutron": {
"encrypted_data": "EaNzE0hWsOOKRUh1ODZafzJcKlcMiqtmDA==\n",
"iv": "mr9ad3WFuUjbtYeu\n",
"auth_tag": "rakN7H8CqWc6lyz7L98idA==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "nova",
"nova": {
"encrypted_data": "MIFXMvRR5B2c7eVZEB5NgSTij0cnCQiI3w==\n",
"iv": "AlH0YzOhOQTSOM5z\n",
"auth_tag": "fMDkg7q+SvsBQ72Hezp/kg==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "nova_api",
"nova_api": {
"encrypted_data": "EhXSbK/GyMbON9NDITBH13PeYFCFIvKVhA==\n",
"iv": "hNeyA7TEIyEsLcrK\n",
"auth_tag": "Rbz4mBo5yJjc5ItQc/vt3w==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "nova_cell0",
"nova_cell0": {
"encrypted_data": "0Bf80Cqrg2aKQKSPVzxVg0u7sRWZgsfwMQ==\n",
"iv": "RGIPKZTPEq7P/f1O\n",
"auth_tag": "ALzLFK5eudDu09i7fFKhQQ==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "credential_key0",
"credential_key0": {
"encrypted_data": "+f9m4yySSddKQBtexpObWadwsTdLx/i3zGh7Wk6CMyMRA20ULV+78sGxdNVV\nBNkzYYE7hvRGfwooukLMR2A2\n",
"iv": "78lsGK/GVYn0LS0n\n",
"auth_tag": "MqUKL3mM2w9HFQIW52Mmrw==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "credential_key1",
"credential_key1": {
"encrypted_data": "X4ZCiHUUqW2iciwUquvYTg3l2bcUfmOoRFw6/uiDoZhiv5FC12+glQUeD8Av\n4NqqnZW4uhc1pMxfGT+QIfMv\n",
"iv": "SRUjq+ioB90M8RW5\n",
"auth_tag": "NCKVBRmyJ/Zov8u6z+OdNA==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "designate_rndc",
"designate_rndc": {
"encrypted_data": "v6R5rtaKl8kX8he8+mQCLAXDzEPRwQrXe/z492sBuU7LFKJT46QZ6h2lS1z2\niwZl\n",
"iv": "2KB8EXtT5QlZt84x\n",
"auth_tag": "w4jeqIoZ4qdjYeVexlHt/w==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "dispersion_auth_key",
"dispersion_auth_key": {
"encrypted_data": "HeVQA/lKX4qNEgEFt/0vCA8Toc/LAUBwExXScbNEXxAMyMgpNlwHjXBMtQQ=\n",
"iv": "eu8zcZ8A5Oig5P/o\n",
"auth_tag": "SpMmWA3LHMp+PGtYkf/xfQ==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "dispersion_auth_user",
"dispersion_auth_user": {
"encrypted_data": "gHo7WaSOAObn8i+0+zcDUNfnTsjvUK2D4qsLBHWJ+H3/ogSfiEhEWZXnL7s=\n",
"iv": "NVAThQOlySVxRvAs\n",
"auth_tag": "RZ+zA4MrFU5OMJYiPMGKvg==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "fernet_key0",
"fernet_key0": {
"encrypted_data": "klHq/xf9EeFPVxvSsIVYz7DNx0ZdgYiADbgczDQhkQOpiQiaxq2wcYsshQU6\nzFJsWHk51n1aV6wom1yxr5EG\n",
"iv": "wGbJPBROV0BT0GKj\n",
"auth_tag": "/uKKmB8n1Sh7IvI38gdIAQ==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "fernet_key1",
"fernet_key1": {
"encrypted_data": "tUt6KhUckQiU4EaP30WEDSdGPjqHxUOg+a9XV92VCcZufMzmw4/37W0fBwcq\nQn5JEDWtCXMx/YSp5eycT8ca\n",
"iv": "EAn1lrxF0JzE5HDQ\n",
"auth_tag": "lPF5aYF7UPefftSHJxWN9w==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "neutron_metadata_secret",
"neutron_metadata_secret": {
"encrypted_data": "dx5dR20bfSpeOWnpNZOdXX3k55n/Um8rCyehVd8cVs5RmW+sAC9cm1qoKZKV\npXn1\n",
"iv": "w1H81ZmPqJi61d8G\n",
"auth_tag": "yOW31q48UYMJGNq0OvMgFQ==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "openstack_identity_bootstrap_token",
"openstack_identity_bootstrap_token": {
"encrypted_data": "q+XJCRy2dcnHboSNCVrK5OR/IlAt+yqrclZ5rVKWJBhbqnMu8JRs0YrJ5QDp\nqQfOwQZQ1m4=\n",
"iv": "rMo0P2WbLfZ5jF0b\n",
"auth_tag": "p+O6G0A/W8zs0ybSdyUFoQ==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "orchestration_auth_encryption_key",
"orchestration_auth_encryption_key": {
"encrypted_data": "AvYQus6tO1Pb4WDeat/4RoCa+EjkIKX++C3/L9yJKD+tBhwv70lh4pTzvlUb\nyEn5zxn/\n",
"iv": "8gcTvD9MWLpDm2P7\n",
"auth_tag": "CCDQkdKJj4V8zyECammPTA==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "openstack-block-storage",
"openstack-block-storage": {
"encrypted_data": "s2yk+YVL4l7s65EOhLjYnrQBsLVCTVvs+g==\n",
"iv": "6NTjfnI0Wk554zoy\n",
"auth_tag": "HQyedh4UeMmuG2FbzFGA8w==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "openstack-compute",
"openstack-compute": {
"encrypted_data": "MSIjvrMJ8zoKynVmbqN6wGH3ajDjyRBQ1g==\n",
"iv": "C8e2ZiqoBMJmpOxG\n",
"auth_tag": "iwgLvTU87qwKp/QCdId0Rw==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "openstack-dns",
"openstack-dns": {
"encrypted_data": "j0em/vC2AusGXFeTvDC8HfdSfemfIbnGHw==\n",
"iv": "2hS/AGOuQiU8xZG9\n",
"auth_tag": "R6MeBi0hJ815ReTxqWai3Q==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "openstack-image",
"openstack-image": {
"encrypted_data": "MrJFU9Q7tELsfnIwTV7KSqnpG4AcRJH5Vw==\n",
"iv": "5uuInaFjGEih389e\n",
"auth_tag": "N7vpAf4VVE3xeu8/CLDnEA==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "openstack-network",
"openstack-network": {
"encrypted_data": "pMz/lN8yVtGPxx4k4pz3WevMBVDSmyZQ+Q==\n",
"iv": "T6r9Z1f9DEdteOYx\n",
"auth_tag": "goz/UtgFspuvVWYqkhCt+Q==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "openstack-orchestration",
"openstack-orchestration": {
"encrypted_data": "AONHb8jlwFnR6wYYUPs2UW9z8YPbPJRYSg==\n",
"iv": "38Q/5TBLSllprHIr\n",
"auth_tag": "pp7lNVqpAPTwyZTVicB/dA==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "openstack-placement",
"openstack-placement": {
"encrypted_data": "7yqlY8nn6f9g5cYAIfFCSLm76myRQ5P8Ww==\n",
"iv": "3iTD7QItyaWeA1mS\n",
"auth_tag": "FJlBLrqR0vzQ4S4HqKQn5A==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "openstack-telemetry-metric",
"openstack-telemetry-metric": {
"encrypted_data": "juCRbZ2FSKbxW16ReEAYi/3Oh7iEuFDQhg==\n",
"iv": "0UxtUNC27DuIcwEK\n",
"auth_tag": "hUeVIaa2QwsrH5bRYK0COw==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "openstack-telemetry",
"openstack-telemetry": {
"encrypted_data": "H7th9qXm+tLXZ7e2rIJ1aytuWEmCRIFqTg==\n",
"iv": "yBz5NfZQzHlWGZG8\n",
"auth_tag": "x3q2zr8xrA+xZL3bVSwO9w==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "admin",
"admin": {
"encrypted_data": "rSGFmgUQACPxmJ2mXXtkPZeltLZTXVzgzg==\n",
"iv": "Gf5d3TwsTCv9eOqy\n",
"auth_tag": "E034utXmdnB36z0+2abBAA==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "guest",
"guest": {
"encrypted_data": "rwMD8pWaNwi6yAVJmOOm69gIw0k/U3R9gg==\n",
"iv": "OFXSz4YuieFSfGdL\n",
"auth_tag": "8pxujYDPebuGsrntDl8jAw==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
{
"id": "heat_domain_admin",
"heat_domain_admin": {
"encrypted_data": "IKsB83OypkqYkR89/Rfw4lCi3FjA72FWGw==\n",
"iv": "MTk0WWG+Yk85Z1C7\n",
"auth_tag": "+W4IH3x9+ZFCTl+ZTJF7LQ==\n",
"version": 3,
"cipher": "aes-256-gcm"
}
}

View File

@ -1,10 +0,0 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
# this is required for the docs build jobs
sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
openstackdocstheme>=1.18.1 # Apache-2.0
reno>=2.5.0 # Apache-2.0
sphinxmark>=0.1.14 # Apache-2.0
doc8>=0.6.0 # Apache-2.0

View File

@ -1,217 +0,0 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Configuration file for the Sphinx documentation builder.
#
# This file does only contain a selection of the most common options. For a
# full list see the documentation:
# http://www.sphinx-doc.org/en/stable/config.html
# -- Path setup --------------------------------------------------------------
import imp
import os
import re
import sys
import openstackdocstheme
# -- Chef OpenStack configuration --------------------------------------------
target_name = 'chef-openstack-docs'
description = 'Chef OpenStack uses Chef to deploy OpenStack environments.'
previous_series_name = 'pike'
current_series_name = 'queens'
# -- Project information -----------------------------------------------------
title = u'Chef OpenStack Documentation'
category = 'Miscellaneous'
copyright = u'2014-2018, Chef OpenStack Contributors'
author = u'Chef OpenStack Contributors'
current_series = openstackdocstheme.ext._get_series_name()
if current_series == "latest":
watermark = "Pre-release"
latest_tag = "master"
branch = "master"
upgrade_warning = "Upgrading to master is not recommended. Master is under heavy development, and is not stable."
else:
watermark = series_names = current_series.capitalize()
latest_tag = os.popen('git describe --abbrev=0 --tags').read().strip('\n')
branch = "stable/{}".format(current_series)
upgrade_warning = "The upgrade is always under active development."
# Substitutions loader
rst_epilog = """
.. |current_release_git_branch_name| replace:: {current_release_git_branch_name}
.. |previous_release_formal_name| replace:: {previous_release_formal_name}
.. |current_release_formal_name| replace:: {current_release_formal_name}
.. |latest_tag| replace:: {latest_tag}
.. |upgrade_warning| replace:: {upgrade_warning}
""".format(
current_release_git_branch_name=branch,
previous_release_formal_name=previous_series_name.capitalize(),
current_release_formal_name=current_series_name.capitalize(),
latest_tag=latest_tag,
upgrade_warning=upgrade_warning,
)
# -- 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 = [
'openstackdocstheme',
'sphinx.ext.autodoc',
'sphinx.ext.extlinks',
'sphinx.ext.viewcode',
'sphinxmark'
]
todo_include_docs = True
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
source_suffix = '.rst'
# The master toctree document.
master_doc = 'index'
# openstackdocstheme options
repository_name = 'openstack/openstack-chef-repo'
bug_project = 'openstack-chef'
bug_tag = ''
# 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
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path .
exclude_patterns = ['_build']
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# 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 = 'openstackdocs'
# 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 '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
html_last_updated_fmt = '%Y-%m-%d %H:%M'
# 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 = {}
# The default sidebars (for documents that don't match any pattern) are
# defined by theme itself. Builtin themes are using these templates by
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
# 'searchbox.html']``.
#
# html_sidebars = {}
# -- Options for HTMLHelp output ---------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'chef-openstack-docs'
# If true, publish source files
html_copy_source = False
# -- 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, target_name + '.tex',
title, author, 'manual'),
]
# -- 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, target_name,
title, [author], 1)
]
# -- 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, target_name,
title, author, bug_project,
description, category),
]
# -- Options for PDF output --------------------------------------------------
pdf_documents = [
(master_doc, target_name,
title, author)
]
# -- Options for sphinxmark -----------------------------------------------
sphinxmark_enable = True
sphinxmark_div = 'docs-body'
sphinxmark_image = 'text'
sphinxmark_text = watermark
sphinxmark_text_color = (128, 128, 128)
sphinxmark_text_size = 70

View File

@ -1,26 +0,0 @@
.. _ci:
######################
Continuous Integration
######################
This is a list of the CI jobs that are running against most of the Chef
OpenStack cookbooks. The code that configures Zuul jobs is hosted in
`openstack-chef-repo <https://git.openstack.org/cgit/openstack/openstack-chef-repo/tree/playbooks/>`_.
.. list-table:: **CI Jobs in Chef OpenStack**
:widths: 31 25 8 55
:header-rows: 1
* - Job name
- Description
- Voting
- If it fails
* - openstack-chef-repo-rake
- It ensures the code follows the `Chef style guidelines <https://docs.chef.io/ruby.html>`_.
- Yes
- Read the build logs to see which part of the code does not follow the recommended patterns.
* - openstack-chef-repo-integration
- Functional testing job that converges OpenStack, testing using Tempest.
- Yes
- Read the build logs to see where the failure originated.

View File

@ -1,39 +0,0 @@
=========
Community
=========
Governance
==========
Chef OpenStack governance is well defined and `documented`_. It documents:
* The current Project Team Lead
* The mission statement
* The repositories managed by the group
PTL duty
========
While the official OpenStack PTL duty `guide`_ is general, the Chef
OpenStack PTL is usually in charge of:
* continuity of the project. This can include reviewing or writing code.
* OpenStack cross-project liaison.
* meeting organization.
Core reviewers team
===================
Chef OpenStack has a `core reviewers`_ team, that can merge any code in our
repositories.
Release management
==================
Releases are currently managed by the release `subteam`_. This is sometimes a
PTL task. This includes updating Supermarket.
.. _documented: https://governance.openstack.org/reference/projects/chef-openstack.html
.. _core reviewers: https://review.openstack.org/#/admin/groups/1260,members
.. _subteam: https://review.openstack.org/#/admin/groups/1261,members
.. _guide: https://docs.openstack.org/project-team-guide/ptl.html

View File

@ -1,37 +0,0 @@
=============
Cookbook List
=============
Each Chef OpenStack cookbook corresponds to an OpenStack component and has its
own git repository. The cookbooks produce a number of deliverables, in order to
achieve a clearly stated objective: deploy OpenStack.
OpenStack Cookbooks
===================
* `Block Storage <https://git.openstack.org/cgit/openstack/cookbook-openstack-block-storage/>`_ (*Cinder*)
* `Compute <https://git.openstack.org/cgit/openstack/cookbook-openstack-compute/>`_ (*Nova*)
* `Dashboard <https://git.openstack.org/cgit/openstack/cookbook-openstack-dashboard/>`_ (*Horizon*)
* `DNS <https://git.openstack.org/cgit/openstack/cookbook-openstack-dns/>`_ (*Designate*)
* `Image <https://git.openstack.org/cgit/openstack/cookbook-openstack-image/>`_ (*Glance*)
* `Network <https://git.openstack.org/cgit/openstack/cookbook-openstack-network/>`_ (*Neutron*)
* `Orchestration <https://git.openstack.org/cgit/openstack/cookbook-openstack-orchestration/>`_ (*Heat*)
* `Telemetry <https://git.openstack.org/cgit/openstack/cookbook-openstack-telemetry/>`_ (*Ceilometer*/*Gnocchi*)
Operations Cookbooks
====================
* `Database <https://git.openstack.org/cgit/openstack/cookbook-openstack-ops-database/>`_ (*MariaDB*/*MySQL*)
* `Messaging <https://git.openstack.org/cgit/openstack/cookbook-openstack-ops-messaging/>`_ (*RabbitMQ*)
Supporting Repositories
=======================
* `Client <https://git.openstack.org/cgit/openstack/cookbook-openstackclient>`_ (LWRPs for using fog-openstack inside Chef recipes)
* `Integration Test <https://git.openstack.org/cgit/openstack/cookbook-openstack-integration-test/>`_ (Build cookbook to deploy and test using Tempest)
Unmaintained Cookbooks
==============================
* `Object Storage <https://git.openstack.org/cgit/openstack/cookbook-openstack-object-storage/>`_ (*Swift*)
* `Bare Metal <https://git.openstack.org/cgit/openstack/cookbook-openstack-bare-metal/>`_ (*Ironic*)
* `Data Processing <https://git.openstack.org/cgit/openstack/cookbook-openstack-data-processing/>`_ (*Sahara*)
* `Application Catalog <https://git.openstack.org/cgit/openstack/cookbook-openstack-application-catalog/>`_ (*Murano*)
* `Database as a Service <https://git.openstack.org/cgit/openstack/cookbook-openstack-database/>`_ (*Trove*)

View File

@ -1,9 +0,0 @@
======================
How to submit a change
======================
Do you want to submit a change to OpenStack?
Review the `Developer's Guide`_.
.. _Developer's Guide: https://docs.openstack.org/infra/manual/developers.html

View File

@ -1,12 +0,0 @@
Contributor Guide
=================
.. toctree::
:maxdepth: 2
:includehidden:
cookbook-list
how-to-contribute
community
talk-to-us
ci

View File

@ -1,15 +0,0 @@
.. _mailing_list:
=============
Mailing lists
=============
The mailing lists are preferred, as it makes the information more readily available so that others who have the same question or issue can search for and find the answers.
- Dev discussions:
`openstack-dev@lists.openstack.org <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>`__
with ``[chef]`` tag.
- Usage discussions:
`openstack-operators@lists.openstack.org <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators>`__
with ``[chef]`` tag.

View File

@ -1,32 +0,0 @@
.. _meetings:
########
Meetings
########
1. `General Availability`_
2. `IRC Meetings`_
General Availability
====================
The Chef OpenStack team is distributed around the world, but comes together on
IRC_ between the hours of 14:00 UTC and 17:00 UTC.
.. _IRC: talk-to-us.html
IRC Meetings
============
We hold public meetings as needed on ``#openstack-chef`` on Freenode. If a
meeting needs to be held, it will be announced on the OpenStack-dev mailing
list.
.. list-table::
:widths: 30 60
:header-rows: 1
* - Meeting Time
- Local Time
* - UTC 1500 Mondays as needed
- https://www.timeanddate.com/worldclock/converter.html

View File

@ -1,14 +0,0 @@
==========
Talk to us
==========
* Find us on `Freenode <https://freenode.net/>`_. Join the ``#openstack-chef`` channel.
* Join the conversation on the `mailing lists <mailing-list.html>`_.
* Participate in or propose `an IRC meeting <meetings.html>`_.
.. toctree::
:maxdepth: 1
:hidden:
mailing-list
meetings

View File

@ -1,23 +0,0 @@
Chef OpenStack Documentation
============================
The Chef cookbooks for OpenStack automate the building, operation and
consumption of OpenStack cloud deployments.
Contributor Guide
-----------------
.. toctree::
:maxdepth: 2
:includehidden:
contributor/index
Install Guide
-------------
.. toctree::
:maxdepth: 2
:includehidden:
install/index

View File

@ -1,56 +0,0 @@
=========
Genealogy
=========
- `Releases Summary`_
- `Supermarket Releases`_
- `How to release Chef cookbooks`_
Releases Summary
================
+----------------------------+------------------------------+------------------------+
| Module Version | OpenStack Version Codename | Community Supported |
+============================+==============================+========================+
| 7.y.z | Grizzly | no - EOL (2014-03-29) |
+----------------------------+------------------------------+------------------------+
| 8.y.z | Havana | no - EOL (2014-09-30) |
+----------------------------+------------------------------+------------------------+
| 9.y.z | Icehouse | no - EOL (2015-07-02) |
+----------------------------+------------------------------+------------------------+
| 10.z.y | Juno | no - EOL (2015-12-07) |
+----------------------------+------------------------------+------------------------+
| 11.z.y | Kilo | no - EOL (2016-05-02) |
+----------------------------+------------------------------+------------------------+
| 12.z.y | Liberty | no - EOL (2016-11-17) |
+----------------------------+------------------------------+------------------------+
| 13.z.y | Mitaka | no - EOL (2017-04-10) |
+----------------------------+------------------------------+------------------------+
| 14.z.y | Newton | yes - EOL (2017-10-11) |
+----------------------------+------------------------------+------------------------+
| 15.z.y | Ocata | yes - EOL (2017-02-26) |
+----------------------------+------------------------------+------------------------+
| 16.z.y | Pike | yes |
+----------------------------+------------------------------+------------------------+
| 17.z.y | Queens | yes (current master) |
+----------------------------+------------------------------+------------------------+
| 18.z.y | Rocky | Future |
+----------------------------+------------------------------+------------------------+
Supermarket releases
====================
- From Ocata, the cookbooks are released on the Chef Supermarket_.
.. _Supermarket: https://supermarket.chef.io/openstack
How to release Chef cookbooks
=============================
- A core member will create the new branch based on the desired SHA.
Example: https://review.openstack.org/#/admin/projects/openstack/cookbook-openstack-compute,branches
- For all cookbooks to be released: update .gitreview, Berksfile,
and bootstrap.sh to stable/<release>
Example: https://review.openstack.org/547505
- Create a review with the above and propose it against the stable/<release> branch.
- Solicit for reviews and approval.

View File

@ -1,21 +0,0 @@
===============
Getting Started
===============
Learn about Chef OpenStack
==========================
* To learn about the Chef automation framework,
consult the `online documentation <https://docs.chef.io>`_ or
`Learn Chef <https://learn.chef.io>`_.
* `Supported Platforms <supported-platforms.html>`_
* `Deploy <quickstart.html>`_ on your own development OpenStack Cloud with `Test Kitchen <https://kitchen.ci>`_.
* Chef OpenStack `genealogy <genealogy.html>`_.
.. toctree::
:maxdepth: 1
:hidden:
supported-platforms
quickstart
genealogy

View File

@ -1,11 +0,0 @@
Install Guide
=============
.. toctree::
:maxdepth: 2
:includehidden:
getting-started
quickstart
genealogy
supported-platforms

View File

@ -1,102 +0,0 @@
.. _quickstart-test-kitchen:
`Test Kitchen`_ is a no-fuss, no BS way to get a Chef OpenStack build for:
* development of OpenStack or applications on top of it
* a reference for how the services fit together
* a simple lab environment
.. _Test Kitchen: https://kitchen.ci/
Test Kitchen builds are not recommended for production deployments, but they can work in
a pinch when you just need OpenStack.
At an absolute minimum, you should use the following resources. What is listed
is currently used in CI for the gate checks, as well as the tested minimum:
* 8 vCPU (tests as low as 4, but it tends to get CPU bound)
* 8 GB RAM (7 GB sort of works, but it's tight - expect OOM/slowness)
* 50 GB free disk space on the root partition
Recommended server resources:
* CPU/motherboard that supports `hardware-assisted virtualization`_
* 8 CPU cores
* 16 GB RAM
* 80 GB free disk space on the root partition, or 50+ GB on a blank secondary volume.
It is `possible` to perform builds within a virtual machine for
demonstration and evaluation, but your virtual machines will perform poorly.
For production workloads, multiple nodes for specific roles are recommended.
.. _hardware-assisted virtualization: https://en.wikipedia.org/wiki/Hardware-assisted_virtualization
Building with Test Kitchen
--------------------------
There are three basic steps to building OpenStack with Test Kitchen, with an optional first step should you need to customize your build:
* Configuration *(this step is optional)*
* Install and bootstrap the Chef Development Kit
* Run Test Kitchen
When building on a new server, it is recommended that all system
packages are updated and then rebooted into the new kernel:
.. note:: Execute the following commands and scripts as the root user.
.. code-block:: shell-session
## Ubuntu
# apt-get update
# apt-get dist-upgrade
# reboot
.. code-block:: shell-session
## CentOS
# yum upgrade
# reboot
Start by cloing the OpenStack chef-repo repository and changing into the root directory:
.. code-block:: shell-session
# git clone https://git.openstack.org/openstack/openstack-chef-repo \
/opt/openstack-chef-repo
# cd openstack-chef-repo
Next, switch to the applicable branch/tag to be deployed. Note that deploying
from the head of a branch may result in an unstable build due to changes in
flight and upstream OpenStack changes. For a test (not a development) build, it
is usually best to checkout the latest tagged version.
.. parsed-literal::
## List all existing branches.
# git branch -v
## Checkout the stable branch
# git checkout |current_release_git_branch_name|
.. note::
The |current_release_formal_name| release is compatible with Ubuntu 16.04
(Xenial Xerus) and CentOS 7
By default the cookbooks deploy all OpenStack services with sensible defaults
for the purpose of a gate check, development or testing system.
Deployers have the option to change how the build is configured by overriding
in the respective kitche YAML file. This can be useful when you want to make
use of different services or test new cookbooks.
To use a different driver for Test Kitchen, such as for a multi-node
development environment, pass the ``KITCHEN_YAML`` environment variable as an
additional option to the ``kitchen`` command. For example, if you want to
deploy a multi-node development environment, instead of an AIO, then execute:
.. code-block:: shell-session
# KITCHEN_YAML=.kitchen.multi.yml kitchen converge [7|1604|all]

View File

@ -1,16 +0,0 @@
Supported Platforms
===================
The following operating systems and versions are supported by the OpenStack cookbooks:
* RHEL / CentOS 7
* Ubuntu 16.04 LTS (Xenial Xerus)
The cookbooks are tested and verified to work on the Chef stable track using
the `Chef Development Kit <https://docs.chef.io/about_chefdk.html>`_.
Your success rate may vary with the bleeding edge. Chef 12 and older is NOT
supported.
See `Chef CI <http://docs.openstack.org/developer/chef-openstack-guide/ci.html>`_
to see what is currently tested.

View File

@ -1,55 +0,0 @@
{
"name": "allinone",
"description": "Environment used in testing the upstream cookbooks and reference Chef repository with vagrant. To be used with the vagrantfile-allinone vagrantfile. Defines the necessary attributes for a working all-in-one openstack deployment, using neutron for the networking component, and the openvswitch neutron plugin",
"default_attributes": {
"apache": {
"listen": [
]
},
"yum": {
"epel": {
"enabled": false
}
}
},
"override_attributes": {
"openstack": {
"is_release": true,
"apt": {
"update_apt_cache": "true"
},
"telemetry": {
"conf": {
"DEFAULT": {
"meter_dispatchers": "database"
}
}
},
"dashboard": {
"server_hostname": "localhost"
},
"mq": {
"user": "admin"
},
"network": {
"conf": {
"DEFAULT": {
"service_plugins": "router"
}
}
},
"image": {
"image_upload": true
},
"compute": {
"conf": {
"libvirt": {
"cpu_type": "none",
"virt_type": "qemu"
}
}
}
}
}
}

View File

@ -1,67 +0,0 @@
{
"name": "integration",
"description": "Chef environment file for building OpenStack in CI settings. Certain Tempest services are disabled in this scenario",
"default_attributes": {
"apache": {
"listen": [
]
},
"yum": {
"epel": {
"enabled": false
}
}
},
"override_attributes": {
"openstack": {
"is_release": true,
"apt": {
"update_apt_cache": true
},
"telemetry": {
"conf": {
"DEFAULT": {
"meter_dispatchers": "database"
}
}
},
"integration-test": {
"conf": {
"service_available": {
"ceilometer": false,
"heat": false,
"horizon": false
}
}
},
"dashboard": {
"server_hostname": "localhost"
},
"memcached_servers": [
"127.0.0.1:11211"
],
"mq": {
"user": "admin"
},
"network": {
"conf": {
"DEFAULT": {
"service_plugins": "router"
}
}
},
"image": {
"image_upload": true
},
"compute": {
"conf": {
"libvirt": {
"cpu_type": "none",
"virt_type": "qemu"
}
}
}
}
}
}

View File

@ -1,235 +0,0 @@
{
"name": "multinode",
"default_attributes": {
"apache": {
"listen": [
]
},
"yum": {
"epel": {
"enabled": false
}
}
},
"override_attributes": {
"openstack": {
"apt": {
"unattended_upgrades": {
"enable": false
},
"update_apt_cache": true
},
"sysctl": {
"net.ipv4.ip_forward": 1
},
"endpoints": {
"db": {
"host": "192.168.101.60"
},
"mq": {
"host": "192.168.101.60"
},
"admin": {
"identity": {
"host": "192.168.101.60"
},
"network": {
"host": "192.168.101.60"
},
"image_api": {
"host": "192.168.101.60"
},
"image_registry": {
"host": "192.168.101.60"
},
"block-storage": {
"host": "192.168.101.60"
},
"compute-api": {
"host": "192.168.101.60"
},
"compute-metadata-api": {
"host": "192.168.101.60"
},
"compute-novnc": {
"host": "192.168.101.60"
},
"orchestration-api": {
"host": "192.168.101.60"
},
"orchestration-api-cfn": {
"host": "192.168.101.60"
},
"placement-api": {
"host": "192.168.101.60"
}
},
"internal": {
"identity": {
"host": "192.168.101.60"
},
"network": {
"host": "192.168.101.60"
},
"image_api": {
"host": "192.168.101.60"
},
"image_registry": {
"host": "192.168.101.60"
},
"block-storage": {
"host": "192.168.101.60"
},
"compute-api": {
"host": "192.168.101.60"
},
"compute-metadata-api": {
"host": "192.168.101.60"
},
"compute-novnc": {
"host": "192.168.101.60"
},
"orchestration-api": {
"host": "192.168.101.60"
},
"orchestration-api-cfn": {
"host": "192.168.101.60"
},
"placement-api": {
"host": "192.168.101.60"
}
},
"public": {
"identity": {
"host": "192.168.101.60"
},
"network": {
"host": "192.168.101.60"
},
"image_api": {
"host": "192.168.101.60"
},
"image_registry": {
"host": "192.168.101.60"
},
"block-storage": {
"host": "192.168.101.60"
},
"compute-api": {
"host": "192.168.101.60"
},
"compute-metadata-api": {
"host": "192.168.101.60"
},
"compute-novnc": {
"host": "192.168.101.60"
},
"orchestration-api": {
"host": "192.168.101.60"
},
"orchestration-api-cfn": {
"host": "192.168.101.60"
},
"placement-api": {
"host": "192.168.101.60"
}
}
},
"bind_service": {
"db": {
"host": "192.168.101.60"
},
"mq": {
"host": "192.168.101.60"
},
"main": {
"identity": {
"host": "0.0.0.0"
}
},
"admin": {
"identity": {
"host": "0.0.0.0"
}
},
"all": {
"network": {
"host": "0.0.0.0"
},
"image_api": {
"host": "0.0.0.0"
},
"image_registry": {
"host": "0.0.0.0"
},
"block-storage": {
"host": "0.0.0.0"
},
"compute-api": {
"host": "0.0.0.0"
},
"compute-metadata-api": {
"host": "0.0.0.0"
},
"compute-novnc": {
"host": "0.0.0.0"
},
"orchestration-api": {
"host": "0.0.0.0"
},
"orchestration-api-cfn": {
"host": "0.0.0.0"
},
"placement-api": {
"host": "0.0.0.0"
}
}
},
"dashboard": {
"server_hostname": "localhost"
},
"mq": {
"user": "admin"
},
"network": {
"plugins": {
"ml2_openvswitch": {
"conf": {
"ml2_type_vxlan": {
"vni_ranges": "65537:69999",
"vxlan_group": "239.1.1.40"
}
}
}
},
"tun_network_bridge_interface": "enp0s8",
"conf": {
"DEFAULT": {
"service_plugins": "router"
},
"transport_url": {
"rabbit_host": "192.168.101.60"
},
"ml2": {
"tenant_network_types": "vxlan"
}
}
},
"image": {
"image_upload": true
},
"compute": {
"conf": {
"libvirt": {
"cpu_type": "none",
"virt_type": "qemu"
},
"transport_url": {
"rabbit_host": "192.168.101.60"
}
}
}
}
}
}

View File

@ -1,8 +0,0 @@
- hosts: all
roles:
- revoke-sudo
tasks:
- name: run delivery local
shell:
cmd: chef exec delivery local all
chdir: '{{ zuul.project.src_dir }}'

View File

@ -1,8 +0,0 @@
- hosts: all
tasks:
- name: run integration
shell:
cmd: chef exec rake integration
chdir: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/openstack-chef-repo'
environment:
WORKSPACE: '{{ ansible_user_dir }}'

View File

@ -1,7 +0,0 @@
- hosts: all
tasks:
- name: Collect logs
synchronize:
dest: '{{ zuul.executor.log_root }}/{{ inventory_hostname }}'
mode: pull
src: '{{ ansible_user_dir }}/logs/'

View File

@ -1,19 +0,0 @@
- hosts: all
roles:
- bindep
vars:
bindep_file: /home/zuul/src/git.openstack.org/openstack/openstack-chef-repo/bindep.txt
- hosts: all
vars:
release: 3.1.0
chefdk: chefdk_{{ release }}-1_amd64.deb
tasks:
- name: Fetch chefdk package
get_url:
dest: /tmp/{{ chefdk }}
url: https://packages.chef.io/files/stable/chefdk/{{ release }}/ubuntu/16.04/{{ chefdk }}
- name: Install chefdk package
shell: dpkg -i /tmp/{{ chefdk }}
become: yes

View File

@ -1,8 +0,0 @@
- hosts: all
roles:
- revoke-sudo
tasks:
- name: run rake tests
shell:
cmd: chef exec rake
chdir: '{{ zuul.project.src_dir }}'

View File

@ -1,56 +0,0 @@
{
"name": "allinone",
"description": "This will deploy all of the services for Openstack Compute to function on a single box.",
"run_list": [
"recipe[build-essential]",
"recipe[openstack-common]",
"recipe[openstack-common::logging]",
"recipe[openstack-common::sysctl]",
"recipe[openstack-common::python]",
"recipe[openstack-common::client]",
"recipe[openstack-common::etcd]",
"recipe[openstack-ops-database::server]",
"recipe[openstack-ops-database::openstack-db]",
"recipe[openstack-ops-messaging::rabbitmq-server]",
"recipe[openstack-identity::server-apache]",
"recipe[openstack-identity::registration]",
"recipe[openstack-identity::openrc]",
"recipe[openstack-image::api]",
"recipe[openstack-image::registry]",
"recipe[openstack-image::identity_registration]",
"recipe[openstack-network::identity_registration]",
"recipe[openstack-network::ml2_core_plugin]",
"recipe[openstack-network::ml2_openvswitch]",
"recipe[openstack-network]",
"recipe[openstack-network::openvswitch]",
"recipe[openstack-network::_bridge_config_example]",
"recipe[openstack-network::plugin_config]",
"recipe[openstack-network::server]",
"recipe[openstack-network::l3_agent]",
"recipe[openstack-network::dhcp_agent]",
"recipe[openstack-network::metadata_agent]",
"recipe[openstack-network::openvswitch_agent]",
"recipe[openstack-compute::nova-setup]",
"recipe[openstack-compute::identity_registration]",
"recipe[openstack-compute::conductor]",
"recipe[openstack-compute::api-os-compute]",
"recipe[openstack-compute::api-metadata]",
"recipe[openstack-compute::placement_api]",
"recipe[openstack-compute::scheduler]",
"recipe[openstack-compute::vncproxy]",
"recipe[openstack-compute::compute]",
"recipe[openstack-compute::identity_registration]",
"recipe[openstack-block-storage::api]",
"recipe[openstack-block-storage::scheduler]",
"recipe[openstack-block-storage::volume_driver_lvm]",
"recipe[openstack-block-storage::volume]",
"recipe[openstack-block-storage::backup]",
"recipe[openstack-block-storage::identity_registration]",
"recipe[openstack-dns::api]",
"recipe[openstack-dns::central]",
"recipe[openstack-dns::identity_registration]",
"recipe[openstack-image::image_upload]",
"recipe[openstack-dashboard::horizon]",
"recipe[openstack-dashboard::neutron-lbaas-dashboard]"
]
}

View File

@ -1,44 +0,0 @@
{
"name": "minimal",
"description": "This will deploy a minimal set of services for Openstack Compute to function for integration testing.",
"run_list": [
"recipe[openstack-common]",
"recipe[openstack-common::logging]",
"recipe[openstack-common::sysctl]",
"recipe[openstack-common::client]",
"recipe[openstack-ops-database::server]",
"recipe[openstack-ops-database::openstack-db]",
"recipe[openstack-ops-messaging::rabbitmq-server]",
"recipe[openstack-identity::server-apache]",
"recipe[openstack-identity::registration]",
"recipe[openstack-identity::openrc]",
"recipe[openstack-image::api]",
"recipe[openstack-image::registry]",
"recipe[openstack-image::identity_registration]",
"recipe[openstack-network::identity_registration]",
"recipe[openstack-network::ml2_core_plugin]",
"recipe[openstack-network::ml2_openvswitch]",
"recipe[openstack-network]",
"recipe[openstack-network::openvswitch]",
"recipe[openstack-network::_bridge_config_example]",
"recipe[openstack-network::plugin_config]",
"recipe[openstack-network::server]",
"recipe[openstack-network::l3_agent]",
"recipe[openstack-network::dhcp_agent]",
"recipe[openstack-network::metadata_agent]",
"recipe[openstack-network::openvswitch_agent]",
"recipe[openstack-compute::nova-setup]",
"recipe[openstack-compute::identity_registration]",
"recipe[openstack-compute::conductor]",
"recipe[openstack-compute::api-os-compute]",
"recipe[openstack-compute::api-metadata]",
"recipe[openstack-compute::placement_api]",
"recipe[openstack-compute::scheduler]",
"recipe[openstack-compute::vncproxy]",
"recipe[openstack-compute::compute]",
"recipe[openstack-image::image_upload]",
"recipe[openstack-integration-test::create_network]",
"recipe[openstack-integration-test::setup]",
"recipe[openstack-integration-test::run_tempest]"
]
}

View File

@ -1,17 +0,0 @@
{
"name": "multinode-compute",
"description": "This will deploy a compute node for a scenarios with just compute and controller nodes",
"run_list": [
"recipe[build-essential]",
"recipe[openstack-common]",
"recipe[openstack-compute::compute]",
"recipe[openstack-compute::identity_registration]",
"recipe[openstack-network::ml2_core_plugin]",
"recipe[openstack-network::ml2_openvswitch]",
"recipe[openstack-network]",
"recipe[openstack-network::openvswitch]",
"recipe[openstack-network::_bridge_config_example]",
"recipe[openstack-network::plugin_config]",
"recipe[openstack-network::openvswitch_agent]"
]
}

View File

@ -1,48 +0,0 @@
{
"name": "multinode-controller",
"description": "This will deploy a controller node for a scenarios with just compute and controller nodes",
"run_list": [
"recipe[build-essential]",
"recipe[openstack-common]",
"recipe[openstack-common::logging]",
"recipe[openstack-common::sysctl]",
"recipe[openstack-common::python]",
"recipe[openstack-common::client]",
"recipe[openstack-common::etcd]",
"recipe[openstack-ops-database::server]",
"recipe[openstack-ops-database::openstack-db]",
"recipe[openstack-ops-messaging::rabbitmq-server]",
"recipe[openstack-identity::server-apache]",
"recipe[openstack-identity::registration]",
"recipe[openstack-identity::openrc]",
"recipe[openstack-image::api]",
"recipe[openstack-image::registry]",
"recipe[openstack-image::identity_registration]",
"recipe[openstack-network]",
"recipe[openstack-network::server]",
"recipe[openstack-network::ml2_core_plugin]",
"recipe[openstack-network::openvswitch]",
"recipe[openstack-compute::nova-setup]",
"recipe[openstack-compute::identity_registration]",
"recipe[openstack-compute::conductor]",
"recipe[openstack-compute::api-os-compute]",
"recipe[openstack-compute::api-metadata]",
"recipe[openstack-compute::placement_api]",
"recipe[openstack-compute::scheduler]",
"recipe[openstack-compute::vncproxy]",
"recipe[openstack-compute::identity_registration]",
"recipe[openstack-block-storage::api]",
"recipe[openstack-block-storage::scheduler]",
"recipe[openstack-block-storage::volume_driver_lvm]",
"recipe[openstack-block-storage::volume]",
"recipe[openstack-block-storage::backup]",
"recipe[openstack-block-storage::identity_registration]",
"recipe[openstack-orchestration::engine]",
"recipe[openstack-orchestration::api]",
"recipe[openstack-orchestration::api-cfn]",
"recipe[openstack-orchestration::identity_registration]",
"recipe[openstack-image::image_upload]",
"recipe[openstack-dashboard::horizon]",
"recipe[openstack-dashboard::neutron-lbaas-dashboard]"
]
}

View File

@ -1,15 +0,0 @@
{
"name": "multinode-network",
"description": "This will deploy a controller node for a scenarios with just compute and controller nodes",
"run_list": [
"recipe[build-essential]",
"recipe[openstack-common]",
"recipe[openstack-common::logging]",
"recipe[openstack-common::sysctl]",
"recipe[openstack-network::ml2_openvswitch]",
"recipe[openstack-network::l3_agent]",
"recipe[openstack-network::dhcp_agent]",
"recipe[openstack-network::metadata_agent]",
"recipe[openstack-network::openvswitch_agent]"
]
}

View File

@ -1,7 +0,0 @@
#!/usr/bin/env bash
# check data bags, roles, environment files sanity by loading them in
# chef-zero
for db in $(ls -d data_bags/* | cut -f2 -d'/');do knife data bag from file $db data_bags/$db/*.json -z --secret-file .chef/encrypted_data_bag_secret;done
for role in $(ls roles | grep json);do knife role from file $role -z;done
for env in $(ls environments | grep json);do knife environment from file $env -z ;done

View File

@ -1,24 +0,0 @@
[metadata]
name = chef-openstack
summary = Chef cookbooks for deploying OpenStack
description-file =
README.md
author = OpenStack
author-email = openstack-dev@lists.openstack.org
home-page = https://docs.openstack.org/chef-openstack/latest/
classifier =
Intended Audience :: Developers
Intended Audience :: System Administrators
License :: OSI Approved :: Apache Software License
Operating System :: POSIX :: Linux
[build_sphinx]
all_files = 1
build-dir = doc/build
source-dir = doc/source
[pbr]
warnerrors = True
[wheel]
universal = 1

View File

@ -1,21 +0,0 @@
#!/usr/bin/env python
# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
#
# 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.
import setuptools
setuptools.setup(
setup_requires=['pbr'],
pbr=True)

View File

@ -1,15 +0,0 @@
# # encoding: utf-8
# Inspec test for openstack-chef-repo
# The Inspec reference, with examples and extensive documentation, can be
# found at http://inspec.io/docs/reference/resources/
# There is no console output during runtime, check log file instead.
describe command('sudo bash -c "cd /opt/tempest && ' \
'sudo /opt/tempest-venv/tempest.sh | ' \
'tee /root/inspec-tempest-$(date -Iminutes).log &&' \
'exit \${PIPESTATUS[0]}"') do
its('exit_status') { should eq 0 }
end

View File

@ -1,190 +0,0 @@
# Test Patches
#
# Test patches against the testing repo
#
# Author: Mark Vanderwiel (<vanderwl@us.ibm.com>)
# Copyright (c) 2015, IBM, Corp.
require 'fileutils'
require 'English'
require 'chef/mixin/shell_out'
require 'open3'
require 'thor'
def version
'0.1.0'
end
def run(command, verbose = true)
puts "## Running command: [#{Dir.pwd}] $ #{command}"
live_stream = STDOUT
live_stream = nil unless verbose
runner = Mixlib::ShellOut.new(command, live_stream: live_stream, timeout: 1800).run_command
runner.error!
runner.stdout
end
def check_dependencies
puts '## Checking dependencies'
run('chef --version')
run('vagrant --version')
end
def get_gerrit_user(user)
return user unless user.to_s.empty?
puts '## Using git config to find gitreview.username'
git_config = run('git config -l', false)
/^gitreview.username=(?<user>.*)$/i =~ git_config
abort 'Error! Gerrit user could not be found, please use --username' if user.to_s.empty?
user
end
def get_patch_info(user, patch)
puts "## Gathering information for patch: #{patch} with user: #{user}"
patch_info = if user == 'jenkins'
run("ssh -p 29418 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no #{user}@review.openstack.org gerrit query --current-patch-set #{patch}", false)
else
run("ssh -p 29418 #{user}@review.openstack.org gerrit query --current-patch-set #{patch}", false)
end
%r{^\s*project: openstack\/(?<patch_project>.*)$}i =~ patch_info
/^\s*ref: (?<patch_ref>.*)$/i =~ patch_info
abort "Error! Patch: #{patch} not valid" if patch_project.nil?
patch_cookbook = patch_project.gsub('cookbook-', '')
puts "## Patch project: #{patch_project}"
puts "## Patch cookbook: #{patch_cookbook}"
puts "## Patch ref: #{patch_ref}"
abort "Error! Only cookbook-openstack-* patches allowed, not from project: #{patch_project}" unless patch_project[/cookbook-openstack-.*/]
{ patch: patch, project: patch_project, cookbook: patch_cookbook, ref: patch_ref }
end
def add_patch(patch_info)
puts "## Adding patch: #{patch_info[:patch]} to cookbook: #{patch_info[:cookbook]}"
run("git clone --depth 1 git@github.com:openstack/#{patch_info[:project]}.git")
Dir.chdir(patch_info[:project]) do
run("git fetch https://review.openstack.org/openstack/#{patch_info[:project]} #{patch_info[:ref]}")
run('git checkout FETCH_HEAD')
end
end
def run_tempest
puts '## Starting tempest tests'
Dir.chdir('vms') do
run("vagrant ssh -c \"sudo bash -c 'cd /opt/tempest && ./run_tests.sh -V'\" controller")
end
end
def run_basic_queries
puts '## Starting basic query tests'
{
'nova-manage' => ['version', 'db version'],
'nova' => %w(--version service-list hypervisor-list net-list image-list),
'glance-manage' => %w(db_version),
'glance' => %w(--version image-list),
'keystone-manage' => %w(db_version),
'keystone' => %w(--version user-list endpoint-list role-list service-list tenant-list),
'cinder-manage' => ['version list', 'db version'],
'cinder' => %w(--version list),
'rabbitmqctl' => %w(cluster_status),
}.each do |cli, commands|
commands.each do |command|
Dir.chdir('vms') do
run("vagrant ssh -c \"sudo bash -c 'source /root/openrc && #{cli} #{command}'\" controller")
end
end
end
puts '## Finished basic query tests'
end
def get_test_dir(env, os, patches)
patch = 'master'
patch = patches.tr(' ', '-') unless patches.to_s.empty?
dir_name = "test-#{env}-#{os}-#{patch}"
puts "## Repo dir: #{dir_name}"
dir_name
end
# Class to run the CLI
class MyCLI < Thor
desc 'test', 'Spin up test repo with optional patches'
long_desc <<-LONGDESC
This will run the test suite. There are options to include one or more patches using the gerrit review number.
The test will run in a new directory called test-<env>-<os>-<patch>, where allinone is the default environment,
ubuntu14 is the default os platform and master (no patches) is the default for patch.
For patches, the tool will try to find your gerrit review name using the "git config -l". If the tool
cannot automatically find your gerrit review name, use the -u option to specify it.\n
Examples:
"$ chef exec ruby test_patch test"\n
This will run the allinone against the master branch.
"$ chef exec ruby test_patch test -t"\n
This will run the allinone against the master branch and run the tempest suite.
"$ chef exec ruby test_patch test -p 161495 -u kramvan"\n
This will run the allinone against the master branch including the 161495 patch set.
"$ chef exec ruby test_patch test -p 161495,123456 -u kramvan"\n
This will run the allinone against the master branch including patches 161495 and 123456.
"$ chef exec ruby test_patch test -p 161495 -i"\n
This will run the allinone against the master branch including the 161495 patch set and
run the converge a second time to help check for idempotentcy. Also, in this case the
gerrit username was automatically found.
"$ chef exec ruby test_patch test -k -s"\n
This is a developer run. The -s will skip the setup steps and just run the converge and tests
again. This allows a developer to tweak and debug a node and then try converge again.
LONGDESC
option :patches, aliases: :p, default: nil, banner: ' Gerrit patch numbers: xxx,zzz, defaults to no patches just use master branch.'
option :env, aliases: :e, default: 'allinone', banner: ' Test environment to run.'
option :os, aliases: :o, default: 'ubuntu14', banner: ' OS to use, ubuntu14 or centos7.'
option :idempotent, aliases: :i, default: false, type: :boolean, banner: ' Run converge a second time to help check for idempotentcy.'
option :query, aliases: :q, default: true, type: :boolean, banner: ' Run basic test queries after converge completes.'
option :tempest, aliases: :t, default: false, type: :boolean, banner: ' Run Tempest suite.'
option :keep, aliases: :k, default: false, type: :boolean, banner: ' Keep the environment, do not run \"rake destroy_machines\".'
option :username, aliases: :u, banner: ' Gerrit user name used to fetch a patch if tool cannot automatically find it in git config.'
option :skip, aliases: :s, banner: ' Skip all source changes, just run converge and tests again. For development after manually tweaking a node.'
def test
puts "## Starting repo test version: #{version} environment: #{options[:env]} on os: #{options[:os]}"
ENV['REPO_OS'] = options[:os]
# TODO: Allow more flexibility with dependencies
check_dependencies
dir_name = get_test_dir(options[:env], options[:os], options[:patches])
Dir.mkdir(dir_name) unless Dir.exist?(dir_name)
Dir.chdir(dir_name) do
if options[:patches] && !options[:skip]
user = get_gerrit_user(options[:username])
options[:patches].split(',').each do |patch|
patch_info = get_patch_info(user, patch)
add_patch(patch_info)
end
end
run('git clone --depth 1 git@github.com:openstack/openstack-chef-repo.git') unless options[:skip]
Dir.chdir('openstack-chef-repo') do
ENV['ZUUL_CHANGES'] = options[:patches]
run('chef exec rake berks_vendor') unless options[:skip]
(1..(options[:idempotent] ? 2 : 1)).each do |pass|
puts "## Starting Converge pass: #{pass}"
run("chef exec rake #{options[:env]}")
run_basic_queries if options[:query]
run_tempest if options[:tempest]
puts "## Finished Converge pass: #{pass}"
end
run('chef exec rake destroy_machines') unless options[:keep]
end
end
FileUtils.rm_rf(dir_name) unless options[:keep]
puts "## Finished repo test version: #{version} environment: #{options[:env]} on os: #{options[:os]}"
end
end
MyCLI.start(ARGV)

16
tox.ini
View File

@ -1,16 +0,0 @@
[tox]
minversion = 1.6
envlist = docs
skipsdist = True
[testenv]
usedevelop = True
setenv = VIRTUAL_ENV={envdir}
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
[testenv:venv]
commands = {posargs}
[testenv:docs]
deps = -r{toxinidir}/doc/requirements.txt
commands = sphinx-build -b html doc/source doc/build/html