summaryrefslogtreecommitdiffstats
path: root/mcp/salt-formulas/salt-formula-opendaylight/opendaylight/server.sls
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-opendaylight/opendaylight/server.sls
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-opendaylight/opendaylight/server.sls')
-rw-r--r--mcp/salt-formulas/salt-formula-opendaylight/opendaylight/server.sls113
1 files changed, 113 insertions, 0 deletions
diff --git a/mcp/salt-formulas/salt-formula-opendaylight/opendaylight/server.sls b/mcp/salt-formulas/salt-formula-opendaylight/opendaylight/server.sls
new file mode 100644
index 000000000..206dc52a2
--- /dev/null
+++ b/mcp/salt-formulas/salt-formula-opendaylight/opendaylight/server.sls
@@ -0,0 +1,113 @@
+##############################################################################
+# Copyright (c) 2017 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 "opendaylight/map.jinja" import server with context %}
+{% from "linux/map.jinja" import system with context %}
+
+{%- if server.enabled %}
+
+opendaylight_repo_key:
+ cmd.run:
+ - name: "apt-key adv --keyserver keyserver.ubuntu.com --recv 44C05248"
+{%- if system.proxy is defined and system.proxy.pkg is defined %}
+ - env:
+{%- if system.proxy.pkg.http is defined %}
+ - http_proxy: {{ system.proxy.pkg.http }}
+{%- endif %}
+{%- if system.proxy.pkg.https is defined %}
+ - https_proxy: {{ system.proxy.pkg.https }}
+{%- endif %}
+{%- endif %}
+
+opendaylight_repo:
+ pkgrepo.managed:
+ # NOTE(armband): PPA handling behind proxy broken, define it explicitly
+ # https://github.com/saltstack/salt/pull/45224
+ # - ppa: {{ server.repo }}
+ - human_name: opendaylight-ppa
+ - name: deb http://ppa.launchpad.net/odl-team/{{ server.version }}/ubuntu xenial main
+ - file: /etc/apt/sources.list.d/odl-team-ubuntu-{{ server.version }}-xenial.list
+
+{%- if grains['saltversioninfo'] < [2017, 7] %}
+service.mask:
+ module.run:
+ - m_name: opendaylight
+{%- else %}
+opendaylight_service_mask:
+ service.masked:
+ - name: opendaylight
+{%- endif %}
+
+opendaylight:
+ pkg.installed:
+ - require:
+ - pkgrepo: opendaylight_repo
+ - require_in:
+ - file: /opt/opendaylight/etc/jetty.xml
+ - file: /opt/opendaylight/bin/setenv
+ - ini: /opt/opendaylight/etc/org.apache.karaf.features.cfg
+ - ini: /opt/opendaylight/etc/org.ops4j.pax.web.cfg
+ service.running:
+ - enable: true
+{%- if grains['saltversioninfo'] >= [2017, 7] %}
+ - unmask: true
+{%- endif %}
+ - watch:
+ - file: /opt/opendaylight/etc/jetty.xml
+ - file: /opt/opendaylight/bin/setenv
+ - ini: /opt/opendaylight/etc/org.apache.karaf.features.cfg
+ - ini: /opt/opendaylight/etc/org.ops4j.pax.web.cfg
+
+/opt/opendaylight/etc/jetty.xml:
+ file.managed:
+ - source: salt://opendaylight/files/jetty.xml
+ - template: jinja
+ - user: odl
+ - group: odl
+
+/opt/opendaylight/bin/setenv:
+ file.managed:
+ - source: salt://opendaylight/files/setenv.shell
+ - mode: 0755
+ - use:
+ - file: /opt/opendaylight/etc/jetty.xml
+
+{% set features %}
+{%- for f in server.karaf_features.itervalues() -%}
+{{ f | join(',') }}{%- if not loop.last %},{%- endif %}
+{%- endfor %}
+{% endset %}
+
+/opt/opendaylight/etc/org.apache.karaf.features.cfg:
+ ini.options_present:
+ - sections:
+ featuresBoot: {{ features }}
+
+/opt/opendaylight/etc/org.ops4j.pax.web.cfg:
+ ini.options_present:
+ - sections:
+ org.ops4j.pax.web.listening.addresses: {{ server.odl_bind_ip }}
+ org.osgi.service.http.port: {{ server.odl_rest_port }}
+
+{%- if server.get('router_enabled', false) %}
+/opt/opendaylight/etc/custom.properties:
+ ini.options_present:
+ - sections:
+ ovsdb.l3.fwd.enabled: 'yes'
+ ovsdb.of.version: 1.3
+ - require:
+ - pkg: opendaylight
+ - watch_in:
+ - service: opendaylight
+{%- endif %}
+
+{%- if grains['cpuarch'] == 'aarch64' %}
+opendaylight-leveldbjni:
+ pkg.installed
+{%- endif %}
+
+{%- endif %}