linkerd2/viz/charts/linkerd-viz
Tarun Pothulapati 2087c95dd8
viz: move some components into linkerd-viz (#5340)
* viz: move some components into linkerd-viz

This branch moves the grafana,prometheus,web, tap components
into a new viz chart, following the same extension model that
multi-cluster and jaeger follow.

The components in viz are not injected during install time, and
will go through the injector. The `viz install` does not have any
cli flags to customize the install directly but instead follow the Helm
way of customization by using flags such as 
`set`, `set-string`, `values`, `set-files`.

**Changes Include**
- Move `grafana`, `prometheus`, `web`, `tap` templates into viz extension.
- Remove all add-on related charts, logic and tests w.r.t CLI & Helm.
- Clean up `linkerd2/values.go` & `linkerd2/values.yaml` to not contain
 fields related to viz components.
- Update `linkerd check` Healthchecks to not check for viz components.
- Create a new top level `viz` directory with CLI logic and Helm charts.
- Clean fields in the `viz/Values.yaml` to be in the `<component>.<property>`
model. Ex: `prometheus.resources`, `dashboard.image.tag`, etc so that it is
consistent everywhere.

**Testing**

```bash
# Install the Core Linkerd Installation
./bin/linkerd install | k apply -f -

# Wait for the proxy-injector to be ready
# Install the Viz Extension
./bin/linkerd cli viz install | k apply -f -

# Customized Install
./bin/linkerd cli viz install --set prometheus.enabled=false | k apply -f -
```

What is not included in this PR:
- Move of Controller from core install into the viz extension.
- Simplification and refactoring of the core chart i.e removing `.global`, etc.

Signed-off-by: Tarun Pothulapati <tarunpothulapati@outlook.com>
2020-12-23 20:17:31 +05:30
..
templates viz: move some components into linkerd-viz (#5340) 2020-12-23 20:17:31 +05:30
.helmignore viz: move some components into linkerd-viz (#5340) 2020-12-23 20:17:31 +05:30
Chart.yaml viz: move some components into linkerd-viz (#5340) 2020-12-23 20:17:31 +05:30
README.md viz: move some components into linkerd-viz (#5340) 2020-12-23 20:17:31 +05:30
README.md.gotmpl viz: move some components into linkerd-viz (#5340) 2020-12-23 20:17:31 +05:30
requirements.lock viz: move some components into linkerd-viz (#5340) 2020-12-23 20:17:31 +05:30
requirements.yaml viz: move some components into linkerd-viz (#5340) 2020-12-23 20:17:31 +05:30
values-ha.yaml viz: move some components into linkerd-viz (#5340) 2020-12-23 20:17:31 +05:30
values.yaml viz: move some components into linkerd-viz (#5340) 2020-12-23 20:17:31 +05:30

README.md

linkerd-viz

Linkerd Viz extension contains the observability and visualization components that can be integrated directly.

Version: 0.1.0

AppVersion: edge-XX.X.X

Homepage: https://linkerd.io

Quickstart and documentation

You can run Linkerd on any Kubernetes 1.13+ cluster in a matter of seconds. See the Linkerd Getting Started Guide for how.

For more comprehensive documentation, start with the Linkerd docs.

Prerequisite: Linkerd Core Control-Plane

Before installing the Linkerd Viz extension, The core control-plane has to be installed first by following the Linkerd Install Guide.

Adding Linkerd's Helm repository

# To add the repo for Linkerd2 stable releases:
helm repo add linkerd https://helm.linkerd.io/stable
# To add the repo for Linkerd2 edge releases:
helm repo add linkerd-edge https://helm.linkerd.io/edge

The following instructions use the linkerd repo. For installing an edge release, just replace with linkerd-edge.

Installing the Viz Extension Chart

helm install linkerd/linkerd-viz

Get involved

Requirements

Kubernetes: >=1.13.0-0

Repository Name Version
file://../../../charts/partials partials 0.1.0

Values

Key Type Default Description
clusterDomain string "cluster.local" Kubernetes DNS Domain name to use
createdByAnnotation string "linkerd.io/created-by"
dashboard.UID int 2103
dashboard.enforcedHostRegexp string "" Host header validation regex for the dashboard. See the Linkerd documentation for more information
dashboard.image.name string "ghcr.io/linkerd/web" Docker image name for the web instance
dashboard.image.tag string "linkerdVersionValue" Docker image tag for the web instance
dashboard.logLevel string "info" log level of the dashboard component
dashboard.replicas int 1 Number of replicas of dashboard
dashboard.resources.cpu.limit string nil Maximum amount of CPU units that the web container can use
dashboard.resources.cpu.request string nil Amount of CPU units that the web container requests
dashboard.resources.memory.limit string nil Maximum amount of memory that web container can use
dashboard.resources.memory.request string nil Amount of memory that the web container requests
dashboard.restrictPrivileges bool false Restrict the Linkerd Dashboard's default privileges to disallow Tap and Check
extensionAnnotation string "linkerd.io/extension"
globalLogLevel string "info" Log level for all the viz components
globalUID int 2103 UID for all the viz components
grafana.enabled bool true toggle field to enable or disable grafana
grafana.image.name string "ghcr.io/linkerd/grafana" Docker image name for the grafana instance
grafana.image.tag string "linkerdVersionValue" Docker image tag for the grafana instance
grafana.resources.cpu.limit string nil Maximum amount of CPU units that the grafana container can use
grafana.resources.cpu.request string nil Amount of CPU units that the grafana container requests
grafana.resources.memory.limit string nil Maximum amount of memory that grafana container can use
grafana.resources.memory.request string nil Amount of memory that the grafana container requests
identityTrustDomain string "cluster.local" Trust domain used for identity
imagePullSecrets list [] For Private docker registries, authentication is needed. Registry secrets are applied to the respective service accounts
linkerdNamespace string "linkerd" Namespace of the Linkerd core control-plane install
linkerdVersion string "linkerdVersionValue" control plane version. See Proxy section for proxy version
namespace string "linkerd-viz" Namespace in which the Linkerd Viz extension has to be installed
nodeSelector object {"beta.kubernetes.io/os":"linux"} NodeSelector section, See the K8S documentation for more information
prometheus.alertManagers string nil Alertmanager instances the Prometheus server sends alerts to configured via the static_configs parameter.
prometheus.alertRelabelConfigs string nil Alert relabeling is applied to alerts before they are sent to the Alertmanager.
prometheus.args object {"config.file":"/etc/prometheus/prometheus.yml","log.level":"info","storage.tsdb.path":"/data","storage.tsdb.retention.time":"6h"} Command line options for Prometheus binary
prometheus.enabled bool true toggle field to enable or disable prometheus
prometheus.globalConfig object {"evaluation_interval":"10s","scrape_interval":"10s","scrape_timeout":"10s"} The global configuration specifies parameters that are valid in all other configuration contexts.
prometheus.image.name string "prom/prometheus" Docker image name for the prometheus instance
prometheus.image.pullPolicy string "Always"
prometheus.image.tag string "v2.19.3" Docker image tag for the prometheus instance
prometheus.remoteWrite string nil Allows transparently sending samples to an endpoint. Mostly used for long term storage.
prometheus.resources.cpu.limit string nil Maximum amount of CPU units that the prometheus container can use
prometheus.resources.cpu.request string nil Amount of CPU units that the prometheus container requests
prometheus.resources.memory.limit string nil Maximum amount of memory that prometheus container can use
prometheus.resources.memory.request string nil Amount of memory that the prometheus container requests
prometheus.ruleConfigMapMounts string nil Alerting/recording rule ConfigMap mounts (sub-path names must end in ´_rules.yml´ or ´_rules.yaml´)
prometheus.scrapeConfigs string nil A scrapeConfigs section specifies a set of targets and parameters describing how to scrape them.
prometheus.sideCarContainers string nil A sidecarContainers section specifies a list of secondary containers to run in the prometheus pod e.g. to export data to non-prometheus systems
proxyInjectAnnotation string "linkerd.io/inject"
tap.UID int 2103
tap.caBundle string "" Bundle of CA certificates for Tap component. If not provided then Helm will use the certificate generated for tap.crtPEM. If tap.externalSecret is set to true, this value must be set, as no certificate will be generated.
tap.crtPEM string "" Certificate for the Tap component. If not provided then Helm will generate one.
tap.externalSecret bool false Do not create a secret resource for the Tap component. If this is set to true, the value tap.caBundle must be set (see below).
tap.image.name string "ghcr.io/linkerd/controller" Docker image name for the grafana instance
tap.image.tag string "linkerdVersionValue" Docker image tag for the grafana instance
tap.keyPEM string "" Certificate key for Tap component. If not provided then Helm will generate one.
tap.logLevel string "info" log level of the tap component
tap.replicas int 1
tap.resources.cpu.limit string nil Maximum amount of CPU units that the tap container can use
tap.resources.cpu.request string nil Amount of CPU units that the tap container requests
tap.resources.memory.limit string nil Maximum amount of memory that tap container can use
tap.resources.memory.request string nil Amount of memory that the tap container requests

Autogenerated from chart metadata using helm-docs v1.4.0