Skip to content

Per-exam playbooks

ICA study plan: the new curriculum, sidecar versus ambient, and the exam environment

ICA, the Istio Certified Associate, is 15-20 performance-based tasks in 120 minutes with a 68% pass mark, and the environment currently runs Istio v1.29. Its curriculum changed on 12 August 2025: observability left as a domain, troubleshooting and installation arrived, and ambient mode entered the syllabus. This guide explains what changed, how the two data plane modes differ, what the exam environment gives you, and a five-week plan.

By Ibrahim YesilayUpdated 7 min read

Key takeaways

  • Traffic Management is 35% of the exam; VirtualServices, DestinationRules, Gateways and ServiceEntries are the core of your practice.
  • The curriculum changed on 12 August 2025; material built on the older five-domain outline is off target.
  • Both sidecar and ambient installation are in the curriculum, so practise enrolling a namespace in each mode.
  • The environment provides kubectl, istioctl, yq, curl and wget; the allowed docs are istio.io and kubernetes.io.
  • ICA is listed at $250, the only hands-on exam priced like the multiple-choice ones.
On this page

ICA in numbers

The ICA facts below come from the Linux Foundation certification page and candidate documentation. The exam lasts 120 minutes for 15-20 performance-based tasks, the pass mark is 68%, and results arrive by email within 24 hours. The tasks are available in English, Simplified Chinese and Japanese.

ItemValue
Tasks15-20 performance-based tasks
Time limit120 minutes
Passing score68%
Exam environmentIstio v1.29
List price (USD)250
Validity2 years
PrerequisitesNone

The August 2025 curriculum change

The Linux Foundation announced a new ICA outline effective 12 August 2025 at 00:00 UTC. The earlier outline had five domains: Istio Fundamentals, Traffic Management, Security, Observability and Advanced Istio Features. The new one has four, and it shifts the weight toward doing things in a running mesh: installing and upgrading it, routing and shaping traffic, securing it and fixing it when it breaks. Observability is no longer a domain of its own.

Current domainWeightCurriculum topics
Installation, Upgrade & Configuration20%Installing with istioctl or Helm, sidecar or ambient mode, customising the installation, canary and in-place upgrades
Traffic Management35%Ingress and egress, routing, DestinationRule traffic policies, traffic shifting, external services, resilience features, fault injection
Securing Workloads25%Authorization, authentication (mTLS, JWT), TLS for edge traffic
Troubleshooting20%Configuration, the control plane, the data plane

Sidecar mode and ambient mode

Istio has two data plane modes, and the curriculum names both. In sidecar mode, an Envoy proxy is injected into every Pod of an enrolled namespace, usually by labelling the namespace istio-injection=enabled and restarting the workloads. In ambient mode, a per-node proxy called ztunnel handles Layer 4 traffic and mTLS for enrolled workloads without changing their Pods, and an optional waypoint proxy adds Layer 7 features such as HTTP routing and authorization for a namespace or service.

For the exam, the useful skill is recognising which mode a namespace is in and enrolling or removing it correctly. Practise installing each profile on a fresh cluster with istioctl install, enrolling a namespace, and confirming the result with istioctl and kubectl.

Sidecar modeAmbient mode
Proxy locationAn Envoy container in each Podztunnel on each node; optional waypoint proxies
Enrolling a namespaceLabel istio-injection=enabled, then restart PodsLabel istio.io/dataplane-mode=ambient; no restart needed
Layer 7 featuresAlways available in the sidecarNeed a waypoint proxy
InstallationDefault and minimal profilesThe ambient profile

Traffic management: the largest domain

Traffic Management is 35% of the exam. Most of its topics are expressed in four resources: a Gateway for ingress and egress at the edge, a VirtualService for routing rules, a DestinationRule for subsets and traffic policies, and a ServiceEntry for services outside the mesh. Practise each topic until you can write the resource from the documentation in a few minutes and prove it works with a stream of curl requests.

  • Expose a service through an ingress Gateway with a host and a VirtualService.
  • Route by header or path to different subsets defined in a DestinationRule.
  • Shift traffic by weight between versions, and check the split over many requests.
  • Add timeouts, retries, circuit breaking and outlier detection.
  • Inject delays and aborts to test resilience.
  • Register an external host with a ServiceEntry and control egress.

Securing workloads and troubleshooting

Securing Workloads (25%) covers authorization, authentication with mutual TLS and JWT, and TLS for edge traffic. The resources are PeerAuthentication for mTLS modes, RequestAuthentication for JWT validation, AuthorizationPolicy for allow and deny rules, and a Gateway with a TLS secret for the edge. Troubleshooting (20%) asks you to find faults in configuration, the control plane and the data plane. For troubleshooting, practise in the order the tools report problems: check that the workload has a proxy or is enrolled in ambient mode, run istioctl analyze on the namespace, then compare what the proxy received with proxy-status and proxy-config.

  • Set STRICT mTLS for a namespace and a PERMISSIVE exception, then show that plaintext is rejected.
  • Allow only one ServiceAccount to call a path, and deny everything else.
  • Require a valid JWT for a route and confirm a request without one is denied.
  • Use istioctl analyze, proxy-status and proxy-config to find a broken route or an unsynchronised proxy.
  • Fix a namespace whose Pods are not getting a sidecar because of a wrong label.

