|
|
@ -3,41 +3,65 @@ |
|
|
|
become: false |
|
|
|
gather_facts: no |
|
|
|
|
|
|
|
vars: |
|
|
|
expire: 72000 |
|
|
|
|
|
|
|
tasks: |
|
|
|
- name: Generate uniq bucket name prefix |
|
|
|
shell: date +%s | sha256sum | base64 | head -c 32 |
|
|
|
register: out |
|
|
|
|
|
|
|
- name: replace_test_id |
|
|
|
set_fact: |
|
|
|
test_name: "{{ test_id | regex_replace('\\.', '-') }}" |
|
|
|
test_name: "kargo-{{ commit }}-{{ pr }}-{{ out.stdout|lower }}-{{ test_id | regex_replace('\\.', '-') }}" |
|
|
|
|
|
|
|
- name: Create a bucket |
|
|
|
gc_storage: |
|
|
|
bucket: "{{ test_name }}" |
|
|
|
mode: create |
|
|
|
expiration: "{{ expire }}" |
|
|
|
permission: private |
|
|
|
gs_access_key: gs_key |
|
|
|
gs_secret_key: gs_skey |
|
|
|
gs_access_key: "{{ gs_key }}" |
|
|
|
gs_secret_key: "{{ gs_skey }}" |
|
|
|
no_log: True |
|
|
|
|
|
|
|
- name: Download gsutil cp installer |
|
|
|
get_url: |
|
|
|
url: https://dl.google.com/dl/cloudsdk/channels/rapid/install_google_cloud_sdk.bash |
|
|
|
dest: /tmp/gcp-installer.sh |
|
|
|
|
|
|
|
- name: Get gsutil tool |
|
|
|
script: /tmp/gcp-installer.sh |
|
|
|
environment: |
|
|
|
CLOUDSDK_CORE_DISABLE_PROMPTS: 1 |
|
|
|
no_log: True |
|
|
|
|
|
|
|
- name: Create a lifecycle template for the bucket |
|
|
|
file: src=gcs_life.json path=/tmp/gcs_life.json |
|
|
|
|
|
|
|
- name: Hack the boto config for GCS access keys |
|
|
|
lineinfile: |
|
|
|
dest: .boto |
|
|
|
line: "gs_access_key_id = {{ gs_key }}" |
|
|
|
regexp: "^#gs_access_key_id = .*$" |
|
|
|
no_log: True |
|
|
|
|
|
|
|
- name: Hack the boto config for GCS secret access keys |
|
|
|
lineinfile: |
|
|
|
dest: .boto |
|
|
|
line: "gs_secret_access_key = {{ gs_skey }}" |
|
|
|
regexp: "^#gs_secret_access_key = .*$" |
|
|
|
no_log: True |
|
|
|
|
|
|
|
- name: Apply the lifecycle rules |
|
|
|
shell: bash google-cloud-sdk/bin/gsutil lifecycle set /tmp/gcs_life.json gs://{{ test_name }} |
|
|
|
environment: |
|
|
|
BOTO_CONFIG: .boto |
|
|
|
|
|
|
|
- name: Upload collected diagnostic info |
|
|
|
gc_storage: |
|
|
|
bucket: "{{ test_name }}" |
|
|
|
mode: put |
|
|
|
permission: private |
|
|
|
expiration: "{{ expire }}" |
|
|
|
object: "build-{{ test_name }}-{{ kube_network_plugin }}-logs.tar.gz" |
|
|
|
object: "build-{{ ostype }}-{{ kube_network_plugin }}-logs.tar.gz" |
|
|
|
src: logs.tar.gz |
|
|
|
gs_access_key: gs_key |
|
|
|
gs_secret_key: gs_skey |
|
|
|
|
|
|
|
- name: Get a link |
|
|
|
gc_storage: |
|
|
|
bucket: "{{ test_name }}" |
|
|
|
object: "build-{{ test_name }}-{{ kube_network_plugin }}-logs.tar.gz" |
|
|
|
mode: get_url |
|
|
|
register: url |
|
|
|
gs_access_key: gs_key |
|
|
|
gs_secret_key: gs_skey |
|
|
|
|
|
|
|
- debug: msg="Download URL {{get_url}}" |
|
|
|
headers: '{"Content-Encoding": "x-gzip"}' |
|
|
|
gs_access_key: "{{ gs_key }}" |
|
|
|
gs_secret_key: "{{ gs_skey }}" |
|
|
|
ignore_errors: true |