This changes updates the formula to support the deployment of InfluxDB
as a container (eg Docker Swarm).
Change-Id: I5e815109987f928024f05cdaa99de6f558866174
{% if pillar.influxdb.server is defined %}
include:
- influxdb.server
{% if pillar.influxdb.server is defined %}
include:
- influxdb.server
{%- load_yaml as base_defaults %}
default:
pkgs:
- influxdb
service: influxdb
{%- load_yaml as base_defaults %}
default:
pkgs:
- influxdb
service: influxdb
+ container_mode: false
+ prefix_dir: /
reporting_disabled: true
http:
enabled: true
reporting_disabled: true
http:
enabled: true
+{%- if not server.container_mode %}
influxdb_packages:
pkg.installed:
- names: {{ server.pkgs }}
influxdb_packages:
pkg.installed:
- names: {{ server.pkgs }}
+{%- endif %}
+
+{{ server.prefix_dir }}/etc/influxdb:
+ file.directory:
+ - user: root
+ - group: root
+ - mode: 755
+ - makedirs: True
influxdb_config:
file.managed:
influxdb_config:
file.managed:
- - name: /etc/influxdb/influxdb.conf
+ - name: {{ server.prefix_dir }}/etc/influxdb/influxdb.conf
- source: salt://influxdb/files/influxdb.conf
- template: jinja
- source: salt://influxdb/files/influxdb.conf
- template: jinja
+{%- if not server.container_mode %}
- require:
- pkg: influxdb_packages
- require:
- pkg: influxdb_packages
+{%- if not server.container_mode %}
influxdb_default:
file.managed:
- name: /etc/default/influxdb
influxdb_default:
file.managed:
- name: /etc/default/influxdb
- template: jinja
- require:
- pkg: influxdb_packages
- template: jinja
- require:
- pkg: influxdb_packages
influxdb_service:
service.running:
influxdb_service:
service.running:
# This delay is needed before being able to send data to server to create
# users and databases.
- init_delay: 5
# This delay is needed before being able to send data to server to create
# users and databases.
- init_delay: 5
- {%- if grains.get('noservices') %}
+{%- if grains.get('noservices') or server.container_mode %}
- watch:
- file: influxdb_config
- watch:
- file: influxdb_config
+{%- if not server.container_mode %}
{% set url_for_query = "http://{}:{}/query".format(server.http.bind.address, server.http.bind.port) %}
{% set admin_created = false %}
{% set url_for_query = "http://{}:{}/query".format(server.http.bind.address, server.http.bind.port) %}
{% set admin_created = false %}
-{%- if server.admin.get('user', {}).get('enabled', False) %}
+{%- if not server.container_mode and server.admin.get('user', {}).get('enabled', False) %}
{% set query_create_admin = "--data-urlencode \"q=CREATE USER {} WITH PASSWORD '{}' WITH ALL PRIVILEGES\"".format(server.admin.user.name, server.admin.user.password) %}
{% set admin_url = "http://{}:{}/query?u={}&p={}".format(server.http.bind.address, server.http.bind.port, server.admin.user.name, server.admin.user.password) %}
influxdb_create_admin:
{% set query_create_admin = "--data-urlencode \"q=CREATE USER {} WITH PASSWORD '{}' WITH ALL PRIVILEGES\"".format(server.admin.user.name, server.admin.user.password) %}
{% set admin_url = "http://{}:{}/query?u={}&p={}".format(server.http.bind.address, server.http.bind.port, server.admin.user.name, server.admin.user.password) %}
influxdb_create_admin:
--- /dev/null
+applications:
+- influxdb
+classes:
+- service.influxdb.support
+parameters:
+ influxdb:
+ server:
+ enabled: true
+ container_mode: true
+ admin:
+ bind:
+ address: 0.0.0.0
+ http:
+ bind:
+ address: 0.0.0.0