Skip to main content
You can customize Istio installations instead of relying on the default profile. Istio profiles (for example: demo, default, ambient, etc.) control which core components are enabled and which features are included by default.
The image depicts a table of Istio profiles and their core components, showing different profiles like default, demo, and others with checkmarks indicating their inclusion of specific components like "istio-egressgateway" and "ztunnel."
The istioctl profile dump command that produced a ready-to-edit IstioOperator manifest was removed. You now author an IstioOperator manifest yourself to customize an installation. If you need to find an option in the operator schema, consult the Istio Operator reference: https://istio.io/latest/docs/reference/config/installation-options/
Below are practical examples and a recommended workflow for customizing Istio with an IstioOperator manifest, patch overlays, resource overrides, and Helm alternatives.

Basic IstioOperator skeleton

Create an IstioOperator YAML to override defaults. This skeleton shows how to set image hub/tag and toggle core components and gateways:
Quick one-off setting using istioctl:

Disable istiod (Pilot) via IstioOperator

To disable the control plane component (historically called Pilot; functionality resides in istiod), set the component to disabled:
Apply with:

Override Kubernetes resources (CPU, memory, HPA)

Override resource requests/limits and HPA settings for control-plane deployments (example shows pilot/istiod):
Apply the configuration:

Patching generated manifests with overlays

Use k8s.overlays in the IstioOperator to patch generated Kubernetes resources. Overlays are useful for small targeted edits (changing args, ports, annotations, etc.):
Generate the patched manifest to inspect changes:
A truncated example of the resulting Deployment shows patched values:

Revisions and meshConfig

You can set the revision field in the IstioOperator to manage control-plane revisions during upgrades and to enable side-by-side control plane installations:
The image is a screenshot from the Istio documentation, describing how to identify an Istio component using the IstioOperator API. It includes a table of component names and instructions for configuring settings.

Common exam-style changes (quick checklist)

Be familiar with the following modifications and how to express them in an IstioOperator or via istioctl:
  • Enable/disable a specific component (egress/ingress gateway)
  • Rename a gateway (change name:)
  • Install a gateway into a non-default namespace (namespace: under the gateway entry)
  • Change CPU/memory requests and limits for control-plane components
  • Set hub, tag, and revision for image sources and version control
Quick example — enable the egress gateway and change its name and namespace:
Apply or upgrade with:

Quick reference table

Helm-based customization

If you prefer Helm, inspect default values, edit a values file, and then install or upgrade the chart:
After editing values files, apply changes with helm upgrade.
Be careful when running istioctl uninstall --purge. This removes Istio resources and CRDs and can destroy stored configuration and telemetry. Always back up important configuration before purging.

Upgrade and uninstall

  • To update an existing installation, edit your IstioOperator and run:
  • To uninstall:

The Istio operator provides flexible control over which components and settings are installed. Practice by making small, incremental changes (resource overrides, enabling gateways, or applying overlays) in a local cluster to become comfortable with the workflow and exam-style scenarios.

Watch Video