openstack-ansible-os_swift/templates/proxy-server.conf.j2
Andy McCrae de7ab0a800 Allow X-History-Location versioned_writes
Versioned Objects in Swift now use a middleware that is added to the
pipeline instead of the "allow_versions" in the container config. These
have 2 different Headers, so to prevent "X-Versions-Location" from not
working the "allow_versions" in the container config is left in place.

This patch adds the middleware by default and sets the Versioned Objects
support to be on. This is the upstream default and the deployer would
still need to set the "X-History-Location" header on a container to
utilise the feature.

Change-Id: I88811fd77fad8d2241448ca5ffb565fa7d704a00
2016-11-30 11:18:45 +00:00

204 lines
6.0 KiB
Django/Jinja

# {{ ansible_managed }}
{% set _api_threads = ansible_processor_vcpus|default(2) // 2 %}
{% set api_threads = _api_threads if _api_threads > 0 else 1 %}
[DEFAULT]
# Disable stderr logging
use_stderr = False
bind_ip = 0.0.0.0
bind_port = {{ swift_proxy_port }}
workers = {{ swift_proxy_server_workers | default(api_threads) }}
user = {{ swift_system_user_name }}
log_facility = LOG_LOCAL1
{% if swift_proxy_vars is defined %}
{% if swift_proxy_vars.statsd_host is defined %}
{% set statsd = 1 %}
log_statsd_host = {{ swift_proxy_vars.statsd_host | default(statsd_host) }}
{% elif swift.statsd_host is defined %}
{% set statsd = 1 %}
log_statsd_host = {{ swift.statsd_host | default(statsd_host) }}
{% endif %}
{% if statsd is defined %}
{% if swift_proxy_vars.statsd_port is defined %}
log_statsd_port = {{ swift_proxy_vars.statsd_port }}
{% else %}
log_statsd_port = {{ swift.statsd_port | default(statsd_port) }}
{% endif %}
{% if swift_proxy_vars.statsd_default_sample_rate is defined %}
log_statsd_default_sample_rate = {{ swift_proxy_vars.statsd_default_sample_rate }}
{% else %}
log_statsd_default_sample_rate = {{ swift.statsd_default_sample_rate | default(statsd_default_sample_rate) }}
{% endif %}
{% if swift_proxy_vars.statsd_sample_rate_factor is defined %}
log_statsd_sample_rate_factor = {{ swift_proxy_vars.statsd_sample_rate_factor }}
{% else %}
log_statsd_sample_rate_factor = {{ swift.statsd_sample_rate_factor | default(statsd_sample_rate_factor) }}
{% endif %}
{% if swift_proxy_vars.statsd_metric_prefix is defined %}
log_statsd_metric_prefix = {{ swift_proxy_vars.statsd_metric_prefix }}
{% else %}
log_statsd_metric_prefix = {{ swift.statsd_metric_prefix | default(inventory_hostname) }}
{% endif %}
{% endif %}
{% endif %}
[pipeline:main]
pipeline = {{ swift_middleware_list | join(' ') }}
[app:proxy-server]
use = egg:swift#proxy
log_facility = LOG_LOCAL1
node_timeout = 60
conn_timeout = 3.5
account_autocreate = true
{% if swift_proxy_vars is defined %}
{% if swift_proxy_vars.read_affinity is defined %}
read_affinity = {{ swift_proxy_vars.read_affinity }}
{% set swift_sorting_method = 'affinity' %}
{% endif %}
{% if swift_proxy_vars.write_affinity is defined %}
write_affinity = {{ swift_proxy_vars.write_affinity }}
{% if swift_proxy_vars.write_affinity_node_count is defined %}
write_affinity_node_count = {{ swift_proxy_vars.write_affinity_node_count }}
{% endif %}
{% endif %}
{% endif %}
sorting_method = {{ swift_sorting_method }}
{% if 'tempauth' in swift_middleware_list %}
[filter:tempauth]
use = egg:swift#tempauth
user_admin_admin = admin .admin .reseller_admin
user_test_tester = testing .admin
user_test2_tester2 = testing2 .admin
user_test_tester3 = testing3
{% endif %}
{% if 'authtoken' in swift_middleware_list %}
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
auth_plugin = {{ swift_keystone_auth_plugin }}
auth_url = {{ keystone_service_adminuri }}
auth_uri = {{ keystone_service_internaluri }}
insecure = {{ keystone_service_adminuri_insecure | bool }}
region_name = {{ keystone_service_region }}
project_domain_id = {{ swift_service_project_domain_id }}
user_domain_id = {{ swift_service_user_domain_id }}
project_name = {{ swift_service_project_name }}
username = {{ swift_service_user_name }}
password = {{ swift_service_password }}
delay_auth_decision = {{ swift_delay_auth_decision }}
include_service_catalog = False
{% if memcached_servers is defined %}
memcached_servers = {{ memcached_servers }}
cache = swift.cache
token_cache_time = 300
revocation_cache_time = 60
memcache_security_strategy = ENCRYPT
memcache_secret_key = {{ memcached_encryption_key }}
{% endif %}
{% endif %}
{% if 'keystoneauth' in swift_middleware_list %}
[filter:keystoneauth]
use = egg:swift#keystoneauth
{% if swift_allow_all_users is defined and swift_allow_all_users == True %}
{% if 'ceilometer' in swift_middleware_list %}
operator_roles = admin, swiftoperator, _member_, {{ swift_reselleradmin_role }}
{% else %}
operator_roles = admin, swiftoperator, _member_
{% endif %}
{% else %}
{% if 'ceilometer' in swift_middleware_list %}
operator_roles = admin, swiftoperator, {{ swift_reselleradmin_role }}
{% else %}
operator_roles = admin, swiftoperator
{% endif %}
{% endif %}
# The reseller admin role has the ability to create and delete accounts
reseller_admin_role = {{ swift_reselleradmin_role }}
{% endif %}
[filter:healthcheck]
use = egg:swift#healthcheck
[filter:cache]
use = egg:swift#memcache
[filter:ratelimit]
use = egg:swift#ratelimit
[filter:domain_remap]
use = egg:swift#domain_remap
[filter:catch_errors]
use = egg:swift#catch_errors
[filter:cname_lookup]
use = egg:swift#cname_lookup
[filter:staticweb]
use = egg:swift#staticweb
[filter:tempurl]
use = egg:swift#tempurl
[filter:formpost]
use = egg:swift#formpost
[filter:name_check]
use = egg:swift#name_check
[filter:list-endpoints]
use = egg:swift#list_endpoints
[filter:proxy-logging]
use = egg:swift#proxy_logging
[filter:bulk]
use = egg:swift#bulk
[filter:container-quotas]
use = egg:swift#container_quotas
[filter:slo]
use = egg:swift#slo
[filter:dlo]
use = egg:swift#dlo
[filter:versioned_writes]
use = egg:swift#versioned_writes
allow_versioned_writes = True
[filter:account-quotas]
use = egg:swift#account_quotas
[filter:gatekeeper]
use = egg:swift#gatekeeper
[filter:container_sync]
use = egg:swift#container_sync
[filter:xprofile]
use = egg:swift#xprofile
{% if 'ceilometer' in swift_middleware_list %}
[filter:ceilometer]
paste.filter_factory = ceilometermiddleware.swift:filter_factory
control_exchange = swift
driver = messagingv2
url = rabbit://{% for host in swift_rabbitmq_telemetry_servers.split(',') %}{{ swift_rabbitmq_telemetry_userid }}:{{ swift_rabbitmq_telemetry_password }}@{{ host }}:{{ swift_rabbitmq_telemetry_port }}{% if not loop.last %},{% else %}/{{ swift_rabbitmq_telemetry_vhost }}{% endif %}{% endfor %}
topic = notifications
{% if swift_gnocchi_service_project_id is defined %}
ignore_projects = {{ swift_gnocchi_service_project_id }}
{% endif %}
log_level = WARN
{% endif %}