puppet-nova/examples/nova_wsgi.pp
Emilien Macchi 16262ed8f4 Implement WSGI support for Nova API
* Add service_name parameter in ::nova::api with unit testing covering
  use cases.
* Add apache module to fixtures for unit testing.
* Add apache module to metadata.json.
* Add WSGI paths to ::nova::params.
* Create ::nova::wsgi::apache with unit testing covering use cases.
* Create acceptance tests to validate the transition from eventlet to
  WSGI and make sure apache is stopped in eventlet testing.
* Create examples/nova_wsgi.pp to document use cases.
* Deprecate enabled_apis as a string, to be an array later (with unit
  tests).
* Drop eventlet testing

Use-cases supported & limitations:
* All API (compute, metadata) running in eventlet and 100% backward
  compatible.

This is a first implementation that keeps the deployment simple &
backward compatible.
During this cycle, we accept enabled_apis as a string, but in N cycle, we
will make sure it's an array so we can drop all the code that sanitize
the parameter to make sure we enable the right WSGI process.

Change-Id: I3a7c6af2d81da28e41ee278f11937364536efd9e
2016-03-09 18:27:12 -05:00

32 lines
807 B
Puppet

# This manifest documents different use cases when running WSGI in Nova API
# Use Case #1: running Nova API with osapi_compute in WSGI, and metadata
class { '::nova': }
class { '::nova::api':
admin_password => 'a_big_secret',
service_name => 'httpd',
}
include ::apache
class { '::nova::wsgi::apache':
ssl => false,
}
# Use Case #2: running Nova API with osapi_compute in WSGI, and metadata disabled
class { '::nova': }
class { '::nova::api':
admin_password => 'a_big_secret',
enabled_apis => ['osapi_compute'],
service_name => 'httpd',
}
include ::apache
class { '::nova::wsgi::apache':
ssl => false,
}
# Use Case #3: not running osapi_compute, just enabling metadata
class { '::nova': }
class { '::nova::api':
admin_password => 'a_big_secret',
enabled_apis => ['metadata'],
}