diff --git a/defaults/main.yml b/defaults/main.yml index 7ce2348b..9651b756 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -25,11 +25,19 @@ debug: False swift_package_state: "latest" swift_pip_package_state: "latest" +# Git repo details for swift swift_git_repo: https://git.openstack.org/openstack/swift swift_git_install_branch: stable/ocata + +# Git repo details for swift3 middleware +swift_swift3_git_repo: https://git.openstack.org/openstack/swift3 +swift_swift3_git_install_branch: master + +# Developer mode settings swift_developer_mode: false swift_developer_constraints: - "git+{{ swift_git_repo }}@{{ swift_git_install_branch }}#egg=swift" + - "git+{{ swift_swift3_git_repo }}@{{ swift_swift3_git_install_branch }}#egg=swift3" # Name of the virtual env to deploy into swift_venv_tag: untagged @@ -59,6 +67,15 @@ swift_syslog_log_perms: "0644" ## Auth token swift_delay_auth_decision: true +## Swift3 middleware options +swift_swift3_enabled: false +swift_swift3_allow_no_owner: false +swift_swift3_location: US +swift_swift3_max_bucket_listing: 1000 +swift_swift3_max_multi_delete_objects: 1000 +swift_swift3_s3_acl: false +swift_swift3_storage_domain: "" + ## Swift middleware # NB: The order is important! swift_middleware_list: @@ -68,6 +85,8 @@ swift_middleware_list: - proxy-logging - "{% if swift_ceilometer_enabled | bool %}ceilometer{% endif %}" - cache + - "{% if swift_swift3_enabled | bool%}swift3{% endif %}" + - "{% if swift_swift3_enabled | bool%}s3token{% endif %}" - container_sync - bulk - tempurl @@ -310,6 +329,7 @@ swift_pip_packages: - python-memcached - python-swiftclient - swift + - swift3 swift_account_replicator_init_overrides: {} swift_account_replicator_server_init_overrides: {} diff --git a/releasenotes/notes/add-swift3-support-a3f1a5d866fd8883.yaml b/releasenotes/notes/add-swift3-support-a3f1a5d866fd8883.yaml new file mode 100644 index 00000000..50ca2add --- /dev/null +++ b/releasenotes/notes/add-swift3-support-a3f1a5d866fd8883.yaml @@ -0,0 +1,5 @@ +--- +features: + - The os_swift role now supports the swift3 middleware, allowing access to + swift via the Amazon S3 API. This feature can enabled by setting + ``swift_swift3_enabled`` to ``true``. diff --git a/templates/proxy-server.conf.j2 b/templates/proxy-server.conf.j2 index 29172671..32167f14 100644 --- a/templates/proxy-server.conf.j2 +++ b/templates/proxy-server.conf.j2 @@ -100,6 +100,25 @@ operator_roles = admin, swiftoperator reseller_admin_role = {{ swift_reselleradmin_role }} {% endif %} +{% if 'swift3' in swift_middleware_list %} +[filter:swift3] +use = egg:swift3#swift3 + +allow_no_owner = {{ swift_swift3_allow_no_owner }} +location = {{ swift_swift3_location }} +max_bucket_listing = {{ swift_swift3_max_bucket_listing }} +max_multi_delete_objects = {{ swift_swift3_max_multi_delete_objects }} +s3_acl = {{ swift_swift3_s3_acl }} +storage_domain = {{ swift_swift3_storage_domain }} + +{% endif %} + +{% if 's3token' in swift_middleware_list %} +[filter:s3token] +use = egg:swift3#s3token +auth_uri = {{ keystone_service_adminuri }} +{% endif %} + [filter:healthcheck] use = egg:swift#healthcheck