linkerd2/multicluster/charts/linkerd2-multicluster
Kevin Leimkuhler f6c8d27d83
Add mulitcluster check command (#5410)
## What

This change moves the `linkerd check --multicluster` functionality under it's
own multicluster subcommand: `linkerd multicluster check`.

There should be no functional changes as a result of this change. `linkerd
check` no longer checks for anything multicluster related and the
`--multicluster` flag has been removed.

## Why

Closes #5208

The bulk of these changes are moving all the multicluster checks from
`pkg/healthcheck` into the multicluster package.

Doing this completely separates it from core Linkerd. It still uses
`pkg/healtcheck` when possible, but anything that is used only by `multicluster
check` has been moved.

**Note the the `kubernetes-api` and `linkerd-existence` checks are run.**

These checks are required for setting up the Linkerd health checker. They set
the health checker's `kubeAPI`, `linkerdConfig`, and `apiClient` fields.

These could be set manually so that the only check the user sees is
`linkerd-multicluster`, but I chose not to do this.

If any of the setting functions errors, it would just tell the user to run
`linkerd check` and ensure the installation is correct. I find the user error
handling to be better by including these required checks since they should be
run in the first place.

## How to test

Installing Linkerd and multicluster should result in a basic check output:

```
$ bin/linkerd install |kubectl apply -f -
..
$ bin/linkerd check
..
$ bin/linkerd multicluster install |kubectl apply -f -
..
$ bin/linkerd multicluster check
kubernetes-api
--------------
√ can initialize the client
√ can query the Kubernetes API

linkerd-existence
-----------------
√ 'linkerd-config' config map exists
√ heartbeat ServiceAccount exist
√ control plane replica sets are ready
√ no unschedulable pods
√ controller pod is running
√ can initialize the client
√ can query the control plane API

linkerd-multicluster
--------------------
√ Link CRD exists


Status check results are √
```

After linking a cluster:

```
$ bin/linkerd multicluster check
kubernetes-api
--------------
√ can initialize the client
√ can query the Kubernetes API

linkerd-existence
-----------------
√ 'linkerd-config' config map exists
√ heartbeat ServiceAccount exist
√ control plane replica sets are ready
√ no unschedulable pods
√ controller pod is running
√ can initialize the client
√ can query the control plane API

linkerd-multicluster
--------------------
√ Link CRD exists
√ Link resources are valid
        * k3d-y
√ remote cluster access credentials are valid
        * k3d-y
√ clusters share trust anchors
        * k3d-y
√ service mirror controller has required permissions
        * k3d-y
√ service mirror controllers are running
        * k3d-y
× all gateway mirrors are healthy
        probe-gateway-k3d-y.linkerd-multicluster mirrored from cluster [k3d-y] has no endpoints
    see https://linkerd.io/checks/#l5d-multicluster-gateways-endpoints for hints

Status check results are ×
```

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>
2020-12-21 15:50:17 -05:00
..
templates Add mulitcluster check command (#5410) 2020-12-21 15:50:17 -05:00
.helmignore extension: Separate multicluster chart and binary (#5293) 2020-12-04 16:36:10 -08:00
Chart.yaml extension: Separate multicluster chart and binary (#5293) 2020-12-04 16:36:10 -08:00
README.md add some missing helm values for multicluster setup (#5346) 2020-12-08 10:27:16 -05:00
README.md.gotmpl extension: Separate multicluster chart and binary (#5293) 2020-12-04 16:36:10 -08:00
values.yaml add some missing helm values for multicluster setup (#5346) 2020-12-08 10:27:16 -05:00

README.md

linkerd2-multicluster

A helm chart containing the resources to support multicluster linking to remote clusters

Version: 0.1.0

AppVersion: edge-XX.X.X

Requirements

Kubernetes: >=1.13.0-0

Values

Key Type Default Description
controllerComponentLabel string "linkerd.io/control-plane-component" Control plane label. Do not edit
createdByAnnotation string "linkerd.io/created-by" Annotation label for the proxy create. Do not edit.
gateway bool true If the gateway component should be installed
gatewayLocalProbePath string "/health-local" The path that will be used by the local liveness checks to ensure the gateway is alive
gatewayLocalProbePort int 8888 The port that will be used by the local liveness checks to ensure the gateway is alive
gatewayName string "linkerd-gateway" The name of the gateway that will be installed
gatewayNginxImage string "nginx" The Nginx image
gatewayNginxImageVersion float 1.17 The version of the Nginx image
gatewayPort int 4143 The port on which all the gateway will accept incoming traffic
gatewayProbePath string "/health" The path that will be used by remote clusters for determining whether the gateway is alive
gatewayProbePort int 4181 The port used for liveliness probing
gatewayProbeSeconds int 3 The interval (in seconds) between liveness probes
gatewayServiceType string "LoadBalancer" Service Type of gateway Service
identityTrustDomain string "cluster.local" Identity Trust Domain of the certificate authority
installNamespace bool true If the namespace should be installed
linkerdNamespace string "linkerd" Namespace of linkerd installation
linkerdVersion string "linkerdVersionValue" Control plane version
namespace string "linkerd-multicluster" Service Mirror component namespace
proxyOutboundPort int 4140 The port on which the proxy accepts outbound traffic
remoteMirrorServiceAccount bool true If the remote mirror service account should be installed
remoteMirrorServiceAccountName string "linkerd-service-mirror-remote-access-default" The name of the service account used to allow remote clusters to mirror local services

Autogenerated from chart metadata using helm-docs v1.4.0