container registry deployment manifest fails to pull from ACR

Omar Navarro 331 Reputation points
2022-12-09T18:59:06.907+00:00

When applying the command

az iot edge set-modules

Edge fails to pull the containers from an Azure Container Registry. Credentials are indeed provided in the Deployment Manifest Json to access the registry.

Azure IoT Edge
Azure IoT Edge
An Azure service that is used to deploy cloud workloads to run on internet of things (IoT) edge devices via standard containers.
599 questions
Azure Container Registry
Azure Container Registry
An Azure service that provides a registry of Docker and Open Container Initiative images.
511 questions
Azure IoT Hub
Azure IoT Hub
An Azure service that enables bidirectional communication between internet of things (IoT) devices and applications.
1,274 questions
{count} votes

2 answers

Sort by: Most helpful
  1. Sander van de Velde | MVP 36,776 Reputation points MVP Volunteer Moderator
    2022-12-11T23:36:29.7+00:00

    Hello @Omar Navarro ,

    you are using the AZ CLI command to set edge modules on a single device.

    You need to provide a deployment manifest because the expected Modules content is json and in the form of {"modulesContent":{...}} or {"content":{"modulesContent":{...}}}.

    A number of issues could happen, but I expect something wrong prevents pulling modules.

    Can you try side-loading the modules by hand on the device?

    Note: Access to a private registry has to be provided to the docker CLI tooling.

    This indicates that Moby/Docker can access the container registry (or network issues or firewall issues).

    ----------

    If the response helped, do "Accept Answer". If it doesn't work, please let us know the progress. All community members with similar issues will benefit by doing so. Your contribution is highly appreciated.

    0 comments No comments

  2. AshokPeddakotla-MSFT 35,976 Reputation points Moderator
    2023-03-02T02:11:51.16+00:00

    @Omar Navarro We have not heard back from you on this.

    If you are still blocked, in addition to the above suggestions, please also try the following.

    Edge fails to pull the containers from an Azure Container Registry. Credentials are indeed provided in the Deployment Manifest Json to access the registry.

    Are you following any documentation for the steps? If not, check Deploy a connected registry to an IoT Edge device and see if you are missing any steps.

    1. Ensure that the Azure Container Registry is accessible from the device running the az iot edge set-modules command. You can test connectivity by running the docker login command with the same credentials used in the deployment manifest JSON.
    2. Check if the IoT Edge device is able to connect to the Azure Container Registry. You can try to pull the image manually using the docker pull command on the IoT Edge device to see if it is able to connect to the registry
    3. Check that the device running the az iot edge set-modules command has the necessary network connectivity to the Azure Container Registry. This may involve configuring firewall rules or network security groups to allow outbound traffic to the Azure Container Registry.
    4. Make sure that the image name and tag in the deployment manifest JSON match the image name and tag in the Azure Container Registry.
    5. Check the logs of the Edge agent running on the device for any errors related to pulling the container from the Azure Container Registry. You can view the Edge agent logs by running the command docker logs -f edgeAgent.

    Hope this helps.

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.