Add Cinder service
Ceph only. Example conf: configs: ceph: fsid: "afca8524-2c47-4b81-a0b7-2300e62212f9" mon_host: "IP OF CEPH MON NODE" cinder: enable: true key: "AQCeQ+5XUCgdDBAARRl6lx8Lze9wwf2IzCgBnA==" rbd_secret_uuid: "b416770d-f3d4-4ac9-b6db-b6a7ac1c61c0" Change-Id: I31fde6e2beaf6303fef7188eb2c859beb90567ab
This commit is contained in:
parent
bee0302b7b
commit
088c2658e5
|
@ -0,0 +1,68 @@
|
|||
*.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/.cache*
|
|
@ -0,0 +1,6 @@
|
|||
FROM {{ image_spec("cinder-base") }}
|
||||
MAINTAINER {{ maintainer }}
|
||||
|
||||
RUN apt-get install -y --no-install-recommends mysql-client
|
||||
|
||||
USER cinder
|
|
@ -0,0 +1,18 @@
|
|||
FROM {{ image_spec("openstack-base") }}
|
||||
MAINTAINER {{ maintainer }}
|
||||
|
||||
COPY sources.list.debian /etc/apt/sources.list.d/ceph.list
|
||||
{{ copy_sources("openstack/cinder", "/cinder") }}
|
||||
|
||||
RUN useradd --user-group -G microservices cinder \
|
||||
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 460F3994 \
|
||||
&& /var/lib/microservices/venv/bin/pip install --upgrade /cinder \
|
||||
&& mkdir -p /etc/cinder /var/lib/cinder /home/cinder \
|
||||
&& cp -r /cinder/etc/cinder/* /etc/cinder/ \
|
||||
&& chown -R cinder: /etc/cinder /var/lib/cinder /home/cinder \
|
||||
&& sed -i 's|^exec_dirs.*|exec_dirs=/var/lib/microservices/venv/bin,/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin|g' /etc/cinder/rootwrap.conf
|
||||
|
||||
COPY cinder_sudoers /etc/sudoers.d/cinder_sudoers
|
||||
|
||||
RUN chmod 750 /etc/sudoers.d \
|
||||
&& chmod 440 /etc/sudoers.d/cinder_sudoers
|
|
@ -0,0 +1 @@
|
|||
cinder ALL = (root) NOPASSWD: /var/lib/microservices/venv/bin/cinder-rootwrap /etc/cinder/rootwrap.conf *
|
|
@ -0,0 +1 @@
|
|||
deb http://download.ceph.com/debian-jewel jessie main
|
|
@ -0,0 +1,4 @@
|
|||
FROM {{ image_spec("cinder-base") }}
|
||||
MAINTAINER {{ maintainer }}
|
||||
|
||||
USER cinder
|
|
@ -0,0 +1,14 @@
|
|||
FROM {{ image_spec("cinder-base") }}
|
||||
MAINTAINER {{ maintainer }}
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends qemu-utils ceph-common python-ceph python-rados \
|
||||
&& apt-get clean \
|
||||
&& mkdir -p /etc/ceph \
|
||||
&& chown -R cinder: /etc/ceph \
|
||||
&& ln -s /usr/lib/python2.7/dist-packages/rados.so /var/lib/microservices/venv/local/lib/python2.7/site-packages/rados.so \
|
||||
&& ln -s /usr/lib/python2.7/dist-packages/rados-0.egg-info /var/lib/microservices/venv/local/lib/python2.7/site-packages/rados-0.egg-info \
|
||||
&& ln -s /usr/lib/python2.7/dist-packages/rbd-0.egg-info /var/lib/microservices/venv/local/lib/python2.7/site-packages/rbd-0.egg-info \
|
||||
&& ln -s /usr/lib/python2.7/dist-packages/rbd.so /var/lib/microservices/venv/local/lib/python2.7/site-packages/rbd.so
|
||||
|
||||
USER cinder
|
|
@ -0,0 +1,67 @@
|
|||
service:
|
||||
name: cinder-api
|
||||
ports:
|
||||
- {{ cinder.api_port }}
|
||||
containers:
|
||||
- name: cinder-api
|
||||
image: cinder-api
|
||||
probes:
|
||||
readiness: "true"
|
||||
liveness: "true"
|
||||
pre:
|
||||
- name: cinder-db-create
|
||||
dependencies:
|
||||
- mariadb
|
||||
type: single
|
||||
command:
|
||||
mysql -u root -p{{ keystone.db.password }} -h mariadb -e "create database {{ cinder.db.name }};
|
||||
grant all privileges on {{ cinder.db.name }}.* to '{{ cinder.db.username }}'@'%' identified by '{{ cinder.db.password }}';"
|
||||
- name: cinder-db-sync
|
||||
files:
|
||||
- cinder-conf
|
||||
dependencies:
|
||||
- cinder-db-create
|
||||
type: single
|
||||
command: cinder-manage db sync
|
||||
- name: cinder-user-create
|
||||
dependencies:
|
||||
- keystone
|
||||
type: single
|
||||
command: openstack user create --domain default --password {{ cinder.password }} {{ cinder.username }}
|
||||
- name: cinder-role-add
|
||||
dependencies:
|
||||
- cinder-user-create
|
||||
type: single
|
||||
command: openstack role add --project service --user {{ cinder.username }} admin
|
||||
- name: cinder-service-create
|
||||
dependencies:
|
||||
- keystone
|
||||
type: single
|
||||
command: openstack service create --name cinder --description "OpenStack Cinder Service" volumev2
|
||||
- name: cinder-public-endpoint-create
|
||||
dependencies:
|
||||
- cinder-service-create
|
||||
type: single
|
||||
command: openstack endpoint create --region RegionOne volumev2 public http://{{ address('cinder-api') }}:{{ cinder.api_port }}/v2/%\(tenant_id\)s
|
||||
- name: cinder-internal-endpoint-create
|
||||
dependencies:
|
||||
- cinder-service-create
|
||||
type: single
|
||||
command: openstack endpoint create --region RegionOne volumev2 internal http://{{ address('cinder-api') }}:{{ cinder.api_port }}/v2/%\(tenant_id\)s
|
||||
- name: cinder-admin-endpoint-create
|
||||
dependencies:
|
||||
- cinder-service-create
|
||||
type: single
|
||||
command: openstack endpoint create --region RegionOne volumev2 admin http://{{ address('cinder-api') }}:{{ cinder.api_port }}/v2/%\(tenant_id\)s
|
||||
daemon:
|
||||
command: cinder-api --config-file /etc/cinder/cinder.conf
|
||||
files:
|
||||
- cinder-conf
|
||||
dependencies:
|
||||
- memcached
|
||||
- rabbitmq
|
||||
|
||||
files:
|
||||
cinder-conf:
|
||||
path: /etc/cinder/cinder.conf
|
||||
content: cinder.conf.j2
|
|
@ -0,0 +1,18 @@
|
|||
service:
|
||||
name: cinder-scheduler
|
||||
containers:
|
||||
- name: cinder-scheduler
|
||||
image: cinder-scheduler
|
||||
probes:
|
||||
readiness: "true"
|
||||
liveness: "true"
|
||||
daemon:
|
||||
command: cinder-scheduler --config-file /etc/cinder/cinder.conf
|
||||
files:
|
||||
- cinder-conf
|
||||
dependencies:
|
||||
- cinder-api
|
||||
files:
|
||||
cinder-conf:
|
||||
path: /etc/cinder/cinder.conf
|
||||
content: cinder.conf.j2
|
|
@ -0,0 +1,29 @@
|
|||
service:
|
||||
name: cinder-volume
|
||||
containers:
|
||||
- name: cinder-volume
|
||||
image: cinder-volume
|
||||
privileged: true
|
||||
probes:
|
||||
readiness: "true"
|
||||
liveness: "true"
|
||||
daemon:
|
||||
command: cinder-volume --config-file /etc/cinder/cinder.conf
|
||||
files:
|
||||
- cinder-conf
|
||||
# {% if cinder.ceph.enable %}
|
||||
- ceph-conf
|
||||
- cinder-ceph-key
|
||||
# {% endif %}
|
||||
dependencies:
|
||||
- cinder-api
|
||||
files:
|
||||
cinder-conf:
|
||||
path: /etc/cinder/cinder.conf
|
||||
content: cinder.conf.j2
|
||||
ceph-conf:
|
||||
path: /etc/ceph/ceph.conf
|
||||
content: ceph.conf.j2
|
||||
cinder-ceph-key:
|
||||
path: /etc/ceph/ceph.client.cinder.keyring
|
||||
content: ceph.client.cinder.keyring.j2
|
|
@ -0,0 +1,3 @@
|
|||
[client.cinder]
|
||||
key = {{ cinder.ceph.key }}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[global]
|
||||
fsid = {{ ceph.fsid }}
|
||||
mon_host = {{ ceph.mon_host }}
|
||||
auth_cluster_required = cephx
|
||||
auth_service_required = cephx
|
||||
auth_client_required = cephx
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
[DEFAULT]
|
||||
debug = {{ cinder.debug }}
|
||||
use_forwarded_for = True
|
||||
use_stderr = True
|
||||
|
||||
volume_name_template = volume-%s
|
||||
|
||||
glance_api_servers = {{ address('glance-api') }}:{{ glance.api_port }}
|
||||
|
||||
glance_num_retries = 3
|
||||
glance_api_version = 2
|
||||
|
||||
os_region_name = RegionOne
|
||||
|
||||
enabled_backends = {{ cinder.enabled_backends }}
|
||||
|
||||
osapi_volume_listen = {{ network_topology["private"]["address"] }}
|
||||
osapi_volume_listen_port = {{ cinder.api_port }}
|
||||
|
||||
api_paste_config = /etc/cinder/api-paste.ini
|
||||
nova_catalog_info = compute:nova:internalURL
|
||||
glance_catalog_info = image:glance:internalURL
|
||||
|
||||
auth_strategy = keystone
|
||||
transport_url=rabbit://{{ rabbitmq.user }}:{{ rabbitmq.password }}@{{ address('rabbitmq') }}
|
||||
|
||||
[database]
|
||||
connection = mysql+pymysql://{{ cinder.db.username }}:{{ cinder.db.password }}@{{ address('mariadb') }}/{{ cinder.db.name }}
|
||||
max_retries = -1
|
||||
|
||||
[keystone_authtoken]
|
||||
auth_version = v3
|
||||
auth_uri = http://{{ address('keystone') }}:{{ keystone.public_port }}/v3
|
||||
auth_url = http://{{ address('keystone') }}:{{ keystone.admin_port }}/v3
|
||||
auth_type = password
|
||||
project_domain_id = default
|
||||
user_domain_id = default
|
||||
project_name = service
|
||||
username = {{ cinder.username }}
|
||||
password = {{ cinder.password }}
|
||||
memcached_servers = {{ address('memcached') }}:{{ memcached.port }}
|
||||
|
||||
[oslo_concurrency]
|
||||
lock_path = /var/lib/cinder/tmp
|
||||
|
||||
{% if cinder.ceph.enable %}
|
||||
[rbd]
|
||||
volume_driver = cinder.volume.drivers.rbd.RBDDriver
|
||||
rbd_user = {{ cinder.ceph.username }}
|
||||
rbd_secret_uuid = {{ cinder.ceph.rbd_secret_uuid }}
|
||||
rbd_pool = {{ cinder.ceph.pool_name }}
|
||||
rbd_ceph_conf = /etc/ceph/ceph.conf
|
||||
{% endif %}
|
||||
|
||||
[privsep_entrypoint]
|
||||
helper_command=sudo cinder-rootwrap /etc/cinder/rootwrap.conf privsep-helper --config-file /etc/cinder/cinder.conf
|
|
@ -0,0 +1,25 @@
|
|||
configs:
|
||||
cinder:
|
||||
api_port: 8776
|
||||
debug: false
|
||||
username: "cinder"
|
||||
password: "password"
|
||||
enabled_backends: "rbd"
|
||||
|
||||
db:
|
||||
name: "cinder"
|
||||
username: "cinder"
|
||||
password: "password"
|
||||
|
||||
ceph:
|
||||
enable: false
|
||||
key: "Changeme"
|
||||
username: "cinder"
|
||||
pool_name: "volumes"
|
||||
backup_pool_name: "backup"
|
||||
rbd_secret_uuid: "Changeme"
|
||||
|
||||
sources:
|
||||
openstack/cinder:
|
||||
git_url: https://github.com/openstack/cinder.git
|
||||
git_ref: stable/newton
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
workdir=$(dirname $0)
|
||||
yamllint -c $workdir/yamllint.yaml $(find . -not -path '*/\.*' -type f -name '*.yaml')
|
|
@ -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
|
Loading…
Reference in New Issue