- name: Ensure alloy project directory exists
  ansible.builtin.file:
    path: "{{ alloy_project_dir }}"
    state: directory
    mode: "0755"

- name: Copy alloy-docker-compose.yml for alloy
  ansible.builtin.template:
    src: alloy-docker-compose.yml.j2
    dest: "{{ alloy_project_dir }}/docker-compose.yml"
    mode: "0644"

- name: Copy config.alloy for alloy
  ansible.builtin.template:
    src: config.alloy.j2
    dest: "{{ alloy_project_dir }}/config.alloy"
    mode: "0644"
  register: config_alloy_result

- name: Deploy alloy docker compose stack
  community.docker.docker_compose_v2:
    project_src: "{{ alloy_project_dir }}"
    state: present
    recreate: "{{ 'always' if config_alloy_result.changed else 'auto' }}"
    remove_orphans: true
    wait: true

- name: Verify alloy service is running
  ansible.builtin.uri:
    url: "http://127.0.0.1:12345/metrics"
    method: GET
    status_code: [200]
  retries: 10
  delay: 5
