[WIP] swift-proxy service

Change-Id: Ic50bc775cc03b419252ed977d7a6c5e26452cfdf
This commit is contained in:
Proskurin Kirill 2017-02-16 12:38:29 +00:00
parent d835f916c5
commit 0c4359564c
4 changed files with 153 additions and 0 deletions

View File

@ -0,0 +1,8 @@
FROM {{ image_spec("openstack-base") }}
MAINTAINER {{ maintainer }}
RUN apt-get update \
&& apt-get install -y -t jessie-backports --no-install-recommends swift-proxy \
&& apt-get clean
USER swift

View File

@ -7,6 +7,10 @@ configs:
cont: 7480
ingress: object-store
key: "Changeme"
swift:
proxy:
port:
cont: 8080
url:
ceph:
debian:

View File

@ -0,0 +1,96 @@
[DEFAULT]
swift_dir = /var/swift
bind_ip = {{ network_topology["private"]["address"] }}
bind_port = {{ swift.proxy.port.cont }}
use_syslog = false
use_stderr = true
workers = 2
user = swift
[pipeline:main]
pipeline = catch_errors crossdomain healthcheck cache bulk tempurl ratelimit formpost swift3 s3token authtoken keystone staticweb container_quotas account_quotas slo ceilometer proxy-server
[app:proxy-server]
use = egg:swift#proxy
log_handoffs = true
allow_account_management = true
account_autocreate = true
[filter:bulk]
use = egg:swift#bulk
max_containers_per_extraction = 10000
max_failed_extractions = 1000
max_deletes_per_request = 10000
yield_frequency = 60
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
{{ keystone_authtoken.keystone_authtoken(swift.user, swift.password) }}
[filter:cache]
use = egg:swift#memcache
memcache_servers = {{ address('memcached', memcached.port) }}
[filter:catch_errors]
use = egg:swift#catch_errors
[filter:healthcheck]
use = egg:swift#healthcheck
[filter:ratelimit]
use = egg:swift#ratelimit
clock_accuracy = 1000
max_sleep_time_seconds = 60
log_sleep_time_seconds = 0
rate_buffer_seconds = 5
account_ratelimit = 0
[filter:swift3]
use = egg:swift3#swift3
[filter:s3token]
paste.filter_factory = keystonemiddleware.s3_token:filter_factory
#auth_port = 35357
#auth_protocol = http
#auth_host =
{{ keystone_authtoken.keystone_authtoken(swift.user, swift.password) }}
[filter:tempurl]
use = egg:swift#tempurl
[filter:formpost]
use = egg:swift#formpost
[filter:staticweb]
use = egg:swift#staticweb
[filter:ceilometer]
use = egg:ceilometer#swift
[filter:crossdomain]
use = egg:swift#crossdomain
cross_domain_policy = <allow-access-from domain="*" secure="false" />
[filter:slo]
use = egg:swift#slo
max_manifest_segments = 1000
max_manifest_size = 2097152
min_segment_size = 1048576
rate_limit_after_segment = 10
rate_limit_segments_per_sec = 0
max_get_time = 86400
[filter:keystone]
use = egg:swift#keystoneauth
operator_roles = admin, SwiftOperator, _member_
is_admin = true
reseller_prefix = AUTH_
[filter:account_quotas]
use = egg:swift#account_quotas
[filter:container_quotas]
use = egg:swift#container_quotas

45
service/swift-proxy.yaml Normal file
View File

@ -0,0 +1,45 @@
dsl_version: 0.7.0
service:
name: swift-proxy
ports:
- {{ swift.proxy.port }}
containers:
- name: swift-proxy
image: swift-proxy
volumes:
- name: swift-rings
path: "/var/swift"
type: host
readOnly: false
pre:
- name: swift-proxy-create-swift-service
type: single
command: openstack service create --name swift --description "Swift Service" object-store
dependencies:
- keystone
- name: swift-proxy-create-swift-public-endpoint
type: single
command: openstack endpoint create --region RegionOne swift public
"{{ address('swift-proxy', swift.proxy.port, external=True, with_scheme=True) }}/v1/AUTH_%(tenant_id)s"
dependencies:
- swift-proxy-create-swift-service
- name: swift-proxy-create-swift-admin-endpoint
type: single
command: openstack endpoint create --region RegionOne swift admin
"{{ address('swift-proxy', swift.proxy.port, with_scheme=True) }}/v1/AUTH_%(tenant_id)s"
dependencies:
- swift-proxy-create-swift-service
- name: swift-proxy-create-swift-internal-endpoint
type: single
command: openstack endpoint create --region RegionOne swift internal
"{{ address('swift-proxy', swift.proxy.port, with_scheme=True) }}/v1/AUTH_%(tenant_id)s"
dependencies:
- swift-proxy-create-swift-service
daemon:
command: swift-proxy-server /etc/swift/proxy-server.conf --verbose
files:
- swift-proxy-conf
files:
swift-proxy-conf:
path: /etc/swift/proxy-server.conf
content: swift-proxy.conf.j2