- hosts: "localhost:!disabled"
  name: "Puppet-git: Collect the project-config ref"
  strategy: free
  connection: local
  tasks:
    # Note that git module does ls-remote if clone is set to no and places
    # the remote_head value in returndict.after
    - name: Grab project-config repo info
      git:
        repo: https://git.openstack.org/openstack-infra/project-config
        clone: no
      register: gitinfo

- hosts: "git-server:!disabled"
  name: "Puppet-git: Run puppet on the git servers"
  strategy: free
  max_fail_percentage: 1
  roles:
    - role: puppet
      facts:
        project_config_ref: "{{ hostvars.localhost.gitinfo.after }}"

- hosts: "review:!disabled"
  name: "Puppet-git: Run puppet on the Gerrit server"
  strategy: free
  gather_facts: true
  roles:
    - role: puppet
      facts:
        project_config_ref: "{{ hostvars.localhost.gitinfo.after }}"
      puppet_timeout: 60m

- hosts: "zuul-scheduler:!disabled"
  name: "Puppet-git: Run puppet on the Zuul scheduler"
  strategy: free
  gather_facts: true
  roles:
    - role: puppet
      facts:
        project_config_ref: "{{ hostvars.localhost.gitinfo.after }}"
      puppet_timeout: 60m