coming from a software development background, I decided to set up a proper CI/CD (continous integration / continous delivery) pipeline based on two environments: one docker based HA installation for development/testing and one for production (running on a different machine).
Getting a pipeline set up should not be an issue and I found several topics in this forum to get me started. What I am missing however is the concept of having two separate environments: yes, I can set up a development environment where I can test out changes to
configuration.yaml and yaml based lovelace dashboards. These changes I can commit and using my pipeline, get them checked and deployed into my production environments.
The main challenge for me is changes to my production environment through configuration in the web UI. Since there do not end up in my yaml, my develoment environment does not reflect my real configuration. What approach are you using? Some kind of back-up / restore mechanism to first pull in the current changes from production into development? Or could I solve it through git by tracking addional files? Ideally in this case I would never make changes to production directly but work in development and then push those changes to production.
What works best for you? Is having a development environment a practical approach in the first place?
Alternatively, I am thinking of using only one environment tracked by git so that I could at least do some config validation through my pipeline and get versioning in case something went wrong.
Curious to learn about what’s working for you