Skip to content

chore: add istio-ztunnel and istio-cni community charts #2389

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 41 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
7f4bf45
chore: add istio-ztunnel and istio-cni community charts
j-zimnowoda Jul 25, 2025
0e9537e
ci: add istio-ztunnel and istio-cni to the chart-index
j-zimnowoda Jul 25, 2025
d33cce8
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Jul 25, 2025
929adfa
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Jul 25, 2025
47fdff4
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Jul 25, 2025
88a6819
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Jul 28, 2025
f9c4278
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Jul 30, 2025
6f65153
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Jul 31, 2025
f36b249
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 1, 2025
f042ce5
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 1, 2025
f73b607
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 4, 2025
1e347c2
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 4, 2025
248e5d3
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 4, 2025
3cb8ebc
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 5, 2025
8ecca6e
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 7, 2025
ab3f886
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 7, 2025
c982fdf
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 8, 2025
01e0513
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 8, 2025
8a0213b
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 8, 2025
25a395d
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 8, 2025
6e5e0a9
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 8, 2025
7d0d9f9
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 11, 2025
cfc389d
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 11, 2025
42a760f
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 11, 2025
418e8b5
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 12, 2025
1902b97
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 12, 2025
418fae0
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 12, 2025
709101c
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 12, 2025
5796cb5
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 13, 2025
3f9be6b
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 14, 2025
6540391
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 14, 2025
fa40897
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 14, 2025
3661209
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 15, 2025
9229cc5
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 15, 2025
172f702
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 15, 2025
1651943
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 15, 2025
54c5f70
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 15, 2025
11d36ae
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 15, 2025
d5773d7
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 18, 2025
a5793b1
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 18, 2025
f633097
Merge remote-tracking branch 'origin/main' into APL-1023
svcAPLBot Aug 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions chart/chart-index/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,14 @@ dependencies:
- name: istiod
version: 1.26.3
repository: https://istio-release.storage.googleapis.com/charts
- name: ztunnel
alias: istio-ztunnel
version: 1.26.2
repository: https://istio-release.storage.googleapis.com/charts
- name: cni
alias: istio-cni
version: 1.26.2
repository: https://istio-release.storage.googleapis.com/charts
- name: jaeger-operator
version: 2.46.0
repository: https://jaegertracing.github.io/helm-charts
Expand Down
11 changes: 11 additions & 0 deletions charts/istio-cni/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: v2
appVersion: 1.26.2
description: Helm chart for istio-cni components
icon: https://istio.io/latest/favicons/android-192x192.png
keywords:
- istio-cni
- istio
name: cni
sources:
- https://github.com/istio/istio
version: 1.26.2
65 changes: 65 additions & 0 deletions charts/istio-cni/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Istio CNI Helm Chart

