summaryrefslogtreecommitdiffstats
path: root/mcp/salt-formulas/salt-formula-tacker
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2018-08-18 03:46:13 +0200
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2018-08-29 01:27:28 +0200
commitab18375a629010525ac15bc11ce2d4e4cf393fe9 (patch)
tree38dc93fe27b88db9ebe489e4c685b06e4b80561e /mcp/salt-formulas/salt-formula-tacker
parentcfa1c0d67ee23edcbc25d9620754159645981dd8 (diff)
[docker] Switch to containerized Salt Master
* Refactor OPNFV salt-formulas mechanism to resemble upstream git structure: - git submodules: add new submodule for each formula we patch; - create salt-formula-x directories for OPNFV formulas; - move mcp/metadata/service contents to their each formula subdir; - use `make patches-import` for patches previously handled by patch.sh; - retire patch.sh * states: add virtual_init: - mostly based on old salt.sh, which is now obsolete; - exclude salt-master service restart (it would kill the container); * scenarios: cleanup (rm cfg01 virtual node def), adopt virtual_init; * reclass: align our model with prebuilt container's Salt config: - drop linux:network pillar data (handled by Docker); - stop applying linux.system state on cfg01; - align salt user homedir; - drop salt-formula packages (preprovisioned); * minor plumbing in deploy.sh and lib.sh; JIRA: FUEL-383 Change-Id: I28708a9b399d3f19012212c71966ebda9d6fc0ac Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Diffstat (limited to 'mcp/salt-formulas/salt-formula-tacker')
-rw-r--r--mcp/salt-formulas/salt-formula-tacker/metadata/service/server/single.yml34
-rw-r--r--mcp/salt-formulas/salt-formula-tacker/tacker/files/tacker.conf45
-rw-r--r--mcp/salt-formulas/salt-formula-tacker/tacker/files/tacker.systemd20
-rw-r--r--mcp/salt-formulas/salt-formula-tacker/tacker/init.sls11
-rw-r--r--mcp/salt-formulas/salt-formula-tacker/tacker/map.jinja21
-rw-r--r--mcp/salt-formulas/salt-formula-tacker/tacker/server.sls56
6 files changed, 187 insertions, 0 deletions
diff --git a/mcp/salt-formulas/salt-formula-tacker/metadata/service/server/single.yml b/mcp/salt-formulas/salt-formula-tacker/metadata/service/server/single.yml
new file mode 100644
index 000000000..597d9f8fb
--- /dev/null
+++ b/mcp/salt-formulas/salt-formula-tacker/metadata/service/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/salt-formula-tacker/tacker/files/tacker.conf b/mcp/salt-formulas/salt-formula-tacker/tacker/files/tacker.conf
new file mode 100644
index 000000000..7adfd3139
--- /dev/null
+++ b/mcp/salt-formulas/salt-formula-tacker/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/salt-formula-tacker/tacker/files/tacker.systemd b/mcp/salt-formulas/salt-formula-tacker/tacker/files/tacker.systemd
new file mode 100644
index 000000000..12ff5cdde
--- /dev/null
+++ b/mcp/salt-formulas/salt-formula-tacker/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/salt-formula-tacker/tacker/init.sls b/mcp/salt-formulas/salt-formula-tacker/tacker/init.sls
new file mode 100644
index 000000000..35291b8f9
--- /dev/null
+++ b/mcp/salt-formulas/salt-formula-tacker/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/salt-formula-tacker/tacker/map.jinja b/mcp/salt-formulas/salt-formula-tacker/tacker/map.jinja
new file mode 100644
index 000000000..9a35c8e52
--- /dev/null
+++ b/mcp/salt-formulas/salt-formula-tacker/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/salt-formula-tacker/tacker/server.sls b/mcp/salt-formulas/salt-formula-tacker/tacker/server.sls
new file mode 100644
index 000000000..eb3468a11
--- /dev/null
+++ b/mcp/salt-formulas/salt-formula-tacker/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 %}