diff --git a/modules/openstack_project/manifests/static.pp b/modules/openstack_project/manifests/static.pp
index fd6fd30045..bd06622150 100644
--- a/modules/openstack_project/manifests/static.pp
+++ b/modules/openstack_project/manifests/static.pp
@@ -49,6 +49,10 @@ class openstack_project::static (
}
}
+ if ! defined(Httpd::Mod['alias']) {
+ httpd::mod { 'alias': ensure => present }
+ }
+
if ! defined(File['/srv/static']) {
file { '/srv/static':
ensure => directory,
@@ -252,22 +256,39 @@ class openstack_project::static (
}
###########################################################
- # Governance
+ # Governance & Election
+
+ # Extra aliases and directories needed for vhost template:
+ $aliases = {
+ '/election/' => '/srv/static/election/'
+ }
+ $directories = [
+ '/srv/static/election',
+ '/srv/static/governance'
+ ]
::httpd::vhost { 'governance.openstack.org':
- port => 443, # Is required despite not being used.
- docroot => '/srv/static/governance',
- priority => '50',
- ssl => true,
- template => 'openstack_project/static-http-and-https.vhost.erb',
- vhost_name => 'governance.openstack.org',
- require => [
+ port => 443, # Is required despite not being used.
+ docroot => '/srv/static/governance',
+ priority => '50',
+ ssl => true,
+ template => 'openstack_project/static-http-and-https.vhost.erb',
+ vhost_name => 'governance.openstack.org',
+ require => [
+ File['/srv/static/election'],
File['/srv/static/governance'],
File[$cert_file],
File[$key_file],
],
}
+ file { '/srv/static/election':
+ ensure => directory,
+ owner => 'jenkins',
+ group => 'jenkins',
+ require => User['jenkins'],
+ }
+
file { '/srv/static/governance':
ensure => directory,
owner => 'jenkins',
diff --git a/modules/openstack_project/templates/static-http-and-https.vhost.erb b/modules/openstack_project/templates/static-http-and-https.vhost.erb
index 83a7403cb1..bd57e85608 100644
--- a/modules/openstack_project/templates/static-http-and-https.vhost.erb
+++ b/modules/openstack_project/templates/static-http-and-https.vhost.erb
@@ -14,6 +14,24 @@
RewriteRule ^/(.*)$ http://<%= @vhost_name %>/$1 [L,R=301]
<% end -%>
DocumentRoot <%= @docroot %>
+
+<% if scope.lookupvar('openstack_project::static::aliases').is_a? Hash -%>
+ # Alias other folders
+ <% scope.lookupvar('openstack_project::static::aliases').each do |a, d| -%>
+ Alias "<%= a %>" "<%= d %>"
+ <% end -%>
+<% end -%>
+<% if scope.lookupvar('openstack_project::static::directories').is_a? Array -%>
+ <% scope.lookupvar('openstack_project::static::directories').each do |dirname| -%>
+ >
+ Options Indexes FollowSymLinks MultiViews
+ AllowOverride None
+ Order allow,deny
+ allow from all
+ Satisfy Any
+
+ <% end -%>
+<% else -%>
>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
@@ -21,6 +39,7 @@
allow from all
Satisfy Any
+<% end -%>
LogLevel warn
ErrorLog /var/log/apache2/<%= @vhost_name %>_error.log
CustomLog /var/log/apache2/<%= @vhost_name %>_access.log combined