* xref:index.adoc[Introduction to Istio Tutorial]

ifdef::workshop[]
* xref:workshop:1setup.adoc[1. Setup]
endif::workshop[]

ifndef::workshop[]
* xref:1setup.adoc[1. Setup]
** xref:1setup.adoc#prerequisite[Prerequisites]
** xref:1setup.adoc#minishift[Setup MiniShift]
** xref:1setup.adoc#environment[Setup Environment]
** xref:1setup.adoc#istioinstallation[Install Istio]
endif::workshop[]

* xref:2deploy-microservices.adoc[2. Deploy Microservices]
** xref:2deploy-microservices.adoc#deploycustomer[Deploy Customer]
** xref:2deploy-microservices.adoc#deploypreference[Deploy Preference]
** xref:2deploy-microservices.adoc#deployrecommendation[Deploy Recommendation]
** xref:2deploy-microservices.adoc#redeployingcode[Updating Redeploying Code]


* xref:3monitoring-tracing.adoc[3. Observability]
** xref:3monitoring-tracing.adoc#monitoring[Monitoring with Grafana]
** xref:3monitoring-tracing.adoc#prometheus[Prometheus]
ifndef::workshop[]
*** xref:3monitoring-tracing.adoc#custommetrics[Custom metrics]
*** xref:3monitoring-tracing.adoc#containermemory[Container memory]
*** xref:3monitoring-tracing.adoc#applicationmetrics[Application metrics]
endif::workshop[]
** xref:3monitoring-tracing.adoc#tracing[Tracing]
** xref:3kiali.adoc[Kiali]
*** xref:3kiali.adoc#howkiali[How Kiali Work]
*** xref:3kiali.adoc#updatekiali[Update Kiali]
*** xref:3kiali.adoc#generatingdata[Generating Data]
*** xref:3kiali.adoc#servicegraph[Service Graph]
*** xref:3kiali.adoc#servicelistening[Service Listening]
*** xref:3kiali.adoc#istioconf[Istio Config]
*** xref:3kiali.adoc#distributedtracing[Distributed Tracing]
*** xref:3kiali.adoc#cleanup[Uninstall Kiali]

* 4. Traffic Control
** xref:4simple-routerules.adoc[Simple Routing]
*** xref:4simple-routerules.adoc#deployrecommendationv2[Deploy Recommendation V2]
*** xref:4simple-routerules.adoc#istiorouting[Changing Istio Routings]
**** xref:4simple-routerules.adoc#alltorecommendationv2[All Users To Recommendation V2]
**** xref:4simple-routerules.adoc#alltorecommendationv1[All Users To Recommendation V1]
**** xref:4simple-routerules.adoc#alltorecommendationv1v2[All Users To Recommendation V1 and V2]
**** xref:4simple-routerules.adoc#canarydeploymentrecommendation[Canary Deployment Between v1 And v2]

** xref:4advanced-routerules.adoc[Advanced Routing]
*** xref:4advanced-routerules.adoc#canarydeploymentuseragent[Canary Deployment based on user-agent]
**** xref:4advanced-routerules.adoc#alltorecommendationv1[All Users To Recommendation V1]
**** xref:4advanced-routerules.adoc#safaritov2[All Safari Users To Recommendation V2]
**** xref:4advanced-routerules.adoc#mobiletov2[All Mobile Users To Recommendation V2]
*** xref:4advanced-routerules.adoc#mirroringtraffic[Mirroring Traffic]
*** xref:4advanced-routerules.adoc#loadbalancer[Load Balancer]

* xref:5circuit-breaker.adoc[5. Service Resiliency]
** xref:5circuit-breaker.adoc#retry[Retry]
** xref:5circuit-breaker.adoc#timeout[Timeout]
** xref:5circuit-breaker.adoc#failfast[Fail Fast]
*** xref:5circuit-breaker.adoc#nocircuitbreaker[No Circuit Breaker]
*** xref:5circuit-breaker.adoc#circuitbreaker[Circuit Breaker]

* xref:6fault-injection.adoc[6. Chaos Testing]
** xref:6fault-injection.adoc#503error[HTTP 503 Error]
** xref:6fault-injection.adoc#delay[Delay]

ifndef::workshop[]
* xref:7policy.adoc[7. Policy]
** xref:7policy.adoc#ratelimiting[Rate Limiting - Not working yet]

* 8. Security
** xref:8egress.adoc[Egress]
*** xref:8egress.adoc#createrecommendationv3[Create Recommendation V3]
*** xref:8egress.adoc#istioegress[Istio-ize Egress]
** xref:8acl.adoc[Access Control List]
*** xref:8acl.adoc#whitelist[White List]
*** xref:8acl.adoc#blacklist[Black List]
** xref:8mTLS.adoc[Mutual TLS and Istio]
*** xref:8mTLS.adoc#testingtls[Testing mTLS]
** xref:8jwt.adoc[End-user authentication with JWT]
*** xref:8jwt.adoc#enablingauthentication[Enabling end-user authentication]
*** xref:8jwt.adoc#cleanup[Clean Up]
** xref:8rbac.adoc[Istio Role Based Access Control (RBAC)]
*** xref:8rbac.adoc#enabling-rbac[Enabling RBAC]
*** xref:8rbac.adoc#authorization-jwt[Authorization and JWT]
*** xref:8rbac.adoc#final-notes[Final Notes]
*** xref:8rbac.adoc#cleanup[Clean Up]


* xref:9tips.adoc[10. Tips And Tricks]
endif::workshop[]
