gateway-api-integrator-docs-charm-architecture

In my testing of another charm, I found that it’s typically a good idea to observe upgrade-charm whenever start is observed.

That way, the new version of the charm doesn’t have to rely on the older version to have had done everything just right. That is, if a bug is one day discovered and a charm is in a bad state, upgrading it to the fixed version solves the problem without additional intervention.

In other words, I tend to treat charm upgrade same as fresh install.

In the case of your charm, config-changed is already observed, and that’s guaranteed to fire before start and after upgrade-charm, respectively, thus, strictly speaking upgrade-charm is redundant, and start is redundant.

On the other hand, explicit is better than implicit, and I observe both start and upgrade-charm.