You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hetzner-ansible/roles/harbor_config/tasks/configure_project_metadata_...

66 lines
1.8 KiB
YAML

---
- name: "Get all meta_data"
delegate_to: 127.0.0.1
become: false
uri:
url: "{{ shared_service_url_harbor }}/api/v2.0/projects/{{ project_name }}/metadatas/{{ meta_data_elem.key }}"
user: '{{ harbor_admin_username }}'
password: '{{ harbor_admin_password }}'
method: GET
body_format: json
force_basic_auth: yes
headers:
Content-Type: application/json
status_code: [200]
register: all_metadata
delay: 10
retries: 3
- name: "Set fact"
set_fact:
body_content: "{ \"{{ meta_data_elem.key }}\":\"{{ meta_data_elem.value }}\" }"
- name: "Add meta_data: <<{{ meta_data_elem.key }}>>"
delegate_to: 127.0.0.1
become: false
uri:
url: "{{ shared_service_url_harbor }}/api/v2.0/projects/{{ project_name }}/metadatas"
user: '{{ harbor_admin_username }}'
password: '{{ harbor_admin_password }}'
method: POST
body_format: json
body: '{{ body_content }}'
force_basic_auth: yes
headers:
Content-Type: application/json
status_code: [200,201]
register: create_metadata
delay: 10
retries: 3
until: create_metadata.status in [200,201]
when:
- meta_data_elem.key not in all_metadata.json
- name: "Update meta_data: <<{{ meta_data_elem.key }}>>"
delegate_to: 127.0.0.1
become: false
uri:
url: "{{ shared_service_url_harbor }}/api/v2.0/projects/{{ project_name }}/metadatas/{{ meta_data_elem.key }}"
user: '{{ harbor_admin_username }}'
password: '{{ harbor_admin_password }}'
method: PUT
body_format: json
body: '{{ body_content }}'
force_basic_auth: yes
headers:
Content-Type: application/json
status_code: [200,201]
register: update_metadata
delay: 10
retries: 3
until: update_metadata.status in [200,201]
when:
- meta_data_elem.key in all_metadata.json
# DELETION currently out-of-scope