rancher-kiali-server init

pull/532/head
Caleb Bron 2020-08-06 16:47:55 -07:00
parent 624b772962
commit ef8a72e077
10 changed files with 175 additions and 8 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
/packages/**/charts-original
/.idea
.DS_Store
requirements.lock

View File

@ -9,3 +9,5 @@ annotations:
catalog.cattle.io/namespace: istio-system
catalog.cattle.io/release-name: rancher-istio
catalog.cattle.io/ui-component: istio
catalog.cattle.io/requires-gvr: prometheuses.monitoring.coreos.com/v1
catalog.cattle.io/auto-install-gvr: monitoringdashboards.monitoring.kiali.io/v1alpha1

View File

@ -0,0 +1,19 @@
# Rancher Istio Installers
A Rancher created chart that packages the istioctl binary to install via a helm chart.
# Installation
### pre-requisites
This chart depends on the rancher-kiali-server-crd chart.
It also depends on rancher-monitoring being installed with default values for nameOverride, namespaceOverride, and the prometheus.service.port.
If those values are modified on the rancher-monitoring deployment, please adjust the `kiali.external_services.prometheus` url settings:
```
http://{{ .Values.nameOverride }}-prometheus.{{ .Values.namespaceOverride }}.svc:{{ prometheus.service.port }}
```
### installation
helm install rancher-istio ./ --create-namespace -n cattle-istio-system

View File

@ -4,6 +4,14 @@ spec:
addonComponents:
istiocoredns:
enabled: {{ .Values.istiocoredns.enabled }}
prometheus:
enabled: false
grafana:
enabled: false
kiali:
enabled: false
tracing:
enabled: false
components:
base:
enabled: {{ .Values.base.enabled }}
@ -48,6 +56,8 @@ spec:
profile: default
tag: {{ .Values.tag }}
revision: {{ .Values.revision }}
meshConfig:
enablePrometheusMerge: {{ .Values.meshConfig.enablePrometheusMerge }}
values:
gateways:
istio-egressgateway:

View File

@ -0,0 +1,7 @@
dependencies:
- name: rancher-kiali-server
alias: kiali
condition: kiali.enabled
version: 1.22.0
repository: file://../../rancher-kiali-server/charts

View File

@ -0,0 +1,51 @@
{{- if .Values.kiali.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: envoy-stats-monitor
namespace: istio-system
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: istio-system
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 -}}

View File

@ -51,3 +51,27 @@ global:
image: proxyv2
proxy_init:
image: proxyv2
# this can be removed in 1.7 as it is default
meshConfig:
enablePrometheusMerge: true
# Kiali subchart from rancher-kiali-server
kiali:
enabled: true
auth:
# todo: what auth strategy ?
# strategy: token # this is default, you can use a service-account or kubeconfig token
strategy: anonymous
deployment:
ingress_enabled: false
external_services:
prometheus:
custom_metrics_url: "http://monitoring-rancher-monitor-prometheus.monitoring-system.svc:9090"
url: "http://monitoring-rancher-monitor-prometheus.monitoring-system.svc:9090"
tracing:
enabled: false
# TODO : update images
# deployment:
# image_name: "rancher..."
# image_version: v1.....

View File

@ -0,0 +1,5 @@
url: https://kiali.org/helm-charts/kiali-server-1.22.0.tgz
packageVersion: 01
generateCRDChart:
enabled: true
providesGVR: monitoringdashboards.monitoring.kiali.io/v1alpha1

View File

