Skip to content

The ironic-ipa-downloader script fails when the ironic pod restarts #77

@sprat

Description

@sprat

When our provisioning Kubernetes server reboots, the ironic pod is restarted. However, after the restart, the ironic ipa downloader script fails, so the pod don't restart properly.

We currently use this image: quay.io/metal3-io/ironic-ipa-downloader@sha256:e5bc96fc6f26145cad608554e97fb401eb335e45bc509fc5a176e1ccfb64e463

I've collected the failure.log log, and also a success.log log.

When the pod restarts, some files are already present in the /shared directory. Here is a listing.

After looking at the bash script in order the find the problem:

  1. I think I don't understand the logic between the cache and IPA base URI. To me, the CACHEURL variable is the location where to find the final images we install on the hosts, and IPA_BASE_URI is the location where to find the IPA image. So I don't understand why the CACHEURL is used in this script. In my case, both variables have the same value because my IPA image is stored on the same "server" as the OS images we install.
  2. It seems that they are some mismatches for the IPA image directory name computation: sometimes the directory is computed with ${FILENAME_NO_EXT}-${ETAG} (e.g. https://github.com/metal3-io/ironic-ipa-downloader/blob/main/get-resource.sh#L75), sometimes with ${FILENAME}-${ETAG} (e.g. https://github.com/metal3-io/ironic-ipa-downloader/blob/main/get-resource.sh#L91).
  3. https://github.com/metal3-io/ironic-ipa-downloader/blob/main/get-resource.sh#L69: the cp command never executes, I don't understand under which condition it could execute

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageIndicates an issue lacks a `triage/foo` label and requires one.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions