Deploy Elasticsearch into Kubernetes cluster as managed application
Part of Auto DevOps https://gitlab.com/gitlab-org/gitlab-ce/issues/35712 Auto log automatically gathers and searches the logs of applications that are deployed with GitLab. Just like our Prometheus monitoring, logging can be deployed per application, this way we can easily scale it to millions of applications. Proposal: Since Elasticsearch is the leading tool in the indestry for aggregating logs We should auto-deploy Elasticdearch as a managed app into a Kubernetes cluster How will we ship logs into Elasticsearch? * `Filebeat` vs `FluentD` FluentD is a cloud-native standard however I suspect that its better for us to use Filebeat instead of FluentD for the following reason: * Filebeat is much lighter than FluentD (which is more of an ETL tool than a simple shipper) * Support and maintained by Elastic * Uses the Elastic Common Schema format which will be helpful when we would like to conduct our logs/metrics/traces correlations ### Open questions? 1. How much should we help with tuning and maintaining the Elastic Search installation? 1. Does logging need different tuning than search? ### Current WIP proposal: Before introducing search, we need to allow for the installation of a system that aggregates the logs. That will be the focus of the work in this issue for the short-term. Search will be addressed as part of a follow-up issue: https://gitlab.com/gitlab-org/gitlab/issues/31621 ### UI Updates required as part of this issue: 1. Introduce an "all pods" option on the pod selection dropdown: ![pod-logs](/uploads/930243cd3c9f2f42e5666997be5b1977/pod-logs.png) 2. If a user selects the "all pods" view, they will see the time stamp, the pod name and the log entry. If possible, these pieces of information will be color-coded to allow for quicker parsing of the aggregated logs. Since syntax highlighting is a [user preference](https://gitlab.com/help/user/profile/preferences#syntax-highlighting-theme), ideally we would utilize the user's selected syntax highlighting theme and apply it to the logs, as well. For reference, the yellow shown below is `ffd866`: ![pod-logs-mono-s](/uploads/dbb70bdd5f4115c2847cc27dc90bc91d/pod-logs-mono-s.png)
epic