1

We are using deployments for our IoT devices and managing these using deployment templates. I am in the process of migrating our deployments to a layered approach, where we use a base deployment with all required containers and then apply a layer that is dependent on the type of product.

I have noticed that a layer does not get re-applied when changing the base deployment. Notice the bad crop, but it says 3 devices are targeted but it does not get applied to them after having updated the base deployment: enter image description here

And when re-applying the layer after having changed the deployment, everything works as it should. enter image description here

Just because I change my base deployment, I don't want to drop the containers defined in the layer.

The documentation on layered deployments says nothing about this, and I can reproduce this consistently.

What is the intended behavior? Doesn't this break the purpose of layered deployments?

I have also noticed that our stack becomes extremely slow when using layered deployments. Rolling back to a "monolithic" deployment template for each product and everything is snappy again. We are using routes in the edgeHub, and some of these routes point to a container that is deployed as a layer. Don't know if that is an issue, but it is still very slow even after this container has been deployed. The system works, but with extreme delays.

jokarl
  • 1,913
  • 2
  • 24
  • 52

1 Answers1

1

The documentation I linked clearly states:

Any layered deployments targeting a device must have a higher priority than the automatic deployment for that device.

So now the automatic deployment has priority 0 and the layers have priority 1 and it all works.

jokarl
  • 1,913
  • 2
  • 24
  • 52
  • How do you create a layered deployment? By Simply assigning a higher priority to the deployment? – nlv Jul 27 '22 at 15:50
  • @nlv `az iot edge deployment create` has a `--layered` parameter that you need to specify to create a layered deployment. – ChrisWue Jul 27 '22 at 23:26