This chart installs the Istio CNI Plugin. See the [CNI installation guide](https://istio.io/latest/docs/setup/additional-setup/cni/)
for more information.

## Setup Repo Info

```console
helm repo add istio https://istio-release.storage.googleapis.com/charts
helm repo update
```

_See [helm repo](https://helm.sh/docs/helm/helm_repo/) for command documentation._

## Installing the Chart

To install the chart with the release name `istio-cni`:

```console
helm install istio-cni istio/cni -n kube-system
```

Installation in `kube-system` is recommended to ensure the [`system-node-critical`](https://kubernetes.io/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/)
`priorityClassName` can be used. You can install in other namespace only on K8S clusters that allow
'system-node-critical' outside of kube-system.

## Configuration

To view support configuration options and documentation, run:

```console
helm show values istio/istio-cni
```

### Profiles

Istio Helm charts have a concept of a `profile`, which is a bundled collection of value presets.
These can be set with `--set profile=<profile>`.
For example, the `demo` profile offers a preset configuration to try out Istio in a test environment, with additional features enabled and lowered resource requirements.

For consistency, the same profiles are used across each chart, even if they do not impact a given chart.

Explicitly set values have highest priority, then profile settings, then chart defaults.

As an implementation detail of profiles, the default values for the chart are all nested under `defaults`.
When configuring the chart, you should not include this.
That is, `--set some.field=true` should be passed, not `--set defaults.some.field=true`.

### Ambient

To enable ambient, you can use the ambient profile: `--set profile=ambient`.

#### Calico

For Calico, you must also modify the settings to allow source spoofing:

- if deployed by operator, `kubectl patch felixconfigurations default --type='json' -p='[{"op": "add", "path": "/spec/workloadSourceSpoofing", "value": "Any"}]'`
- if deployed by manifest, add env `FELIX_WORKLOADSOURCESPOOFING` with value `Any` in `spec.template.spec.containers.env` for daemonset `calico-node`. (This will allow PODs with specified annotation to skip the rpf check. )

### GKE notes

On GKE, 'kube-system' is required.

If using `helm template`, `--set cni.cniBinDir=/home/kubernetes/bin` is required - with `helm install`
it is auto-detected.
17 changes: 17 additions & 0 deletions charts/istio-cni/files/profile-ambient.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# WARNING: DO NOT EDIT, THIS FILE IS A COPY.
# The original version of this file is located at /manifests/helm-profiles directory.
# If you want to make a change in this file, edit the original one and run "make gen".

# The ambient profile enables ambient mode. The Istiod, CNI, and ztunnel charts must be deployed
meshConfig:
defaultConfig:
proxyMetadata:
ISTIO_META_ENABLE_HBONE: "true"
global:
variant: distroless
pilot:
env:
PILOT_ENABLE_AMBIENT: "true"
cni:
ambient:
enabled: true
25 changes: 25 additions & 0 deletions charts/istio-cni/files/profile-compatibility-version-1.23.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# WARNING: DO NOT EDIT, THIS FILE IS A COPY.
# The original version of this file is located at /manifests/helm-profiles directory.
# If you want to make a change in this file, edit the original one and run "make gen".

pilot:
env:
# 1.24 behavioral changes
ENABLE_INBOUND_RETRY_POLICY: "false"
EXCLUDE_UNSAFE_503_FROM_DEFAULT_RETRY: "false"
PREFER_DESTINATIONRULE_TLS_FOR_EXTERNAL_SERVICES: "false"
ENABLE_ENHANCED_DESTINATIONRULE_MERGE: "false"
PILOT_UNIFIED_SIDECAR_SCOPE: "false"

meshConfig:
defaultConfig:
proxyMetadata:
# 1.24 behaviour changes
ENABLE_DEFERRED_STATS_CREATION: "false"
BYPASS_OVERLOAD_MANAGER_FOR_STATIC_LISTENERS: "false"

ambient:
# Not present in <1.24, defaults to `true` in 1.25+
reconcileIptablesOnStartup: false
# 1.26 behavioral changes
shareHostNetworkNamespace: true
13 changes: 13 additions & 0 deletions charts/istio-cni/files/profile-compatibility-version-1.24.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# WARNING: DO NOT EDIT, THIS FILE IS A COPY.
# The original version of this file is located at /manifests/helm-profiles directory.
# If you want to make a change in this file, edit the original one and run "make gen".

pilot:
env:
# 1.24 behavioral changes
PILOT_ENABLE_IP_AUTOALLOCATE: "false"
ambient:
dnsCapture: false
reconcileIptablesOnStartup: false
# 1.26 behavioral changes
shareHostNetworkNamespace: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# WARNING: DO NOT EDIT, THIS FILE IS A COPY.
# The original version of this file is located at /manifests/helm-profiles directory.
# If you want to make a change in this file, edit the original one and run "make gen".

ambient:
# 1.26 behavioral changes
shareHostNetworkNamespace: true
94 changes: 94 additions & 0 deletions charts/istio-cni/files/profile-demo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# WARNING: DO NOT EDIT, THIS FILE IS A COPY.
# The original version of this file is located at /manifests/helm-profiles directory.
# If you want to make a change in this file, edit the original one and run "make gen".

# The demo profile enables a variety of things to try out Istio in non-production environments.
# * Lower resource utilization.
# * Some additional features are enabled by default; especially ones used in some tasks in istio.io.
# * More ports enabled on the ingress, which is used in some tasks.
meshConfig:
accessLogFile: /dev/stdout
extensionProviders:
- name: otel
envoyOtelAls:
service: opentelemetry-collector.observability.svc.cluster.local
port: 4317
- name: skywalking
skywalking:
service: tracing.istio-system.svc.cluster.local
port: 11800
- name: otel-tracing
opentelemetry:
port: 4317
service: opentelemetry-collector.observability.svc.cluster.local
- name: jaeger
opentelemetry:
port: 4317
service: jaeger-collector.istio-system.svc.cluster.local

cni:
resources:
requests:
cpu: 10m
memory: 40Mi

ztunnel:
resources:
requests:
cpu: 10m
memory: 40Mi

global:
proxy:
resources:
requests:
cpu: 10m
memory: 40Mi
waypoint:
resources:
requests:
cpu: 10m
memory: 40Mi

pilot:
autoscaleEnabled: false
traceSampling: 100
resources:
requests:
cpu: 10m
memory: 100Mi

gateways:
istio-egressgateway:
autoscaleEnabled: false
resources:
requests:
cpu: 10m
memory: 40Mi
istio-ingressgateway:
autoscaleEnabled: false
ports:
## You can add custom gateway ports in user values overrides, but it must include those ports since helm replaces.
# Note that AWS ELB will by default perform health checks on the first port
# on this list. Setting this to the health check port will ensure that health
# checks always work. https://github.com/istio/istio/issues/12503
- port: 15021
targetPort: 15021
name: status-port
- port: 80
targetPort: 8080
name: http2
- port: 443
targetPort: 8443
name: https
- port: 31400
targetPort: 31400
name: tcp
# This is the port where sni routing happens
- port: 15443
targetPort: 15443
name: tls
resources:
requests:
cpu: 10m
memory: 40Mi
10 changes: 10 additions & 0 deletions charts/istio-cni/files/profile-platform-gke.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# WARNING: DO NOT EDIT, THIS FILE IS A COPY.
# The original version of this file is located at /manifests/helm-profiles directory.
# If you want to make a change in this file, edit the original one and run "make gen".

cni:
cniBinDir: "" # intentionally unset for gke to allow template-based autodetection to work
resourceQuotas:
enabled: true
resourceQuotas:
enabled: true
7 changes: 7 additions & 0 deletions charts/istio-cni/files/profile-platform-k3d.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# WARNING: DO NOT EDIT, THIS FILE IS A COPY.
# The original version of this file is located at /manifests/helm-profiles directory.
# If you want to make a change in this file, edit the original one and run "make gen".

cni:
cniConfDir: /var/lib/rancher/k3s/agent/etc/cni/net.d
cniBinDir: /bin
7 changes: 7 additions & 0 deletions charts/istio-cni/files/profile-platform-k3s.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# WARNING: DO NOT EDIT, THIS FILE IS A COPY.
# The original version of this file is located at /manifests/helm-profiles directory.
# If you want to make a change in this file, edit the original one and run "make gen".

cni:
cniConfDir: /var/lib/rancher/k3s/agent/etc/cni/net.d
cniBinDir: /var/lib/rancher/k3s/data/cni
7 changes: 7 additions & 0 deletions charts/istio-cni/files/profile-platform-microk8s.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# WARNING: DO NOT EDIT, THIS FILE IS A COPY.
# The original version of this file is located at /manifests/helm-profiles directory.
# If you want to make a change in this file, edit the original one and run "make gen".

cni:
cniConfDir: /var/snap/microk8s/current/args/cni-network
cniBinDir: /var/snap/microk8s/current/opt/cni/bin
6 changes: 6 additions & 0 deletions charts/istio-cni/files/profile-platform-minikube.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# WARNING: DO NOT EDIT, THIS FILE IS A COPY.
# The original version of this file is located at /manifests/helm-profiles directory.
# If you want to make a change in this file, edit the original one and run "make gen".

cni:
cniNetnsDir: /var/run/docker/netns
19 changes: 19 additions & 0 deletions charts/istio-cni/files/profile-platform-openshift.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# WARNING: DO NOT EDIT, THIS FILE IS A COPY.
# The original version of this file is located at /manifests/helm-profiles directory.
# If you want to make a change in this file, edit the original one and run "make gen".

# The OpenShift profile provides a basic set of settings to run Istio on OpenShift
cni:
cniBinDir: /var/lib/cni/bin
cniConfDir: /etc/cni/multus/net.d
chained: false
cniConfFileName: "istio-cni.conf"
provider: "multus"
pilot:
cni:
enabled: true
provider: "multus"
seLinuxOptions:
type: spc_t
# Openshift requires privileged pods to run in kube-system
trustedZtunnelNamespace: "kube-system"
13 changes: 13 additions & 0 deletions charts/istio-cni/files/profile-preview.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# WARNING: DO NOT EDIT, THIS FILE IS A COPY.
# The original version of this file is located at /manifests/helm-profiles directory.
# If you want to make a change in this file, edit the original one and run "make gen".

# The preview profile contains features that are experimental.
# This is intended to explore new features coming to Istio.
# Stability, security, and performance are not guaranteed - use at your own risk.
meshConfig:
defaultConfig:
proxyMetadata:
# Enable Istio agent to handle DNS requests for known hosts
# Unknown hosts will automatically be resolved using upstream dns servers in resolv.conf
ISTIO_META_DNS_CAPTURE: "true"
13 changes: 13 additions & 0 deletions charts/istio-cni/files/profile-remote.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# WARNING: DO NOT EDIT, THIS FILE IS A COPY.
# The original version of this file is located at /manifests/helm-profiles directory.
# If you want to make a change in this file, edit the original one and run "make gen".

# The remote profile enables installing istio with a remote control plane. The `base` and `istio-discovery` charts must be deployed with this profile.
istiodRemote:
enabled: true
configMap: false
telemetry:
enabled: false
global:
# TODO BML maybe a different profile for a configcluster/revisit this
omitSidecarInjectorConfigMap: true
8 changes: 8 additions & 0 deletions charts/istio-cni/files/profile-stable.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# WARNING: DO NOT EDIT, THIS FILE IS A COPY.
# The original version of this file is located at /manifests/helm-profiles directory.
# If you want to make a change in this file, edit the original one and run "make gen".

# The stable profile deploys admission control to ensure that only stable resources and fields are used
# THIS IS CURRENTLY EXPERIMENTAL AND SUBJECT TO CHANGE
experimental:
stableValidationPolicy: true
5 changes: 5 additions & 0 deletions charts/istio-cni/templates/NOTES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
"{{ .Release.Name }}" successfully installed!

To learn more about the release, try:
$ helm status {{ .Release.Name }} -n {{ .Release.Namespace }}
$ helm get all {{ .Release.Name }} -n {{ .Release.Namespace }}
8 changes: 8 additions & 0 deletions charts/istio-cni/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{{- define "name" -}}
istio-cni
{{- end }}


{{- define "istio-tag" -}}
{{ .Values.tag | default .Values.global.tag }}{{with (.Values.variant | default .Values.global.variant)}}-{{.}}{{end}}
{{- end }}
Loading