tripleo-ansible/tripleo_ansible/roles/tripleo_container_manage/molecule/default/prepare.yml
Emilien Macchi 5040338686 container_manage: catch more containers with wrong return code
- helpers/haskey: add excluded_keys argument. It allows to return the
  config that has an attribute but also where some attributed are
  excluded. The use case here is that we have some container configs
  which have both "command" and "action". We want to use that filter to
  build a list of containers where the return code has to be checked;
  which is the not the case for the containers with "action" in their
  configs; since they are used for "podman exec" configs (and there is
  nothing to check in return from podman inspect).

- check_exit_code: change the list of containers to check the exit code
  to include all the containers with a "command" but not "action".
  It should cover all the containers which are used to run some
  non-services things like db_sync etc.

- molecule: change the fedora_bis and fedora_three containers to run
  short sleep so we can actually test that change against these
  containers and also on the first deployment of fedora_bis and
  fedora_three, we'll check their return code.

Change-Id: I466a57bd788e02c32b1efb0ac0223684f0d39393
Closes-Bug: #1878074
2020-05-14 12:36:03 +00:00

91 lines
2.8 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
hosts: all
become: true
roles:
- role: test_deps
test_deps_extra_packages:
- podman
tasks:
- name: Prepare the container configs directory
file:
path: '/tmp/container-configs'
state: directory
- name: Create a configuration file for a fedora container
copy:
content: |
{
"image": "fedora:latest",
"net": "host",
"command": "sleep 3600",
"restart": "always",
"check_interval": "500s",
"healthcheck": { "test": "echo test" }
}
dest: '/tmp/container-configs/fedora.json'
- name: Create a secondary configuration file for a fedora container
copy:
content: |
{
"image": "fedora:latest",
"net": "host",
"command": "sleep 5"
}
dest: '/tmp/container-configs/fedora_bis.json'
- name: Create a third configuration file for a fedora container
copy:
content: |
{
"image": "fedora:latest",
"net": "host",
"command": "sleep 5"
}
dest: '/tmp/container-configs/fedora_three.json'
- name: Create old healthcheck service for fedora container
copy:
content: |
[Unit]
Description=tripleo_fedora healthcheck
Requisite=tripleo_fedora.service
[Service]
Type=oneshot
ExecStart=/usr/bin/podman exec --user root fedora sleep 3600 }}
[Install]
WantedBy=multi-user.target
dest: '/etc/systemd/system/tripleo_fedora_healthcheck.service'
mode: '0644'
owner: root
group: root
- name: Create old healthcheck timer for fedora container
copy:
content: |
[Unit]
Description=tripleo_fedora container healthcheck
PartOf=tripleo_fedora.service
[Timer]
OnActiveSec=120
OnUnitActiveSec=60
RandomizedDelaySec=5
[Install]
WantedBy=timers.target
dest: '/etc/systemd/system/tripleo_fedora_healthcheck.timer'
mode: '0644'
owner: root
group: root