Hi all,

I want to change how Brooklyn populates its catalog at startup. I want it to install the "initial catalog", and then add the items from persisted state.

See the PR at [1].

---
Currently, if there is any persisted state then we ignore the "initial catalog" and use only the persisted state.

However, that causes problems when upgrading Brooklyn. We have to tell the user [2] to start Brooklyn and then to manually add the "initial catalog" by running:

   br catalog add /opt/brooklyn/catalog/catalog.bom

---
One reason we did it that way was in case the user deliberately deleted something from that initial catalog. By relying on only the persisted state, we don't re-add what they removed.

However, that feels like optimising for the wrong thing: we make things harder for everyone (i.e. they all have to run the extra `br catalog add` command on upgrade) in case some people wanted to change what was in the initial catalog.

---
Much longer term, I want to separate out the management and upgrade of the catalog from that of an AMP server. As an enterprise user, when upgrading Brooklyn (e.g. from 0.12.0 to 1.0.0) I would like to get my catalog ready for use with the new version before attempting to start up all my entities. This is particularly important if the catalog contains any Java code compiled against against the old Brooklyn version (especially if it's the user's own custom code). However, that is a much bigger topic that needs more thought. I plan to write up a proposal for that at some point.

Aled

[1] https://github.com/apache/brooklyn-server/pull/852
[1] https://brooklyn.apache.org/v/latest/ops/upgrade.html

Reply via email to