diff --git a/roles/service/defaults/main.yaml b/roles/service/defaults/main.yaml index 9a12150..586a1ab 100644 --- a/roles/service/defaults/main.yaml +++ b/roles/service/defaults/main.yaml @@ -11,6 +11,7 @@ service_container_secrets: [] service_container_env: {} service_database_type: none +service_redis: false service_additional_containers: [] diff --git a/roles/service/meta/argument_specs.yaml b/roles/service/meta/argument_specs.yaml index db9970d..21fa08f 100644 --- a/roles/service/meta/argument_specs.yaml +++ b/roles/service/meta/argument_specs.yaml @@ -189,6 +189,13 @@ argument_specs: - Required if service_database_type is postgres, does nothing otherwise type: str required: false + service_redis: + description: >- + Whether to install redis in a container accessible to the service at host + {{ service_name }}-redis. + type: bool + required: false + default: false service_additional_containers: description: diff --git a/roles/service/tasks/main.yaml b/roles/service/tasks/main.yaml index 372a854..933b237 100644 --- a/roles/service/tasks/main.yaml +++ b/roles/service/tasks/main.yaml @@ -6,10 +6,14 @@ ansible.builtin.set_fact: _service_container_mounts: [] -- name: Databse for {{ service_name }} +- name: Database for {{ service_name }} ansible.builtin.include_tasks: database.yaml when: _service_setup_database +- name: Redis for {{ service_name }} + ansible.builtin.include_tasks: redis.yaml + when: service_redis + - name: Secrets for {{ service_name }} ansible.builtin.include_tasks: secrets.yaml when: _service_container_secrets | length > 0 diff --git a/roles/service/tasks/redis.yaml b/roles/service/tasks/redis.yaml new file mode 100644 index 0000000..582dd19 --- /dev/null +++ b/roles/service/tasks/redis.yaml @@ -0,0 +1,10 @@ +--- +- name: Redis container for {{ service_name }} + ansible.builtin.import_role: + name: container + vars: + container_name: "{{ service_name }}-redis" + container_image: docker.io/valkey/valkey:alpine + container_networks: + - "{{ service_name }}" + container_auto_update: "{{ service_auto_update }}" diff --git a/roles/service/vars/main.yaml b/roles/service/vars/main.yaml index 844cb03..51af328 100644 --- a/roles/service/vars/main.yaml +++ b/roles/service/vars/main.yaml @@ -39,6 +39,7 @@ _service_container_requires: >- {{ service_requires + ([_service_database_name + '.service'] if _service_setup_database else []) + + ([service_name + '-redis.service'] if service_redis else []) }} _service_container_wants: >- {{