Open amirbenun opened 2 years ago
example for the agent manifest flyout when adding the Kubernetes
integration:
I think that the deployment method shouldn't be decided in package definitions. Any integration could be deployed on different platforms. It doesn't depend on the package.
For example it would be possible to monitor a Kubernetes cluster from outside of it if access to the API and/or the metrics service is available. It is also possible to install any integration on agents deployed in Kubernetes, even if the Kubernetes integration is not used.
I think it'd be better to have the different methods available in the "Add agent" UI, so the user can select which one to use.
Pinging @elastic/fleet for their thoughts.
TL;DR Kibana holds hard-coded integration names, for them, it provides different deployment instructions than the default.
Problem description: When a user installs an elastic-agent using an existing agent-policy, Kibana provides you with some instructions on how it will be best to deploy the agent on any one of the platforms "Linux", "mac", "windows", "RPM" and "DEB". When installing "Kubernetes" integration on your agent-policy Kibana shows instead a daemonset yaml file that can be installed on your K8s cluster. Behind the scenes, Kibana checks if the integration name is "Kubernetes" and based on that it decides what deployment instructions the user should get. It means that a new integration that should use the same daemonset template will have to modify Kibana's hard-coded integration names that should get the K8s instructions.
Alternatives suggestions: (1) Add an optional field "Deployment instruction template" an enum that holds one of "Kubernetes" or "default" (by default Kibana shows "Linux", "mac", "windows", "RPM" or "DEB").
or
(2) Add an optional field "Deployment instruction templates", an array that holds some of the following: "Kubernetes" "Linux", "mac", "windows", "RPM" or "DEB".
In both cases, Kibana will provide the deployment instructions based on a field that comes from the integration itself.