--- - name: Build side car container include_role: name: common tasks_from: build_tasks.yml apply: tags: - build run_once: true vars: image_name: katcp2influx_sidecar tags: - never # only run when build tag is specified - buildsidecar - name: Stop already running side car # An async block would be great here but is not possible yet. See ansible # feature request https://github.com/ansible/ansible/issues/28997 docker_container: name: "{{ pipeline_id }}_influx_sidecar" state: absent force_kill: yes - name: Start new side car block: - docker_container: name: "{{ pipeline_id }}_influx_sidecar" image: "{{ docker_registry }}:{{ docker_registry_port }}/katcp2influx_sidecar" command: "python katcp_monitor/influxdb_exporter.py --host {{ katcp_host }} --port {{ katcp_port }} --db-host={{ influx_host }} --db-port {{ influxdb_port }} --idb-db=monitor --measurement={{ measurement }} --idb-tags pipeline_id={{ pipeline_id }} {% if influx_exclude_sensors is defined and influx_exclude_sensors %}--exclude_sensors {{ influx_exclude_sensors | join(' ')}}{%endif%}{% if include_sensors is defined and include_sensors %}--include_sensors {{ include_sensors | join(' ')}}{%endif%} --interval={{ interval }} --strategy={{ strategy }}" state: started # ensure that is running pull: yes # auto_remove: yes force_kill: yes # avoid lag between rm and restart async: 300 poll: 0 register: async_results_tmp - set_fact: async_list: "{{ async_list + [ async_results_tmp.ansible_job_id ] }} " - name: Stop sidecar block: - docker_container: name: "{{ pipeline_id }}_influx_sidecar" state: absent async: 300 poll: 0 register: async_results_tmp - set_fact: async_list: "{{ async_list + [ async_results_tmp.ansible_job_id ] }} " tags: - never - stop