diff options
author | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2018-08-18 03:46:13 +0200 |
---|---|---|
committer | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2018-08-29 01:27:28 +0200 |
commit | ab18375a629010525ac15bc11ce2d4e4cf393fe9 (patch) | |
tree | 38dc93fe27b88db9ebe489e4c685b06e4b80561e /mcp/salt-formulas/salt-formula-tacker | |
parent | cfa1c0d67ee23edcbc25d9620754159645981dd8 (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')
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 %} |