2022-11-26 22:57:00 +00:00
---
- name : Ensure build directory exists
2023-08-30 16:37:36 +00:00
ansible.builtin.file :
2022-11-26 22:57:00 +00:00
name : "{{ keycloak_container_build_directory }}"
state : directory
recurse : yes
mode : 0700
2024-03-23 16:56:39 +00:00
tags :
- keycloak-build-container
2022-11-26 22:57:00 +00:00
2023-03-25 17:18:40 +00:00
- name : Ensure provider jars directory exists
2023-08-30 16:37:36 +00:00
ansible.builtin.file :
2023-03-25 17:18:40 +00:00
name : "{{ keycloak_provider_jars_directory }}"
state : directory
mode : 0775
2024-03-23 16:56:39 +00:00
tags :
- keycloak-build-container
2023-03-25 17:18:40 +00:00
2022-11-26 22:57:00 +00:00
- name : Ensure Dockerfile is templated
2023-08-30 16:37:36 +00:00
ansible.builtin.template :
2022-11-26 22:57:00 +00:00
src : Dockerfile.j2
dest : "{{ keycloak_container_build_directory }}/Dockerfile"
2023-03-25 17:18:40 +00:00
mode : 0700
register : keycloak_buildfile_info
2023-12-28 11:58:51 +00:00
tags :
- keycloak-container
2024-03-23 16:56:39 +00:00
- keycloak-build-container
2022-11-26 22:57:00 +00:00
2023-08-30 16:37:36 +00:00
- name : Ensure upstream Keycloak container image '{{ keycloak_container_upstream_image_name }}:{{ keycloak_version }}' is present
2022-11-26 22:57:00 +00:00
docker_image :
name : "{{ keycloak_container_upstream_image_name }}:{{ keycloak_version }}"
source : pull
state : present
2023-08-30 16:43:32 +00:00
register : keycloak_container_image_upstream_status
2023-12-28 11:58:51 +00:00
tags :
- keycloak-container
2024-03-23 16:56:39 +00:00
- keycloak-build-container
2022-11-26 22:57:00 +00:00
2023-08-30 16:37:36 +00:00
- name : Ensure custom keycloak container image '{{ keycloak_container_image_name }}' is built
community.docker.docker_image :
2022-11-26 22:57:00 +00:00
name : "{{ keycloak_container_image_name }}"
build :
args :
DB_VENDOR : "{{ keycloak_container_database_vendor }}"
KC_ADMIN_PASSWORD : "{{ keycloak_config_admin_password }}"
dockerfile : "{{ keycloak_container_build_directory }}/Dockerfile"
path : "{{ keycloak_container_build_directory }}"
source : build
state : present
2023-08-30 16:43:32 +00:00
force_source : "{{ keycloak_buildfile_info.changed or keycloak_container_image_upstream_status.changed or (keycloak_force_rebuild_container | default(false))}}"
register : keycloak_container_image_status
2023-12-28 11:58:51 +00:00
tags :
- keycloak-container
2024-03-23 16:56:39 +00:00
- keycloak-build-container
2022-11-26 22:57:00 +00:00
- name : Ensure keycloak container is running
2023-08-30 16:37:36 +00:00
community.docker.docker_container :
2022-11-26 22:57:00 +00:00
name : "{{ keycloak_container_name }}"
image : "{{ keycloak_container_image_name }}"
env : "{{ keycloak_container_env | default(omit, true) }}"
2023-12-17 20:23:23 +00:00
ports : "{{ keycloak_container_ports | default(omit, true) }}"
2023-09-26 12:23:51 +00:00
hostname : "{{ keycloak_container_hostname | default(omit) }}"
2022-11-26 22:57:00 +00:00
labels : "{{ keycloak_container_labels | default(omit, true) }}"
volumes : "{{ keycloak_container_volumes | default(omit, true) }}"
restart_policy : "{{ keycloak_container_restart_policy }}"
2023-12-17 20:25:43 +00:00
recreate : "{{ keycloak_container_force_recreate | default(false) or (keycloak_container_image_status.changed if keycloak_container_image_status is defined else false) }}"
2022-11-26 22:57:00 +00:00
state : started
command : >-2
start
--db-username {{ keycloak_database_username }}
--db-password {{ keycloak_database_password }}
2023-12-28 12:00:07 +00:00
--db-url jdbc:postgresql://{{ keycloak_database_hostname }}{{ keycloak_database_port | ternary(':' ~ keycloak_database_port, '') }}/{{ keycloak_database_database }}
2023-10-13 18:28:56 +00:00
{{ keycloak_container_extra_start_flags | default([]) | join(' ') }}
2022-11-26 22:57:00 +00:00
--optimized
2023-03-25 17:18:40 +00:00
tags :
- keycloak-container