Added support for custom registries in the linkerd-viz helm chart (#5454)

Split the image `name` field in `viz/charts/linkerd-viz/values.yaml` into `name` and `registry` to support custom registries. Changed the template files accordingly.

Just like other values, the registry can now be configured via CLI via the `--set-*` flags.

Fixes #5430

Signed-off-by: Jimil Desai <jimildesai42@gmail.com>
This commit is contained in:
Jimil Desai 2021-01-06 22:06:02 +05:30 committed by GitHub
parent a0e51fdfb5
commit 206b349933
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 32 additions and 16 deletions

View File

@ -75,7 +75,8 @@ Kubernetes: `>=1.13.0-0`
| createdByAnnotation | string | `"linkerd.io/created-by"` | |
| dashboard.UID | int | `2103` | |
| dashboard.enforcedHostRegexp | string | `""` | Host header validation regex for the dashboard. See the [Linkerd documentation](https://linkerd.io/2/tasks/exposing-dashboard) for more information |
| dashboard.image.name | string | `"ghcr.io/linkerd/web"` | Docker image name for the web instance |
| dashboard.image.name | string | `"web"` | Docker image name for the web instance |
| dashboard.image.registry | string | `"ghcr.io/linkerd"` | Docker registry 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 |
@ -84,11 +85,13 @@ Kubernetes: `>=1.13.0-0`
| 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 |
| defaultRegistry | string | `"ghcr.io/linkerd"` | Default Docker Registry |
| 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.name | string | `"grafana"` | Docker image name for the grafana instance |
| grafana.image.registry | string | `"ghcr.io/linkerd"` | Docker registry 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 |
@ -105,8 +108,9 @@ Kubernetes: `>=1.13.0-0`
| 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.name | string | `"prometheus"` | Docker image name for the prometheus instance |
| prometheus.image.pullPolicy | string | `"Always"` | |
| prometheus.image.registry | string | `"prom"` | Docker registry for the prometheus instance |
| 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 |
@ -121,8 +125,9 @@ Kubernetes: `>=1.13.0-0`
| 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.image.name | string | `"controller"` | Docker image name for the tap instance |
| tap.image.registry | string | `"ghcr.io/linkerd"` | Docker registry for the tap instance |
| tap.image.tag | string | `"linkerdVersionValue"` | Docker image tag for the tap 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` | |

View File

@ -127,7 +127,7 @@ spec:
# see https://github.com/grafana/grafana/issues/20096
- name: GODEBUG
value: netdns=go
image: {{.Values.grafana.image.name}}:{{ default (default .Values.linkerdVersion .Values.controllerImageVersion) .Values.grafana.image.tag}}
image: {{.Values.grafana.image.registry}}/{{.Values.grafana.image.name}}:{{ default (default .Values.linkerdVersion .Values.controllerImageVersion) .Values.grafana.image.tag}}
imagePullPolicy: {{.Values.imagePullPolicy}}
livenessProbe:
httpGet:

View File

@ -242,7 +242,7 @@ spec:
{{- range $key, $value := .Values.prometheus.args}}
- --{{ $key }}{{ if $value }}={{ $value }}{{ end }}
{{- end }}
image: {{.Values.prometheus.image.name}}:{{.Values.prometheus.image.tag}}
image: {{.Values.prometheus.image.registry}}/{{.Values.prometheus.image.name}}:{{.Values.prometheus.image.tag}}
imagePullPolicy: {{.Values.prometheus.imagepullPolicy}}
livenessProbe:
httpGet:

View File

@ -81,7 +81,7 @@ spec:
- -controller-namespace={{.Values.linkerdNamespace}}
- -log-level={{.Values.tap.logLevel}}
- -identity-trust-domain={{.Values.identityTrustDomain}}
image: {{.Values.tap.image.name}}:{{ default (default .Values.linkerdVersion .Values.controllerImageVersion) .Values.tap.image.tag}}
image: {{.Values.tap.image.registry}}/{{.Values.tap.image.name}}:{{ default (default .Values.linkerdVersion .Values.controllerImageVersion) .Values.tap.image.tag}}
imagePullPolicy: {{.Values.tap.image.pullPolicy}}
livenessProbe:
httpGet:

View File

@ -84,7 +84,7 @@ spec:
{{- $hostAbbrev := replace "." "\\." (printf "linkerd-web.%s.svc" .Values.namespace) }}
- -enforced-host=^(localhost|127\.0\.0\.1|{{ $hostFull }}|{{ $hostAbbrev }}|\[::1\])(:\d+)?$
{{- end}}
image: {{.Values.dashboard.image.name}}:{{ default (default .Values.linkerdVersion .Values.controllerImageVersion) .Values.dashboard.image.tag}}
image: {{.Values.dashboard.image.registry}}/{{.Values.dashboard.image.name}}:{{ default (default .Values.linkerdVersion .Values.controllerImageVersion) .Values.dashboard.image.tag}}
imagePullPolicy: {{.Values.dashboard.image.pullPolicy}}
livenessProbe:
httpGet:

View File

@ -7,6 +7,9 @@
# -- control plane version. See Proxy section for proxy version
linkerdVersion: &linkerd_version linkerdVersionValue
# -- Default Docker Registry
defaultRegistry: &default_registry ghcr.io/linkerd
# -- Kubernetes DNS Domain name to use
clusterDomain: &cluster_domain cluster.local
@ -59,9 +62,11 @@ tap:
# -- log level of the tap component
logLevel: *log_level
image:
# -- Docker image name for the grafana instance
name: ghcr.io/linkerd/controller
# -- Docker image tag for the grafana instance
# -- Docker registry for the tap instance
registry: *default_registry
# -- Docker image name for the tap instance
name: controller
# -- Docker image tag for the tap instance
tag: *linkerd_version
# -- 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).
@ -101,8 +106,10 @@ dashboard:
# -- log level of the dashboard component
logLevel: *log_level
image:
# -- Docker registry for the web instance
registry: *default_registry
# -- Docker image name for the web instance
name: ghcr.io/linkerd/web
name: web
# -- Docker image tag for the web instance
tag: *linkerd_version
@ -132,8 +139,10 @@ grafana:
# -- toggle field to enable or disable grafana
enabled: true
image:
# -- Docker registry for the grafana instance
registry: *default_registry
# -- Docker image name for the grafana instance
name: ghcr.io/linkerd/grafana
name: grafana
# -- Docker image tag for the grafana instance
tag: *linkerd_version
@ -153,8 +162,10 @@ prometheus:
# -- toggle field to enable or disable prometheus
enabled: true
image:
# -- Docker registry for the prometheus instance
registry: prom
# -- Docker image name for the prometheus instance
name: prom/prometheus
name: prometheus
# -- Docker image tag for the prometheus instance
tag: v2.19.3
# == Pull policy for the prometheus instance