Corey Hickey
10/23/2025, 10:55 PMgit pull isn't atomic either.
Also, we have multiple servers behind a load balancer, and that can cause issues for non-atomic updates when different servers update at different times: a server with newer code can compile a catalog which specifies a file (via source => 'puppet:///...') which other servers do not yet have.
I think that if I can make the environments idea work, then I can extend that to solve this issue as well. What I would need to do would be to delay the specification of the new environment by the ENC until all servers are expected to have updated.
• When updates are working properly, then all servers will have the new environment ready to serve files before any one server starts using the new environment.
• If a server is failing to update in time, then at least this approach will fail safe: the client will receive a 404 rather than potentially the wrong file content.