85 lines
4.0 KiB
YAML
85 lines
4.0 KiB
YAML
---
|
|
# Copyright 2019 Red Hat, Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
- name: Prepare container facts
|
|
set_fact:
|
|
container_name: "{{ batched_container_data.0.keys() | first }}"
|
|
container_data: "{{ batched_container_data.0[batched_container_data.0.keys()|first] }}"
|
|
|
|
- name: "{{ container_name }} : Run execute task"
|
|
include_tasks: exec.yml
|
|
when:
|
|
- container_data.action is defined
|
|
- container_data.action == 'exec'
|
|
|
|
- name: "{{ container_name }} : Manage container"
|
|
when: container_data.action is not defined
|
|
podman_container:
|
|
cap_add: "{{ container_data.cap_add | default(omit) }}"
|
|
cap_drop: "{{ container_data.cap_drop | default(omit) }}"
|
|
command: "{{ container_data.command | default(omit) }}"
|
|
conmon_pidfile: "/var/run/{{ container_name }}.pid"
|
|
cpu_shares: "{{ container_data.cpu_shares | default(omit) | int }}"
|
|
# cpuset_cpus: "{{ container_data.cpuset_cpus | default(omit) }}"
|
|
detach: "{{ container_data.detach | default(true) }}"
|
|
env: "{{ container_data.environment if container_data.environment is defined and container_data.environment else {} }}"
|
|
env_file: "{{ container_data.env_file | default(omit) }}"
|
|
etc_hosts: "{{ container_data.extra_hosts | default({}) }}"
|
|
group_add: "{{ container_data.group_add | default(omit) }}"
|
|
hostname: "{{ container_data.hostname | default(omit) }}"
|
|
image: "{{ container_data.image }}"
|
|
interactive: "{{ container_data.interactive | default(false) }}"
|
|
ipc: "{{ container_data.ipc | default(omit) }}"
|
|
label:
|
|
config_id: "{{ tripleo_container_manage_config_id }}"
|
|
container_name: "{{ container_name }}"
|
|
managed_by: tripleo_ansible
|
|
config_data: "{{ container_data | to_json }}"
|
|
log_driver: 'k8s-file'
|
|
# log_opt: |
|
|
# "{{ 'path=' if tripleo_container_manage_log_path is defined else '' }}
|
|
# {{ tripleo_container_manage_log_path | default('') }}
|
|
# {{ '/' if tripleo_container_manage_log_path is defined else '' }}
|
|
# {{ container_data if tripleo_container_manage_log_path is defined else '' }}"
|
|
memory: "{{ container_data.mem_limit | default(omit) }}"
|
|
memory_swap: "{{ container_data.mem_swappiness | default(omit) }}"
|
|
name: "{{ container_name }}"
|
|
net: "{{ container_data.net | default('none') }}"
|
|
pid: "{{ container_data.pid | default(omit) }}"
|
|
privileged: "{{ container_data.privileged | default(false) }}"
|
|
rm: "{{ container_data.remove | default(false) }}"
|
|
security_opt: "{{ container_data.security_opt | default(omit) }}"
|
|
state: present
|
|
stop_signal: "{{ container_data.stop_signal | default(omit) }}"
|
|
stop_timeout: "{{ container_data.stop_grace_period | default(omit) | int }}"
|
|
tty: "{{ container_data.tty | default(false) }}"
|
|
ulimit: "{{ container_data.ulimit | default(omit) }}"
|
|
user: "{{ container_data.user | default(omit) }}"
|
|
uts: "{{ container_data.uts | default(omit) }}"
|
|
volume: "{{ container_data.volumes | default(omit) }}"
|
|
volumes_from: "{{ container_data.volumes_from | default([]) }}"
|
|
register: podman_container
|
|
|
|
- name: "{{ container_name }} : Manage systemd service }}"
|
|
include_tasks: systemd.yml
|
|
when:
|
|
- container_data.action is not defined
|
|
- container_data.restart is defined
|
|
# systemd doesn't have the equivalent of docker unless-stopped.
|
|
# Let's force 'always' so containers aren't restarted when stopped by
|
|
# systemd, but restarted when in failure.
|
|
- container_data.restart == 'always' or container_data.restart == 'unless-stopped'
|