Add radosgw service

Change-Id: Iefcebfe55544331b379f4ee1c4001ec33f539a28
This commit is contained in:
Proskurin Kirill 2016-10-13 11:12:06 +00:00
parent e1f92a1da7
commit 6473bbfc8e
10 changed files with 210 additions and 0 deletions

69
.gitignore vendored Normal file
View File

@ -0,0 +1,69 @@
*.py[cod]
# C extensions
*.so
# Packages
*.egg
*.egg-info
dist
build
.eggs
eggs
parts
bin
var
sdist
develop-eggs
.installed.cfg
lib
lib64
# Installer logs
pip-log.txt
# Unit test / coverage reports
.coverage
cover
.tox
nosetests.xml
.testrepository
.venv
# Translations
*.mo
# Mr Developer
.mr.developer.cfg
.project
.pydevproject
# Complexity
output/*.html
output/*/index.html
# Sphinx
doc/build
# oslo-config-generator
etc/*.sample
# pbr generates these
AUTHORS
ChangeLog
# Editors
*~
.*.swp
.*sw?
# Vagrant
.vagrant
vagrant/Vagrantfile.custom
vagrant/vagrantkey*
# generated openrc
openrc
# tests
tests/.cache/*

View File

@ -0,0 +1,10 @@
FROM {{ image_spec("openstack-base") }}
MAINTAINER {{ maintainer }}
COPY sources.list.debian /etc/apt/sources.list.d/ceph.list
RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 460F3994 \
&& apt-get update \
&& apt-get install -y --no-install-recommends radosgw \
&& apt-get clean \
&& mkdir -p /var/lib/ceph/radosgw/ceph-rgw

View File

@ -0,0 +1 @@
deb http://eu.ceph.com/debian-jewel jessie main

View File

@ -0,0 +1,3 @@
[client.radosgw.gateway]
key = {{ radosgw.key }}

View File

@ -0,0 +1,27 @@
[global]
fsid = {{ ceph.fsid }}
mon_host = {{ ceph.mon_host }}
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
debug_rgw = 20
[client.radosgw.gateway]
keyring = /var/lib/ceph/radosgw/ceph-rgw/keyring
rgw socket path = /tmp/radosgw.sock
log file = /var/log/ceph/ceph-rgw-{{ namespace }}.log
rgw data = /var/lib/ceph/radosgw/ceph-rgw
rgw frontends = civetweb port={{ radosgw.port }} num_threads=50
rgw keystone api version = 3
rgw keystone admin domain = default
rgw keystone admin project = admin
rgw keystone url = http://{{ address('keystone') }}:{{ keystone.admin_port }}
rgw keystone accepted roles = Member, _member_, admin
rgw keystone revocation interval = 900
rgw s3 auth use keystone = true
#nss db path = /var/lib/ceph/radosgw/ceph-rgw.ccp/nss
rgw keystone verify ssl = false
rgw keystone admin user = admin
rgw keystone admin password = password

View File

@ -0,0 +1,7 @@
configs:
ceph:
fsid: "Changeme"
mon_host: "Changeme"
radosgw:
port: 7480
key: "Changeme"

50
service/radosgw.yaml Normal file
View File

@ -0,0 +1,50 @@
service:
name: radosgw
ports:
- {{ radosgw.port }}
containers:
- name: radosgw
image: radosgw
probes:
readiness: "true"
liveness: "true"
pre:
- name: radosgw-create-swift-service
type: single
command: openstack service create --name swift --description "Swift Service" object-store
dependencies:
- keystone
- name: radosgw-create-swift-public-endpoint
type: single
command: openstack endpoint create --region RegionOne swift public
"http://{{ address('radosgw') }}:{{ radosgw.port }}/swift/v1"
dependencies:
- radosgw-create-swift-service
- name: radosgw-create-swift-admin-endpoint
type: single
command: openstack endpoint create --region RegionOne swift admin
"http://{{ address('radosgw') }}:{{ radosgw.port }}/swift/v1"
dependencies:
- radosgw-create-swift-service
- name: radosgw-create-swift-internal-endpoint
type: single
command: openstack endpoint create --region RegionOne swift internal
"http://{{ address('radosgw') }}:{{ radosgw.port }}/swift/v1"
dependencies:
- radosgw-create-swift-service
daemon:
command: radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway -d
files:
- ceph-conf
- radosgw-ceph-key
- radosgw-keyring
files:
ceph-conf:
path: /etc/ceph/ceph.conf
content: ceph.conf.j2
radosgw-ceph-key:
path: /etc/ceph/ceph.client.radosgw.keyring
content: ceph.client.radosgw.keyring.j2
radosgw-keyring:
path: /var/lib/ceph/radosgw/ceph-rgw/keyring
content: ceph.client.radosgw.keyring.j2

5
tools/yamllint.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
set -ex
workdir=$(dirname $0)
yamllint -c $workdir/yamllint.yaml $(find . -not -path '*/\.*' -type f -name '*.yaml')

21
tools/yamllint.yaml Normal file
View File

@ -0,0 +1,21 @@
extends: default
rules:
braces:
max-spaces-inside: 1
comments:
level: error
comments-indentation:
level: warning
document-end:
present: no
document-start:
level: error
present: no
empty-lines:
max: 1
max-start: 0
max-end: 0
line-length:
level: warning
max: 120

17
tox.ini Normal file
View File

@ -0,0 +1,17 @@
[tox]
minversion = 1.6
envlist = linters,bashate
skipsdist = True
[testenv:linters]
deps = yamllint
commands =
{toxinidir}/tools/yamllint.sh
[testenv:bashate]
deps = bashate>=0.2
whitelist_externals = bash
commands = bash -c "find {toxinidir} -type f -name '*.sh' -not -path '*/.tox/*' -print0 | xargs -0 bashate -v"
[testenv:venv]
commands = {posargs}