herve4m.quay.quay_tag_info (1.2.0) — module

Gather information about tags in a Quay Container Registry repository

| "added in version" 0.0.1 of herve4m.quay"

Authors: Herve Quatremain (@herve4m)

Install collection

Install with ansible-galaxy collection install herve4m.quay:==1.2.0


Add to requirements.yml

  collections:
    - name: herve4m.quay
      version: 1.2.0

Description

Gather information about the tags in a repository.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Retrieve the tags in the production/smallimage repository
  herve4m.quay.quay_tag_info:
    repository: production/smallimage
    only_active_tags: true
    quay_host: https://quay.example.com
    quay_token: vgfH9zH5q6eV16Con7SvDQYSr0KPYQimMHVehZv7
  register: tags
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Gather info on tag 0.1.2 of the testing image in my personal namespace
  herve4m.quay.quay_tag_info:
    repository: testimg
    tag: "0.1.2"
    quay_host: https://quay.example.com
    quay_token: vgfH9zH5q6eV16Con7SvDQYSr0KPYQimMHVehZv7
  register: tag_info
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Retrieve the tags from the images with the given digest
  herve4m.quay.quay_tag_info:
    repository: production/smallimage
    digest: "sha256:53b2...a7c8"
    only_active_tags: true
    quay_host: https://quay.example.com
    quay_token: vgfH9zH5q6eV16Con7SvDQYSr0KPYQimMHVehZv7
  register: tags

Inputs

    
tag:
    description:
    - Gather information on that specific tag instead of returning data on all the tags
      in the repository.
    - Mutually exclusive with I(digest).
    type: str

digest:
    description:
    - Gather information on the images with that digest instead of returning data on all
      the tags in the repository.
    - Mutually exclusive with I(tag).
    type: str

quay_host:
    default: http://127.0.0.1
    description:
    - URL for accessing the API. U(https://quay.example.com:8443) for example.
    - If you do not set the parameter, then the module uses the C(QUAY_HOST) environment
      variable.
    - If you do no set the environment variable either, then the module uses the U(http://127.0.0.1)
      URL.
    type: str

quay_token:
    description:
    - OAuth access token for authenticating against the API.
    - If you do not set the parameter, then the module tries the C(QUAY_TOKEN) environment
      variable.
    - Mutually exclusive with I(quay_username) and I(quay_password).
    type: str

repository:
    description:
    - Name of the repository that contains the tags to list. The format is C(namespace)/C(shortname).
      The namespace can be an organization or a personal namespace.
    - If you omit the namespace part, then the module looks for the repository in your
      personal namespace.
    required: true
    type: str

quay_password:
    description:
    - The password to use for authenticating against the API.
    - If you do not set the parameter, then the module tries the C(QUAY_PASSWORD) environment
      variable.
    - If you set I(quay_password), then you also need to set I(quay_username).
    - Mutually exclusive with I(quay_token).
    type: str

quay_username:
    description:
    - The username to use for authenticating against the API.
    - If you do not set the parameter, then the module tries the C(QUAY_USERNAME) environment
      variable.
    - If you set I(quay_username), then you also need to set I(quay_password).
    - Mutually exclusive with I(quay_token).
    type: str

validate_certs:
    aliases:
    - verify_ssl
    default: true
    description:
    - Whether to allow insecure connections to the API.
    - If C(no), then the module does not validate SSL certificates.
    - If you do not set the parameter, then the module tries the C(QUAY_VERIFY_SSL) environment
      variable (C(yes), C(1), and C(True) mean yes, and C(no), C(0), C(False), and no
      value mean no).
    type: bool

only_active_tags:
    default: false
    description:
    - If C(yes), then the module only collects information on tags that have not expired
      and have not been deleted. If C(no), then the module returns information on all
      the tags.
    - You can identify expired and deleted tags (when I(only_active_tags) is C(no)) in
      the returned data by inspecting the C(end_ts) or C(expiration) tag attributes. Those
      attributes provide the expiration or deletion date.
    type: bool

Outputs

tags:
  contains:
    end_ts:
      description:
      - Time in seconds since the epoch of the tag expiration.
      - The module only returns expired tags when the I(only_active_tags) parameter
        is C(no).
      returned: only when an expiration date has been explicitly assigned.
      sample: 1640336040
      type: int
    expiration:
      description: Expiration date and time in a human readable format.
      returned: only when an expiration date has been explicitly assigned.
      sample: Fri, 24 Dec 2021 08:54:00 -0000
      type: str
    last_modified:
      description:
      - Date and time of the last tag modification in a human readable format.
      returned: always
      sample: Thu, 30 Sep 2021 06:10:22 -0000
      type: str
    manifest_digest:
      description:
      - SHA256 digest for the tag.
      - You can use that digest to pull the image instead of using the tag name. For
        example, C(podman pull quay.example.com/production/smallimage@sha256:a8f2...5ea7)
      returned: always
      sample: sha256:a8f231c07da40107543d74ed1e9a1938a004b498377dbefcf29082c7a9e55ea7
      type: str
    name:
      description: Tag identifier.
      returned: always
      sample: 0.1.2
      type: str
    size:
      description: Size of the associated image in bytes.
      returned: always
      sample: 802700
      type: int
    start_ts:
      description: Time in seconds since the epoch of the last tag modification.
      returned: always
      sample: 1632982222
      type: int
  description: List of the tags in the repository.
  elements: dict
  returned: always
  sample:
  - is_manifest_list: false
    last_modified: Thu, 30 Sep 2021 06:10:23 -0000
    manifest_digest: sha256:9ce9...f3c7
    name: 1.33.1
    reversion: false
    size: 784538
    start_ts: 1632982223
  - is_manifest_list: false
    last_modified: Thu, 30 Sep 2021 06:10:22 -0000
    manifest_digest: sha256:9ce9...f3c7
    name: latest
    reversion: false
    size: 784538
    start_ts: 1632982222
  - end_ts: 1640336040
    expiration: Fri, 24 Dec 2021 08:54:00 -0000
    is_manifest_list: false
    last_modified: Thu, 30 Sep 2021 06:10:21 -0000
    manifest_digest: sha256:a8f2...5ea7
    name: 1.34.0
    reversion: false
    size: 802700
    start_ts: 1632982221
  type: list