Skip to content

Commit 3889e98

Browse files
authored
Feature/minio testonly (#517)
* add minio role * add minio role to playbooks * add minio to check script
1 parent 1c685ff commit 3889e98

7 files changed

Lines changed: 115 additions & 0 deletions

File tree

deploy_containers_playbook.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,3 +157,9 @@
157157
become: true
158158
roles:
159159
- { role: voot, tags: ['voot'] }
160+
161+
- name: Deploy minio app
162+
hosts: docker_minio
163+
become: true
164+
roles:
165+
- { role: minio, tags: ['minio'] }

provision.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,4 +133,9 @@
133133
- { role: mariadbdocker, tags: ['mariadbdocker']}
134134
- { role: mongodbdocker, tags: ['mongodbdocker']}
135135

136+
- hosts: docker_minio
137+
become: true
138+
roles:
139+
- { role: minio, tags: ["minio"] }
140+
136141
- import_playbook: "{{ environment_dir }}/playbook.yml"

roles/minio/defaults/main.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
minio_dir: /opt/openconext/minio
3+
minio_data_dir: "{{ minio_dir }}/data"
4+
minio_version: RELEASE.2025-05-24T17-08-30Z
5+
minio_data_dir_oncontainer: "/mnt/data"
6+
minio_root_user: "minioadmin"
7+
# minio_root_password get from vault

roles/minio/handlers/main.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
- name: Restart minio
3+
community.docker.docker_container:
4+
name: minio
5+
state: started
6+
restart: true
7+
# avoid restarting it creates unexpected data loss according to docker_container_module notes
8+
# https://docs.ansible.com/ansible/latest/collections/community/docker/docker_container_module.html#notes
9+
comparisons:
10+
'*': ignore
11+
when: miniocontainer is success and miniocontainer is not change

roles/minio/tasks/main.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
- name: Create minio files directory
3+
ansible.builtin.file:
4+
state: directory
5+
path: "{{ minio_dir }}"
6+
owner: root
7+
group: root
8+
mode: "0755"
9+
10+
- name: Create minio data directory
11+
ansible.builtin.file:
12+
state: directory
13+
path: "{{ minio_data_dir }}"
14+
owner: root
15+
group: root
16+
mode: "0755"
17+
18+
- name: Place the serverapplication configfiles
19+
ansible.builtin.template:
20+
src: "{{ item }}.j2"
21+
dest: /opt/openconext/minio/{{ item }}
22+
owner: root
23+
group: root
24+
mode: "0644"
25+
with_items:
26+
- config.env
27+
notify: Restart minio
28+
29+
- name: Create and start the server container
30+
community.docker.docker_container:
31+
name: minio
32+
image: quay.io/minio/minio:{{ minio_version }}
33+
pull: true
34+
restart_policy: "always"
35+
state: started
36+
env:
37+
MINIO_CONFIG_ENV_FILE: "/etc/config.env"
38+
networks:
39+
- name: "loadbalancer"
40+
mounts:
41+
- source: "{{ minio_data_dir }}"
42+
target: "{{ minio_data_dir_oncontainer }}"
43+
type: bind
44+
- source: "{{ minio_dir }}/config.env"
45+
target: /etc/config.env
46+
type: bind
47+
command: server --console-address ":9090" {{ minio_data_dir_oncontainer }}
48+
labels:
49+
traefik.http.routers.minio.rule: "Host(`minio.{{ base_domain }}`)"
50+
traefik.http.routers.minio.tls: "true"
51+
traefik.http.routers.minio.service: "minio"
52+
traefik.http.services.minio.loadbalancer.server.port: "9090"
53+
traefik.http.routers.minioapi.rule: "Host(`minioapi.{{ base_domain }}`)"
54+
traefik.http.routers.minioapi.tls: "true"
55+
traefik.http.routers.minioapi.service: "minioapi"
56+
traefik.http.services.minioapi.loadbalancer.server.port: "9000"
57+
traefik.enable: "true"
58+
healthcheck:
59+
test:
60+
[
61+
"CMD",
62+
"curl",
63+
"--fail",
64+
"http://localhost:9000/minio/health/live"
65+
]
66+
interval: 10s
67+
timeout: 10s
68+
retries: 3
69+
start_period: 10s
70+
register: miniocontainer
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
MINIO_ROOT_USER={{ minio_root_user }}
2+
MINIO_ROOT_PASSWORD={{ minio_root_password }}
3+
MINIO_VOLUMES="{{ minio_data_dir_oncontainer }}"

test_containers_playbook.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,19 @@
9494
- manageserver
9595
- managegui
9696

97+
- name: Test minio containers
98+
hosts: docker_minio
99+
become: true
100+
tasks:
101+
- name: Check minio containers state
102+
ansible.builtin.command:
103+
cmd: docker inspect -f '{{ '{{' }} .State.Status {{ '}}' }}' "{{ item }}"
104+
register: container_state
105+
failed_when: container_state.stdout != "running"
106+
changed_when: false
107+
with_items:
108+
- minio
109+
97110
- name: Test mujina-idp containers
98111
hosts: docker_mujina_idp
99112
become: true

0 commit comments

Comments
 (0)