Bring in Tacker salt formula 43/58143/4
authorMichael Polenchuk <mpolenchuk@mirantis.com>
Fri, 1 Jun 2018 10:24:35 +0000 (14:24 +0400)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Fri, 8 Jun 2018 13:30:42 +0000 (15:30 +0200)
Install tacker from git repository since there is no ubuntu package yet.

Change-Id: Ibe4b6486050213df1a545c5c79c43a635bbf6c08
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
mcp/metadata/service/tacker/server/single.yml [new file with mode: 0644]
mcp/salt-formulas/tacker/files/tacker.conf [new file with mode: 0644]
mcp/salt-formulas/tacker/files/tacker.systemd [new file with mode: 0644]
mcp/salt-formulas/tacker/init.sls [new file with mode: 0644]
mcp/salt-formulas/tacker/map.jinja [new file with mode: 0644]
mcp/salt-formulas/tacker/server.sls [new file with mode: 0644]

diff --git a/mcp/metadata/service/tacker/server/single.yml b/mcp/metadata/service/tacker/server/single.yml
new file mode 100644 (file)
index 0000000..597d9f8
--- /dev/null
@@ -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 (file)
index 0000000..7adfd31
--- /dev/null
@@ -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 (file)
index 0000000..12ff5cd
--- /dev/null
@@ -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 (file)
index 0000000..35291b8
--- /dev/null
@@ -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 (file)
index 0000000..9a35c8e
--- /dev/null
@@ -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 (file)
index 0000000..eb3468a
--- /dev/null
@@ -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 %}