---
- set_fact:
    registry_volume_claim: "{{ openshift.hosted.registry.storage.volume.name }}-claim"

- name: Determine if volume is already attached to dc/docker-registry
  command: >
      {{ openshift.common.client_binary }}
      --config={{ openshift_hosted_kubeconfig }}
      --namespace={{ openshift.hosted.registry.namespace | default('default') }}
      get -o template dc/docker-registry --template=\\{\\{.spec.template.spec.volumes\\}\\} --output-version=v1
  changed_when: false
  failed_when: false
  register: registry_volumes_output

- set_fact:
    volume_attached: "{{ registry_volume_claim in (registry_volumes_output).stdout | default(['']) }}"

- name: Add volume to dc/docker-registry
  command: >
    {{ openshift.common.client_binary }}
    --config={{ openshift_hosted_kubeconfig }}
    --namespace={{ openshift.hosted.registry.namespace | default('default') }}
    volume dc/docker-registry
    --add --overwrite -t persistentVolumeClaim --claim-name={{ registry_volume_claim }}
    --name=registry-storage
  when: not volume_attached | bool
