Merge "Add more parameters to alarm-gen config"
diff --git a/README.rst b/README.rst
index b80b23e..ba0d7b4 100644
--- a/README.rst
+++ b/README.rst
@@ -895,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
------------------------------------
diff --git a/opencontrail/config.sls b/opencontrail/config.sls
index 50e4901..d580a1e 100644
--- a/opencontrail/config.sls
+++ b/opencontrail/config.sls
@@ -114,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/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/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-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/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-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/meta/heka.yml b/opencontrail/meta/heka.yml
index 0667088..08f1937 100644
--- a/opencontrail/meta/heka.yml
+++ b/opencontrail/meta/heka.yml
@@ -22,7 +22,7 @@
'contrail-svc-monitor',
) %}
{%- if config.get('ifmap', {}).get('engine', 'irond') == 'irond' %}
- {%- set control_processes += ('contrail-ifmap-server', 'contrail-irond',) %}
+ {%- set control_processes = control_processes + ('contrail-ifmap-server', 'contrail-irond',) %}
{%- endif %}
{%- endif %}
{%- if database.get('enabled', False) %}
diff --git a/opencontrail/meta/prometheus.yml b/opencontrail/meta/prometheus.yml
index ab254af..72a87d0 100644
--- a/opencontrail/meta/prometheus.yml
+++ b/opencontrail/meta/prometheus.yml
@@ -49,7 +49,7 @@
) %}
{%- if config.get('ifmap', {}).get('engine', 'irond') == 'irond' %}
- {%- set control_processes += ('contrail-ifmap-server', 'contrail-irond',) %}
+ {%- set control_processes = control_processes + ('contrail-ifmap-server', 'contrail-irond',) %}
{%- endif %}
{%- for api in control_apis %}
@@ -519,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/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