Uploaded image for project: 'Project Quay'
  1. Project Quay
  2. PROJQUAY-3757

Breaking API change introduced in v3.6.4: external_registry_config.unsigned_images

XMLWordPrintable

    • False
    • None
    • False

      Till Quay 3.6.2 we used to create a repository mirror with the createRepoMirrorConfig] API request

      POST https://{{ quay_endpoint }}/api/v1/repository/{{ quay_organization }}/{{ quay_repository }}/mirror
      Accept: application/json
      Content-Type: application/json
      Authorization: "Bearer {{ quay_oauth_token }}
      
      {
      "is_enabled": {{ quay_mirror_role_is_enabled | bool }},
      "external_reference": "{{ quay_mirror_role_src_registry | mandatory }}/{{ quay_mirror_role_src_image | mandatory }}",
      "external_registry_username": "{{ quay_mirror_role_ext_registry_username | default(omit) }}",
      "external_registry_password": "{{ quay_mirror_role_ext_registry_password | default(omit) }}",
      "external_registry_config": {
        "verify_tls": {{ quay_mirror_role_ext_registry_verify_tls }},
        "proxy": {
          "https_proxy": "{{ quay_mirror_role_https_proxy | default(omit) }}",
          "http_proxy": "{{ quay_mirror_role_http_proxy | default(omit) }}",
          "no_proxy": "{{ quay_mirror_role_no_proxy | default(omit) }}"
        }
      },
      "sync_start_date": "{{ ansible_date_time['iso8601'] }}",
      "sync_interval": {{ quay_mirror_role_sync_interval | int }},
      "robot_username": "{{ quay_organization | mandatory }}+{{ quay_robot | default('mirror') }}",
      "root_rule": {
        "rule_kind": "tag_glob_csv",
        "rule_value":
          {{ quay_mirror_role_src_image_tags }}
        }
      }
      

      After upgrading to quay v3.6.4 the same API request is not working anymore and we found that a new mandatory parameter into the  external_registry_config object is now requested: unsigned_images . Thus in order to make the request working we had to change the body like the following:

      {
      "is_enabled": {{ quay_mirror_role_is_enabled | bool }},
      "external_reference": "{{ quay_mirror_role_src_registry | mandatory }}/{{ quay_mirror_role_src_image | mandatory }}",
      "external_registry_username": "{{ quay_mirror_role_ext_registry_username | default(omit) }}",
      "external_registry_password": "{{ quay_mirror_role_ext_registry_password | default(omit) }}",
      "external_registry_config": {
        "verify_tls": {{ quay_mirror_role_ext_registry_verify_tls }},
        "unsigned_images": {{ quay_mirror_role_ext_registry_unsigned_images }},
        "proxy": {
          "https_proxy": "{{ quay_mirror_role_https_proxy | default(omit) }}",
          "http_proxy": "{{ quay_mirror_role_http_proxy | default(omit) }}",
          "no_proxy": "{{ quay_mirror_role_no_proxy | default(omit) }}"
        }
      },
      "sync_start_date": "{{ ansible_date_time['iso8601'] }}",
      "sync_interval": {{ quay_mirror_role_sync_interval | int }},
      "robot_username": "{{ quay_organization | mandatory }}+{{ quay_robot | default('mirror') }}",
      "root_rule": {
        "rule_kind": "tag_glob_csv",
        "rule_value":
          {{ quay_mirror_role_src_image_tags }}
        }
      }
      

       

              bcaton@redhat.com Brandon Caton
              pbertera@redhat.com Pietro Bertera
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: