aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mcp/metadata/service/tacker/server/single.yml34
-rw-r--r--mcp/salt-formulas/tacker/files/tacker.conf45
-rw-r--r--mcp/salt-formulas/tacker/files/tacker.systemd20
-rw-r--r--mcp/salt-formulas/tacker/init.sls11
-rw-r--r--mcp/salt-formulas/tacker/map.jinja21
-rw-r--r--mcp/salt-formulas/tacker/server.sls56
6 files changed, 187 insertions, 0 deletions
diff --git a/mcp/metadata/service/tacker/server/single.yml b/mcp/metadata/service/tacker/server/single.yml
new file mode 100644
index 000000000..597d9f8fb
--- /dev/null
+++ b/mcp/metadata/service/tacker/server/single.yml
@@ -0,0 +1,34 @@
+##############################################################################
+# Copyright (c) 2018 Mirantis Inc. and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+classes:
+ - service.git.client
+parameters:
+ _param:
+ keystone_tacker_endpoint_type: internalURL
+ tacker:
+ server:
+ bind_host: ${_param:cluster_local_address}
+ enabled: true
+ branch: stable/queens
+ database:
+ engine: mysql
+ host: ${_param:single_address}
+ port: 3306
+ name: tacker
+ user: tacker
+ password: ${_param:mysql_tacker_password}
+ identity:
+ engine: keystone
+ region: RegionOne
+ host: ${_param:single_address}
+ port: 35357
+ user: tacker
+ password: ${_param:keystone_tacker_password}
+ tenant: service
+ endpoint_type: ${_param:keystone_tacker_endpoint_type}
diff --git a/mcp/salt-formulas/tacker/files/tacker.conf b/mcp/salt-formulas/tacker/files/tacker.conf
new file mode 100644
index 000000000..7adfd3139
--- /dev/null
+++ b/mcp/salt-formulas/tacker/files/tacker.conf
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2018 Mirantis Inc. and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+{%- from "tacker/map.jinja" import server with context %}
+
+[DEFAULT]
+auth_strategy = keystone
+policy_file = /usr/local/etc/tacker/policy.json
+debug = True
+use_syslog = False
+bind_host = {{ server.bind_host }}
+bind_port = 9890
+service_plugins = nfvo,vnfm
+
+state_path = /var/lib/tacker
+
+[nfvo_vim]
+vim_drivers = openstack
+
+[keystone_authtoken]
+region_name = {{ server.identity.region }}
+auth_type = password
+user_domain_id = {{ server.identity.get('domain', 'default') }}
+project_domain_id = {{ server.identity.get('domain', 'default') }}
+project_name = {{ server.identity.tenant }}
+username = {{ server.identity.user }}
+password = {{ server.identity.password }}
+auth_url = http://{{ server.identity.host }}:35357
+www_authenticate_uri = http://{{ server.identity.host }}:5000
+{%- if server.cache is defined %}
+memcached_servers={%- for member in server.cache.members %}{{ member.host }}:11211{% if not loop.last %},{% endif %}{%- endfor %}
+{%- endif %}
+
+[agent]
+root_helper = sudo /usr/local/bin/tacker-rootwrap /usr/local/etc/tacker/rootwrap.conf
+
+[database]
+connection = {{ server.database.engine }}+pymysql://{{ server.database.user }}:{{ server.database.password }}@{{ server.database.host }}/{{ server.database.name }}?charset=utf8
+
+[tacker]
+monitor_driver = ping,http_ping
diff --git a/mcp/salt-formulas/tacker/files/tacker.systemd b/mcp/salt-formulas/tacker/files/tacker.systemd
new file mode 100644
index 000000000..12ff5cdde
--- /dev/null
+++ b/mcp/salt-formulas/tacker/files/tacker.systemd
@@ -0,0 +1,20 @@
+##############################################################################
+# Copyright (c) 2018 Mirantis Inc. and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+[Unit]
+Description = OpenStack Tacker service
+
+[Service]
+ExecReload = /bin/kill -HUP $MAINPID
+TimeoutStopSec = 300
+KillMode = process
+WorkingDirectory = /tmp
+ExecStartPre=/bin/mkdir -p /var/log/tacker
+ExecStart=/usr/local/bin/tacker-server --config-file /usr/local/etc/tacker/tacker.conf --log-file /var/log/tacker/tacker.log
+
+[Install]
+WantedBy = multi-user.target
diff --git a/mcp/salt-formulas/tacker/init.sls b/mcp/salt-formulas/tacker/init.sls
new file mode 100644
index 000000000..35291b8f9
--- /dev/null
+++ b/mcp/salt-formulas/tacker/init.sls
@@ -0,0 +1,11 @@
+##############################################################################
+# Copyright (c) 2018 Mirantis Inc. and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+include:
+{%- if pillar.tacker.server is defined %}
+- tacker.server
+{%- endif %}
diff --git a/mcp/salt-formulas/tacker/map.jinja b/mcp/salt-formulas/tacker/map.jinja
new file mode 100644
index 000000000..9a35c8e52
--- /dev/null
+++ b/mcp/salt-formulas/tacker/map.jinja
@@ -0,0 +1,21 @@
+{#-
+ Copyright (c) 2018 Mirantis Inc. and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Apache License, Version 2.0
+ which accompanies this distribution, and is available at
+ http://www.apache.org/licenses/LICENSE-2.0
+-#}
+{% set server = salt['grains.filter_by']({
+ 'Debian': {
+ 'pkgs': ['python-heat-translator', 'python-tosca-parser', 'python-tackerclient'],
+ 'bind_host': '0.0.0.0',
+ 'git': {
+ 'source': 'https://github.com/openstack/tacker',
+ 'target': '/tmp/tacker',
+ 'branch': 'master',
+ },
+ },
+ 'RedHat': {
+ 'pkgs': 'openstack-tacker'
+ },
+}, merge=salt['pillar.get']('tacker:server')) %}
diff --git a/mcp/salt-formulas/tacker/server.sls b/mcp/salt-formulas/tacker/server.sls
new file mode 100644
index 000000000..eb3468a11
--- /dev/null
+++ b/mcp/salt-formulas/tacker/server.sls
@@ -0,0 +1,56 @@
+##############################################################################
+# Copyright (c) 2018 Mirantis Inc. and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+{%- from "tacker/map.jinja" import server with context %}
+{%- if server.enabled %}
+
+include:
+- git
+
+{{ server.git.source }}:
+ git.latest:
+ - target: {{ server.git.target }}
+ - rev: {{ server.git.branch }}
+ - depth: 1
+
+tacker_packages:
+ pkg.installed:
+ - names: {{ server.pkgs }}
+
+tacker_install:
+ cmd.run:
+ - name: python setup.py install
+ - cwd: {{ server.git.target }}
+ - creates: /usr/local/bin/tacker-server
+ - require:
+ - git: {{ server.git.source }}
+
+/usr/local/etc/tacker/tacker.conf:
+ file.managed:
+ - source: salt://tacker/files/tacker.conf
+ - template: jinja
+ - makedirs: true
+ - require:
+ - cmd: tacker_install
+
+tacker_db_manage:
+ cmd.run:
+ - name: /usr/local/bin/tacker-db-manage --config-file /usr/local/etc/tacker/tacker.conf upgrade head
+ - require:
+ - file: /usr/local/etc/tacker/tacker.conf
+
+/lib/systemd/system/tacker.service:
+ file.managed:
+ - source: salt://tacker/files/tacker.systemd
+
+tacker:
+ service.running:
+ - enable: true
+ - watch:
+ - file: /usr/local/etc/tacker/tacker.conf
+
+{%- endif %}