-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support package deprecation #227
Comments
There is a similar thread started here: #192 , but I guess we need a more formal design (nothing adhoc). |
It'd be nice to have some metadata for the deprecation, so maybe the UIs can provide a better experience to users. Without explicit metadata it may be difficult for Kibana to show something meaningful to users unless they explicitly check the titles or descriptions package by package. If explicit metadata exists, Kibana may warn the user about needed actions as soon as it discovers that an installed package is deprecated. For example having something like this in the manifest could indicate the user what to do, even providing links to the new packages or even eventually providing automatic migrations.
If done at the data stream level, and assuming a compatible configuration, it might be easier to provide an automated migration path. With the following information at some point kibana could know how to automatically upgrade from the old microsoft.dhcp datastream to the new microsoft_dhcp.log:
For packages (or data streams) that are just discontinued:
|
I like this approach. It's consistent with the "skip" structure for system tests: https://github.com/elastic/integrations/blob/153945daf72d6ef0f6fce53346daf0e4ef9b1753/packages/aws/data_stream/ec2_metrics/_dev/test/system/test-default-config.yml#L1 |
Could we also add a new reason like "Going to be deprecated soon" if it is linked to a product that will soon be EOL for example? |
Umm, thinking about this, I think that we should consider a package or data stream marked as deprecated as "Going to be unsupported and/or unmaintained soon because of If the deprecation is caused because the monitored product is going to be EOL, we can use the
There may be the case where a package is deprecated because is going to be reimplemented, but the replacement doesn't exist yet, or there is no automatic migration path, in that case I think that it would be ok to don't declare a replacement, just:
This could be understood as: "the data stream is going to be removed, a new implementation will be provided but it is not ready yet". A message like this could be literally shown to a new user as a warning when configuring a policy with this data stream. @jlind23 would these definitions cover your use case? |
@jsoriano perfectly indeed! Another question that we should ask to @akshay-saraswat:
|
I would leave this for a future discussion. In general I think that it is not nice to remove published versions (apart of removing harmful or illegal content), but we may consider a clean up policy for practical reasons. |
One core feature related to this needed in Fleet is that even if a package is removed from the registry, Kibana will still keep working assuming the package was installed before. The package cannot be upgraded anymore or reinstalled, but things keep working. Ideally Fleet would know from which registry it was installed and can indicate, that the package does not exists anymore in the remote registry. |
As a follow up, we likely have to expand the deprecation discussion to more granular parts which could be deprecated:
Each likely needs its own story on how it can be deprecated. Ideally we provide framework and guideline for each. Especially around fields discussions are already happening in various places. |
As an integration policy, do you mean a policy template? In terms of spec changes, it should be relatively easy. Changes in data streams and packages can be quick wins, as they both contain manifests. We can augment these files with a special "deprecation" structure. I don't have any preference regarding Kibana/Fleet behavior. I guess we could redirect users of one package to another? or just suggest it to them? |
@mtojek Yes, policy templates. Should we discuss each of these topics in a separate issue as some might need work in Fleet, others don't and we can close one by one. |
Hi there, our team may have a use case for deprecated inputs. The packages for the stack components (elasticsearch/kibana/logstash) currently have two inputs, one for metrics collection via a metricbeat module and one for logs. The metricbeat collection will eventually be superseded by a new approach that uses different metrics schema, assets and collection method, while the logs collection remains the same. When the new data streams are ready the package would allow a transition period where both metrics collection are available, with the metricbeat one marked as deprecated. Does that sound like a valid use case ? |
This sounds like a valid use case for this, yes 👍 I guess that in this case it would be nice to mark the input as deprecated as soon as the other one is ready, with a |
It's possible that the replacement won't be an elastic-agent input that collects the metrics, but a push-based model where the stack components would send metrics to apm server. The package would only be a shell for the assets in that case. What we could use is a dependency relationship with another package. If the new metrics collection needs another package to be setup, do we currently have a way to surface that ? |
Ah yes, then a single comment that is displayed to users may be enough.
We don't have support for any dependencies between packages at the moment. |
The need for package deprecation appeared again in elastic/integrations#3262 (comment). |
With 8.x.x we may want to deprecate some package or data streams and create new alternatives. We need to discuss many things around, including publishing and installation rules of deprecated policies and "deprecated" captions.
The text was updated successfully, but these errors were encountered: