Closed sk4zuzu closed 3 years ago
To clarify this one is about preparing some Kafka solution for very old releases of Epiphany :). For customers that do not want or it's not easy for them to upgrade to newer versions.
In my opinion there are 3 separate spikes "secretly" coded in the description:
At first sight, they seem to be connected with each other, however I think they aim for 3 different things. Shouldn't we just check the easiest way for introducing kafka on legacy clusters?
This one probably depends on #1976
As I described in this comment, we still have to investigate a lot related to the Kafka module. All things related to modules including comparison with Kafka component of epicli will be done in the scope of #1976 and other tasks that will be created after #1976 is done.
This task is only about selective upgrades for epicli, Kafka component. At the moment we upgrade all components by a single run even not asking (specifying) target components. It also needs to be checked if Kafka supports upgrades from any version to any other version. If it requires incremental upgrades between versions, it have to be taken into account.
@ar3ndt We urgently need these fixes:
Instead of the condition when: ('"kafka" in upgrade_components') or upgrade_components|length == 0
the condition when: "'kafka' in upgrade_components or upgrade_components|length == 0"
seems to work fine.
The first condition always returns true (thanks @to-bar for debugging this together).
Moving this task back to TODO.
1, 2, 3 Fixed.
User can run the upgrade command with an optional argument --upgrade-components
providing the list of components to be updated.
Running the command without this argument will update all components.
Description
In this spike we want to consider an option with selective Kafka upgrades by Epicli.
It should be relatively simple (likely requires no changes in upgrade procedures themselves) to refactor Epiphany upgrades and make it possible for the user to control what components will be upgraded. That may bring value not only to users with legacy clusters but also to the process of testing.
All the topics related to the Kafka module will be done separately and covered by #1976 task and tasks that will be created as a result of #1976.
Additional information
The original task contained additional options related to Kafka module, but to avoid dependencies and clarify a single topic per task, these options are not covered here: