mirror of https://git.rancher.io/charts
Port over istio 1.9.600 and rancher-webhook 0.1.100+up0.1.1
parent
7ca85d8817
commit
d832d0e0c2
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,21 @@
|
|||
annotations:
|
||||
catalog.cattle.io/auto-install: rancher-kiali-server-crd=1.32.100
|
||||
catalog.cattle.io/certified: rancher
|
||||
catalog.cattle.io/display-name: Istio
|
||||
catalog.cattle.io/namespace: istio-system
|
||||
catalog.cattle.io/os: linux
|
||||
catalog.cattle.io/provides-gvr: networking.istio.io.virtualservice/v1beta1
|
||||
catalog.cattle.io/release-name: rancher-istio
|
||||
catalog.cattle.io/requests-cpu: 710m
|
||||
catalog.cattle.io/requests-memory: 2314Mi
|
||||
catalog.cattle.io/ui-component: istio
|
||||
apiVersion: v1
|
||||
appVersion: 1.9.6
|
||||
description: A basic Istio setup that installs with the istioctl. Refer to https://istio.io/latest/
|
||||
for details.
|
||||
icon: https://charts.rancher.io/assets/logos/istio.svg
|
||||
keywords:
|
||||
- networking
|
||||
- infrastructure
|
||||
name: rancher-istio
|
||||
version: 1.9.600
|
|
@ -0,0 +1,69 @@
|
|||
# Rancher Istio Installers
|
||||
|
||||
A Rancher created chart that packages the istioctl binary to install via a helm chart.
|
||||
|
||||
# Installation Requirements
|
||||
|
||||
## Chart Dependencies
|
||||
- rancher-kiali-server-crd chart
|
||||
|
||||
# Uninstallation Requirements
|
||||
To ensure rancher-istio uninstalls correctly, you must uninstall rancher-istio prior to uninstalling chart dependencies (see installation requirements for chart dependencies). This is because all definitions need to be available in order to properly build the rancher-istio objects for removal.
|
||||
|
||||
If you remove dependent CRD charts prior to removing rancher-istio, you may encounter the following error::
|
||||
|
||||
`Error: uninstallation completed with 1 error(s): unable to build kubernetes objects for delete: unable to recognize "": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"`
|
||||
|
||||
# Addons
|
||||
|
||||
## Kiali
|
||||
|
||||
Kiali allows you to view and manage your istio-based service mesh through an easy to use dashboard.
|
||||
|
||||
#### Dependencies
|
||||
- rancher-monitoring chart or other Prometheus installation
|
||||
|
||||
This dependecy installs the required CRDs for installing Kiali. Since Kiali is bundled in with Istio in this chart, if you do not have these dependencies installed, your Istio installation will fail. If you do not plan on using Kiali, set `kiali.enabled=false` when installing Istio for a succesful installation.
|
||||
|
||||
> **Note:** The following configuration options assume you have installed the dependecies for Kiali. Please ensure you have Promtheus in your cluster before proceeding.
|
||||
|
||||
The Monitoring app sets `prometheus.prometheusSpec.ignoreNamespaceSelectors=false` which means all namespaces will be scraped by Prometheus by default. This ensures you can view traffic, metrics and graphs for resources deployed in other namespaces.
|
||||
|
||||
To limit scraping to specific namespaces, set `prometheus.prometheusSpec.ignoreNamespaceSelectors=true` and add one of the following configurations to ensure you can continue to view traffic, metrics and graphs for your deployed resources.
|
||||
|
||||
1. Add a Service Monitor or Pod Monitor in the namespace with the targets you want to scrape.
|
||||
1. Add an additionalScrapeConfig to your rancher-monitoring instance to scrape all targets in all namespaces.
|
||||
|
||||
#### External Services
|
||||
|
||||
##### Prometheus
|
||||
The `kiali.external_services.prometheus` url is set in the values.yaml:
|
||||
```
|
||||
http://{{ .Values.nameOverride }}-prometheus.{{ .Values.namespaceOverride }}.svc:{{ prometheus.service.port }}
|
||||
```
|
||||
The url depends on the default values for `nameOverride`, `namespaceOverride`, and `prometheus.service.port` being set in your rancher-monitoring or other monitoring instance.
|
||||
|
||||
##### Grafana
|
||||
The `kiali.external_services.grafana` url is set in the values.yaml:
|
||||
```
|
||||
http://{{ .Values.nameOverride }}-grafana.{{ .Values.namespaceOverride }}.svc:{{ grafana.service.port }}
|
||||
```
|
||||
The url depends on the default values for `nameOverride`, `namespaceOverride`, and `grafana.service.port` being set in your rancher-monitoring or other monitoring instance.
|
||||
|
||||
##### Tracing
|
||||
The `kiali.external_services.tracing` url and `.Values.tracing.contextPath` is set in the rancher-istio values.yaml:
|
||||
```
|
||||
http://tracing.{{ .Values.namespaceOverride }}.svc:{{ .Values.service.externalPort }}/{{ .Values.tracing.contextPath }}
|
||||
```
|
||||
The url depends on the default values for `namespaceOverride`, and `.Values.service.externalPort` being set in your rancher-tracing or other tracing instance.
|
||||
|
||||
## Jaeger
|
||||
|
||||
Jaeger allows you to trace and monitor distributed microservices.
|
||||
|
||||
> **Note:** This addon is using the all-in-one Jaeger installation which is not qualified for production. Use the [Jaeger Tracing](https://www.jaegertracing.io/docs/1.21/getting-started/) documentation to determine which installation you will need for your production needs.
|
||||
|
||||
# Installation
|
||||
```
|
||||
helm install rancher-istio . --create-namespace -n istio-system
|
||||
```
|
|
@ -0,0 +1,45 @@
|
|||
# Rancher Istio
|
||||
|
||||
Our [Istio](https://istio.io/) installer wraps the istioctl binary commands in a handy helm chart, including an overlay file option to allow complex customization. It also includes:
|
||||
* **[Kiali](https://kiali.io/)**: Used for graphing traffic flow throughout the mesh
|
||||
* **[Jaeger](https://www.jaegertracing.io/)**: A quick start, all-in-one installation used for tracing distributed systemm. This is not production qualified, please refer to jaeger documentation to determine which installation you may need instead.
|
||||
|
||||
### Dependencies
|
||||
|
||||
**Rancher Monitoring or other Prometheus installation**
|
||||
|
||||
The Prometheus CRDs are required for installing Kiali which is enabled by default. If you do not have Prometheus installed your Istio installation will fail. If you do not plan on using Kiali, set `kiali.enabled=false` to bypass this requirement.
|
||||
|
||||
### Customization
|
||||
|
||||
**Rancher Monitoring**
|
||||
|
||||
The Rancher Monitoring app sets `prometheus.prometheusSpec.ignoreNamespaceSelectors=false` which means all namespaces will be scraped by Prometheus by default. This ensures you can view traffic, metrics and graphs for resources deployed in other namespaces.
|
||||
|
||||
To limit scraping to specific namespaces, set `prometheus.prometheusSpec.ignoreNamespaceSelectors=true` and add one of the following configurations to ensure you can continue to view traffic, metrics and graphs for your deployed resources.
|
||||
|
||||
1. Add a Service Monitor or Pod Monitor in the namespace with the targets you want to scrape.
|
||||
1. Add an additionalScrapeConfig to your rancher-monitoring instance to scrape all targets in all namespaces.
|
||||
|
||||
**Custom Prometheus Installation with Kiali**
|
||||
|
||||
To use a custom Monitoring installation, set the `kiali.external_services.prometheus` url in the values.yaml. This url depends on the values for `nameOverride`, `namespaceOverride`, and `prometheus.service.port` in your rancher-monitoring or other monitoring instance:
|
||||
```
|
||||
http://{{ .Values.nameOverride }}-prometheus.{{ .Values.namespaceOverride }}.svc:{{ prometheus.service.port }}
|
||||
```
|
||||
**Custom Grafana Installation with Kiali**
|
||||
|
||||
To use a custom Grafana installation, set the `kiali.external_services.grafana` url in the values.yaml. This url depends on the values for `nameOverride`, `namespaceOverride`, and `granfa.service.port` in your rancher-monitoring or other grafana instance:
|
||||
```
|
||||
http://{{ .Values.nameOverride }}-grafana.{{ .Values.namespaceOverride }}.svc:{{ grafana.service.port }}
|
||||
```
|
||||
**Custom Tracing Installation with Kiali**
|
||||
|
||||
To use a custom Tracing installation, set the `kiali.external_services.tracing` url and update the `.Values.tracing.contextPath` in the rancher-istio values.yaml.
|
||||
|
||||
This url depends on the values for `namespaceOverride`, and `.Values.service.externalPort` in your rancher-tracing or other tracing instance.:
|
||||
```
|
||||
http://tracing.{{ .Values.namespaceOverride }}.svc:{{ .Values.service.externalPort }}/{{ .Values.tracing.contextPath }}
|
||||
```
|
||||
|
||||
For more information on how to use the feature, refer to our [docs](https://rancher.com/docs/rancher/v2.x/en/istio/v2.5/).
|
|
@ -0,0 +1,31 @@
|
|||
annotations:
|
||||
catalog.cattle.io/auto-install: rancher-kiali-server-crd=match
|
||||
catalog.cattle.io/hidden: "true"
|
||||
catalog.cattle.io/os: linux
|
||||
catalog.cattle.io/provides-gvr: monitoringdashboards.monitoring.kiali.io/v1alpha1
|
||||
catalog.cattle.io/requires-gvr: monitoring.coreos.com.prometheus/v1
|
||||
catalog.rancher.io/namespace: cattle-istio-system
|
||||
catalog.rancher.io/release-name: rancher-kiali-server
|
||||
apiVersion: v2
|
||||
appVersion: v1.32.0
|
||||
description: Kiali is an open source project for service mesh observability, refer
|
||||
to https://www.kiali.io for details. This is installed as sub-chart with customized
|
||||
values in Rancher's Istio.
|
||||
home: https://github.com/kiali/kiali
|
||||
icon: https://raw.githubusercontent.com/kiali/kiali.io/master/themes/kiali/static/img/kiali_logo_masthead.png
|
||||
keywords:
|
||||
- istio
|
||||
- kiali
|
||||
- networking
|
||||
- infrastructure
|
||||
maintainers:
|
||||
- email: kiali-users@googlegroups.com
|
||||
name: Kiali
|
||||
url: https://kiali.io
|
||||
name: kiali
|
||||
sources:
|
||||
- https://github.com/kiali/kiali
|
||||
- https://github.com/kiali/kiali-ui
|
||||
- https://github.com/kiali/kiali-operator
|
||||
- https://github.com/kiali/helm-charts
|
||||
version: 1.32.1
|
|
@ -0,0 +1,5 @@
|
|||
Welcome to Kiali! For more details on Kiali, see: https://kiali.io
|
||||
|
||||
The Kiali Server [{{ .Chart.AppVersion }}] has been installed in namespace [{{ .Release.Namespace }}]. It will be ready soon.
|
||||
|
||||
(Helm: Chart=[{{ .Chart.Name }}], Release=[{{ .Release.Name }}], Version=[{{ .Chart.Version }}])
|
|
@ -0,0 +1,192 @@
|
|||
{{/* vim: set filetype=mustache: */}}
|
||||
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "kiali-server.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "kiali-server.fullname" -}}
|
||||
{{- if .Values.fullnameOverride }}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride }}
|
||||
{{- printf "%s" $name | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "kiali-server.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Identifies the log_level with the old verbose_mode and the new log_level considered.
|
||||
*/}}
|
||||
{{- define "kiali-server.logLevel" -}}
|
||||
{{- if .Values.deployment.verbose_mode -}}
|
||||
{{- .Values.deployment.verbose_mode -}}
|
||||
{{- else -}}
|
||||
{{- .Values.deployment.logger.log_level -}}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "kiali-server.labels" -}}
|
||||
helm.sh/chart: {{ include "kiali-server.chart" . }}
|
||||
app: {{ include "kiali-server.name" . }}
|
||||
{{ include "kiali-server.selectorLabels" . }}
|
||||
version: {{ .Values.deployment.version_label | default .Chart.AppVersion | quote }}
|
||||
app.kubernetes.io/version: {{ .Values.deployment.version_label | default .Chart.AppVersion | quote }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
app.kubernetes.io/part-of: "kiali"
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Selector labels
|
||||
*/}}
|
||||
{{- define "kiali-server.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "kiali-server.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Used to determine if a custom dashboard (defined in .Template.Name) should be deployed.
|
||||
*/}}
|
||||
{{- define "kiali-server.isDashboardEnabled" -}}
|
||||
{{- if .Values.external_services.custom_dashboards.enabled }}
|
||||
{{- $includere := "" }}
|
||||
{{- range $_, $s := .Values.deployment.custom_dashboards.includes }}
|
||||
{{- if $s }}
|
||||
{{- if $includere }}
|
||||
{{- $includere = printf "%s|^%s$" $includere ($s | replace "*" ".*" | replace "?" ".") }}
|
||||
{{- else }}
|
||||
{{- $includere = printf "^%s$" ($s | replace "*" ".*" | replace "?" ".") }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- $excludere := "" }}
|
||||
{{- range $_, $s := .Values.deployment.custom_dashboards.excludes }}
|
||||
{{- if $s }}
|
||||
{{- if $excludere }}
|
||||
{{- $excludere = printf "%s|^%s$" $excludere ($s | replace "*" ".*" | replace "?" ".") }}
|
||||
{{- else }}
|
||||
{{- $excludere = printf "^%s$" ($s | replace "*" ".*" | replace "?" ".") }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if (and (mustRegexMatch (default "no-matches" $includere) (base .Template.Name)) (not (mustRegexMatch (default "no-matches" $excludere) (base .Template.Name)))) }}
|
||||
{{- print "enabled" }}
|
||||
{{- else }}
|
||||
{{- print "" }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- print "" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Determine the default login token signing key.
|
||||
*/}}
|
||||
{{- define "kiali-server.login_token.signing_key" -}}
|
||||
{{- if .Values.login_token.signing_key }}
|
||||
{{- .Values.login_token.signing_key }}
|
||||
{{- else }}
|
||||
{{- randAlphaNum 16 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Determine the default web root.
|
||||
*/}}
|
||||
{{- define "kiali-server.server.web_root" -}}
|
||||
{{- if .Values.server.web_root }}
|
||||
{{- .Values.server.web_root | trimSuffix "/" }}
|
||||
{{- else }}
|
||||
{{- if .Capabilities.APIVersions.Has "route.openshift.io/v1" }}
|
||||
{{- "/" }}
|
||||
{{- else }}
|
||||
{{- "/kiali" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Determine the default identity cert file. There is no default if on k8s; only on OpenShift.
|
||||
*/}}
|
||||
{{- define "kiali-server.identity.cert_file" -}}
|
||||
{{- if hasKey .Values.identity "cert_file" }}
|
||||
{{- .Values.identity.cert_file }}
|
||||
{{- else }}
|
||||
{{- if .Capabilities.APIVersions.Has "route.openshift.io/v1" }}
|
||||
{{- "/kiali-cert/tls.crt" }}
|
||||
{{- else }}
|
||||
{{- "" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Determine the default identity private key file. There is no default if on k8s; only on OpenShift.
|
||||
*/}}
|
||||
{{- define "kiali-server.identity.private_key_file" -}}
|
||||
{{- if hasKey .Values.identity "private_key_file" }}
|
||||
{{- .Values.identity.private_key_file }}
|
||||
{{- else }}
|
||||
{{- if .Capabilities.APIVersions.Has "route.openshift.io/v1" }}
|
||||
{{- "/kiali-cert/tls.key" }}
|
||||
{{- else }}
|
||||
{{- "" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Determine the istio namespace - default is where Kiali is installed.
|
||||
*/}}
|
||||
{{- define "kiali-server.istio_namespace" -}}
|
||||
{{- if .Values.istio_namespace }}
|
||||
{{- .Values.istio_namespace }}
|
||||
{{- else }}
|
||||
{{- .Release.Namespace }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Determine the auth strategy to use - default is "token" on Kubernetes and "openshift" on OpenShift.
|
||||
*/}}
|
||||
{{- define "kiali-server.auth.strategy" -}}
|
||||
{{- if .Values.auth.strategy }}
|
||||
{{- if (and (eq .Values.auth.strategy "openshift") (not .Values.kiali_route_url)) }}
|
||||
{{- fail "You did not define what the Kiali Route URL will be (--set kiali_route_url=...). Without this set, the openshift auth strategy will not work. Either set that or use a different auth strategy via the --set auth.strategy=... option." }}
|
||||
{{- end }}
|
||||
{{- .Values.auth.strategy }}
|
||||
{{- else }}
|
||||
{{- if .Capabilities.APIVersions.Has "route.openshift.io/v1" }}
|
||||
{{- if not .Values.kiali_route_url }}
|
||||
{{- fail "You did not define what the Kiali Route URL will be (--set kiali_route_url=...). Without this set, the openshift auth strategy will not work. Either set that or explicitly indicate another auth strategy you want via the --set auth.strategy=... option." }}
|
||||
{{- end }}
|
||||
{{- "openshift" }}
|
||||
{{- else }}
|
||||
{{- "token" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- define "system_default_registry" -}}
|
||||
{{- if .Values.global.cattle.systemDefaultRegistry -}}
|
||||
{{- printf "%s/" .Values.global.cattle.systemDefaultRegistry -}}
|
||||
{{- else -}}
|
||||
{{- "" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
|
@ -0,0 +1,13 @@
|
|||
{{- if .Capabilities.APIVersions.Has "route.openshift.io/v1" }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}-cabundle
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
annotations:
|
||||
service.beta.openshift.io/inject-cabundle: "true"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
data:
|
||||
config.yaml: |
|
||||
{{- /* Most of .Values is simply the ConfigMap - strip out the keys that are not part of the ConfigMap */}}
|
||||
{{- $cm := omit .Values "nameOverride" "fullnameOverride" "kiali_route_url" }}
|
||||
{{- /* The helm chart defines namespace for us, but pass it to the ConfigMap in case the server needs it */}}
|
||||
{{- $_ := set $cm.deployment "namespace" .Release.Namespace }}
|
||||
{{- /* Some values of the ConfigMap are generated, but might not be identical, from .Values */}}
|
||||
{{- $_ := set $cm "istio_namespace" (include "kiali-server.istio_namespace" .) }}
|
||||
{{- $_ := set $cm.auth "strategy" (include "kiali-server.auth.strategy" .) }}
|
||||
{{- $_ := set $cm.auth.openshift "client_id_prefix" (include "kiali-server.fullname" .) }}
|
||||
{{- $_ := set $cm.identity "cert_file" (include "kiali-server.identity.cert_file" .) }}
|
||||
{{- $_ := set $cm.identity "private_key_file" (include "kiali-server.identity.private_key_file" .) }}
|
||||
{{- $_ := set $cm.login_token "signing_key" (include "kiali-server.login_token.signing_key" .) }}
|
||||
{{- $_ := set $cm.server "web_root" (include "kiali-server.server.web_root" .) }}
|
||||
{{- toYaml $cm | nindent 4 }}
|
||||
...
|
|
@ -0,0 +1,56 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: envoy
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
title: Envoy Metrics
|
||||
discoverOn: "envoy_server_uptime"
|
||||
items:
|
||||
- chart:
|
||||
name: "Pods uptime"
|
||||
spans: 4
|
||||
metricName: "envoy_server_uptime"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Allocated memory"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "envoy_server_memory_allocated"
|
||||
dataType: "raw"
|
||||
min: 0
|
||||
- chart:
|
||||
name: "Heap size"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "envoy_server_memory_heap_size"
|
||||
dataType: "raw"
|
||||
min: 0
|
||||
- chart:
|
||||
name: "Upstream active connections"
|
||||
spans: 6
|
||||
metricName: "envoy_cluster_upstream_cx_active"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Upstream total requests"
|
||||
spans: 6
|
||||
metricName: "envoy_cluster_upstream_rq_total"
|
||||
unit: "rps"
|
||||
dataType: "rate"
|
||||
- chart:
|
||||
name: "Downstream active connections"
|
||||
spans: 6
|
||||
metricName: "envoy_listener_downstream_cx_active"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Downstream HTTP requests"
|
||||
spans: 6
|
||||
metricName: "envoy_listener_http_downstream_rq"
|
||||
unit: "rps"
|
||||
dataType: "rate"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,67 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: go
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
title: Go Metrics
|
||||
runtime: Go
|
||||
discoverOn: "go_info"
|
||||
items:
|
||||
- chart:
|
||||
name: "CPU ratio"
|
||||
spans: 6
|
||||
metricName: "process_cpu_seconds_total"
|
||||
dataType: "rate"
|
||||
aggregations:
|
||||
- label: "pod_name"
|
||||
displayName: "Pod"
|
||||
- chart:
|
||||
name: "RSS Memory"
|
||||
unit: "bytes"
|
||||
spans: 6
|
||||
metricName: "process_resident_memory_bytes"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "pod_name"
|
||||
displayName: "Pod"
|
||||
- chart:
|
||||
name: "Goroutines"
|
||||
spans: 6
|
||||
metricName: "go_goroutines"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "pod_name"
|
||||
displayName: "Pod"
|
||||
- chart:
|
||||
name: "Heap allocation rate"
|
||||
unit: "bytes/s"
|
||||
spans: 6
|
||||
metricName: "go_memstats_alloc_bytes_total"
|
||||
dataType: "rate"
|
||||
aggregations:
|
||||
- label: "pod_name"
|
||||
displayName: "Pod"
|
||||
- chart:
|
||||
name: "GC rate"
|
||||
spans: 6
|
||||
metricName: "go_gc_duration_seconds_count"
|
||||
dataType: "rate"
|
||||
aggregations:
|
||||
- label: "pod_name"
|
||||
displayName: "Pod"
|
||||
- chart:
|
||||
name: "Next GC"
|
||||
unit: "bytes"
|
||||
spans: 6
|
||||
metricName: "go_memstats_next_gc_bytes"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "pod_name"
|
||||
displayName: "Pod"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,44 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: kiali
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
title: Kiali Internal Metrics
|
||||
items:
|
||||
- chart:
|
||||
name: "API processing duration"
|
||||
unit: "seconds"
|
||||
spans: 6
|
||||
metricName: "kiali_api_processing_duration_seconds"
|
||||
dataType: "histogram"
|
||||
aggregations:
|
||||
- label: "route"
|
||||
displayName: "Route"
|
||||
- chart:
|
||||
name: "Functions processing duration"
|
||||
unit: "seconds"
|
||||
spans: 6
|
||||
metricName: "kiali_go_function_processing_duration_seconds"
|
||||
dataType: "histogram"
|
||||
aggregations:
|
||||
- label: "function"
|
||||
displayName: "Function"
|
||||
- label: "package"
|
||||
displayName: "Package"
|
||||
- chart:
|
||||
name: "Failures"
|
||||
spans: 12
|
||||
metricName: "kiali_go_function_failures_total"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "function"
|
||||
displayName: "Function"
|
||||
- label: "package"
|
||||
displayName: "Package"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,43 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: micrometer-1.0.6-jvm-pool
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
runtime: JVM
|
||||
title: JVM Pool Metrics
|
||||
discoverOn: "jvm_buffer_total_capacity_bytes"
|
||||
items:
|
||||
- chart:
|
||||
name: "Pool buffer memory used"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "jvm_buffer_memory_used_bytes"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "id"
|
||||
displayName: "Pool"
|
||||
- chart:
|
||||
name: "Pool buffer capacity"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "jvm_buffer_total_capacity_bytes"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "id"
|
||||
displayName: "Pool"
|
||||
- chart:
|
||||
name: "Pool buffer count"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "jvm_buffer_count"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "id"
|
||||
displayName: "Pool"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,65 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: micrometer-1.0.6-jvm
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
runtime: JVM
|
||||
title: JVM Metrics
|
||||
discoverOn: "jvm_threads_live"
|
||||
items:
|
||||
- chart:
|
||||
name: "Total live threads"
|
||||
spans: 4
|
||||
metricName: "jvm_threads_live"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Daemon threads"
|
||||
spans: 4
|
||||
metricName: "jvm_threads_daemon"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Loaded classes"
|
||||
spans: 4
|
||||
metricName: "jvm_classes_loaded"
|
||||
dataType: "raw"
|
||||
|
||||
- chart:
|
||||
name: "Memory used"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "jvm_memory_used_bytes"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "area"
|
||||
displayName: "Area"
|
||||
- label: "id"
|
||||
displayName: "Space"
|
||||
- chart:
|
||||
name: "Memory commited"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "jvm_memory_committed_bytes"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "area"
|
||||
displayName: "Area"
|
||||
- label: "id"
|
||||
displayName: "Space"
|
||||
- chart:
|
||||
name: "Memory max"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "jvm_memory_max_bytes"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "area"
|
||||
displayName: "Area"
|
||||
- label: "id"
|
||||
displayName: "Space"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,68 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: micrometer-1.1-jvm
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
runtime: JVM
|
||||
title: JVM Metrics
|
||||
discoverOn: "jvm_threads_live_threads"
|
||||
items:
|
||||
- chart:
|
||||
name: "Memory used"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "jvm_memory_used_bytes"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "area"
|
||||
displayName: "Area"
|
||||
- label: "id"
|
||||
displayName: "Space"
|
||||
- chart:
|
||||
name: "Memory commited"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "jvm_memory_committed_bytes"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "area"
|
||||
displayName: "Area"
|
||||
- label: "id"
|
||||
displayName: "Space"
|
||||
- chart:
|
||||
name: "Memory max"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "jvm_memory_max_bytes"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "area"
|
||||
displayName: "Area"
|
||||
- label: "id"
|
||||
displayName: "Space"
|
||||
|
||||
- chart:
|
||||
name: "Total live threads"
|
||||
spans: 4
|
||||
metricName: "jvm_threads_live_threads"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Daemon threads"
|
||||
spans: 4
|
||||
metricName: "jvm_threads_daemon_threads"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Threads states"
|
||||
spans: 4
|
||||
metricName: "jvm_threads_states_threads"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "state"
|
||||
displayName: "State"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,59 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: microprofile-1.1
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
title: MicroProfile Metrics
|
||||
runtime: MicroProfile
|
||||
discoverOn: "base:thread_count"
|
||||
items:
|
||||
- chart:
|
||||
name: "Current loaded classes"
|
||||
spans: 6
|
||||
metricName: "base:classloader_current_loaded_class_count"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Unloaded classes"
|
||||
spans: 6
|
||||
metricName: "base:classloader_total_unloaded_class_count"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Thread count"
|
||||
spans: 4
|
||||
metricName: "base:thread_count"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Thread max count"
|
||||
spans: 4
|
||||
metricName: "base:thread_max_count"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Thread daemon count"
|
||||
spans: 4
|
||||
metricName: "base:thread_daemon_count"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Committed heap"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "base:memory_committed_heap_bytes"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Max heap"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "base:memory_max_heap_bytes"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Used heap"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "base:memory_used_heap_bytes"
|
||||
dataType: "raw"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,38 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: microprofile-x.y
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
title: MicroProfile Metrics
|
||||
runtime: MicroProfile
|
||||
discoverOn: "base:gc_complete_scavenger_count"
|
||||
items:
|
||||
- chart:
|
||||
name: "Young GC time"
|
||||
unit: "seconds"
|
||||
spans: 3
|
||||
metricName: "base:gc_young_generation_scavenger_time_seconds"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Young GC count"
|
||||
spans: 3
|
||||
metricName: "base:gc_young_generation_scavenger_count"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Total GC time"
|
||||
unit: "seconds"
|
||||
spans: 3
|
||||
metricName: "base:gc_complete_scavenger_time_seconds"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Total GC count"
|
||||
spans: 3
|
||||
metricName: "base:gc_complete_scavenger_count"
|
||||
dataType: "raw"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,59 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: nodejs
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
runtime: Node.js
|
||||
title: Node.js Metrics
|
||||
discoverOn: "nodejs_active_handles_total"
|
||||
items:
|
||||
- chart:
|
||||
name: "Active handles"
|
||||
spans: 4
|
||||
metricName: "nodejs_active_handles_total"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Active requests"
|
||||
spans: 4
|
||||
metricName: "nodejs_active_requests_total"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Event loop lag"
|
||||
unit: "seconds"
|
||||
spans: 4
|
||||
metricName: "nodejs_eventloop_lag_seconds"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Total heap size"
|
||||
unit: "bytes"
|
||||
spans: 12
|
||||
metricName: "nodejs_heap_space_size_total_bytes"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "space"
|
||||
displayName: "Space"
|
||||
- chart:
|
||||
name: "Used heap size"
|
||||
unit: "bytes"
|
||||
spans: 6
|
||||
metricName: "nodejs_heap_space_size_used_bytes"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "space"
|
||||
displayName: "Space"
|
||||
- chart:
|
||||
name: "Available heap size"
|
||||
unit: "bytes"
|
||||
spans: 6
|
||||
metricName: "nodejs_heap_space_size_available_bytes"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "space"
|
||||
displayName: "Space"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,33 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: quarkus
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
title: Quarkus Metrics
|
||||
runtime: Quarkus
|
||||
items:
|
||||
- chart:
|
||||
name: "Thread count"
|
||||
spans: 4
|
||||
metricName: "vendor:thread_count"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Used heap"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "vendor:memory_heap_usage_bytes"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Used non-heap"
|
||||
unit: "bytes"
|
||||
spans: 4
|
||||
metricName: "vendor:memory_non_heap_usage_bytes"
|
||||
dataType: "raw"
|
||||
- include: "microprofile-x.y"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,16 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: springboot-jvm-pool
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
runtime: Spring Boot
|
||||
title: JVM Pool Metrics
|
||||
items:
|
||||
- include: "micrometer-1.0.6-jvm-pool"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,16 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: springboot-jvm
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
runtime: Spring Boot
|
||||
title: JVM Metrics
|
||||
items:
|
||||
- include: "micrometer-1.0.6-jvm"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,16 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: springboot-tomcat
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
runtime: Spring Boot
|
||||
title: Tomcat Metrics
|
||||
items:
|
||||
- include: "tomcat"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,22 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: thorntail
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
runtime: Thorntail
|
||||
title: Thorntail Metrics
|
||||
discoverOn: "vendor:loaded_modules"
|
||||
items:
|
||||
- include: "microprofile-1.1"
|
||||
- chart:
|
||||
name: "Loaded modules"
|
||||
spans: 6
|
||||
metricName: "vendor:loaded_modules"
|
||||
dataType: "raw"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,67 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: tomcat
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
runtime: Tomcat
|
||||
title: Tomcat Metrics
|
||||
discoverOn: "tomcat_sessions_created_total"
|
||||
items:
|
||||
- chart:
|
||||
name: "Sessions created"
|
||||
spans: 4
|
||||
metricName: "tomcat_sessions_created_total"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Active sessions"
|
||||
spans: 4
|
||||
metricName: "tomcat_sessions_active_current"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Sessions rejected"
|
||||
spans: 4
|
||||
metricName: "tomcat_sessions_rejected_total"
|
||||
dataType: "raw"
|
||||
|
||||
- chart:
|
||||
name: "Bytes sent"
|
||||
unit: "bitrate"
|
||||
spans: 6
|
||||
metricName: "tomcat_global_sent_bytes_total"
|
||||
dataType: "rate"
|
||||
aggregations:
|
||||
- label: "name"
|
||||
displayName: "Name"
|
||||
- chart:
|
||||
name: "Bytes received"
|
||||
unit: "bitrate"
|
||||
spans: 6
|
||||
metricName: "tomcat_global_received_bytes_total"
|
||||
dataType: "rate"
|
||||
aggregations:
|
||||
- label: "name"
|
||||
displayName: "Name"
|
||||
|
||||
- chart:
|
||||
name: "Global errors"
|
||||
spans: 6
|
||||
metricName: "tomcat_global_error_total"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "name"
|
||||
displayName: "Name"
|
||||
- chart:
|
||||
name: "Servlet errors"
|
||||
spans: 6
|
||||
metricName: "tomcat_servlet_error_total"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "name"
|
||||
displayName: "Name"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,60 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: vertx-client
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
runtime: Vert.x
|
||||
title: Vert.x Client Metrics
|
||||
discoverOn: "vertx_http_client_connections"
|
||||
items:
|
||||
- chart:
|
||||
name: "Client response time"
|
||||
unit: "seconds"
|
||||
spans: 6
|
||||
metricName: "vertx_http_client_responseTime_seconds"
|
||||
dataType: "histogram"
|
||||
aggregations:
|
||||
- label: "path"
|
||||
displayName: "Path"
|
||||
- label: "method"
|
||||
displayName: "Method"
|
||||
- chart:
|
||||
name: "Client request count rate"
|
||||
unit: "ops"
|
||||
spans: 6
|
||||
metricName: "vertx_http_client_requestCount_total"
|
||||
dataType: "rate"
|
||||
aggregations:
|
||||
- label: "path"
|
||||
displayName: "Path"
|
||||
- label: "method"
|
||||
displayName: "Method"
|
||||
- chart:
|
||||
name: "Client active connections"
|
||||
spans: 6
|
||||
metricName: "vertx_http_client_connections"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Client active websockets"
|
||||
spans: 6
|
||||
metricName: "vertx_http_client_wsConnections"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Client bytes sent"
|
||||
unit: "bytes"
|
||||
spans: 6
|
||||
metricName: "vertx_http_client_bytesSent"
|
||||
dataType: "histogram"
|
||||
- chart:
|
||||
name: "Client bytes received"
|
||||
unit: "bytes"
|
||||
spans: 6
|
||||
metricName: "vertx_http_client_bytesReceived"
|
||||
dataType: "histogram"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,59 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: vertx-eventbus
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
runtime: Vert.x
|
||||
title: Vert.x Eventbus Metrics
|
||||
discoverOn: "vertx_eventbus_handlers"
|
||||
items:
|
||||
- chart:
|
||||
name: "Event bus handlers"
|
||||
spans: 6
|
||||
metricName: "vertx_eventbus_handlers"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "address"
|
||||
displayName: "Eventbus address"
|
||||
- chart:
|
||||
name: "Event bus pending messages"
|
||||
spans: 6
|
||||
metricName: "vertx_eventbus_pending"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "address"
|
||||
displayName: "Eventbus address"
|
||||
- chart:
|
||||
name: "Event bus processing time"
|
||||
unit: "seconds"
|
||||
spans: 6
|
||||
metricName: "vertx_eventbus_processingTime_seconds"
|
||||
dataType: "histogram"
|
||||
aggregations:
|
||||
- label: "address"
|
||||
displayName: "Eventbus address"
|
||||
- chart:
|
||||
name: "Event bus bytes read"
|
||||
unit: "bytes"
|
||||
spans: 6
|
||||
metricName: "vertx_eventbus_bytesRead"
|
||||
dataType: "histogram"
|
||||
aggregations:
|
||||
- label: "address"
|
||||
displayName: "Eventbus address"
|
||||
- chart:
|
||||
name: "Event bus bytes written"
|
||||
unit: "bytes"
|
||||
spans: 6
|
||||
metricName: "vertx_eventbus_bytesWritten"
|
||||
dataType: "histogram"
|
||||
aggregations:
|
||||
- label: "address"
|
||||
displayName: "Eventbus address"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,16 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: vertx-jvm
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
runtime: Vert.x
|
||||
title: JVM Metrics
|
||||
items:
|
||||
- include: "micrometer-1.1-jvm"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,68 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: vertx-pool
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
runtime: Vert.x
|
||||
title: Vert.x Pools Metrics
|
||||
discoverOn: "vertx_pool_ratio"
|
||||
items:
|
||||
- chart:
|
||||
name: "Usage duration"
|
||||
unit: "seconds"
|
||||
spans: 6
|
||||
metricName: "vertx_pool_usage_seconds"
|
||||
dataType: "histogram"
|
||||
aggregations:
|
||||
- label: "pool_name"
|
||||
displayName: "Name"
|
||||
- label: "pool_type"
|
||||
displayName: "Type"
|
||||
- chart:
|
||||
name: "Usage ratio"
|
||||
spans: 6
|
||||
metricName: "vertx_pool_ratio"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "pool_name"
|
||||
displayName: "Name"
|
||||
- label: "pool_type"
|
||||
displayName: "Type"
|
||||
- chart:
|
||||
name: "Queue size"
|
||||
spans: 6
|
||||
metricName: "vertx_pool_queue_size"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "pool_name"
|
||||
displayName: "Name"
|
||||
- label: "pool_type"
|
||||
displayName: "Type"
|
||||
- chart:
|
||||
name: "Time in queue"
|
||||
unit: "seconds"
|
||||
spans: 6
|
||||
metricName: "vertx_pool_queue_delay_seconds"
|
||||
dataType: "histogram"
|
||||
aggregations:
|
||||
- label: "pool_name"
|
||||
displayName: "Name"
|
||||
- label: "pool_type"
|
||||
displayName: "Type"
|
||||
- chart:
|
||||
name: "Resources used"
|
||||
spans: 6
|
||||
metricName: "vertx_pool_inUse"
|
||||
dataType: "raw"
|
||||
aggregations:
|
||||
- label: "pool_name"
|
||||
displayName: "Name"
|
||||
- label: "pool_type"
|
||||
displayName: "Type"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,62 @@
|
|||
{{- if (include "kiali-server.isDashboardEnabled" .) }}
|
||||
---
|
||||
apiVersion: "monitoring.kiali.io/v1alpha1"
|
||||
kind: MonitoringDashboard
|
||||
metadata:
|
||||
name: vertx-server
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
runtime: Vert.x
|
||||
title: Vert.x Server Metrics
|
||||
discoverOn: "vertx_http_server_connections"
|
||||
items:
|
||||
- chart:
|
||||
name: "Server response time"
|
||||
unit: "seconds"
|
||||
spans: 6
|
||||
metricName: "vertx_http_server_responseTime_seconds"
|
||||
dataType: "histogram"
|
||||
aggregations:
|
||||
- label: "path"
|
||||
displayName: "Path"
|
||||
- label: "method"
|
||||
displayName: "Method"
|
||||
- chart:
|
||||
name: "Server request count rate"
|
||||
unit: "ops"
|
||||
spans: 6
|
||||
metricName: "vertx_http_server_requestCount_total"
|
||||
dataType: "rate"
|
||||
aggregations:
|
||||
- label: "code"
|
||||
displayName: "Error code"
|
||||
- label: "path"
|
||||
displayName: "Path"
|
||||
- label: "method"
|
||||
displayName: "Method"
|
||||
- chart:
|
||||
name: "Server active connections"
|
||||
spans: 6
|
||||
metricName: "vertx_http_server_connections"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Server active websockets"
|
||||
spans: 6
|
||||
metricName: "vertx_http_server_wsConnections"
|
||||
dataType: "raw"
|
||||
- chart:
|
||||
name: "Server bytes sent"
|
||||
unit: "bytes"
|
||||
spans: 6
|
||||
metricName: "vertx_http_server_bytesSent"
|
||||
dataType: "histogram"
|
||||
- chart:
|
||||
name: "Server bytes received"
|
||||
unit: "bytes"
|
||||
spans: 6
|
||||
metricName: "vertx_http_server_bytesReceived"
|
||||
dataType: "histogram"
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,174 @@
|
|||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
replicas: {{ .Values.deployment.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "kiali-server.selectorLabels" . | nindent 6 }}
|
||||
strategy:
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 1
|
||||
type: RollingUpdate
|
||||
template:
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 8 }}
|
||||
{{- if .Values.deployment.pod_labels }}
|
||||
{{- toYaml .Values.deployment.pod_labels | nindent 8 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- if .Values.server.metrics_enabled }}
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: {{ .Values.server.metrics_port | quote }}
|
||||
{{- else }}
|
||||
prometheus.io/scrape: "false"
|
||||
prometheus.io/port: ""
|
||||
{{- end }}
|
||||
kiali.io/runtimes: go,kiali
|
||||
{{- if .Values.deployment.pod_annotations }}
|
||||
{{- toYaml .Values.deployment.pod_annotations | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: {{ include "kiali-server.fullname" . }}
|
||||
{{- if .Values.deployment.priority_class_name }}
|
||||
priorityClassName: {{ .Values.deployment.priority_class_name | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.deployment.image_pull_secrets }}
|
||||
imagePullSecrets:
|
||||
{{- range .Values.deployment.image_pull_secrets }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- image: "{{ template "system_default_registry" . }}{{ .Values.deployment.repository }}:{{ .Values.deployment.tag }}"
|
||||
imagePullPolicy: {{ .Values.deployment.image_pull_policy | default "Always" }}
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
command:
|
||||
- "/opt/kiali/kiali"
|
||||
- "-config"
|
||||
- "/kiali-configuration/config.yaml"
|
||||
ports:
|
||||
- name: api-port
|
||||
containerPort: {{ .Values.server.port | default 20001 }}
|
||||
{{- if .Values.server.metrics_enabled }}
|
||||
- name: http-metrics
|
||||
containerPort: {{ .Values.server.metrics_port | default 9090 }}
|
||||
{{- end }}
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: {{ include "kiali-server.server.web_root" . | trimSuffix "/" }}/healthz
|
||||
port: api-port
|
||||
{{- if (include "kiali-server.identity.cert_file" .) }}
|
||||
scheme: HTTPS
|
||||
{{- else }}
|
||||
scheme: HTTP
|
||||
{{- end }}
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 30
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: {{ include "kiali-server.server.web_root" . | trimSuffix "/" }}/healthz
|
||||
port: api-port
|
||||
{{- if (include "kiali-server.identity.cert_file" .) }}
|
||||
scheme: HTTPS
|
||||
{{- else }}
|
||||
scheme: HTTP
|
||||
{{- end }}
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 30
|
||||
env:
|
||||
- name: ACTIVE_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: LOG_LEVEL
|
||||
value: "{{ include "kiali-server.logLevel" . }}"
|
||||
- name: LOG_FORMAT
|
||||
value: "{{ .Values.deployment.logger.log_format }}"
|
||||
- name: LOG_TIME_FIELD_FORMAT
|
||||
value: "{{ .Values.deployment.logger.time_field_format }}"
|
||||
- name: LOG_SAMPLER_RATE
|
||||
value: "{{ .Values.deployment.logger.sampler_rate }}"
|
||||
volumeMounts:
|
||||
{{- if .Values.web_root_override }}
|
||||
- name: kiali-console
|
||||
subPath: env.js
|
||||
mountPath: /opt/kiali/console/env.js
|
||||
{{- end }}
|
||||
- name: {{ include "kiali-server.fullname" . }}-configuration
|
||||
mountPath: "/kiali-configuration"
|
||||
- name: {{ include "kiali-server.fullname" . }}-cert
|
||||
mountPath: "/kiali-cert"
|
||||
- name: {{ include "kiali-server.fullname" . }}-secret
|
||||
mountPath: "/kiali-secret"
|
||||
{{- if .Capabilities.APIVersions.Has "route.openshift.io/v1" }}
|
||||
- name: {{ include "kiali-server.fullname" . }}-cabundle
|
||||
mountPath: "/kiali-cabundle"
|
||||
{{- end }}
|
||||
{{- if .Values.deployment.resources }}
|
||||
resources:
|
||||
{{- toYaml .Values.deployment.resources | nindent 10 }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
{{- if .Values.web_root_override }}
|
||||
- name: kiali-console
|
||||
configMap:
|
||||
name: kiali-console
|
||||
items:
|
||||
- key: env.js
|
||||
path: env.js
|
||||
{{- end }}
|
||||
- name: {{ include "kiali-server.fullname" . }}-configuration
|
||||
configMap:
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
- name: {{ include "kiali-server.fullname" . }}-cert
|
||||
secret:
|
||||
{{- if .Capabilities.APIVersions.Has "route.openshift.io/v1" }}
|
||||
secretName: {{ include "kiali-server.fullname" . }}-cert-secret
|
||||
{{- else }}
|
||||
secretName: istio.{{ include "kiali-server.fullname" . }}-service-account
|
||||
{{- end }}
|
||||
{{- if not (include "kiali-server.identity.cert_file" .) }}
|
||||
optional: true
|
||||
{{- end }}
|
||||
- name: {{ include "kiali-server.fullname" . }}-secret
|
||||
secret:
|
||||
secretName: {{ .Values.deployment.secret_name }}
|
||||
optional: true
|
||||
{{- if .Capabilities.APIVersions.Has "route.openshift.io/v1" }}
|
||||
- name: {{ include "kiali-server.fullname" . }}-cabundle
|
||||
configMap:
|
||||
name: {{ include "kiali-server.fullname" . }}-cabundle
|
||||
{{- end }}
|
||||
{{- if or (.Values.deployment.affinity.node) (or (.Values.deployment.pod) (.Values.deployment.pod_anti)) }}
|
||||
affinity:
|
||||
{{- if .Values.deployment.affinity.node }}
|
||||
nodeAffinity:
|
||||
{{- toYaml .Values.deployment.affinity.node | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- if .Values.deployment.affinity.pod }}
|
||||
podAffinity:
|
||||
{{- toYaml .Values.deployment.affinity.pod | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- if .Values.deployment.affinity.pod_anti }}
|
||||
podAntiAffinity:
|
||||
{{- toYaml .Values.deployment.affinity.pod_anti | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.deployment.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml .Values.deployment.tolerations | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.deployment.node_selector }}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.deployment.node_selector | nindent 8 }}
|
||||
{{- end }}
|
||||
...
|
|
@ -0,0 +1,17 @@
|
|||
{{- if .Values.deployment.hpa.spec }}
|
||||
---
|
||||
apiVersion: {{ .Values.deployment.hpa.api_version }}
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
{{- toYaml .Values.deployment.hpa.spec | nindent 2 }}
|
||||
...
|
||||
{{- end }}
|
|
@ -0,0 +1,40 @@
|
|||
{{- if not (.Capabilities.APIVersions.Has "route.openshift.io/v1") }}
|
||||
{{- if .Values.deployment.ingress_enabled }}
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
annotations:
|
||||
{{- if hasKey .Values.deployment.override_ingress_yaml.metadata "annotations" }}
|
||||
{{- toYaml .Values.deployment.override_ingress_yaml.metadata.annotations | nindent 4 }}
|
||||
{{- else }}
|
||||
# For ingress-nginx versions older than 0.20.0 use secure-backends.
|
||||
# (see: https://github.com/kubernetes/ingress-nginx/issues/3416#issuecomment-438247948)
|
||||
# For ingress-nginx versions 0.20.0 and later use backend-protocol.
|
||||
{{- if (include "kiali-server.identity.cert_file" .) }}
|
||||
nginx.ingress.kubernetes.io/secure-backends: "true"
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
||||
{{- else }}
|
||||
nginx.ingress.kubernetes.io/secure-backends: "false"
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if hasKey .Values.deployment.override_ingress_yaml "spec" }}
|
||||
{{- toYaml .Values.deployment.override_ingress_yaml.spec | nindent 2 }}
|
||||
{{- else }}
|
||||
rules:
|
||||
- http:
|
||||
paths:
|
||||
- path: {{ include "kiali-server.server.web_root" . }}
|
||||
backend:
|
||||
serviceName: {{ include "kiali-server.fullname" . }}
|
||||
servicePort: {{ .Values.server.port }}
|
||||
{{- end }}
|
||||
...
|
||||
{{- end }}
|
||||
{{- end }}
|
|
@ -0,0 +1,17 @@
|
|||
{{- if .Capabilities.APIVersions.Has "route.openshift.io/v1" }}
|
||||
{{- if .Values.kiali_route_url }}
|
||||
---
|
||||
apiVersion: oauth.openshift.io/v1
|
||||
kind: OAuthClient
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}-{{ .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
redirectURIs:
|
||||
- {{ .Values.kiali_route_url }}
|
||||
grantMethod: auto
|
||||
allowAnyScope: true
|
||||
...
|
||||
{{- end }}
|
||||
{{- end }}
|
|
@ -0,0 +1,67 @@
|
|||
{{- if .Values.global.rbac.pspEnabled }}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}-psp
|
||||
namespace: {{ .Release.Namespace }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: {{ include "kiali-server.fullname" . }}-psp
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: kiali
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}-psp
|
||||
namespace: {{ .Release.Namespace }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- policy
|
||||
resourceNames:
|
||||
- {{ include "kiali-server.fullname" . }}-psp
|
||||
resources:
|
||||
- podsecuritypolicies
|
||||
verbs:
|
||||
- use
|
||||
---
|
||||
apiVersion: policy/v1beta1
|
||||
kind: PodSecurityPolicy
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}-psp
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
allowPrivilegeEscalation: false
|
||||
forbiddenSysctls:
|
||||
- '*'
|
||||
fsGroup:
|
||||
ranges:
|
||||
- max: 65535
|
||||
min: 1
|
||||
rule: MustRunAs
|
||||
requiredDropCapabilities:
|
||||
- ALL
|
||||
runAsUser:
|
||||
rule: MustRunAsNonRoot
|
||||
runAsGroup:
|
||||
rule: MustRunAs
|
||||
ranges:
|
||||
- min: 1
|
||||
max: 65535
|
||||
seLinux:
|
||||
rule: RunAsAny
|
||||
supplementalGroups:
|
||||
ranges:
|
||||
- max: 65535
|
||||
min: 1
|
||||
rule: MustRunAs
|
||||
volumes:
|
||||
- configMap
|
||||
- emptyDir
|
||||
- projected
|
||||
- secret
|
||||
- downwardAPI
|
||||
- persistentVolumeClaim
|
||||
{{- end }}
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}-controlplane
|
||||
namespace: {{ include "kiali-server.istio_namespace" . }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- list
|
||||
...
|
|
@ -0,0 +1,97 @@
|
|||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}-viewer
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources:
|
||||
- configmaps
|
||||
- endpoints
|
||||
- namespaces
|
||||
- nodes
|
||||
- pods
|
||||
- pods/log
|
||||
- pods/proxy
|
||||
- replicationcontrollers
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups: [""]
|
||||
resources:
|
||||
- pods/portforward
|
||||
verbs:
|
||||
- create
|
||||
- post
|
||||
- apiGroups: ["extensions", "apps"]
|
||||
resources:
|
||||
- daemonsets
|
||||
- deployments
|
||||
- replicasets
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups: ["autoscaling"]
|
||||
resources:
|
||||
- horizontalpodautoscalers
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups: ["batch"]
|
||||
resources:
|
||||
- cronjobs
|
||||
- jobs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- networking.istio.io
|
||||
- security.istio.io
|
||||
resources: ["*"]
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups: ["apps.openshift.io"]
|
||||
resources:
|
||||
- deploymentconfigs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups: ["project.openshift.io"]
|
||||
resources:
|
||||
- projects
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups: ["route.openshift.io"]
|
||||
resources:
|
||||
- routes
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups: ["monitoring.kiali.io"]
|
||||
resources:
|
||||
- monitoringdashboards
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups: ["iter8.tools"]
|
||||
resources:
|
||||
- experiments
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups: ["authentication.k8s.io"]
|
||||
resources:
|
||||
- tokenreviews
|
||||
verbs:
|
||||
- create
|
||||
...
|
|
@ -0,0 +1,108 @@
|
|||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources:
|
||||
- configmaps
|
||||
- endpoints
|
||||
- namespaces
|
||||
- nodes
|
||||
- pods
|
||||
- pods/log
|
||||
- pods/proxy
|
||||
- replicationcontrollers
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- watch
|
||||
- apiGroups: [""]
|
||||
resources:
|
||||
- pods/portforward
|
||||
verbs:
|
||||
- create
|
||||
- post
|
||||
- apiGroups: ["extensions", "apps"]
|
||||
resources:
|
||||
- daemonsets
|
||||
- deployments
|
||||
- replicasets
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- watch
|
||||
- apiGroups: ["autoscaling"]
|
||||
resources:
|
||||
- horizontalpodautoscalers
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups: ["batch"]
|
||||
resources:
|
||||
- cronjobs
|
||||
- jobs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- watch
|
||||
- apiGroups:
|
||||
- networking.istio.io
|
||||
- security.istio.io
|
||||
resources: ["*"]
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- watch
|
||||
- apiGroups: ["apps.openshift.io"]
|
||||
resources:
|
||||
- deploymentconfigs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- watch
|
||||
- apiGroups: ["project.openshift.io"]
|
||||
resources:
|
||||
- projects
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups: ["route.openshift.io"]
|
||||
resources:
|
||||
- routes
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups: ["monitoring.kiali.io"]
|
||||
resources:
|
||||
- monitoringdashboards
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups: ["iter8.tools"]
|
||||
resources:
|
||||
- experiments
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- watch
|
||||
- apiGroups: ["authentication.k8s.io"]
|
||||
resources:
|
||||
- tokenreviews
|
||||
verbs:
|
||||
- create
|
||||
...
|
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}-controlplane
|
||||
namespace: {{ include "kiali-server.istio_namespace" . }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: {{ include "kiali-server.fullname" . }}-controlplane
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
...
|
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
{{- if .Values.deployment.view_only_mode }}
|
||||
name: {{ include "kiali-server.fullname" . }}-viewer
|
||||
{{- else }}
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
{{- end }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
...
|
|
@ -0,0 +1,30 @@
|
|||
{{- if .Capabilities.APIVersions.Has "route.openshift.io/v1" }}
|
||||
{{- if .Values.deployment.ingress_enabled }}
|
||||
# As of OpenShift 4.5, need to use --disable-openapi-validation when installing via Helm
|
||||
---
|
||||
apiVersion: route.openshift.io/v1
|
||||
kind: Route
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
{{- if hasKey .Values.deployment.override_ingress_yaml.metadata "annotations" }}}
|
||||
annotations:
|
||||
{{- toYaml .Values.deployment.override_ingress_yaml.metadata.annotations | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if hasKey .Values.deployment.override_ingress_yaml "spec" }}
|
||||
{{- toYaml .Values.deployment.override_ingress_yaml.spec | nindent 2 }}
|
||||
{{- else }}
|
||||
tls:
|
||||
termination: reencrypt
|
||||
insecureEdgeTerminationPolicy: Redirect
|
||||
to:
|
||||
kind: Service
|
||||
targetPort: {{ .Values.server.port }}
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
{{- end }}
|
||||
...
|
||||
{{- end }}
|
||||
{{- end }}
|
|
@ -0,0 +1,47 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
annotations:
|
||||
{{- if .Capabilities.APIVersions.Has "route.openshift.io/v1" }}
|
||||
service.beta.openshift.io/serving-cert-secret-name: {{ include "kiali-server.fullname" . }}-cert-secret
|
||||
{{- end }}
|
||||
kiali.io/api-spec: https://kiali.io/api
|
||||
kiali.io/api-type: rest
|
||||
{{- if and (not (empty .Values.server.web_fqdn)) (not (empty .Values.server.web_schema)) }}
|
||||
{{- if empty .Values.server.web_port }}
|
||||
kiali.io/external-url: {{ .Values.server.web_schema }}://{{ .Values.server.web_fqdn }}{{ default "" .Values.server.web_root }}
|
||||
{{- else }}
|
||||
kiali.io/external-url: {{ .Values.server.web_schema }}://{{ .Values.server.web_fqdn }}:{{ .Values.server.web_port }}{{(default "" .Values.server.web_root) }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.deployment.service_annotations }}
|
||||
{{- toYaml .Values.deployment.service_annotations | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.deployment.service_type }}
|
||||
type: {{ .Values.deployment.service_type }}
|
||||
{{- end }}
|
||||
ports:
|
||||
{{- if (include "kiali-server.identity.cert_file" .) }}
|
||||
- name: tcp
|
||||
{{- else }}
|
||||
- name: http
|
||||
{{- end }}
|
||||
protocol: TCP
|
||||
port: {{ .Values.server.port }}
|
||||
{{- if .Values.server.metrics_enabled }}
|
||||
- name: http-metrics
|
||||
protocol: TCP
|
||||
port: {{ .Values.server.metrics_port }}
|
||||
{{- end }}
|
||||
selector:
|
||||
{{- include "kiali-server.selectorLabels" . | nindent 4 }}
|
||||
{{- if .Values.deployment.additional_service_yaml }}
|
||||
{{- toYaml .Values.deployment.additional_service_yaml | nindent 2 }}
|
||||
{{- end }}
|
||||
...
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ include "kiali-server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
...
|
|
@ -0,0 +1,14 @@
|
|||
#{{- if gt (len (lookup "rbac.authorization.k8s.io/v1" "ClusterRole" "" "")) 0 -}}
|
||||
# {{- $found := dict -}}
|
||||
# {{- set $found "monitoring.kiali.io/v1alpha1/MonitoringDashboard" false -}}
|
||||
# {{- range .Capabilities.APIVersions -}}
|
||||
# {{- if hasKey $found (toString .) -}}
|
||||
# {{- set $found (toString .) true -}}
|
||||
# {{- end -}}
|
||||
# {{- end -}}
|
||||
# {{- range $_, $exists := $found -}}
|
||||
# {{- if (eq $exists false) -}}
|
||||
# {{- required "Required CRDs are missing. Please install the corresponding CRD chart before installing this chart." "" -}}
|
||||
# {{- end -}}
|
||||
# {{- end -}}
|
||||
#{{- end -}}
|
|
@ -0,0 +1,12 @@
|
|||
{{- if .Values.web_root_override }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: kiali-console
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "kiali-server.labels" . | nindent 4 }}
|
||||
data:
|
||||
env.js: |
|
||||
window.WEB_ROOT='/k8s/clusters/{{ .Values.global.cattle.clusterId }}/api/v1/namespaces/{{ .Release.Namespace }}/services/http:kiali:20001/proxy/kiali';
|
||||
{{- end }}
|
|
@ -0,0 +1,93 @@
|
|||
nameOverride: "kiali"
|
||||
fullnameOverride: "kiali"
|
||||
|
||||
# This is required for "openshift" auth strategy.
|
||||
# You have to know ahead of time what your Route URL will be because
|
||||
# right now the helm chart can't figure this out at runtime (it would
|
||||
# need to wait for the Kiali Route to be deployed and for OpenShift
|
||||
# to start it up). If someone knows how to update this helm chart to
|
||||
# do this, a PR would be welcome.
|
||||
kiali_route_url: ""
|
||||
|
||||
# rancher specific override that allows proxy access to kiali url
|
||||
web_root_override: true
|
||||
|
||||
#
|
||||
# Settings that mimic the Kiali CR which are placed in the ConfigMap.
|
||||
# Note that only those values used by the Helm Chart will be here.
|
||||
#
|
||||
|
||||
istio_namespace: "" # default is where Kiali is installed
|
||||
|
||||
auth:
|
||||
openid: {}
|
||||
openshift: {}
|
||||
strategy: ""
|
||||
|
||||
deployment:
|
||||
# This only limits what Kiali will attempt to see, but Kiali Service Account has permissions to see everything.
|
||||
# For more control over what the Kial Service Account can see, use the Kiali Operator
|
||||
accessible_namespaces:
|
||||
- "**"
|
||||
additional_service_yaml: {}
|
||||
affinity:
|
||||
node: {}
|
||||
pod: {}
|
||||
pod_anti: {}
|
||||
custom_dashboards:
|
||||
excludes: ['']
|
||||
includes: ['*']
|
||||
hpa:
|
||||
api_version: "autoscaling/v2beta2"
|
||||
spec: {}
|
||||
repository: rancher/mirrored-kiali-kiali
|
||||
image_pull_policy: "Always"
|
||||
image_pull_secrets: []
|
||||
tag: v1.32.0
|
||||
ingress_enabled: true
|
||||
logger:
|
||||
log_format: "text"
|
||||
log_level: "info"
|
||||
time_field_format: "2006-01-02T15:04:05Z07:00"
|
||||
sampler_rate: "1"
|
||||
node_selector: {}
|
||||
override_ingress_yaml:
|
||||
metadata: {}
|
||||
pod_annotations: {}
|
||||
pod_labels: {}
|
||||
priority_class_name: ""
|
||||
replicas: 1
|
||||
resources: {}
|
||||
secret_name: "kiali"
|
||||
service_annotations: {}
|
||||
service_type: ""
|
||||
tolerations: []
|
||||
version_label: v1.32.0
|
||||
view_only_mode: false
|
||||
|
||||
external_services:
|
||||
custom_dashboards:
|
||||
enabled: true
|
||||
|
||||
identity: {}
|
||||
#cert_file:
|
||||
#private_key_file:
|
||||
|
||||
login_token:
|
||||
signing_key: ""
|
||||
|
||||
server:
|
||||
port: 20001
|
||||
metrics_enabled: true
|
||||
metrics_port: 9090
|
||||
web_root: ""
|
||||
|
||||
# Common settings used among istio subcharts.
|
||||
global:
|
||||
# Specify rancher clusterId of external tracing config
|
||||
# https://github.com/istio/istio.io/issues/4146#issuecomment-493543032
|
||||
cattle:
|
||||
systemDefaultRegistry: ""
|
||||
clusterId:
|
||||
rbac:
|
||||
pspEnabled: false
|
|
@ -0,0 +1,23 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
|
@ -0,0 +1,12 @@
|
|||
annotations:
|
||||
catalog.cattle.io/hidden: "true"
|
||||
catalog.cattle.io/os: linux
|
||||
catalog.rancher.io/certified: rancher
|
||||
catalog.rancher.io/namespace: istio-system
|
||||
catalog.rancher.io/release-name: rancher-tracing
|
||||
apiVersion: v1
|
||||
appVersion: 1.20.0
|
||||
description: A quick start Jaeger Tracing installation using the all-in-one demo.
|
||||
This is not production qualified. Refer to https://www.jaegertracing.io/ for details.
|
||||
name: tracing
|
||||
version: 1.20.1
|
|
@ -0,0 +1,5 @@
|
|||
# Jaeger
|
||||
|
||||
A Rancher chart based on the Jaeger all-in-one quick installation option. This chart will allow you to trace and monitor distributed microservices.
|
||||
|
||||
> **Note:** The basic all-in-one Jaeger installation which is not qualified for production. Use the [Jaeger Tracing](https://www.jaegertracing.io) documentation to determine which installation you will need for your production needs.
|
|
@ -0,0 +1,92 @@
|
|||
{{/* affinity - https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ */}}
|
||||
{{- define "nodeAffinity" }}
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
{{- include "nodeAffinityRequiredDuringScheduling" . }}
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
{{- include "nodeAffinityPreferredDuringScheduling" . }}
|
||||
{{- end }}
|
||||
|
||||
{{- define "nodeAffinityRequiredDuringScheduling" }}
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: beta.kubernetes.io/arch
|
||||
operator: In
|
||||
values:
|
||||
{{- range $key, $val := .Values.global.arch }}
|
||||
{{- if gt ($val | int) 0 }}
|
||||
- {{ $key | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- $nodeSelector := default .Values.global.defaultNodeSelector .Values.nodeSelector -}}
|
||||
{{- range $key, $val := $nodeSelector }}
|
||||
- key: {{ $key }}
|
||||
operator: In
|
||||
values:
|
||||
- {{ $val | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- define "nodeAffinityPreferredDuringScheduling" }}
|
||||
{{- range $key, $val := .Values.global.arch }}
|
||||
{{- if gt ($val | int) 0 }}
|
||||
- weight: {{ $val | int }}
|
||||
preference:
|
||||
matchExpressions:
|
||||
- key: beta.kubernetes.io/arch
|
||||
operator: In
|
||||
values:
|
||||
- {{ $key | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- define "podAntiAffinity" }}
|
||||
{{- if or .Values.podAntiAffinityLabelSelector .Values.podAntiAffinityTermLabelSelector}}
|
||||
podAntiAffinity:
|
||||
{{- if .Values.podAntiAffinityLabelSelector }}
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
{{- include "podAntiAffinityRequiredDuringScheduling" . }}
|
||||
{{- end }}
|
||||
{{- if or .Values.podAntiAffinityTermLabelSelector}}
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
{{- include "podAntiAffinityPreferredDuringScheduling" . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- define "podAntiAffinityRequiredDuringScheduling" }}
|
||||
{{- range $index, $item := .Values.podAntiAffinityLabelSelector }}
|
||||
- labelSelector:
|
||||
matchExpressions:
|
||||
- key: {{ $item.key }}
|
||||
operator: {{ $item.operator }}
|
||||
{{- if $item.values }}
|
||||
values:
|
||||
{{- $vals := split "," $item.values }}
|
||||
{{- range $i, $v := $vals }}
|
||||
- {{ $v | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
topologyKey: {{ $item.topologyKey }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- define "podAntiAffinityPreferredDuringScheduling" }}
|
||||
{{- range $index, $item := .Values.podAntiAffinityTermLabelSelector }}
|
||||
- podAffinityTerm:
|
||||
labelSelector:
|
||||
matchExpressions:
|
||||
- key: {{ $item.key }}
|
||||
operator: {{ $item.operator }}
|
||||
{{- if $item.values }}
|
||||
values:
|
||||
{{- $vals := split "," $item.values }}
|
||||
{{- range $i, $v := $vals }}
|
||||
- {{ $v | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
topologyKey: {{ $item.topologyKey }}
|
||||
weight: 100
|
||||
{{- end }}
|
||||
{{- end }}
|
|
@ -0,0 +1,32 @@
|
|||
{{- define "system_default_registry" -}}
|
||||
{{- if .Values.global.cattle.systemDefaultRegistry -}}
|
||||
{{- printf "%s/" .Values.global.cattle.systemDefaultRegistry -}}
|
||||
{{- else -}}
|
||||
{{- "" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "tracing.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "tracing.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
|
@ -0,0 +1,86 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "tracing.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: {{ .Values.provider }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: {{ .Values.provider }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ .Values.provider }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
annotations:
|
||||
sidecar.istio.io/inject: "false"
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: "14269"
|
||||
{{- if .Values.jaeger.podAnnotations }}
|
||||
{{ toYaml .Values.jaeger.podAnnotations | indent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
containers:
|
||||
- name: jaeger
|
||||
image: "{{ template "system_default_registry" . }}{{ .Values.jaeger.repository }}:{{ .Values.jaeger.tag }}"
|
||||
imagePullPolicy: {{ .Values.global.imagePullPolicy }}
|
||||
env:
|
||||
{{- if eq .Values.jaeger.spanStorageType "badger" }}
|
||||
- name: BADGER_EPHEMERAL
|
||||
value: "false"
|
||||
- name: SPAN_STORAGE_TYPE
|
||||
value: "badger"
|
||||
- name: BADGER_DIRECTORY_VALUE
|
||||
value: "/badger/data"
|
||||
- name: BADGER_DIRECTORY_KEY
|
||||
value: "/badger/key"
|
||||
{{- end }}
|
||||
- name: COLLECTOR_ZIPKIN_HTTP_PORT
|
||||
value: "9411"
|
||||
- name: MEMORY_MAX_TRACES
|
||||
value: "{{ .Values.jaeger.memory.max_traces }}"
|
||||
- name: QUERY_BASE_PATH
|
||||
value: {{ if .Values.contextPath }} {{ .Values.contextPath }} {{ else }} /{{ .Values.provider }} {{ end }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: 14269
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: 14269
|
||||
{{- if eq .Values.jaeger.spanStorageType "badger" }}
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: /badger
|
||||
{{- end }}
|
||||
resources:
|
||||
{{- if .Values.jaeger.resources }}
|
||||
{{ toYaml .Values.jaeger.resources | indent 12 }}
|
||||
{{- else }}
|
||||
{{ toYaml .Values.global.defaultResources | indent 12 }}
|
||||
{{- end }}
|
||||
affinity:
|
||||
{{- include "nodeAffinity" . | indent 6 }}
|
||||
{{- include "podAntiAffinity" . | indent 6 }}
|
||||
{{- if .Values.global.rbac.pspEnabled }}
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
runAsUser: 1000
|
||||
serviceAccountName: {{ include "tracing.fullname" . }}
|
||||
{{- end }}
|
||||
{{- if eq .Values.jaeger.spanStorageType "badger" }}
|
||||
volumes:
|
||||
- name: data
|
||||
{{- if .Values.jaeger.persistentVolumeClaim.enabled }}
|
||||
persistentVolumeClaim:
|
||||
claimName: istio-jaeger-pvc
|
||||
{{- else }}
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- end }}
|
|
@ -0,0 +1,86 @@
|
|||
{{- if .Values.global.rbac.pspEnabled }}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ include "tracing.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: {{ .Values.provider }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: {{ include "tracing.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: {{ .Values.provider }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: {{ include "tracing.fullname" . }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "tracing.fullname" . }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: {{ include "tracing.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: {{ .Values.provider }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- policy
|
||||
resourceNames:
|
||||
- {{ include "tracing.fullname" . }}
|
||||
resources:
|
||||
- podsecuritypolicies
|
||||
verbs:
|
||||
- use
|
||||
---
|
||||
apiVersion: policy/v1beta1
|
||||
kind: PodSecurityPolicy
|
||||
metadata:
|
||||
name: {{ include "tracing.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: {{ .Values.provider }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
allowPrivilegeEscalation: false
|
||||
forbiddenSysctls:
|
||||
- '*'
|
||||
fsGroup:
|
||||
ranges:
|
||||
- max: 65535
|
||||
min: 1
|
||||
rule: MustRunAs
|
||||
requiredDropCapabilities:
|
||||
- ALL
|
||||
runAsUser:
|
||||
rule: MustRunAsNonRoot
|
||||
runAsGroup:
|
||||
rule: MustRunAs
|
||||
ranges:
|
||||
- min: 1
|
||||
max: 65535
|
||||
seLinux:
|
||||
rule: RunAsAny
|
||||
supplementalGroups:
|
||||
ranges:
|
||||
- max: 65535
|
||||
min: 1
|
||||
rule: MustRunAs
|
||||
volumes:
|
||||
- emptyDir
|
||||
- secret
|
||||
- persistentVolumeClaim
|
||||
{{- end }}
|
|
@ -0,0 +1,16 @@
|
|||
{{- if .Values.jaeger.persistentVolumeClaim.enabled }}
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: istio-jaeger-pvc
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: {{ .Values.provider }}
|
||||
spec:
|
||||
storageClassName: {{ .Values.jaeger.storageClassName }}
|
||||
accessModes:
|
||||
- {{ .Values.jaeger.accessMode }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{.Values.jaeger.persistentVolumeClaim.storage }}
|
||||
{{- end }}
|
|
@ -0,0 +1,63 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: tracing
|
||||
namespace: {{ .Release.Namespace }}
|
||||
annotations:
|
||||
{{- range $key, $val := .Values.service.annotations }}
|
||||
{{ $key }}: {{ $val | quote }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app: {{ .Values.provider }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- name: {{ .Values.service.name }}
|
||||
port: {{ .Values.service.externalPort }}
|
||||
protocol: TCP
|
||||
targetPort: 16686
|
||||
selector:
|
||||
app: {{ .Values.provider }}
|
||||
---
|
||||
# Jaeger implements the Zipkin API. To support swapping out the tracing backend, we use a Service named Zipkin.
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: zipkin
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
name: zipkin
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
ports:
|
||||
- name: {{ .Values.service.name }}
|
||||
port: {{ .Values.zipkin.queryPort }}
|
||||
targetPort: {{ .Values.zipkin.queryPort }}
|
||||
selector:
|
||||
app: {{ .Values.provider }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: jaeger-collector
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: {{ .Values.provider }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: jaeger-collector-http
|
||||
port: 14268
|
||||
targetPort: 14268
|
||||
protocol: TCP
|
||||
- name: jaeger-collector-grpc
|
||||
port: 14250
|
||||
targetPort: 14250
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: {{ .Values.provider }}
|
|
@ -0,0 +1,44 @@
|
|||
provider: jaeger
|
||||
contextPath: ""
|
||||
nodeSelector: {}
|
||||
podAntiAffinityLabelSelector: []
|
||||
podAntiAffinityTermLabelSelector: []
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
global:
|
||||
cattle:
|
||||
systemDefaultRegistry: ""
|
||||
defaultResources: {}
|
||||
imagePullPolicy: IfNotPresent
|
||||
imagePullSecrets: []
|
||||
arch:
|
||||
amd64: 2
|
||||
s390x: 2
|
||||
ppc64le: 2
|
||||
defaultNodeSelector: {}
|
||||
rbac:
|
||||
pspEnabled: false
|
||||
|
||||
jaeger:
|
||||
repository: rancher/mirrored-jaegertracing-all-in-one
|
||||
tag: 1.20.0
|
||||
# spanStorageType value can be "memory" and "badger" for all-in-one image
|
||||
spanStorageType: badger
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
persistentVolumeClaim:
|
||||
enabled: false
|
||||
storage: 5Gi
|
||||
storageClassName: ""
|
||||
accessMode: ReadWriteMany
|
||||
memory:
|
||||
max_traces: 50000
|
||||
zipkin:
|
||||
queryPort: 9411
|
||||
service:
|
||||
annotations: {}
|
||||
name: http-query
|
||||
type: ClusterIP
|
||||
externalPort: 16686
|
|
@ -0,0 +1,82 @@
|
|||
apiVersion: install.istio.io/v1alpha1
|
||||
kind: IstioOperator
|
||||
spec:
|
||||
components:
|
||||
base:
|
||||
enabled: {{ .Values.base.enabled }}
|
||||
cni:
|
||||
enabled: {{ .Values.cni.enabled }}
|
||||
egressGateways:
|
||||
- enabled: {{ .Values.egressGateways.enabled }}
|
||||
name: istio-egressgateway
|
||||
ingressGateways:
|
||||
- enabled: {{ .Values.ingressGateways.enabled }}
|
||||
name: istio-ingressgateway
|
||||
k8s:
|
||||
service:
|
||||
ports:
|
||||
- name: status-port
|
||||
port: 15021
|
||||
targetPort: 15021
|
||||
- name: http2
|
||||
port: 80
|
||||
targetPort: 8080
|
||||
nodePort: 31380
|
||||
- name: https
|
||||
port: 443
|
||||
targetPort: 8443
|
||||
nodePort: 31390
|
||||
- name: tcp
|
||||
port: 31400
|
||||
targetPort: 31400
|
||||
nodePort: 31400
|
||||
- name: tls
|
||||
port: 15443
|
||||
targetPort: 15443
|
||||
istiodRemote:
|
||||
enabled: {{ .Values.istiodRemote.enabled }}
|
||||
pilot:
|
||||
enabled: {{ .Values.pilot.enabled }}
|
||||
hub: {{ .Values.systemDefaultRegistry | default "docker.io" }}
|
||||
profile: default
|
||||
tag: {{ .Values.tag }}
|
||||
revision: {{ .Values.revision }}
|
||||
meshConfig:
|
||||
defaultConfig:
|
||||
proxyMetadata:
|
||||
{{- if .Values.dns.enabled }}
|
||||
ISTIO_META_DNS_CAPTURE: "true"
|
||||
{{- end }}
|
||||
values:
|
||||
gateways:
|
||||
istio-egressgateway:
|
||||
name: istio-egressgateway
|
||||
type: {{ .Values.egressGateways.type }}
|
||||
istio-ingressgateway:
|
||||
name: istio-ingressgateway
|
||||
type: {{ .Values.ingressGateways.type }}
|
||||
global:
|
||||
istioNamespace: {{ template "istio.namespace" . }}
|
||||
proxy:
|
||||
image: {{ template "system_default_registry" . }}{{ .Values.global.proxy.repository }}:{{ .Values.global.proxy.tag }}
|
||||
proxy_init:
|
||||
image: {{ template "system_default_registry" . }}{{ .Values.global.proxy_init.repository }}:{{ .Values.global.proxy_init.tag }}
|
||||
{{- if .Values.global.defaultPodDisruptionBudget.enabled }}
|
||||
defaultPodDisruptionBudget:
|
||||
enabled: {{ .Values.global.defaultPodDisruptionBudget.enabled }}
|
||||
{{- end }}
|
||||
{{- if .Values.pilot.enabled }}
|
||||
pilot:
|
||||
image: {{ template "system_default_registry" . }}{{ .Values.pilot.repository }}:{{ .Values.pilot.tag }}
|
||||
{{- end }}
|
||||
telemetry:
|
||||
enabled: {{ .Values.telemetry.enabled }}
|
||||
v2:
|
||||
enabled: {{ .Values.telemetry.v2.enabled }}
|
||||
{{- if .Values.cni.enabled }}
|
||||
cni:
|
||||
image: {{ template "system_default_registry" . }}{{ .Values.cni.repository }}:{{ .Values.cni.tag }}
|
||||
excludeNamespaces:
|
||||
{{- toYaml .Values.cni.excludeNamespaces | nindent 8 }}
|
||||
logLevel: {{ .Values.cni.logLevel }}
|
||||
{{- end }}
|
|
@ -0,0 +1,7 @@
|
|||
dependencies:
|
||||
- condition: kiali.enabled
|
||||
name: kiali
|
||||
repository: file://./charts/kiali
|
||||
- condition: tracing.enabled
|
||||
name: tracing
|
||||
repository: file://./charts/tracing
|
|
@ -0,0 +1,37 @@
|
|||
apiVersion: install.istio.io/v1alpha1
|
||||
kind: IstioOperator
|
||||
spec:
|
||||
components:
|
||||
ingressGateways:
|
||||
- enabled: true
|
||||
name: ilb-gateway
|
||||
namespace: user-ingressgateway-ns
|
||||
k8s:
|
||||
resources:
|
||||
requests:
|
||||
cpu: 200m
|
||||
service:
|
||||
ports:
|
||||
- name: tcp-citadel-grpc-tls
|
||||
port: 8060
|
||||
targetPort: 8060
|
||||
- name: tcp-dns
|
||||
port: 5353
|
||||
serviceAnnotations:
|
||||
cloud.google.com/load-balancer-type: internal
|
||||
- enabled: true
|
||||
name: other-gateway
|
||||
namespace: cattle-istio-system
|
||||
k8s:
|
||||
resources:
|
||||
requests:
|
||||
cpu: 200m
|
||||
service:
|
||||
ports:
|
||||
- name: tcp-citadel-grpc-tls
|
||||
port: 8060
|
||||
targetPort: 8060
|
||||
- name: tcp-dns
|
||||
port: 5353
|
||||
serviceAnnotations:
|
||||
cloud.google.com/load-balancer-type: internal
|
|
@ -0,0 +1,12 @@
|
|||
{{/* Ensure namespace is set the same everywhere */}}
|
||||
{{- define "istio.namespace" -}}
|
||||
{{- .Release.Namespace | default "istio-system" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "system_default_registry" -}}
|
||||
{{- if .Values.global.cattle.systemDefaultRegistry -}}
|
||||
{{- printf "%s/" .Values.global.cattle.systemDefaultRegistry -}}
|
||||
{{- else -}}
|
||||
{{- "" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
|
@ -0,0 +1,43 @@
|
|||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
rbac.authorization.k8s.io/aggregate-to-admin: "true"
|
||||
name: istio-admin
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- config.istio.io
|
||||
resources:
|
||||
- adapters
|
||||
- attributemanifests
|
||||
- handlers
|
||||
- httpapispecbindings
|
||||
- httpapispecs
|
||||
- instances
|
||||
- quotaspecbindings
|
||||
- quotaspecs
|
||||
- rules
|
||||
- templates
|
||||
verbs: ["get", "watch", "list"]
|
||||
- apiGroups:
|
||||
- networking.istio.io
|
||||
resources:
|
||||
- destinationrules
|
||||
- envoyfilters
|
||||
- gateways
|
||||
- serviceentries
|
||||
- sidecars
|
||||
- virtualservices
|
||||
- workloadentries
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- security.istio.io
|
||||
resources:
|
||||
- authorizationpolicies
|
||||
- peerauthentications
|
||||
- requestauthentications
|
||||
verbs:
|
||||
- '*'
|
|
@ -0,0 +1,7 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: istio-installer-base
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
data:
|
||||
{{ tpl (.Files.Glob "configs/*").AsConfig . | indent 2 }}
|
|
@ -0,0 +1,120 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: istio-installer
|
||||
rules:
|
||||
# istio groups
|
||||
- apiGroups:
|
||||
- authentication.istio.io
|
||||
resources:
|
||||
- '*'
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- config.istio.io
|
||||
resources:
|
||||
- '*'
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- install.istio.io
|
||||
resources:
|
||||
- '*'
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- networking.istio.io
|
||||
resources:
|
||||
- '*'
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- rbac.istio.io
|
||||
resources:
|
||||
- '*'
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- security.istio.io
|
||||
resources:
|
||||
- '*'
|
||||
verbs:
|
||||
- '*'
|
||||
# k8s groups
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- mutatingwebhookconfigurations
|
||||
- validatingwebhookconfigurations
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions.apiextensions.k8s.io
|
||||
- customresourcedefinitions
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- apps
|
||||
- extensions
|
||||
resources:
|
||||
- daemonsets
|
||||
- deployments
|
||||
- deployments/finalizers
|
||||
- ingresses
|
||||
- replicasets
|
||||
- statefulsets
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- autoscaling
|
||||
resources:
|
||||
- horizontalpodautoscalers
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- monitoring.coreos.com
|
||||
resources:
|
||||
- servicemonitors
|
||||
verbs:
|
||||
- get
|
||||
- create
|
||||
- apiGroups:
|
||||
- policy
|
||||
resources:
|
||||
- poddisruptionbudgets
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- rbac.authorization.k8s.io
|
||||
resources:
|
||||
- clusterrolebindings
|
||||
- clusterroles
|
||||
- roles
|
||||
- rolebindings
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
- endpoints
|
||||
- events
|
||||
- namespaces
|
||||
- pods
|
||||
- pods/exec
|
||||
- persistentvolumeclaims
|
||||
- secrets
|
||||
- services
|
||||
- serviceaccounts
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- policy
|
||||
resourceNames:
|
||||
- istio-installer
|
||||
resources:
|
||||
- podsecuritypolicies
|
||||
verbs:
|
||||
- use
|
|
@ -0,0 +1,12 @@
|
|||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: istio-installer
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: istio-installer
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: istio-installer
|
||||
apiGroup: rbac.authorization.k8s.io
|
|
@ -0,0 +1,43 @@
|
|||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
rbac.authorization.k8s.io/aggregate-to-edit: "true"
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
name: istio-edit
|
||||
rules:
|
||||
- apiGroups:
|
||||
- config.istio.io
|
||||
resources:
|
||||
- adapters
|
||||
- attributemanifests
|
||||
- handlers
|
||||
- httpapispecbindings
|
||||
- httpapispecs
|
||||
- instances
|
||||
- quotaspecbindings
|
||||
- quotaspecs
|
||||
- rules
|
||||
- templates
|
||||
verbs: ["get", "watch", "list"]
|
||||
- apiGroups:
|
||||
- networking.istio.io
|
||||
resources:
|
||||
- destinationrules
|
||||
- envoyfilters
|
||||
- gateways
|
||||
- serviceentries
|
||||
- sidecars
|
||||
- virtualservices
|
||||
- workloadentries
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- security.istio.io
|
||||
resources:
|
||||
- authorizationpolicies
|
||||
- peerauthentications
|
||||
- requestauthentications
|
||||
verbs:
|
||||
- '*'
|
|
@ -0,0 +1,51 @@
|
|||
{{- if .Values.global.rbac.pspEnabled }}
|
||||
apiVersion: policy/v1beta1
|
||||
kind: PodSecurityPolicy
|
||||
metadata:
|
||||
name: psp-istio-cni
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
spec:
|
||||
allowPrivilegeEscalation: true
|
||||
fsGroup:
|
||||
rule: RunAsAny
|
||||
hostNetwork: true
|
||||
runAsUser:
|
||||
rule: RunAsAny
|
||||
seLinux:
|
||||
rule: RunAsAny
|
||||
supplementalGroups:
|
||||
rule: RunAsAny
|
||||
volumes:
|
||||
- secret
|
||||
- configMap
|
||||
- emptyDir
|
||||
- hostPath
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: psp-istio-cni
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: psp-istio-cni
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: istio-cni
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: psp-istio-cni
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- policy
|
||||
resourceNames:
|
||||
- psp-istio-cni
|
||||
resources:
|
||||
- podsecuritypolicies
|
||||
verbs:
|
||||
- use
|
||||
{{- end }}
|
|
@ -0,0 +1,50 @@
|
|||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: istioctl-installer
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
annotations:
|
||||
"helm.sh/hook": post-install,post-upgrade
|
||||
"helm.sh/hook-weight": "-5"
|
||||
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
|
||||
spec:
|
||||
backoffLimit: 1
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: istioctl-installer
|
||||
image: {{ template "system_default_registry" . }}{{ .Values.installer.repository }}:{{ .Values.installer.tag }}
|
||||
env:
|
||||
- name: RELEASE_NAME
|
||||
value: {{ .Release.Name }}
|
||||
- name: ISTIO_NAMESPACE
|
||||
value: {{ template "istio.namespace" . }}
|
||||
- name: FORCE_INSTALL
|
||||
value: {{ .Values.forceInstall | default "false" | quote }}
|
||||
command: ["/bin/sh","-c"]
|
||||
args: ["/usr/local/app/scripts/run.sh"]
|
||||
volumeMounts:
|
||||
- name: config-volume
|
||||
mountPath: /app/istio-base.yaml
|
||||
subPath: istio-base.yaml
|
||||
{{- if .Values.overlayFile }}
|
||||
- name: overlay-volume
|
||||
mountPath: /app/overlay-config.yaml
|
||||
subPath: overlay-config.yaml
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: config-volume
|
||||
configMap:
|
||||
name: istio-installer-base
|
||||
{{- if .Values.overlayFile }}
|
||||
- name: overlay-volume
|
||||
configMap:
|
||||
name: istio-installer-overlay
|
||||
{{- end }}
|
||||
serviceAccountName: istio-installer
|
||||
{{- if .Values.global.rbac.pspEnabled }}
|
||||
securityContext:
|
||||
runAsUser: 101
|
||||
runAsGroup: 101
|
||||
{{- end }}
|
||||
restartPolicy: Never
|
|
@ -0,0 +1,30 @@
|
|||
{{- if .Values.global.rbac.pspEnabled }}
|
||||
apiVersion: policy/v1beta1
|
||||
kind: PodSecurityPolicy
|
||||
metadata:
|
||||
name: istio-installer
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
spec:
|
||||
privileged: false
|
||||
hostNetwork: false
|
||||
hostIPC: false
|
||||
hostPID: false
|
||||
runAsUser:
|
||||
rule: 'MustRunAsNonRoot'
|
||||
seLinux:
|
||||
rule: 'RunAsAny'
|
||||
supplementalGroups:
|
||||
rule: 'MustRunAs'
|
||||
ranges:
|
||||
- min: 1
|
||||
max: 65535
|
||||
fsGroup:
|
||||
rule: 'MustRunAs'
|
||||
ranges:
|
||||
- min: 1
|
||||
max: 65535
|
||||
readOnlyRootFilesystem: false
|
||||
volumes:
|
||||
- 'configMap'
|
||||
- 'secret'
|
||||
{{- end }}
|
|
@ -0,0 +1,81 @@
|
|||
{{- if .Values.global.rbac.pspEnabled }}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: istio-psp
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: istio-psp
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: istio-egressgateway-service-account
|
||||
- kind: ServiceAccount
|
||||
name: istio-ingressgateway-service-account
|
||||
- kind: ServiceAccount
|
||||
name: istio-mixer-service-account
|
||||
- kind: ServiceAccount
|
||||
name: istio-operator-authproxy
|
||||
- kind: ServiceAccount
|
||||
name: istiod-service-account
|
||||
- kind: ServiceAccount
|
||||
name: istio-sidecar-injector-service-account
|
||||
- kind: ServiceAccount
|
||||
name: istiocoredns-service-account
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: istio-psp
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- policy
|
||||
resourceNames:
|
||||
- istio-psp
|
||||
resources:
|
||||
- podsecuritypolicies
|
||||
verbs:
|
||||
- use
|
||||
---
|
||||
apiVersion: policy/v1beta1
|
||||
kind: PodSecurityPolicy
|
||||
metadata:
|
||||
name: istio-psp
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
spec:
|
||||
allowPrivilegeEscalation: false
|
||||
forbiddenSysctls:
|
||||
- '*'
|
||||
fsGroup:
|
||||
ranges:
|
||||
- max: 65535
|
||||
min: 1
|
||||
rule: MustRunAs
|
||||
requiredDropCapabilities:
|
||||
- ALL
|
||||
runAsUser:
|
||||
rule: MustRunAsNonRoot
|
||||
runAsGroup:
|
||||
rule: MustRunAs
|
||||
ranges:
|
||||
- min: 1
|
||||
max: 65535
|
||||
seLinux:
|
||||
rule: RunAsAny
|
||||
supplementalGroups:
|
||||
ranges:
|
||||
- max: 65535
|
||||
min: 1
|
||||
rule: MustRunAs
|
||||
volumes:
|
||||
- configMap
|
||||
- emptyDir
|
||||
- projected
|
||||
- secret
|
||||
- downwardAPI
|
||||
- persistentVolumeClaim
|
||||
{{- end }}
|
|
@ -0,0 +1,45 @@
|
|||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: istioctl-uninstaller
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
annotations:
|
||||
"helm.sh/hook": pre-delete
|
||||
"helm.sh/hook-weight": "-5"
|
||||
"helm.sh/hook-delete-policy": hook-succeeded
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: istioctl-uninstaller
|
||||
image: {{ template "system_default_registry" . }}{{ .Values.installer.repository }}:{{ .Values.installer.tag }}
|
||||
env:
|
||||
- name: RELEASE_NAME
|
||||
value: {{ .Release.Name }}
|
||||
- name: ISTIO_NAMESPACE
|
||||
value: {{ template "istio.namespace" . }}
|
||||
command: ["/bin/sh","-c"]
|
||||
args: ["/usr/local/app/scripts/uninstall_istio_system.sh"]
|
||||
volumeMounts:
|
||||
- name: config-volume
|
||||
mountPath: /app/istio-base.yaml
|
||||
subPath: istio-base.yaml
|
||||
{{- if .Values.overlayFile }}
|
||||
- name: overlay-volume
|
||||
mountPath: /app/overlay-config.yaml
|
||||
subPath: overlay-config.yaml
|
||||
{{ end }}
|
||||
volumes:
|
||||
- name: config-volume
|
||||
configMap:
|
||||
name: istio-installer-base
|
||||
{{- if .Values.overlayFile }}
|
||||
- name: overlay-volume
|
||||
configMap:
|
||||
name: istio-installer-overlay
|
||||
{{ end }}
|
||||
serviceAccountName: istio-installer
|
||||
securityContext:
|
||||
runAsUser: 101
|
||||
runAsGroup: 101
|
||||
restartPolicy: OnFailure
|
|
@ -0,0 +1,9 @@
|
|||
{{- if .Values.overlayFile }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: istio-installer-overlay
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
data:
|
||||
overlay-config.yaml: {{ toYaml .Values.overlayFile | indent 2 }}
|
||||
{{- end }}
|
|
@ -0,0 +1,51 @@
|
|||
{{- if .Values.kiali.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: envoy-stats-monitor
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
labels:
|
||||
monitoring: istio-proxies
|
||||
spec:
|
||||
selector:
|
||||
matchExpressions:
|
||||
- {key: istio-prometheus-ignore, operator: DoesNotExist}
|
||||
namespaceSelector:
|
||||
any: true
|
||||
jobLabel: envoy-stats
|
||||
endpoints:
|
||||
- path: /stats/prometheus
|
||||
targetPort: 15090
|
||||
interval: 15s
|
||||
relabelings:
|
||||
- sourceLabels: [__meta_kubernetes_pod_container_port_name]
|
||||
action: keep
|
||||
regex: '.*-envoy-prom'
|
||||
- action: labeldrop
|
||||
regex: "__meta_kubernetes_pod_label_(.+)"
|
||||
- sourceLabels: [__meta_kubernetes_namespace]
|
||||
action: replace
|
||||
targetLabel: namespace
|
||||
- sourceLabels: [__meta_kubernetes_pod_name]
|
||||
action: replace
|
||||
targetLabel: pod_name
|
||||
---
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: istio-component-monitor
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
labels:
|
||||
monitoring: istio-components
|
||||
spec:
|
||||
jobLabel: istio
|
||||
targetLabels: [app]
|
||||
selector:
|
||||
matchExpressions:
|
||||
- {key: istio, operator: In, values: [pilot]}
|
||||
namespaceSelector:
|
||||
any: true
|
||||
endpoints:
|
||||
- port: http-monitoring
|
||||
interval: 15s
|
||||
{{- end -}}
|
|
@ -0,0 +1,5 @@
|
|||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: istio-installer
|
||||
namespace: {{ template "istio.namespace" . }}
|
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
rbac.authorization.k8s.io/aggregate-to-view: "true"
|
||||
namespace: {{ template "istio.namespace" . }}
|
||||
name: istio-view
|
||||
rules:
|
||||
- apiGroups:
|
||||
- config.istio.io
|
||||
resources:
|
||||
- adapters
|
||||
- attributemanifests
|
||||
- handlers
|
||||
- httpapispecbindings
|
||||
- httpapispecs
|
||||
- instances
|
||||
- quotaspecbindings
|
||||
- quotaspecs
|
||||
- rules
|
||||
- templates
|
||||
verbs: ["get", "watch", "list"]
|
||||
- apiGroups:
|
||||
- networking.istio.io
|
||||
resources:
|
||||
- destinationrules
|
||||
- envoyfilters
|
||||
- gateways
|
||||
- serviceentries
|
||||
- sidecars
|
||||
- virtualservices
|
||||
- workloadentries
|
||||
verbs: ["get", "watch", "list"]
|
||||
- apiGroups:
|
||||
- security.istio.io
|
||||
resources:
|
||||
- authorizationpolicies
|
||||
- peerauthentications
|
||||
- requestauthentications
|
||||
verbs: ["get", "watch", "list"]
|
|
@ -0,0 +1,85 @@
|
|||
overlayFile: ""
|
||||
tag: 1.9.6
|
||||
##Setting forceInstall: true will remove the check for istio version < 1.6.x and will not analyze your install cluster prior to install
|
||||
forceInstall: false
|
||||
|
||||
installer:
|
||||
repository: rancher/istio-installer
|
||||
tag: 1.9.6-rancher1
|
||||
|
||||
##Native support for dns added in 1.8
|
||||
dns:
|
||||
enabled: false
|
||||
|
||||
base:
|
||||
enabled: true
|
||||
|
||||
cni:
|
||||
enabled: false
|
||||
repository: rancher/mirrored-istio-install-cni
|
||||
tag: 1.9.6
|
||||
logLevel: info
|
||||
excludeNamespaces:
|
||||
- istio-system
|
||||
- kube-system
|
||||
|
||||
egressGateways:
|
||||
enabled: false
|
||||
type: NodePort
|
||||
|
||||
ingressGateways:
|
||||
enabled: true
|
||||
type: NodePort
|
||||
|
||||
istiodRemote:
|
||||
enabled: false
|
||||
|
||||
pilot:
|
||||
enabled: true
|
||||
repository: rancher/mirrored-istio-pilot
|
||||
tag: 1.9.6
|
||||
|
||||
telemetry:
|
||||
enabled: true
|
||||
v2:
|
||||
enabled: true
|
||||
|
||||
global:
|
||||
cattle:
|
||||
systemDefaultRegistry: ""
|
||||
proxy:
|
||||
repository: rancher/mirrored-istio-proxyv2
|
||||
tag: 1.9.6
|
||||
proxy_init:
|
||||
repository: rancher/mirrored-istio-proxyv2
|
||||
tag: 1.9.6
|
||||
defaultPodDisruptionBudget:
|
||||
enabled: true
|
||||
rbac:
|
||||
pspEnabled: false
|
||||
|
||||
# Kiali subchart from rancher-kiali-server
|
||||
kiali:
|
||||
enabled: true
|
||||
auth:
|
||||
strategy: anonymous
|
||||
deployment:
|
||||
ingress_enabled: false
|
||||
repository: rancher/mirrored-kiali-kiali
|
||||
tag: v1.32.0
|
||||
external_services:
|
||||
prometheus:
|
||||
custom_metrics_url: "http://rancher-monitoring-prometheus.cattle-monitoring-system.svc:9090"
|
||||
url: "http://rancher-monitoring-prometheus.cattle-monitoring-system.svc:9090"
|
||||
tracing:
|
||||
in_cluster_url: "http://tracing.istio-system.svc:16686/jaeger"
|
||||
grafana:
|
||||
in_cluster_url: "http://rancher-monitoring-grafana.cattle-monitoring-system.svc:80"
|
||||
url: "http://rancher-monitoring-grafana.cattle-monitoring-system.svc:80"
|
||||
|
||||
tracing:
|
||||
enabled: false
|
||||
contextPath: "/jaeger"
|
||||
jaeger:
|
||||
repository: rancher/mirrored-jaegertracing-all-in-one
|
||||
tag: 1.20.0
|
|
@ -0,0 +1,11 @@
|
|||
annotations:
|
||||
catalog.cattle.io/certified: rancher
|
||||
catalog.cattle.io/hidden: "true"
|
||||
catalog.cattle.io/namespace: cattle-system
|
||||
catalog.cattle.io/os: linux
|
||||
catalog.cattle.io/release-name: rancher-webhook
|
||||
apiVersion: v2
|
||||
appVersion: 0.1.1
|
||||
description: ValidatingAdmissionWebhook for Rancher types
|
||||
name: rancher-webhook
|
||||
version: 0.1.100+up0.1.1
|
|
@ -0,0 +1,7 @@
|
|||
{{- define "system_default_registry" -}}
|
||||
{{- if .Values.global.cattle.systemDefaultRegistry -}}
|
||||
{{- printf "%s/" .Values.global.cattle.systemDefaultRegistry -}}
|
||||
{{- else -}}
|
||||
{{- "" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
|
@ -0,0 +1,26 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: rancher-webhook
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: rancher-webhook
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: rancher-webhook
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
image: '{{ template "system_default_registry" . }}{{ .Values.image.repository }}:{{ .Values.image.tag }}'
|
||||
name: rancher-webhook
|
||||
imagePullPolicy: "{{ .Values.image.imagePullPolicy }}"
|
||||
ports:
|
||||
- name: https
|
||||
containerPort: 9443
|
||||
serviceAccountName: rancher-webhook
|
|
@ -0,0 +1,12 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: rancher-webhook
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: cluster-admin
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: rancher-webhook
|
||||
namespace: {{.Release.Namespace}}
|
|
@ -0,0 +1,13 @@
|
|||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: rancher-webhook
|
||||
namespace: cattle-system
|
||||
spec:
|
||||
ports:
|
||||
- port: 443
|
||||
targetPort: 9443
|
||||
protocol: TCP
|
||||
name: https
|
||||
selector:
|
||||
app: rancher-webhook
|
|
@ -0,0 +1,4 @@
|
|||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: rancher-webhook
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: admissionregistration.k8s.io/v1
|
||||
kind: ValidatingWebhookConfiguration
|
||||
metadata:
|
||||
name: rancher.cattle.io
|
||||
webhooks:
|
||||
- admissionReviewVersions:
|
||||
- v1
|
||||
- v1beta1
|
||||
clientConfig:
|
||||
service:
|
||||
name: rancher-webhook
|
||||
namespace: cattle-system
|
||||
path: /v1/webhook/validation
|
||||
port: 443
|
||||
failurePolicy: Ignore
|
||||
matchPolicy: Equivalent
|
||||
name: rancher.cattle.io
|
||||
sideEffects: None
|
||||
timeoutSeconds: 10
|
|
@ -0,0 +1,8 @@
|
|||
image:
|
||||
repository: rancher/rancher-webhook
|
||||
tag: v0.1.1
|
||||
imagePullPolicy: IfNotPresent
|
||||
|
||||
global:
|
||||
cattle:
|
||||
systemDefaultRegistry: ""
|
Loading…
Reference in New Issue