The exam environment and allowed resources

Each task names a host to ssh to. The hosts have kubectl with the k alias and Bash completion, istioctl with Bash completion, yq, curl, wget and man pages; the base system has none of them. You may open the Istio documentation and blog, the Kubernetes documentation, and the task’s Quick Reference links. Searching istio.io is allowed, but you must not open external search results.

The environment runs Istio 1.29, which Istio’s supported-releases page lists as end of life since 15 October 2026 and supported on Kubernetes 1.31 to 1.35. Practise on that pairing, and recheck the instructions page before your exam because a move to a newer release is likely.

A five-week ICA plan

The plan follows the weights and assumes comfortable kubectl skills. Each week ends with a timed set of tasks on a fresh cluster, because rebuilding the mesh from nothing is itself an exam skill under the new outline.

ICA hands-on labs are in preview: the GoldenKube CLI runs its scenarios on your own machine, but it has no public release yet.

WeekFocus
1Install with istioctl: default, minimal and ambient profiles; customise an installation; enrol namespaces
2Traffic management: Gateway, VirtualService, DestinationRule subsets, traffic shifting
3Resilience, fault injection, ServiceEntry and egress; canary and in-place upgrades
4Security: PeerAuthentication, RequestAuthentication, AuthorizationPolicy, edge TLS
5Troubleshooting with istioctl analyze and proxy-config; timed mixed tasks; book the exam

Practising on a local cluster

ICA tasks are done on a live mesh, so practice must be too. A local cluster with Istio installed by istioctl is enough for every domain. Keep two clusters, or rebuild often, so that you practise both sidecar and ambient mode, and give each exercise a test you can run: a curl from a client Pod whose answer proves the configuration works.

Match your local Istio minor to the exam environment. The Istio supported-releases table lists 1.31 to 1.35 as the Kubernetes versions for this release, so pick a local Kubernetes version in that range.

ExerciseDomainHow you know it worked
Install with istioctl and a profile, then change one setting with an IstioOperator overlayInstallation, Upgrade & Configurationistioctl version reports the control plane and the expected istio-system Pods are Running
Move a namespace from sidecar injection to ambientInstallation, Upgrade & ConfigurationPods without sidecars still reach each other through the mesh
Split traffic 90/10 between two versions with a VirtualService and DestinationRuleTraffic ManagementRepeated curls return both versions in roughly that ratio
Add a timeout, retries and a fault injectionTraffic ManagementRequests fail or slow down exactly as configured
Expose a service through an ingress gatewayTraffic Managementcurl from outside the cluster reaches the service
Enforce STRICT mTLS and an AuthorizationPolicySecuring WorkloadsA client without permission receives a denial
Break a route on purpose and find itTroubleshootingistioctl analyze and proxy-status point at the cause

Frequently asked questions

Is ICA multiple-choice or hands-on?

The certification page describes it as "performance-based and multiple-choice", but the candidate instructions describe 15-20 performance-based tasks and mention no multiple-choice section. Prepare for a hands-on exam on the command line.

Which Istio version is the ICA exam on?

The candidate instructions say the ICA environment currently runs Istio v1.29. Istio’s supported-releases page lists 1.29 as no longer supported since 15 October 2026, so a move to a newer release is likely; check the instructions page shortly before your exam.

Does the exam use sidecar or ambient mode?

The instructions do not say. The curriculum lists "Installing Istio in Sidecar or Ambient Mode" under installation, so either can appear in a task. Practise both, and read each task for the mode it expects.

Is Helm available in the ICA environment?

The instructions list kubectl, istioctl, yq, curl, wget and man pages on the hosts; Helm is not in that list. The curriculum mentions installing Istio with istioctl or Helm, so know both, but expect istioctl to be the tool you have.

What happened to the observability domain?

It was removed in the curriculum change effective 12 August 2025. The new outline has four domains: Installation, Upgrade & Configuration; Traffic Management; Securing Workloads; and Troubleshooting. The CNCF ICA page still showed the earlier outline when this guide was checked, so rely on the Linux Foundation page and the curriculum PDF.

Do I need CKA before ICA?

No. The ICA prerequisites field reads: None. You do need comfortable kubectl skills, because every task runs on a Kubernetes cluster.

Sources

Every exam fact on this page comes from these pages, read on the date shown.

Independent community project, not affiliated with or endorsed by CNCF or The Linux Foundation.