Merge "Add Salt 2018.3 tests"
diff --git a/README.rst b/README.rst
index 5612133..ba0d7b4 100644
--- a/README.rst
+++ b/README.rst
@@ -129,6 +129,11 @@
members:
- host: 127.0.0.1
port: 9160
+ message_queue:
+ members:
+ - host: 127.0.0.1
+ - host: 127.0.0.1
+ - host: 127.0.0.1
database:
version: 2.2
cassandra:
@@ -286,6 +291,11 @@
port: 9160
- host: 127.0.0.1
port: 9160
+ message_queue:
+ members:
+ - host: 127.0.0.1
+ - host: 127.0.0.1
+ - host: 127.0.0.1
database:
version: 2.2
cassandra:
@@ -518,6 +528,11 @@
port: 9160
- host: 127.0.0.1
port: 9160
+ message_queue:
+ members:
+ - host: 127.0.0.1
+ - host: 127.0.0.1
+ - host: 127.0.0.1
database:
version: 2.2
cassandra:
@@ -880,6 +895,17 @@
pci: 0000:81:00.1
...
+Increase number of contrail-api workers
+---------------------------------------
+
+.. code-block:: yaml
+
+ opencontrail:
+ ...
+ config:
+ api_workers: 3
+ ...
+
Increase number of alarm-gen workers
------------------------------------
@@ -1098,7 +1124,7 @@
vip: -1
Enforcing physical routers
-h
+
.. code-block:: yaml
opencontrail:
@@ -1257,6 +1283,39 @@
- 8.8.4.4
....
+Contrail IF-MAP server configuration
+------------------------------------
+
+Contrail 3.2 contains internal IF-MAP server implementation. This implementation can be enabled
+by setting ``config:ifmap:engine`` to internal. Currently supported engines are ``internal`` and
+``irond`` (default). The ``internal`` will configure contrail-api to run as a IF-MAP server in the
+same process as contrail-api and will generate security certificates in specified folder.
+
+.. code-block:: yaml
+
+ config:
+ ....
+ ifmap:
+ engine: internal
+ cert_dir: /etc/contrail/ssl/certs/ # default
+ basename_cert: ifmap.crt # default
+ basename_key: ifmap.key # default
+ ....
+
+To set static configuration of the IF-MAP server for contrail-control instead of using
+discovery service, you can use ``control:ifmap:bind:host`` and ``port``. The static configuration
+is triggered by existence of non-empty value of ``control:ifmap:bind`` key.
+
+.. code-block:: yaml
+ control:
+ ....
+ ifmap
+ bind:
+ host: 127.0.0.1
+ port: 8443
+ ....
+
+
Usage
=====
diff --git a/opencontrail/common.sls b/opencontrail/common.sls
index b3ae6a7..e2f6608 100644
--- a/opencontrail/common.sls
+++ b/opencontrail/common.sls
@@ -42,9 +42,14 @@
sysctl.present:
- value: 1
+{% if salt['pkg.version_cmp'](grains['kernelrelease'], '4.12') < 0 %}
+# This param is missing from kernel version 4.12
+# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4396e46187ca5070219b81773c4e65088dac50cc
+# TODO: Remove this for Ubuntu Bionic (4.15 is the default kernel)
net.ipv4.tcp_tw_recycle:
sysctl.present:
- value: 1
+{% endif %}
net.ipv4.tcp_tw_reuse:
sysctl.present:
diff --git a/opencontrail/config.sls b/opencontrail/config.sls
index ea996df..d580a1e 100644
--- a/opencontrail/config.sls
+++ b/opencontrail/config.sls
@@ -61,6 +61,29 @@
- require:
- pkg: opencontrail_config_packages
+{% set ifmap = config.get('ifmap', {}) %}
+{% if ifmap.get('engine', 'irond') != 'irond' %}
+irond_stop_and_disable:
+ service.dead:
+ - name: ifmap-server
+ - enable: False
+ - watch_in:
+ - service: opencontrail_config_services
+
+{% if ifmap.get('engine', 'irond') == 'internal' %}
+internal_ifmap_ssl_dir:
+ file.directory:
+ - name: {{ ifmap.get('cert_dir', '/etc/contrail/ssl/certs/') }}
+ - makedirs: True
+ - dir_mode: 750
+ - require:
+ - pkg: opencontrail_config_packages
+ - watch_in:
+ - service: opencontrail_config_services
+{% endif %}
+
+{% endif %}
+
{%- if grains.get('init') != 'systemd' %}
/etc/contrail/supervisord_config_files/contrail-discovery.ini:
@@ -91,8 +114,13 @@
/etc/contrail/supervisord_config_files/contrail-api.ini:
file.managed:
- - source: salt://opencontrail/files/{{ config.version }}/config/contrail-api.ini
+ - source: salt://opencontrail/files/{{ config.version }}/contrail-api.ini
+ - template: jinja
- makedirs: true
+{%- if config.get('config_only', False) %}
+ - watch_in:
+ - service: opencontrail_config_services
+{%- endif %}
/etc/init.d/contrail-api:
file.managed:
diff --git a/opencontrail/control.sls b/opencontrail/control.sls
index 988eb0c..3727517 100644
--- a/opencontrail/control.sls
+++ b/opencontrail/control.sls
@@ -64,6 +64,13 @@
- source: salt://opencontrail/files/{{ control.version }}/control/contrail-rndc.conf
- makedirs: True
+{%- if control.version >= 4.0 %}
+/etc/contrail/contrail-issu.conf:
+ file.managed:
+ - source: salt://opencontrail/files/{{ control.version }}/contrail-issu.conf
+ - template: jinja
+{%- endif %}
+
{%- if control.version == 3.0 and control.get('dns', {}).get('forwarders', False) %}
contrail_control_resolv:
file.managed:
diff --git a/opencontrail/files/2.2/config/contrail-api.ini b/opencontrail/files/2.2/contrail-api.ini
similarity index 86%
rename from opencontrail/files/2.2/config/contrail-api.ini
rename to opencontrail/files/2.2/contrail-api.ini
index 673529c..fd05496 100644
--- a/opencontrail/files/2.2/config/contrail-api.ini
+++ b/opencontrail/files/2.2/contrail-api.ini
@@ -1,4 +1,4 @@
-
+{%- from "opencontrail/map.jinja" import config with context -%}
[program:contrail-api]
command=/usr/bin/contrail-api --conf_file /etc/contrail/contrail-api.conf --conf_file /etc/contrail/contrail-keystone-auth.conf --worker_id %(process_num)s
numprocs=1
diff --git a/opencontrail/files/3.0/basicauthusers.properties b/opencontrail/files/3.0/basicauthusers.properties
index 33fb3ca..66cb6e6 100644
--- a/opencontrail/files/3.0/basicauthusers.properties
+++ b/opencontrail/files/3.0/basicauthusers.properties
@@ -40,7 +40,7 @@
#10.0.102.33:10.0.102.33
#10.0.102.33.dns:10.0.102.33.dns
{%- if config.ifmap is defined %}
-{%- for member in config.ifmap.members %}
+{%- for member in config.ifmap.get('members', []) %}
{{ member.user }}:{{ member.password }}
{{ member.user }}.dns:{{ member.password }}.dns
{%- endfor %}
diff --git a/opencontrail/files/3.0/config/contrail-api.ini b/opencontrail/files/3.0/config/contrail-api.ini
deleted file mode 100644
index 673529c..0000000
--- a/opencontrail/files/3.0/config/contrail-api.ini
+++ /dev/null
@@ -1,14 +0,0 @@
-
-[program:contrail-api]
-command=/usr/bin/contrail-api --conf_file /etc/contrail/contrail-api.conf --conf_file /etc/contrail/contrail-keystone-auth.conf --worker_id %(process_num)s
-numprocs=1
-process_name=%(process_num)s
-redirect_stderr=true
-stdout_logfile= /var/log/contrail/contrail-api-%(process_num)s-stdout.log
-stderr_logfile=/dev/null
-priority=440
-autostart=true
-killasgroup=true
-stopsignal=KILL
-exitcodes=0
-
diff --git a/opencontrail/files/3.0/contrail-alarm-gen.conf b/opencontrail/files/3.0/contrail-alarm-gen.conf
index 1da7577..6ebc244 100644
--- a/opencontrail/files/3.0/contrail-alarm-gen.conf
+++ b/opencontrail/files/3.0/contrail-alarm-gen.conf
@@ -1,4 +1,4 @@
-{%- from "opencontrail/map.jinja" import collector with context %}
+{%- from "opencontrail/map.jinja" import collector,common with context %}
[DEFAULTS]
host_ip = {{ collector.bind.address }}
#collectors = 127.0.0.1:8086
@@ -12,10 +12,31 @@
log_file = /var/log/contrail/contrail-alarm-gen.log
kafka_broker_list = {% for member in collector.database.members %}{{ member.host }}:9092 {% endfor %}
zk_list = {% for member in collector.database.members %}{{ member.host }}:2181{% if not loop.last %},{% endif %}{% endfor %}
+{%- if collector.message_queue.members is defined %}
+rabbitmq_server_list={{ collector.message_queue.members|join(',',attribute='host') }}
+rabbitmq_ha_mode=True
+{%- else %}
+rabbitmq_server_list={{ collector.message_queue.host }}
+{%- endif %}
+rabbitmq_port={{ collector.get('message_queue', {}).get('port', 5672) }}
[DISCOVERY]
disc_server_ip = {{ collector.discovery.host }}
disc_server_port = 5998
+[API_SERVER]
+api_server_list={{ collector.discovery.host }}:8082
+api_server_use_ssl=False
+
+{%- if common.identity.engine == "keystone" and not common.get('k8s_enabled', False) %}
+[KEYSTONE]
+auth_host={{ common.identity.host }}
+auth_protocol=http
+auth_port={{ common.identity.port }}
+admin_user={{ common.identity.get('user', "admin") }}
+admin_password={{ common.identity.password }}
+admin_tenant_name={{ common.identity.get('tenant', "admin") }}
+{%- endif %}
+
[REDIS]
#redis_server_port=6379
diff --git a/opencontrail/files/3.0/contrail-api.conf b/opencontrail/files/3.0/contrail-api.conf
index 0e2e097..9664de1 100644
--- a/opencontrail/files/3.0/contrail-api.conf
+++ b/opencontrail/files/3.0/contrail-api.conf
@@ -1,9 +1,12 @@
{%- from "opencontrail/map.jinja" import config with context %}
+{%- set ifmap = config.get('ifmap', {}) -%}
[DEFAULTS]
ifmap_server_ip={{ config.bind.address }}
ifmap_server_port=8443
+{% if ifmap.get('engine', 'irond') != 'internal' -%}
ifmap_username=api-server
ifmap_password=api-server
+{% endif -%}
cassandra_server_list={% for member in config.database.members %}{{ member.host }}:9160 {% endfor %}
listen_ip_addr=0.0.0.0
listen_port={{ config.bind.get('api_port', '8082') }}
@@ -94,6 +97,14 @@
{%- endif %}
{%- endif %}
+{% if ifmap.get('engine', 'irond') == 'internal' %}
+[IFMAP_SERVER]
+ifmap_listen_ip={{ ifmap.get('bind', {}).get('host', '0.0.0.0') }}
+ifmap_listen_port={{ ifmap.get('bind', {}).get('port', 8443) }}
+ifmap_credentials=test:test test2:test2 test3:test3 api-server:api-server schema-transformer:schema-transformer svc-monitor:svc-monitor control-user:control-user-passwd control-node-0:control-node-0 control-node-1:control-node-1 control-node-2:control-node-2 control-node-3:control-node-3 control-node-4:control-node-4 control-node-5:control-node-5 control-node-6:control-node-6 control-node-7:control-node-7 control-node-8:control-node-8 control-node-9:control-node-9 control-node-10:control-node-10 control-node-1.dns:control-node-1.dns control-node-2.dns:control-node-2.dns control-node-3.dns:control-node-3.dns control-node-4.dns:control-node-4.dns control-node-5.dns:control-node-5.dns dhcp:dhcp visual:visual sensor:sensor mapclient:mapclient helper:mapclient reader:reader {% for member in ifmap.get('members', []) %}{{ member.user }}:{{ member.password }} {{ member.user }}.dns:{{ member.password }}.dns {% endfor %}
+ifmap_key_path={{ ifmap.get('cert_dir', '/etc/contrail/ssl/certs/') }}{{ ifmap.get('basename_key', 'ifmap.key') }}
+ifmap_cert_path={{ ifmap.get('cert_dir', '/etc/contrail/ssl/certs/') }}{{ ifmap.get('basename_crt', 'ifmap.crt') }}
+{%- endif %}
+
[KEYSTONE]
keystone_sync_on_demand={{ config.identity.get('sync_on_demand', 'true') }}
-
diff --git a/opencontrail/files/3.0/contrail-api.ini b/opencontrail/files/3.0/contrail-api.ini
new file mode 100644
index 0000000..4caaeb3
--- /dev/null
+++ b/opencontrail/files/3.0/contrail-api.ini
@@ -0,0 +1,19 @@
+{%- from "opencontrail/map.jinja" import config with context -%}
+[program:contrail-api]
+{%- if config.get('api_workers', 1) < 2 %}
+command=/usr/bin/contrail-api --conf_file /etc/contrail/contrail-api.conf --conf_file /etc/contrail/contrail-keystone-auth.conf --worker_id %(process_num)s
+numprocs=1
+{%- else %}
+command=/usr/bin/contrail-api --conf_file /etc/contrail/contrail-api.conf --conf_file /etc/contrail/contrail-keystone-auth.conf --worker_id %(process_num)s --listen_port 910%(process_num)s --admin_port 819%(process_num)s --http_server_port 828%(process_num)s --log_file /var/log/contrail/contrail-api-%(process_num)s.log
+numprocs={{ config.api_workers }}
+{%- endif %}
+process_name=%(process_num)s
+redirect_stderr=true
+stdout_logfile= /var/log/contrail/contrail-api-%(process_num)s-stdout.log
+stderr_logfile=/dev/null
+priority=440
+autostart=true
+killasgroup=true
+stopsignal=KILL
+exitcodes=0
+
diff --git a/opencontrail/files/3.0/contrail-control.conf b/opencontrail/files/3.0/contrail-control.conf
index 58154c1..ef85dc4 100644
--- a/opencontrail/files/3.0/contrail-control.conf
+++ b/opencontrail/files/3.0/contrail-control.conf
@@ -43,4 +43,6 @@
# server_url= # Provided by discovery server, e.g. https://127.0.0.1:8443
{%- if grains.get('virtual_subtype', None) == "Docker" %}
server_url=https://{{ control.discovery.host }}:8443
+{%- elif control.get('ifmap', {}).get('bind') %}
+ server_url=https://{{ control.ifmap.bind.get('host', '127.0.0.1') }}:{{ control.ifmap.bind.get('port', 8443) }}
{%- endif %}
diff --git a/opencontrail/files/4.0/config.global.js b/opencontrail/files/4.0/config.global.js
index dcbd92f..47b1dfc 100644
--- a/opencontrail/files/4.0/config.global.js
+++ b/opencontrail/files/4.0/config.global.js
@@ -73,7 +73,10 @@
*
****************************************************************************/
config.regions = {};
+
+{%- if web.identity.engine != "none" %}
config.regions.RegionOne = 'http://{{ web.identity.host }}:5000/v{{ web.identity.version }}';
+{%- endif %}
/****************************************************************************
* This boolean flag indicates if serviceEndPointFromConfig is set as false,
@@ -281,10 +284,10 @@
config.insecure_access = false;
// HTTP port for NodeJS Server.
-config.http_port = '8080';
+config.http_port = '{{ web.get("http",{}).get("port","8080") }}';
// HTTPS port for NodeJS Server.
-config.https_port = '8143';
+config.https_port = '{{ web.get("https",{}).get("port","8143") }}';
// Activate/Deactivate Login.
config.require_auth = false;
diff --git a/opencontrail/files/4.0/config/contrail-api.ini b/opencontrail/files/4.0/config/contrail-api.ini
deleted file mode 100644
index 673529c..0000000
--- a/opencontrail/files/4.0/config/contrail-api.ini
+++ /dev/null
@@ -1,14 +0,0 @@
-
-[program:contrail-api]
-command=/usr/bin/contrail-api --conf_file /etc/contrail/contrail-api.conf --conf_file /etc/contrail/contrail-keystone-auth.conf --worker_id %(process_num)s
-numprocs=1
-process_name=%(process_num)s
-redirect_stderr=true
-stdout_logfile= /var/log/contrail/contrail-api-%(process_num)s-stdout.log
-stderr_logfile=/dev/null
-priority=440
-autostart=true
-killasgroup=true
-stopsignal=KILL
-exitcodes=0
-
diff --git a/opencontrail/files/4.0/contrail-api.conf b/opencontrail/files/4.0/contrail-api.conf
index ad6962c..8ccb5c1 100644
--- a/opencontrail/files/4.0/contrail-api.conf
+++ b/opencontrail/files/4.0/contrail-api.conf
@@ -1,4 +1,10 @@
{%- from "opencontrail/map.jinja" import config with context %}
+
+{%- if config.identity.engine == "none" %}
+[DEFAULT]
+aaa_mode=no-auth
+{%- endif %}
+
[DEFAULTS]
collectors = {% for member in config.analytics.members %}{{ member.host }}:8086 {% endfor %}
cassandra_server_list={% for member in config.database.members %}{{ member.host }}:9161 {% endfor %}
diff --git a/opencontrail/files/4.0/contrail-api.ini b/opencontrail/files/4.0/contrail-api.ini
new file mode 100644
index 0000000..4caaeb3
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-api.ini
@@ -0,0 +1,19 @@
+{%- from "opencontrail/map.jinja" import config with context -%}
+[program:contrail-api]
+{%- if config.get('api_workers', 1) < 2 %}
+command=/usr/bin/contrail-api --conf_file /etc/contrail/contrail-api.conf --conf_file /etc/contrail/contrail-keystone-auth.conf --worker_id %(process_num)s
+numprocs=1
+{%- else %}
+command=/usr/bin/contrail-api --conf_file /etc/contrail/contrail-api.conf --conf_file /etc/contrail/contrail-keystone-auth.conf --worker_id %(process_num)s --listen_port 910%(process_num)s --admin_port 819%(process_num)s --http_server_port 828%(process_num)s --log_file /var/log/contrail/contrail-api-%(process_num)s.log
+numprocs={{ config.api_workers }}
+{%- endif %}
+process_name=%(process_num)s
+redirect_stderr=true
+stdout_logfile= /var/log/contrail/contrail-api-%(process_num)s-stdout.log
+stderr_logfile=/dev/null
+priority=440
+autostart=true
+killasgroup=true
+stopsignal=KILL
+exitcodes=0
+
diff --git a/opencontrail/files/4.0/contrail-issu.conf b/opencontrail/files/4.0/contrail-issu.conf
index e69de29..abf9fd7 100644
--- a/opencontrail/files/4.0/contrail-issu.conf
+++ b/opencontrail/files/4.0/contrail-issu.conf
@@ -0,0 +1 @@
+[DEFAULTS]
\ No newline at end of file
diff --git a/opencontrail/files/4.0/contrail-keystone-auth.conf b/opencontrail/files/4.0/contrail-keystone-auth.conf
index 8b37f27..4c32311 100644
--- a/opencontrail/files/4.0/contrail-keystone-auth.conf
+++ b/opencontrail/files/4.0/contrail-keystone-auth.conf
@@ -1,4 +1,6 @@
{%- from "opencontrail/map.jinja" import config with context -%}
+{%- if config.identity.engine != "none" %}
+
[KEYSTONE]
auth_host={{ config.identity.host }}
auth_protocol=http
@@ -18,3 +20,5 @@
{%- else %}
auth_url=http://{{ config.identity.host }}:{{ config.identity.port }}/v2.0
{%- endif %}
+
+{%- endif %}
\ No newline at end of file
diff --git a/opencontrail/files/4.0/contrail-svc-monitor.conf b/opencontrail/files/4.0/contrail-svc-monitor.conf
index 3078cc3..8d6fb7a 100644
--- a/opencontrail/files/4.0/contrail-svc-monitor.conf
+++ b/opencontrail/files/4.0/contrail-svc-monitor.conf
@@ -36,8 +36,11 @@
# Driver to use for scheduling virtual machine of a NetNS service instance to a
# vrouter agent
# si_netns_scheduler_driver = svc_monitor.scheduler.vrouter_scheduler.RandomScheduler
+{%- if config.identity.engine == "none" %}
+aaa_mode=no-auth
+{%- endif %}
-[KEYSTONE]
+#[KEYSTONE]
#auth_host=127.0.0.1
#admin_user=
#admin_password=
diff --git a/opencontrail/files/4.0/doctrail b/opencontrail/files/4.0/doctrail
index e40f76c..eaba912 100644
--- a/opencontrail/files/4.0/doctrail
+++ b/opencontrail/files/4.0/doctrail
@@ -27,11 +27,20 @@
if [ "$CORRECT" -gt 0 ] && [ "$1" != "all" ]; then
if [ "$2" == "console" ]; then
echo "Starting console:"
- NODE=$(docker ps | grep _$1_ | awk '{print $1}')
- docker exec -it $NODE bash
+ NODE=$(docker ps | grep "opencontrail.$1[-_]" | awk '{print $1}')
+ if [[ $NODE =~ ^[0-9a-fA-F]+$ ]]; then
+ docker exec -it $NODE bash
+ else
+ echo "Unknow container name, please use -h paramater for help."
+ fi
else
- NODE=$(docker ps | grep _$1_ | awk '{print $1}')
- docker exec $NODE ${@:2}
+ NODE=$(docker ps | grep "opencontrail.$1[-_]" | awk '{print $1}')
+ if [[ $NODE =~ ^[0-9a-fA-F]+$ ]]; then
+ docker exec $NODE ${@:2}
+ else
+ echo "Unknow container name, please use -h paramater for help."
+ fi
+
fi
else
echo "Unknow target, use -h or --help paramater for help"
diff --git a/opencontrail/map.jinja b/opencontrail/map.jinja
index a54a124..89c7bc1 100644
--- a/opencontrail/map.jinja
+++ b/opencontrail/map.jinja
@@ -1,5 +1,6 @@
{%- set vendor = salt['pillar.get']('opencontrail:common:vendor', 'opencontrail') %}
{%- set version = salt['pillar.get']('opencontrail:common:version') %}
+{%- set ifmap = salt['pillar.get']('opencontrail:config:ifmap:engine', 'irond') %}
{%- load_yaml as base_defaults %}
{%- if vendor in ['opencontrail'] %}
@@ -69,10 +70,14 @@
config:
Debian:
pkgs:
- ['contrail-config-openstack', 'ifmap-server']
+ - 'contrail-config-openstack'
+ - 'ifmap-server'
services:
{%- if version < 4.0 %}
- ['ifmap-server', 'supervisor-config']
+ {%- if ifmap == 'irond' %}
+ - 'ifmap-server'
+ {%- endif %}
+ - 'supervisor-config'
{%- else %}
['contrail-api', 'contrail-schema', 'contrail-svc-monitor', 'contrail-device-manager', 'contrail-config-nodemgr']
{%- endif %}
diff --git a/opencontrail/meta/collectd.yml b/opencontrail/meta/collectd.yml
index fd5deb9..1e94d6e 100644
--- a/opencontrail/meta/collectd.yml
+++ b/opencontrail/meta/collectd.yml
@@ -184,10 +184,12 @@
match: 'python.*contrail-discovery'
contrail-dns:
match: 'contrail-dns'
+ {%- if config.get('ifmap', {}).get('engine', 'irond') == 'irond' %}
contrail-ifmap-server:
match: 'sh.*ifmap-server'
contrail-irond:
match: 'java.*irond'
+ {%- endif %}
contrail-job-server:
match: 'node.*jobServerStart'
contrail-named:
diff --git a/opencontrail/meta/heka.yml b/opencontrail/meta/heka.yml
index 43bf89b..08f1937 100644
--- a/opencontrail/meta/heka.yml
+++ b/opencontrail/meta/heka.yml
@@ -15,12 +15,15 @@
{%- if control.get('enabled', False) %}
{%- set control_processes = (
'contrail-api', 'contrail-control', 'contrail-device-manager',
- 'contrail-discovery', 'contrail-dns', 'contrail-ifmap-server',
- 'contrail-irond', 'contrail-job-server', 'contrail-named',
- 'contrail-nodemgr-config', 'contrail-nodemgr-control',
- 'contrail-schema', 'contrail-supervisord-config',
- 'contrail-supervisord-control', 'contrail-svc-monitor',
+ 'contrail-discovery', 'contrail-dns', 'contrail-job-server',
+ 'contrail-named', 'contrail-nodemgr-config',
+ 'contrail-nodemgr-control', 'contrail-schema',
+ 'contrail-supervisord-config', 'contrail-supervisord-control',
+ 'contrail-svc-monitor',
) %}
+ {%- if config.get('ifmap', {}).get('engine', 'irond') == 'irond' %}
+ {%- set control_processes = control_processes + ('contrail-ifmap-server', 'contrail-irond',) %}
+ {%- endif %}
{%- endif %}
{%- if database.get('enabled', False) %}
{%- set database_processes = (
diff --git a/opencontrail/meta/prometheus.yml b/opencontrail/meta/prometheus.yml
index 46782c0..72a87d0 100644
--- a/opencontrail/meta/prometheus.yml
+++ b/opencontrail/meta/prometheus.yml
@@ -38,14 +38,19 @@
{%- if control.get('enabled', False) %}
{%- set control_apis = ( 'contrail.api', 'contrail.discovery' ) %}
+
{%- set control_processes = (
- 'contrail-api', 'contrail-control', 'contrail-device-manager',
- 'contrail-discovery', 'contrail-dns', 'contrail-ifmap-server',
- 'contrail-irond', 'contrail-job-server', 'contrail-named',
- 'contrail-nodemgr-config', 'contrail-nodemgr-control',
- 'contrail-schema', 'contrail-supervisord-config',
- 'contrail-supervisord-control', 'contrail-svc-monitor',
- ) %}
+ 'contrail-api', 'contrail-control', 'contrail-device-manager',
+ 'contrail-discovery', 'contrail-dns', 'contrail-job-server',
+ 'contrail-named', 'contrail-nodemgr-config',
+ 'contrail-nodemgr-control', 'contrail-schema',
+ 'contrail-supervisord-config', 'contrail-supervisord-control',
+ 'contrail-svc-monitor',
+ ) %}
+
+ {%- if config.get('ifmap', {}).get('engine', 'irond') == 'irond' %}
+ {%- set control_processes = control_processes + ('contrail-ifmap-server', 'contrail-irond',) %}
+ {%- endif %}
{%- for api in control_apis %}
{% do all_contrail_apis.append(api) %}
@@ -514,46 +519,56 @@
{%- endif %}
{%- if database.get('enabled', False) %}
- ZookeeperInfo:
+ ZookeeperServiceDown:
if: >-
- zookeeper_up != 1
+ zookeeper_up == 0
for: 2m
labels:
- severity: info
+ severity: minor
service: zookeeper
annotations:
- summary: 'Zookeeper service down'
- description: 'Zookeeper service is down on node {% raw %}{{ $labels.host }}{% endraw %}.'
- ZookeeperWarning:
+ summary: "Zookeeper service is down"
+ description: "The Zookeeper service on the {% raw %}{{ $labels.host }}{% endraw %} node is down for at least 2 minutes."
+ ZookeeperServiceError:
if: >-
- count(zookeeper_up == 0) >= count(zookeeper_up) * {{ monitoring.services_failed_warning_threshold_percent }}
+ zookeeper_service_health == 0
for: 2m
labels:
severity: warning
service: zookeeper
annotations:
- summary: "More than {{monitoring.services_failed_warning_threshold_percent*100}}% of Zookeeper services are down"
- description: "More than {{monitoring.services_failed_warning_threshold_percent*100}}% of Zookeeper services are down"
- ZookeeperCritical:
+ summary: "Zookeeper service error"
+ description: "The Zookeeper service on the {% raw %}{{ $labels.host }}{% endraw %} node is not responding for at least 2 minutes."
+ ZookeeperServicesDownMinor:
+ if: >-
+ count(zookeeper_up == 0) >= count(zookeeper_up) * {{ monitoring.services_failed_warning_threshold_percent }}
+ for: 2m
+ labels:
+ severity: minor
+ service: zookeeper
+ annotations:
+ summary: "{{ monitoring.services_failed_warning_threshold_percent*100 }}% of Zookeeper services are down"
+ description: "{% raw %}{{ $value }}{% endraw %} Zookeeper services are down (at least {{ monitoring.services_failed_warning_threshold_percent*100 }}%) for at least 2 minutes."
+ ZookeeperServicesDownMajor:
if: >-
count(zookeeper_up == 0) >= count(zookeeper_up) * {{ monitoring.services_failed_critical_threshold_percent }}
for: 2m
labels:
+ severity: major
+ service: zookeeper
+ annotations:
+ summary: "{{ monitoring.services_failed_critical_threshold_percent*100 }}% of Zookeeper services are down"
+ description: "{% raw %}{{ $value }}{% endraw %} Zookeeper services are down (at least {{ monitoring.services_failed_critical_threshold_percent*100 }}%) for at least 2 minutes."
+ ZookeeperServiceOutage:
+ if: >-
+ count(zookeeper_up == 0) == count(zookeeper_up)
+ for: 2m
+ labels:
severity: critical
service: zookeeper
annotations:
- summary: "More than {{monitoring.services_failed_critical_threshold_percent*100}}% of Zookeeper services are down"
- description: "More than {{monitoring.services_failed_critical_threshold_percent*100}}% of Zookeeper services are down"
- ZookeeperDown:
- if: >-
- count(zookeeper_up == 0) == count(zookeeper_up)
- for: 2m
- labels:
- severity: down
- service: zookeeper
- annotations:
- summary: 'All Zookeeper services are down'
- description: 'All Zookeeper services are down'
+ summary: "Zookeeper service outage"
+ description: "All Zookeeper services are down for at least 2 minutes."
{%- endif %}
{%- if exporters is defined %}
diff --git a/opencontrail/meta/telegraf.yml b/opencontrail/meta/telegraf.yml
index 51f7a40..0e2e342 100644
--- a/opencontrail/meta/telegraf.yml
+++ b/opencontrail/meta/telegraf.yml
@@ -47,10 +47,12 @@
pattern: 'python.*contrail-discovery'
contrail-dns:
pattern: 'contrail-dns'
+ {%- if config.get('ifmap', {}).get('engine', 'irond') == 'irond' %}
contrail-ifmap-server:
pattern: 'sh.*ifmap-server'
contrail-irond:
pattern: 'java.*irond'
+ {%- endif %}
contrail-job-server:
pattern: 'node.*jobServerStart'
contrail-named:
diff --git a/tests/pillar/analytics3.sls b/tests/pillar/analytics3.sls
index 1a5e861..2afcd1c 100644
--- a/tests/pillar/analytics3.sls
+++ b/tests/pillar/analytics3.sls
@@ -32,6 +32,12 @@
port: 9160
- host: 127.0.0.1
port: 9160
+ message_queue:
+ host: 127.0.0.1
+ members:
+ - host: 127.0.0.1
+ - host: 127.0.0.1
+ - host: 127.0.0.1
database:
version: 3.0
cassandra:
diff --git a/tests/pillar/cluster3.sls b/tests/pillar/cluster3.sls
index 1f97957..54c9d41 100644
--- a/tests/pillar/cluster3.sls
+++ b/tests/pillar/cluster3.sls
@@ -104,6 +104,12 @@
port: 9160
- host: 127.0.0.1
port: 9160
+ message_queue:
+ host: 127.0.0.1
+ members:
+ - host: 127.0.0.1
+ - host: 127.0.0.1
+ - host: 127.0.0.1
database:
version: 3.0
cassandra:
diff --git a/tests/pillar/control3.sls b/tests/pillar/control3.sls
index 2587f2a..7492795 100644
--- a/tests/pillar/control3.sls
+++ b/tests/pillar/control3.sls
@@ -17,6 +17,7 @@
multi_tenancy: false
aaa_mode: rbac
global_read_only_role: demo
+ api_workers: 3
network:
engine: neutron
host: 127.0.0.1
diff --git a/tests/pillar/single3.sls b/tests/pillar/single3.sls
index 859caf7..43f6dd6 100644
--- a/tests/pillar/single3.sls
+++ b/tests/pillar/single3.sls
@@ -80,6 +80,12 @@
members:
- host: 127.0.0.1
port: 9160
+ message_queue:
+ host: 127.0.0.1
+ members:
+ - host: 127.0.0.1
+ - host: 127.0.0.1
+ - host: 127.0.0.1
database:
version: 3.0
cassandra: