diff options
author | Tim Bielawa <tbielawa@redhat.com> | 2016-06-27 09:35:06 -0400 |
---|---|---|
committer | Tim Bielawa <tbielawa@redhat.com> | 2016-06-28 09:19:37 -0400 |
commit | 9fce180414a4cfbebea1f4b4acc2f67356b7e4fc (patch) | |
tree | 4a2a08c087769850dd93bd580035b0e1b00cb670 /roles | |
parent | bf520e46e6916a4c9995ea95fa40cdd25f31209e (diff) | |
download | openshift-9fce180414a4cfbebea1f4b4acc2f67356b7e4fc.tar.gz openshift-9fce180414a4cfbebea1f4b4acc2f67356b7e4fc.tar.bz2 openshift-9fce180414a4cfbebea1f4b4acc2f67356b7e4fc.tar.xz openshift-9fce180414a4cfbebea1f4b4acc2f67356b7e4fc.zip |
Speed up copying OpenShift examples
* The `copy` module does not scale to hundreds of files
* Replace `copy` with `unarchive`
Create a temp dir locally to tar all the OpenShift examples into. Make
the dest dir on the remote side, drop examples in place with the
`unarchive` module.
Diffstat (limited to 'roles')
-rw-r--r-- | roles/openshift_examples/tasks/main.yml | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/roles/openshift_examples/tasks/main.yml b/roles/openshift_examples/tasks/main.yml index fb10188f2..e9966d735 100644 --- a/roles/openshift_examples/tasks/main.yml +++ b/roles/openshift_examples/tasks/main.yml @@ -1,9 +1,46 @@ --- -- name: Copy openshift examples - copy: - src: "examples/{{ content_version }}/" +###################################################################### +# Copying Examples +# +# We used to use the copy module to transfer the openshift examples to +# the remote. Then it started taking more than a minute to transfer +# the files. As noted in the module: +# +# "The 'copy' module recursively copy facility does not scale to +# lots (>hundreds) of files." +# +# The `synchronize` module is suggested as an alternative, we can't +# use it either due to changes introduced in Ansible 2.x. +- name: Create local temp dir for OpenShift examples copy + local_action: command mktemp -d /tmp/openshift-ansible-XXXXXXX + become: False + register: copy_examples_mktemp + run_once: True + +- name: Create tar of OpenShift examples + local_action: command tar -C "{{ role_path }}/files/examples/{{ content_version }}/" -cvf "{{ copy_examples_mktemp.stdout }}/openshift-examples.tar" . + become: False + register: copy_examples_tar + +- name: Create the remote OpenShift examples directory + file: + dest: "{{ examples_base }}" + state: directory + mode: 0755 + +- name: Unarchive the OpenShift examples on the remote + unarchive: + src: "{{ copy_examples_mktemp.stdout }}/openshift-examples.tar" dest: "{{ examples_base }}/" +- name: Cleanup the OpenShift Examples temp dir + become: False + local_action: file dest="{{ copy_examples_mktemp.stdout }}" state=absent + +# Done copying examples +###################################################################### +# Begin image streams + - name: Modify registry paths if registry_url is not registry.access.redhat.com shell: > find {{ examples_base }} -type f | xargs -n 1 sed -i 's|registry.access.redhat.com|{{ registry_host | quote }}|g' |