@ -0,0 +1,39 @@
diff -x '*.tgz' -x '*.lock' -uNr packages/rancher-kiali-server/charts-original/Chart.yaml packages/rancher-kiali-server/charts/Chart.yaml
--- packages/rancher-kiali-server/charts-original/Chart.yaml
+++ packages/rancher-kiali-server/charts/Chart.yaml
@@ -1,20 +1,23 @@
apiVersion: v2
appVersion: v1.22.0
-description: Kiali is an open source project for service mesh observability, refer
- to https://www.kiali.io for details.
+description: Rancher chart based on Kiali Server, containing standard defaults. 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
+ - istio
+ - kiali
maintainers:
-- email: kiali-users@googlegroups.com
- name: Kiali
- url: https://kiali.io
-name: kiali-server
+ - email: kiali-users@googlegroups.com
+ name: Kiali
+ url: https://kiali.io
+name: rancher-kiali-server
sources:
-- https://github.com/kiali/kiali
-- https://github.com/kiali/kiali-ui
-- https://github.com/kiali/kiali-operator
-- https://github.com/kiali/helm-charts
+ - 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.22.0
+annotations:
+ catalog.cattle.io/requires-gvr: prometheuses.monitoring.coreos.com/v1
+ catalog.rancher.io/namespace: cattle-istio-system
+ catalog.rancher.io/release-name: rancher-kiali-server

View File

@ -21,7 +21,7 @@ fi
if ! [[ -d ${f}/charts ]]; then
echo "Could not find ${f}/charts"
exit 1
exit 1
fi
if ! [[ -f ${f}/charts/Chart.yaml ]]; then
@ -48,8 +48,11 @@ chart_version=$(cat ${f}/charts/Chart.yaml | yq r - 'version')
crd_apis=()
for crd_yaml in ${f}/charts-crd/templates/*; do
crd_group=$(yq r ${crd_yaml} 'spec.group')
crd_version=$(yq r ${crd_yaml} 'spec.version')
crd_kind=$(yq r ${crd_yaml} 'spec.names.kind')
crd_version=$(yq r ${crd_yaml} 'spec.version')
if test -z "$crd_version"; then
crd_version=$(yq r ${crd_yaml} 'spec.versions[0].name')
fi
crd_apis+=("${crd_group}/${crd_version}/${crd_kind}")
done
@ -65,19 +68,25 @@ EOF
# Add providesGVR annotation
providesGVR="$(cat ${f}/package.yaml | yq r - generateCRDChart.providesGVR)"
if ! [[ -z ${providesGVR} ]]; then
yq w -i ${f}/charts/Chart.yaml "annotations[catalog.cattle.io/auto-install-gvr]" "${providesGVR}"
yq w -i ${f}/charts-crd/Chart.yaml "annotations[catalog.cattle.io/provides-gvr]" "${providesGVR}"
yq w -i ${f}/charts-crd/Chart.yaml "annotations[catalog.cattle.io/hidden]" "true"
if [[ -z "$(yq r ${f}/charts/Chart.yaml 'annotations[catalog.cattle.io/auto-install-gvr]')" ]]; then
yq w -i ${f}/charts/Chart.yaml "annotations[catalog.cattle.io/auto-install-gvr]" "${providesGVR}"
fi
if [[ -z "$(yq r ${f}/charts/Chart.yaml 'annotations[catalog.cattle.io/provides-gvr]')" ]]; then
yq w -i ${f}/charts-crd/Chart.yaml "annotations[catalog.cattle.io/provides-gvr]" "${providesGVR}"
fi
if [[ -z "$(yq r ${f}/charts/Chart.yaml 'annotations[catalog.cattle.io/hidden]')" ]]; then
yq w -i ${f}/charts-crd/Chart.yaml "annotations[catalog.cattle.io/hidden]" "true"
fi
fi
# Add annotations to charts-crd/Chart.yaml
copyAnnotations=(catalog.cattle.io/release-name catalog.cattle.io/certified catalog.cattle.io/experimental catalog.cattle.io/namespace)
for a in ${copyAnnotations[@]}; do
v=$(yq r ${f}/charts/Chart.yaml "annotations[${a}]")
if [[ ${a} == "catalog.cattle.io/release-name" ]]; then
v="${v}-crd"
fi
if ! [[ -z ${v} ]]; then
if [[ ${a} == "catalog.cattle.io/release-name" ]]; then
v="${v}-crd"
fi
yq w -i ${f}/charts-crd/Chart.yaml "annotations[${a}]" "${v}"
fi
done