Add components to designate CCP plugin
Add next components to designate CCP plugin: * designate-api * designate-central * designate-sink * designate-pool-manager * designate-zone-manager * designate-mdns * designate-agent Change-Id: I0332dc2e1e8bfaf7802f339ae94928c6c7de9979
This commit is contained in:
parent
17a09de0ed
commit
c7773735e3
|
@ -0,0 +1,4 @@
|
|||
FROM {{ image_spec("designate-base") }}
|
||||
MAINTAINER {{ maintainer }}
|
||||
|
||||
USER designate
|
|
@ -0,0 +1,9 @@
|
|||
FROM {{ image_spec("designate-base") }}
|
||||
MAINTAINER {{ maintainer }}
|
||||
|
||||
#mysql-client only for provisioning need to be removed later
|
||||
RUN apt-get install -y --no-install-recommends \
|
||||
mysql-client \
|
||||
&& apt-get clean
|
||||
|
||||
USER designate
|
|
@ -0,0 +1,16 @@
|
|||
FROM {{ image_spec("openstack-base") }}
|
||||
MAINTAINER {{ maintainer }}
|
||||
|
||||
{{ copy_sources("openstack/designate", "/designate") }}
|
||||
|
||||
RUN useradd --user-group -G microservices designate \
|
||||
&& /var/lib/microservices/venv/bin/pip install --upgrade /designate \
|
||||
&& mkdir -p /var/lib/designate /etc/designate /var/log/designate \
|
||||
&& cp -r /designate/etc/designate/* /etc/designate/ \
|
||||
&& mv /etc/designate/rootwrap.conf.sample /etc/designate/rootwrap.conf \
|
||||
&& chown -R designate:designate /var/log/designate /etc/designate /var/lib/designate \
|
||||
&& 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/designate/rootwrap.conf
|
||||
|
||||
COPY designate_sudoers /etc/sudoers.d/designate_sudoers
|
||||
RUN chmod 750 /etc/sudoers.d \
|
||||
&& chmod 440 /etc/sudoers.d/designate_sudoers
|
|
@ -0,0 +1 @@
|
|||
designate ALL = (root) NOPASSWD: /var/lib/microservices/venv/bin/designate-rootwrap /etc/designate/rootwrap.conf *
|
|
@ -0,0 +1,4 @@
|
|||
FROM {{ image_spec("designate-base") }}
|
||||
MAINTAINER {{ maintainer }}
|
||||
|
||||
USER designate
|
|
@ -0,0 +1,4 @@
|
|||
FROM {{ image_spec("designate-base") }}
|
||||
MAINTAINER {{ maintainer }}
|
||||
|
||||
USER designate
|
|
@ -0,0 +1,9 @@
|
|||
FROM {{ image_spec("designate-base") }}
|
||||
MAINTAINER {{ maintainer }}
|
||||
|
||||
#mysql-client only for provisioning need to be removed later
|
||||
RUN apt-get install -y --no-install-recommends \
|
||||
mysql-client \
|
||||
&& apt-get clean
|
||||
|
||||
USER designate
|
|
@ -0,0 +1,4 @@
|
|||
FROM {{ image_spec("designate-base") }}
|
||||
MAINTAINER {{ maintainer }}
|
||||
|
||||
USER designate
|
|
@ -0,0 +1,4 @@
|
|||
FROM {{ image_spec("designate-base") }}
|
||||
MAINTAINER {{ maintainer }}
|
||||
|
||||
USER designate
|
|
@ -0,0 +1,17 @@
|
|||
dsl_version: 0.5.0
|
||||
service:
|
||||
name: designate-agent
|
||||
containers:
|
||||
- name: designate-agent
|
||||
image: designate-agent
|
||||
daemon:
|
||||
dependencies:
|
||||
- designate-api
|
||||
files:
|
||||
- designate-conf
|
||||
command: designate-agent --config-file /etc/designate/designate.conf
|
||||
|
||||
files:
|
||||
designate-conf:
|
||||
path: /etc/designate/designate.conf
|
||||
content: designate.conf.j2
|
|
@ -0,0 +1,68 @@
|
|||
dsl_version: 0.5.0
|
||||
service:
|
||||
name: designate-api
|
||||
ports:
|
||||
- {{ designate.api_port }}
|
||||
containers:
|
||||
- name: designate-api
|
||||
image: designate-api
|
||||
pre:
|
||||
- name: designate-main-db-create
|
||||
dependencies:
|
||||
- {{ service.database }}
|
||||
type: single
|
||||
command:
|
||||
mysql -u root -p{{ db.root_password }} -h {{ address(service.database) }} -e "create database {{ designate.db.name.main_database }};
|
||||
grant all privileges on {{ designate.db.name.main_database }}.* to '{{ designate.db.username }}'@'%' identified by '{{ designate.db.password }}';"
|
||||
- name: designate-syncdb
|
||||
dependencies:
|
||||
- designate-main-db-create
|
||||
files:
|
||||
- designate-conf
|
||||
type: single
|
||||
command: designate-manage --config-file /etc/designate/designate.conf database sync
|
||||
- name: designate-user-create
|
||||
dependencies:
|
||||
- keystone-create-project
|
||||
type: single
|
||||
command: openstack user create --domain default --password {{ designate.password }} {{ designate.username }}
|
||||
- name: designate-admin-role-add
|
||||
dependencies:
|
||||
- designate-user-create
|
||||
type: single
|
||||
command: openstack role add --project service --user {{ designate.username }} admin
|
||||
- name: designate-service-create
|
||||
dependencies:
|
||||
- keystone-create-project
|
||||
type: single
|
||||
command: openstack service create --name designate --description "Designate Service" dns
|
||||
- name: designate-public-endpoint-create
|
||||
dependencies:
|
||||
- designate-service-create
|
||||
type: single
|
||||
command: openstack endpoint create --region RegionOne dns public {{ address('designate-api', designate.api_port, external=True, with_scheme=True) }}
|
||||
- name: designate-internal-endpoint-create
|
||||
dependencies:
|
||||
- designate-service-create
|
||||
type: single
|
||||
command: openstack endpoint create --region RegionOne dns internal {{ address('designate-api', designate.api_port, with_scheme=True) }}
|
||||
- name: designate-admin-endpoint-create
|
||||
dependencies:
|
||||
- designate-service-create
|
||||
type: single
|
||||
command: openstack endpoint create --region RegionOne dns admin {{ address('designate-api', designate.api_port, with_scheme=True) }}
|
||||
daemon:
|
||||
dependencies:
|
||||
- "{{ messaging.dependencies[messaging.backend.rpc] }}"
|
||||
files:
|
||||
- designate-conf
|
||||
- api-paste
|
||||
command: designate-api --config-file /etc/designate/designate.conf
|
||||
|
||||
files:
|
||||
designate-conf:
|
||||
path: /etc/designate/designate.conf
|
||||
content: designate.conf.j2
|
||||
api-paste:
|
||||
path: /etc/designate/api-paste.ini
|
||||
content: api-paste.ini.j2
|
|
@ -0,0 +1,17 @@
|
|||
dsl_version: 0.5.0
|
||||
service:
|
||||
name: designate-central
|
||||
containers:
|
||||
- name: designate-central
|
||||
image: designate-central
|
||||
daemon:
|
||||
dependencies:
|
||||
- designate-api
|
||||
files:
|
||||
- designate-conf
|
||||
command: designate-central --config-file /etc/designate/designate.conf
|
||||
|
||||
files:
|
||||
designate-conf:
|
||||
path: /etc/designate/designate.conf
|
||||
content: designate.conf.j2
|
|
@ -0,0 +1,17 @@
|
|||
dsl_version: 0.5.0
|
||||
service:
|
||||
name: designate-mdns
|
||||
containers:
|
||||
- name: designate-mdns
|
||||
image: designate-mdns
|
||||
daemon:
|
||||
dependencies:
|
||||
- designate-api
|
||||
files:
|
||||
- designate-conf
|
||||
command: designate-mdns --config-file /etc/designate/designate.conf
|
||||
|
||||
files:
|
||||
designate-conf:
|
||||
path: /etc/designate/designate.conf
|
||||
content: designate.conf.j2
|
|
@ -0,0 +1,32 @@
|
|||
dsl_version: 0.5.0
|
||||
service:
|
||||
name: designate-pool-manager
|
||||
containers:
|
||||
- name: designate-pool-manager
|
||||
image: designate-pool-manager
|
||||
pre:
|
||||
- name: designate-pool-manager-db-create
|
||||
dependencies:
|
||||
- {{ service.database }}
|
||||
type: single
|
||||
command:
|
||||
mysql -u root -p{{ db.root_password }} -h {{ address(service.database) }} -e "create database {{ designate.db.name.pool_manager }};
|
||||
grant all privileges on {{ designate.db.name.pool_manager }}.* to '{{ designate.db.username }}'@'%' identified by '{{ designate.db.password }}';"
|
||||
- name: designate-pool-sync
|
||||
dependencies:
|
||||
- designate-pool-manager-db-create
|
||||
files:
|
||||
- designate-conf
|
||||
type: single
|
||||
command: designate-manage --config-file /etc/designate/designate.conf pool-manager-cache sync
|
||||
daemon:
|
||||
dependencies:
|
||||
- designate-api
|
||||
files:
|
||||
- designate-conf
|
||||
command: designate-pool-manager --config-file /etc/designate/designate.conf
|
||||
|
||||
files:
|
||||
designate-conf:
|
||||
path: /etc/designate/designate.conf
|
||||
content: designate.conf.j2
|
|
@ -0,0 +1,17 @@
|
|||
dsl_version: 0.5.0
|
||||
service:
|
||||
name: designate-sink
|
||||
containers:
|
||||
- name: designate-sink
|
||||
image: designate-sink
|
||||
daemon:
|
||||
dependencies:
|
||||
- designate-api
|
||||
files:
|
||||
- designate-conf
|
||||
command: designate-sink --config-file /etc/designate/designate.conf
|
||||
|
||||
files:
|
||||
designate-conf:
|
||||
path: /etc/designate/designate.conf
|
||||
content: designate.conf.j2
|
|
@ -0,0 +1,17 @@
|
|||
dsl_version: 0.5.0
|
||||
service:
|
||||
name: designate-zone-manager
|
||||
containers:
|
||||
- name: designate-zone-manager
|
||||
image: designate-zone-manager
|
||||
daemon:
|
||||
dependencies:
|
||||
- designate-api
|
||||
files:
|
||||
- designate-conf
|
||||
command: designate-zone-manager --config-file /etc/designate/designate.conf
|
||||
|
||||
files:
|
||||
designate-conf:
|
||||
path: /etc/designate/designate.conf
|
||||
content: designate.conf.j2
|
|
@ -0,0 +1,66 @@
|
|||
[composite:osapi_dns]
|
||||
use = egg:Paste#urlmap
|
||||
/: osapi_dns_versions
|
||||
/v1: osapi_dns_v1
|
||||
/v2: osapi_dns_v2
|
||||
/admin: osapi_dns_admin
|
||||
|
||||
[pipeline:osapi_dns_versions]
|
||||
pipeline = maintenance faultwrapper ssl osapi_dns_app_versions
|
||||
|
||||
[app:osapi_dns_app_versions]
|
||||
paste.app_factory = designate.api.versions:factory
|
||||
|
||||
[composite:osapi_dns_v1]
|
||||
use = call:designate.api.middleware:auth_pipeline_factory
|
||||
noauth = request_id noauthcontext maintenance validation_API_v1 faultwrapper ssl normalizeuri osapi_dns_app_v1
|
||||
keystone = request_id authtoken keystonecontext maintenance validation_API_v1 faultwrapper ssl normalizeuri osapi_dns_app_v1
|
||||
|
||||
[app:osapi_dns_app_v1]
|
||||
paste.app_factory = designate.api.v1:factory
|
||||
|
||||
[composite:osapi_dns_v2]
|
||||
use = call:designate.api.middleware:auth_pipeline_factory
|
||||
noauth = request_id faultwrapper ssl validation_API_v2 noauthcontext maintenance normalizeuri osapi_dns_app_v2
|
||||
keystone = request_id faultwrapper ssl validation_API_v2 authtoken keystonecontext maintenance normalizeuri osapi_dns_app_v2
|
||||
|
||||
[app:osapi_dns_app_v2]
|
||||
paste.app_factory = designate.api.v2:factory
|
||||
|
||||
[composite:osapi_dns_admin]
|
||||
use = call:designate.api.middleware:auth_pipeline_factory
|
||||
noauth = request_id faultwrapper ssl noauthcontext maintenance normalizeuri osapi_dns_app_admin
|
||||
keystone = request_id faultwrapper ssl authtoken keystonecontext maintenance normalizeuri osapi_dns_app_admin
|
||||
|
||||
[app:osapi_dns_app_admin]
|
||||
paste.app_factory = designate.api.admin:factory
|
||||
|
||||
[filter:request_id]
|
||||
paste.filter_factory = oslo_middleware:RequestId.factory
|
||||
|
||||
[filter:noauthcontext]
|
||||
paste.filter_factory = designate.api.middleware:NoAuthContextMiddleware.factory
|
||||
|
||||
[filter:authtoken]
|
||||
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
|
||||
|
||||
[filter:keystonecontext]
|
||||
paste.filter_factory = designate.api.middleware:KeystoneContextMiddleware.factory
|
||||
|
||||
[filter:maintenance]
|
||||
paste.filter_factory = designate.api.middleware:MaintenanceMiddleware.factory
|
||||
|
||||
[filter:normalizeuri]
|
||||
paste.filter_factory = designate.api.middleware:NormalizeURIMiddleware.factory
|
||||
|
||||
[filter:faultwrapper]
|
||||
paste.filter_factory = designate.api.middleware:FaultWrapperMiddleware.factory
|
||||
|
||||
[filter:validation_API_v1]
|
||||
paste.filter_factory = designate.api.middleware:APIv1ValidationErrorMiddleware.factory
|
||||
|
||||
[filter:validation_API_v2]
|
||||
paste.filter_factory = designate.api.middleware:APIv2ValidationErrorMiddleware.factory
|
||||
|
||||
[filter:ssl]
|
||||
paste.filter_factory = designate.api.middleware:SSLMiddleware.factory
|
|
@ -0,0 +1,48 @@
|
|||
configs:
|
||||
designate:
|
||||
api_port:
|
||||
cont: 9001
|
||||
ingress: dns
|
||||
|
||||
debug: false
|
||||
notification:
|
||||
driver: noop
|
||||
topics:
|
||||
enabled: false
|
||||
names: changeme
|
||||
# options, allows to configure services particularly
|
||||
service:
|
||||
central:
|
||||
workers: 1
|
||||
threads: 1000
|
||||
api:
|
||||
workers: 1
|
||||
threads: 1000
|
||||
mdns:
|
||||
workers: 1
|
||||
threads: 1000
|
||||
agent:
|
||||
workers: 1
|
||||
zone_manager:
|
||||
workers: 1
|
||||
threads: 1000
|
||||
pool_manager:
|
||||
workers: 1
|
||||
threads: 1000
|
||||
domain_purge:
|
||||
interval: 3600
|
||||
batch_size: 100
|
||||
time_threshold: 604800 # 7 days
|
||||
username: designate
|
||||
password: password
|
||||
db:
|
||||
username: designate
|
||||
password: password
|
||||
name:
|
||||
pool_manager: designate_pool_manager
|
||||
main_database: designate
|
||||
|
||||
sources:
|
||||
openstack/designate:
|
||||
git_url: https://git.openstack.org/openstack/designate.git
|
||||
git_ref: stable/newton
|
|
@ -0,0 +1,143 @@
|
|||
########################
|
||||
## General Configuration
|
||||
########################
|
||||
|
||||
[DEFAULT]
|
||||
verbose = true
|
||||
debug = {{ designate.debug }}
|
||||
use_syslog = false
|
||||
use_stderr = true
|
||||
|
||||
notification_driver = {{ designate.notification.driver }}
|
||||
{% if designate.notification.topics.enabled %}
|
||||
notification_topics = {{ designate.notification.topics.names }}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{{ oslo_messaging[messaging.backend.rpc]('rpc_config') }}
|
||||
{{ oslo_messaging[messaging.backend.rpc]('notifications_config') }}
|
||||
|
||||
|
||||
#--------------------
|
||||
# Keystone Middleware
|
||||
#--------------------
|
||||
[keystone_authtoken]
|
||||
auth_uri = {{ address('keystone', keystone.public_port, with_scheme=True) }}
|
||||
auth_url = {{ address('keystone', keystone.admin_port, with_scheme=True) }}
|
||||
project_domain_name = Default
|
||||
project_name = service
|
||||
user_domain_name = Default
|
||||
auth_type = password
|
||||
username = {{ designate.username }}
|
||||
password = {{ designate.password }}
|
||||
memcached_servers = {{ address("memcached", memcached.port) }}
|
||||
|
||||
########################
|
||||
## Service Configuration
|
||||
########################
|
||||
#----------------
|
||||
# Central Service
|
||||
#----------------
|
||||
[service:central]
|
||||
workers = {{ designate.service.central.workers }}
|
||||
threads = {{ designate.service.central.threads }}
|
||||
|
||||
#------------
|
||||
# API Service
|
||||
#------------
|
||||
[service:api]
|
||||
workers = {{ designate.service.api.workers }}
|
||||
threads = {{ designate.service.api.threads }}
|
||||
api_base_uri = http://{{ network_topology["private"]["address"] }}:{{ designate.api_port.cont }}/
|
||||
api_host = {{ network_topology["private"]["address"] }}
|
||||
api_port = {{ designate.api_port.cont }}
|
||||
auth_strategy = keystone
|
||||
enable_api_v1 = True
|
||||
enabled_extensions_v1 = diagnostics, quotas, reports, sync, touch
|
||||
enable_api_v2 = True
|
||||
enabled_extensions_v2 = quotas, reports
|
||||
|
||||
#-------------
|
||||
# Sink Service
|
||||
#-------------
|
||||
[service:sink]
|
||||
enabled_notification_handlers = nova_fixed, neutron_floatingip
|
||||
|
||||
#-------------
|
||||
# mDNS Service
|
||||
#-------------
|
||||
[service:mdns]
|
||||
workers = {{ designate.service.mdns.workers }}
|
||||
threads = {{ designate.service.mdns.threads }}
|
||||
|
||||
#--------------
|
||||
# Agent Service
|
||||
#--------------
|
||||
[service:agent]
|
||||
workers = {{ designate.service.agent.workers }}
|
||||
|
||||
#---------------------
|
||||
# Zone Manager Service
|
||||
#---------------------
|
||||
[service:zone_manager]
|
||||
workers = {{ designate.service.zone_manager.workers }}
|
||||
threads = {{ designate.service.zone_manager.threads }}
|
||||
|
||||
#------------------------
|
||||
# Deleted domains purging
|
||||
#------------------------
|
||||
[zone_manager_task:domain_purge]
|
||||
interval = {{ designate.domain_purge.interval }}
|
||||
batch_size = {{ designate.domain_purge.batch_size }}
|
||||
time_threshold = {{ designate.domain_purge.threshold }}
|
||||
|
||||
#---------------------
|
||||
# Pool Manager Service
|
||||
#---------------------
|
||||
[service:pool_manager]
|
||||
workers = {{ designate.service.pool_manager.workers }}
|
||||
threads = {{ designate.service.pool_manager.threads }}
|
||||
{% if designate.pool is defined %}
|
||||
pool_id = {{ designate.pool.pool_id }}
|
||||
{%- endif %}
|
||||
|
||||
###################################
|
||||
## Pool Manager Cache Configuration
|
||||
###################################
|
||||
#------------------------------
|
||||
# SQLAlchemy Pool Manager Cache
|
||||
#------------------------------
|
||||
[pool_manager_cache:sqlalchemy]
|
||||
connection = mysql+pymysql://{{ designate.db.username }}:{{ designate.db.password }}@{{ address(service.database) }}/{{ designate.db.name.pool_manager }}
|
||||
|
||||
########################
|
||||
## Storage Configuration
|
||||
########################
|
||||
#-------------------
|
||||
# SQLAlchemy Storage
|
||||
#-------------------
|
||||
[storage:sqlalchemy]
|
||||
connection = mysql+pymysql://{{ designate.db.username }}:{{ designate.db.password }}@{{ address(service.database) }}/{{ designate.db.name.main_database }}
|
||||
|
||||
########################
|
||||
## Handler Configuration
|
||||
########################
|
||||
#-------------------
|
||||
# Nova Fixed Handler
|
||||
#-------------------
|
||||
[handler:nova_fixed]
|
||||
domain_id = default
|
||||
notification_topics = notifications
|
||||
control_exchange = 'neutron'
|
||||
format = '%(hostname)s.%(domain)s'
|
||||
|
||||
#-------------------------
|
||||
# Neutron Floating Handler
|
||||
#-------------------------
|
||||
[handler:neutron_floatingip]
|
||||
domain_id = default
|
||||
notification_topics = notifications
|
||||
control_exchange = 'neutron'
|
||||
format = '%(hostname)s.%(domain)s'
|
||||
|
||||
|
Loading…
Reference in New Issue