It is possible for the Nix expressions defining the Charon network to change between the first and second evaluation, for instance if you edit the expressions while running "charon deploy" in the background. Example scenario (which happened to me):
Run "charon deploy".
"charon deploy" performs the first evaluation to get the deployment parameters.
At the same time edit the network.nix to add a new EBS volume to the definition.
"charon deploy" performs the second evaluation to build and deploy /etc/fstab, mountall.conf and so on.
The configuration activated on the EC2 machine now refers to an EBS volume that doesn't exist.
Kinda tricky to prevent this. We could at least check after the second evaluation that the timestamps on the network expressions haven't changed.
This would be kinda hacky, but we could just open the nix expressions once and pass "/proc/{charon-pid}/fds/{expr-fd}" to nix invocations... Or write python bindings to nix :)
It is possible for the Nix expressions defining the Charon network to change between the first and second evaluation, for instance if you edit the expressions while running "charon deploy" in the background. Example scenario (which happened to me):
Kinda tricky to prevent this. We could at least check after the second evaluation that the timestamps on the network expressions haven't changed.