Skip to content

Commit 2484419

Browse files
authored
[dev-v2.10 ] rancher-istio 105.6.0+up1.25.0 create (#5616)
1 parent 4436728 commit 2484419

File tree

105 files changed

+4889
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+4889
-0
lines changed

assets/logos/rancher-istio.svg

Lines changed: 11 additions & 0 deletions
Loading
Binary file not shown.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
annotations:
2+
catalog.cattle.io/certified: rancher
3+
catalog.cattle.io/display-name: Istio
4+
catalog.cattle.io/kube-version: '>= 1.29.0-0 < 1.32.0-0'
5+
catalog.cattle.io/namespace: istio-system
6+
catalog.cattle.io/os: linux
7+
catalog.cattle.io/permits-os: linux,windows
8+
catalog.cattle.io/rancher-version: '>= 2.10.0-0 < 2.11.0-0'
9+
catalog.cattle.io/release-name: rancher-istio
10+
catalog.cattle.io/requests-cpu: 710m
11+
catalog.cattle.io/requests-memory: 2314Mi
12+
catalog.cattle.io/type: cluster-tool
13+
catalog.cattle.io/ui-component: istio
14+
catalog.cattle.io/upstream-version: 1.25.0
15+
apiVersion: v1
16+
appVersion: 1.25.0
17+
description: A basic Istio setup that installs with the istioctl. Refer to https://istio.io/latest/
18+
for details.
19+
icon: file://assets/logos/rancher-istio.svg
20+
keywords:
21+
- networking
22+
- infrastructure
23+
name: rancher-istio
24+
version: 105.6.0+up1.25.0
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Rancher-Istio Chart
2+
3+
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.
4+
5+
See the app-readme for known issues and deprecations.
6+
7+
## Installation Requirements
8+
9+
#### Chart Dependencies
10+
- rancher-monitoring chart or other Prometheus installation
11+
12+
#### Install
13+
To install the rancher-istio chart with helm, use the following command:
14+
```
15+
helm install rancher-istio <location/of/the/rancher-istio/chart> --create-namespace -n istio-system
16+
```
17+
18+
#### Uninstall
19+
To ensure rancher-istio uninstalls correctly, you must uninstall rancher-istio prior to uninstalling chart dependencies (see chart dependencies for list of dependencies). This is because all definitions need to be available in order to properly build the rancher-istio objects for removal.
20+
21+
**If you remove dependent CRD charts prior to removing rancher-istio, you may encounter the following error:**
22+
`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"`
23+
24+
## Addons
25+
The addons that are included with rancher-istio are:
26+
27+
- Kiali
28+
- Jaeger
29+
30+
Each addon has additional customization and dependencies required for them to work as expected. Use the values.yaml to customize or to enable/disable each addon.
31+
### Kiali Addon
32+
33+
Kiali allows you to view and manage your istio-based service mesh through an easy to use dashboard.
34+
35+
#### Kiali Dependencies
36+
##### rancher-monitoring chart or other Prometheus installation
37+
38+
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.
39+
40+
#### Prometheus Configuration for Kiali
41+
> **Note:** The following configuration options assume you have installed the dependecies for Kiali. Please ensure you have Promtheus in your cluster before proceeding.
42+
43+
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.
44+
45+
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.
46+
47+
1. Add a Service Monitor or Pod Monitor in the namespace with the targets you want to scrape.
48+
1. Add an additionalScrapeConfig to your rancher-monitoring instance to scrape all targets in all namespaces.
49+
50+
#### Kiali External Services
51+
52+
The external services that can be configured in Kiali are: Prometheus, Grafana and Tracing.
53+
54+
##### Prometheus
55+
The `kiali.external_services.prometheus` url is set in the values.yaml:
56+
```
57+
http://{{ .Values.nameOverride }}-prometheus.{{ .Values.namespaceOverride }}.svc:{{ prometheus.service.port }}
58+
```
59+
The url depends on the default values for `nameOverride`, `namespaceOverride`, and `prometheus.service.port` being set in your rancher-monitoring or other monitoring instance.
60+
61+
##### Grafana
62+
The `kiali.external_services.grafana` url is set in the values.yaml:
63+
```
64+
http://{{ .Values.nameOverride }}-grafana.{{ .Values.namespaceOverride }}.svc:{{ grafana.service.port }}
65+
```
66+
The url depends on the default values for `nameOverride`, `namespaceOverride`, and `grafana.service.port` being set in your rancher-monitoring or other monitoring instance.
67+
68+
##### Tracing
69+
The `kiali.external_services.tracing` url and `.Values.tracing.contextPath` is set in the rancher-istio values.yaml:
70+
```
71+
http://tracing.{{ .Values.namespaceOverride }}.svc:{{ .Values.service.externalPort }}/{{ .Values.tracing.contextPath }}
72+
```
73+
The url depends on the default values for `namespaceOverride`, and `.Values.service.externalPort` being set in your rancher-tracing or other tracing instance.
74+
75+
## Jaeger Addon
76+
77+
Jaeger allows you to trace and monitor distributed microservices.
78+
79+
> **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.
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Rancher Istio
2+
3+
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:
4+
* **[Kiali](https://kiali.io/)**: Used for graphing traffic flow throughout the mesh
5+
* **[Jaeger](https://www.jaegertracing.io/)**: A quick start, all-in-one installation used for tracing distributed system. This is not production qualified, please refer to jaeger documentation to determine which installation you may need instead.
6+
7+
For more information on how to use the feature, refer to our [docs](https://ranchermanager.docs.rancher.com/integrations-in-rancher/istio).
8+
9+
## Upgrading to Kubernetes v1.25+
10+
11+
Starting in Kubernetes v1.25, [Pod Security Policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/) have been removed from the Kubernetes API.
12+
13+
As a result, **before upgrading to Kubernetes v1.25** (or on a fresh install in a Kubernetes v1.25+ cluster), users are expected to perform an in-place upgrade of this chart with `global.cattle.psp.enabled` set to `false` if it has been previously set to `true`.
14+
15+
> **Note:**
16+
> In this chart release, any previous field that was associated with any PSP resources have been removed in favor of a single global field: `global.cattle.psp.enabled`.
17+
18+
> **Note:**
19+
> If you upgrade your cluster to Kubernetes v1.25+ before removing PSPs via a `helm upgrade` (even if you manually clean up resources), **it will leave the Helm release in a broken state within the cluster such that further Helm operations will not work (`helm uninstall`, `helm upgrade`, etc.).**
20+
>
21+
> If your charts get stuck in this state, please consult the Rancher docs on how to clean up your Helm release secrets.
22+
23+
Upon setting `global.cattle.psp.enabled` to false, the chart will remove any PSP resources deployed on its behalf from the cluster. This is the default setting for this chart.
24+
25+
As a replacement for PSPs, [Pod Security Admission](https://kubernetes.io/docs/concepts/security/pod-security-admission/) should be used. Please consult the Rancher docs for more details on how to configure your chart release namespaces to work with the new Pod Security Admission and apply Pod Security Standards.
26+
27+
## Warnings
28+
- Upgrading across more than two minor versions (e.g., 1.6.x to 1.9.x) in one step is not officially tested or recommended. See [Istio upgrade docs](https://istio.io/latest/docs/setup/upgrade/) for more details.
29+
30+
## Known Issues
31+
32+
#### Airgapped Environments
33+
**A temporary fix has been added to this chart to allow upgrades to succeed in an airgapped environment. See [this issue](https://github.com/rancher/rancher/issues/30842) for details.** We are still advocating for an upstream fix in Istio to formally resolve this issue. The root cause is the Istio Operator upgrade command reaches out to an external repo on upgrades and the external repo is not configurable. We are tracking the fix for this issue [here](https://github.com/rancher/rancher/issues/33402)
34+
35+
#### Installing Istio with CNI component enabled on RHEL 8.4 SElinux enabled cluster.
36+
To install istio with CNI enabled, e.g. when cluster has a default PSP set to "restricted", on a cluster using nodes with RHEL 8.4 SElinux enabled, run the following command on each cluster node before creating a cluster.
37+
`mkdir -p /var/run/istio-cni && semanage fcontext -a -t container_file_t /var/run/istio-cni && restorecon -v /var/run/istio-cni`
38+
See [this issue](https://github.com/rancher/rancher/issues/33291) for details.
39+
40+
## Installing istio with distroless-images.
41+
Istio `105.6.0+up1.25.0` uses distroless images for `istio-proxyv2`, `istio-install-cni` and `istio-pilot`. Distroless images don't have the common debugging tools like `bash`, `curl`, etc. If you wish to troubleshoot Istio, you can switch to regular images by updating `values.yaml` file.
42+
43+
## Deprecations
44+
45+
#### v1alpha1 security policies
46+
As of 1.6, Istio removed support for `v1alpha1` security policies resource and replaced the API with `v1beta1` authorization policies. https://istio.io/latest/docs/reference/config/security/authorization-policy/
47+
48+
If you are currently running rancher-istio <= 1.7.x, you need to migrate any existing `v1alpha1` security policies to `v1beta1` authorization policies prior to upgrading to the next minor version.
49+
50+
> **Note:** If you attempt to upgrade prior to migrating your policy resources, you might see errors similar to:
51+
```
52+
Error: found 6 CRD of unsupported v1alpha1 security policy
53+
```
54+
```
55+
Error: found 1 unsupported v1alpha1 security policy
56+
```
57+
```
58+
Control Plane - policy pod - istio-policy - version: x.x.x does not match the target version x.x.x
59+
```
60+
Continue with the migration steps below before retrying the upgrade process.
61+
62+
#### Migrating Resources:
63+
Migration steps can be found in this [istio blog post](https://istio.io/latest/blog/2021/migrate-alpha-policy/ "istio blog post").
64+
65+
You can also use these [quick steps](https://github.com/rancher/rancher/issues/34699#issuecomment-921995917 "quick steps") to determine if you need to follow the more extensive migration steps.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
annotations:
2+
catalog.cattle.io/hidden: "true"
3+
catalog.cattle.io/os: linux
4+
catalog.cattle.io/requires-gvr: monitoring.coreos.com.prometheus/v1
5+
catalog.rancher.io/namespace: cattle-istio-system
6+
catalog.rancher.io/release-name: rancher-kiali-server
7+
apiVersion: v2
8+
appVersion: v2.7.1
9+
description: Kiali is an open source project for service mesh observability, refer
10+
to https://www.kiali.io for details. This is installed as sub-chart with customized
11+
values in Rancher's Istio.
12+
home: https://github.com/kiali/kiali
13+
icon: https://raw.githubusercontent.com/kiali/kiali.io/current/assets/icons/logo.svg
14+
keywords:
15+
- istio
16+
- kiali
17+
- networking
18+
- infrastructure
19+
maintainers:
20+
21+
name: Kiali
22+
url: https://kiali.io
23+
name: kiali
24+
sources:
25+
- https://github.com/kiali/kiali
26+
- https://github.com/kiali/kiali-operator
27+
- https://github.com/kiali/helm-charts
28+
version: 2.7.1
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
Welcome to Kiali! For more details on Kiali, see: https://kiali.io
2+
3+
The Kiali Server [{{ .Chart.AppVersion }}] has been installed in namespace [{{ .Release.Namespace }}]. It will be ready soon.
4+
5+
{{- if not .Values.deployment.cluster_wide_access }}
6+
===============
7+
!!! WARNING !!!
8+
===============
9+
This Kiali Server Helm Chart does NOT support "deployment.cluster_wide_access" set to "false"!
10+
11+
This feature, as well as others, is only available when using the Kiali Operator to install
12+
the Kiali Server. It is for this reason this Kiali Server Helm Chart, while provided for
13+
convenience, is not the recommended installation mechanism for installing the Kiali Server.
14+
{{- end }}
15+
16+
When installing with "deployment.cluster_wide_access=false" using this Kiali Server Helm Chart,
17+
it is your responsibility to manually create the proper Roles and RoleBindings for the Kiali Server
18+
to have the correct permissions to access the service mesh namespaces.
19+
20+
(Helm: Chart=[{{ .Chart.Name }}], Release=[{{ .Release.Name }}], Version=[{{ .Chart.Version }}])

0 commit comments

Comments
 (0)