diff --git a/_blog/2017/0.1-using-network-policy.md b/_blog/2017/0.1-using-network-policy.md index 33ed69ed55602..e29ddef1d7927 100644 --- a/_blog/2017/0.1-using-network-policy.md +++ b/_blog/2017/0.1-using-network-policy.md @@ -53,7 +53,7 @@ Network Policy is typically enforced at the host node, outside the network names ## Examples -Let’s walk through a few examples of what you might want to do with Kubernetes Network Policy for an Istio-enabled application. Consider the BookInfo sample application. We’re going to cover the following use cases for Network Policy: +Let’s walk through a few examples of what you might want to do with Kubernetes Network Policy for an Istio-enabled application. Consider the Bookinfo sample application. We’re going to cover the following use cases for Network Policy: - Reduce attack surface of the application ingress - Enforce fine-grained isolation within the application @@ -102,14 +102,14 @@ spec: ### Enforce fine-grained isolation within the application -Here is the service graph for the BookInfo application. +Here is the service graph for the Bookinfo application. {% assign url = home | append: "/docs/guides/img/bookinfo/withistio.svg" %} {% include figure.html width='80%' ratio='59.08%' img=url - alt='BookInfo Service Graph' - title='BookInfo Service Graph' - caption='BookInfo Service Graph' + alt='Bookinfo Service Graph' + title='Bookinfo Service Graph' + caption='Bookinfo Service Graph' %} This graph shows every connection that a correctly functioning application should be allowed to make. All other connections, say from the Istio Ingress directly to the Rating service, are not part of the application. Let’s lock out those extraneous connections so they cannot be used by an attacker. Imagine, for example, that the Ingress pod is compromised by an exploit that allows an attacker to run arbitrary code. If we only allow connections to the Product Page pods using Network Policy, the attacker has gained no more access to my application backends _even though they have compromised a member of the service mesh_. diff --git a/_blog/2017/adapter-model.md b/_blog/2017/adapter-model.md index 987cabb387c03..c008b22252b58 100644 --- a/_blog/2017/adapter-model.md +++ b/_blog/2017/adapter-model.md @@ -90,5 +90,5 @@ The refreshed Mixer adapter model is designed to provide a flexible framework to Handlers provide configuration data for individual adapters, templates determine exactly what kind of data different adapters want to consume at runtime, instances let operators prepare this data, rules direct the data to one or more handlers. You can learn more about Mixer's overall architecture [here]({{home}}/docs/concepts/policy-and-control/), and learn the specifics of templates, handlers, -and rules [here]({{home}}/docs/reference/config/mixer/). You can find many examples of Mixer configuration resources in the BookInfo sample +and rules [here]({{home}}/docs/reference/config/mixer/). You can find many examples of Mixer configuration resources in the Bookinfo sample [here](https://github.com/istio/istio/tree/master/samples/bookinfo/kube). diff --git a/_docs/guides/bookinfo.md b/_docs/guides/bookinfo.md index 99d9256e8924c..77c34654f8a8e 100644 --- a/_docs/guides/bookinfo.md +++ b/_docs/guides/bookinfo.md @@ -19,7 +19,7 @@ book, similar to a single catalog entry of an online book store. Displayed on the page is a description of the book, book details (ISBN, number of pages, and so on), and a few book reviews. -The BookInfo application is broken into four separate microservices: +The Bookinfo application is broken into four separate microservices: * *productpage*. The productpage microservice calls the *details* and *reviews* microservices to populate the page. * *details*. The details microservice contains book information. @@ -36,9 +36,9 @@ The end-to-end architecture of the application is shown below. {% include figure.html width='80%' ratio='68.52%' img='./img/bookinfo/noistio.svg' - alt='BookInfo Application without Istio' - title='BookInfo Application without Istio' - caption='BookInfo Application without Istio' + alt='Bookinfo Application without Istio' + title='Bookinfo Application without Istio' + caption='Bookinfo Application without Istio' %} This application is polyglot, i.e., the microservices are written in different languages. @@ -61,9 +61,9 @@ although in all cases the resulting deployment will look like this: {% include figure.html width='80%' ratio='59.08%' img='./img/bookinfo/withistio.svg' - alt='BookInfo Application' - title='BookInfo Application' - caption='BookInfo Application' + alt='Bookinfo Application' + title='Bookinfo Application' + caption='Bookinfo Application' %} All of the microservices will be packaged with an Envoy sidecar that intercepts incoming @@ -220,7 +220,7 @@ To start the application, follow the instructions below corresponding to your Is ## What's next -To confirm that the BookInfo application is running, run the following `curl` command: +To confirm that the Bookinfo application is running, run the following `curl` command: ```bash curl -o /dev/null -s -w "%{http_code}\n" http://${GATEWAY_URL}/productpage @@ -243,7 +243,7 @@ is a good place to start for beginners. ## Cleanup -When you're finished experimenting with the BookInfo sample, you can +When you're finished experimenting with the Bookinfo sample, you can uninstall and clean it up using the following instructions. ### Uninstall from Kubernetes environment @@ -258,7 +258,7 @@ uninstall and clean it up using the following instructions. ```bash istioctl get routerules #-- there should be no more routing rules - kubectl get pods #-- the BookInfo pods should be deleted + kubectl get pods #-- the Bookinfo pods should be deleted ``` ### Uninstall from Docker environment @@ -281,5 +281,5 @@ uninstall and clean it up using the following instructions. ```bash istioctl get routerules #-- there should be no more routing rules - docker ps -a #-- the BookInfo containers should be deleted + docker ps -a #-- the Bookinfo containers should be deleted ``` diff --git a/_docs/guides/integrating-vms.md b/_docs/guides/integrating-vms.md index d437cd4ccbb46..7f976d9892d3c 100644 --- a/_docs/guides/integrating-vms.md +++ b/_docs/guides/integrating-vms.md @@ -20,9 +20,9 @@ this infrastructure as a single mesh. {% include figure.html width='80%' ratio='56.78%' img='./img/mesh-expansion.svg' - alt='BookInfo Application with Istio Mesh Expansion' - title='BookInfo Application with Istio Mesh Expansion' - caption='BookInfo Application with Istio Mesh Expansion' + alt='Bookinfo Application with Istio Mesh Expansion' + title='Bookinfo Application with Istio Mesh Expansion' + caption='Bookinfo Application with Istio Mesh Expansion' %} @@ -33,7 +33,7 @@ this infrastructure as a single mesh. * Setup Istio by following the instructions in the [Installation guide]({{home}}/docs/setup/kubernetes/quick-start.html). -* Deploy the [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application (in the `bookinfo` namespace). +* Deploy the [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application (in the `bookinfo` namespace). * Create a VM named 'vm-1' in the same project as Istio cluster, and [Join the Mesh]({{home}}/docs/setup/kubernetes/mesh-expansion.html). ## Running mysql on the VM diff --git a/_docs/guides/intelligent-routing.md b/_docs/guides/intelligent-routing.md index 59cdd0490bd5e..c917577cb1304 100644 --- a/_docs/guides/intelligent-routing.md +++ b/_docs/guides/intelligent-routing.md @@ -49,7 +49,7 @@ for a running application. ## Cleanup -When you're finished experimenting with the BookInfo sample, you can +When you're finished experimenting with the Bookinfo sample, you can uninstall it by following the [Bookinfo cleanup instructions]({{home}}/docs/guides/bookinfo.html#cleanup) corresponding to your environment. diff --git a/_docs/guides/telemetry.md b/_docs/guides/telemetry.md index 215cdafcf3ef5..afe0b3b8ee73c 100644 --- a/_docs/guides/telemetry.md +++ b/_docs/guides/telemetry.md @@ -54,7 +54,7 @@ developers to manually instrument their applications. ## Cleanup -When you're finished experimenting with the BookInfo sample, you can +When you're finished experimenting with the Bookinfo sample, you can uninstall it by following the [Bookinfo cleanup instructions]({{home}}/docs/guides/bookinfo.html#cleanup) corresponding to your environment. diff --git a/_docs/setup/consul/quick-start.md b/_docs/setup/consul/quick-start.md index a2449192f5c17..85e1822020c40 100644 --- a/_docs/setup/consul/quick-start.md +++ b/_docs/setup/consul/quick-start.md @@ -71,7 +71,7 @@ Quick Start instructions to install and configure Istio in a Docker Compose setu ## Deploy your application You can now deploy your own application or one of the sample applications provided with the -installation like [BookInfo]({{home}}/docs/guides/bookinfo.html). +installation like [Bookinfo]({{home}}/docs/guides/bookinfo.html). > Note 1: Since there is no concept of pods in a Docker setup, the Istio > sidecar runs in the same container as the application. We will use @@ -95,4 +95,4 @@ docker-compose -f install/consul/istio.yaml down ## What's next -* See the sample [BookInfo]({{home}}/docs/guides/bookinfo.html) application. +* See the sample [Bookinfo]({{home}}/docs/guides/bookinfo.html) application. diff --git a/_docs/setup/eureka/quick-start.md b/_docs/setup/eureka/quick-start.md index 5364303b5dcb7..3be8cc2b36a9a 100644 --- a/_docs/setup/eureka/quick-start.md +++ b/_docs/setup/eureka/quick-start.md @@ -64,7 +64,7 @@ Quick Start instructions to install and configure Istio in a Docker Compose setu ## Deploy your application You can now deploy your own application or one of the sample applications provided with the -installation like [BookInfo]({{home}}/docs/guides/bookinfo.html). +installation like [Bookinfo]({{home}}/docs/guides/bookinfo.html). > Note 1: Since there is no concept of pods in a Docker setup, the Istio > sidecar runs in the same container as the application. We will use @@ -88,4 +88,4 @@ docker-compose -f install/eureka/istio.yaml down ## What's next -* See the sample [BookInfo]({{home}}/docs/guides/bookinfo.html) application. +* See the sample [Bookinfo]({{home}}/docs/guides/bookinfo.html) application. diff --git a/_docs/setup/kubernetes/mesh-expansion.md b/_docs/setup/kubernetes/mesh-expansion.md index 95e289d255c36..827d6a375247a 100644 --- a/_docs/setup/kubernetes/mesh-expansion.md +++ b/_docs/setup/kubernetes/mesh-expansion.md @@ -271,4 +271,4 @@ services running on the machine. ## Putting it all together -See the [BookInfo Mesh Expansion]({{home}}/docs/guides/integrating-vms.html) guide. +See the [Bookinfo Mesh Expansion]({{home}}/docs/guides/integrating-vms.html) guide. diff --git a/_docs/setup/kubernetes/quick-start-gke-dm.md b/_docs/setup/kubernetes/quick-start-gke-dm.md index b1a06ce4ac1c0..1adf248374159 100644 --- a/_docs/setup/kubernetes/quick-start-gke-dm.md +++ b/_docs/setup/kubernetes/quick-start-gke-dm.md @@ -13,7 +13,7 @@ type: markdown Quick Start instructions to install and run Istio in [Google Kubernetes Engine](https://cloud.google.com/kubernetes-engine/) (GKE) using [Google Cloud Deployment Manager](https://cloud.google.com/deployment-manager/). -This Quick Start creates a new GKE [zonal cluster](https://cloud.google.com/kubernetes-engine/versioning-and-upgrades#versions_available_for_new_cluster_masters), installs Istio and then deploys the [BookInfo]({{home}}/docs/guides/bookinfo.html) sample +This Quick Start creates a new GKE [zonal cluster](https://cloud.google.com/kubernetes-engine/versioning-and-upgrades#versions_available_for_new_cluster_masters), installs Istio and then deploys the [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application. It uses Deployment Manager to automate the steps detailed in the [Istio on Kubernetes setup guide]({{home}}/docs/setup/kubernetes/quick-start.html) for Kubernetes Engine @@ -48,7 +48,7 @@ application. It uses Deployment Manager to automate the steps detailed in the [ We recommend that you leave the default settings as the rest of this tutorial shows how to access the installed features. By default the tool creates a GKE alpha cluster with the specified settings, then installs the Istio [control plane]({{home}}/docs/concepts/what-is-istio/overview.html#architecture), the - [BookInfo]({{home}}/docs/guides/bookinfo.html) sample app, + [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample app, [Grafana]({{home}}/docs/tasks/telemetry/using-istio-dashboard.html) with [Prometheus]({{home}}/docs/tasks/telemetry/querying-metrics.html), [ServiceGraph]({{home}}/docs/tasks/telemetry/servicegraph.html), @@ -111,7 +111,7 @@ deploy/zipkin 1 1 1 1 3m ``` -Now confirm that the BookInfo sample application is also installed: +Now confirm that the Bookinfo sample application is also installed: ```bash @@ -130,7 +130,7 @@ NAME HOSTS ADDRESS PORTS AGE ing/gateway * 35.202.120.89 80 3m ``` -Note down the IP and Port assigned to BookInfo product page. (in the example above, its ```35.202.120.89:80```. +Note down the IP and Port assigned to Bookinfo product page. (in the example above, its ```35.202.120.89:80```. You can also view the installation using the ***Kubernetes Engine -> Workloads** section on the [Cloud Console](https://console.cloud.google.com/kubernetes/workload): @@ -141,9 +141,9 @@ You can also view the installation using the ***Kubernetes Engine -> Workloads** caption='GKE-Workloads' %} -### Access the BookInfo sample +### Access the Bookinfo sample -1. Set up an environment variable for BookInfo's external IP address: +1. Set up an environment variable for Bookinfo's external IP address: ```bash kubectl get ingress -o wide @@ -152,13 +152,13 @@ You can also view the installation using the ***Kubernetes Engine -> Workloads** export GATEWAY_URL=35.202.120.89 ``` -2. Verify you can access the BookInfo ```http://${GATEWAY_URL}/productpage```: +2. Verify you can access the Bookinfo ```http://${GATEWAY_URL}/productpage```: {% include figure.html width="100%" ratio="45.04%" img='./img/dm_bookinfo.png' - alt='BookInfo' - title='BookInfo' - caption='BookInfo' + alt='Bookinfo' + title='Bookinfo' + caption='Bookinfo' %} 3. Now send some traffic to it: @@ -225,7 +225,7 @@ Set up a tunnel to ServiceGraph: ```bash kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=servicegraph -o jsonpath='{.items[0].metadata.name}') 8088:8088 & ``` -You should see the BookInfo service topology at +You should see the Bookinfo service topology at ``` http://localhost:8088/dotviz @@ -265,7 +265,7 @@ For more details on tracing see [Understanding what happened]({{home}}/docs/task ## What's next -You can further explore the BookInfo app and Istio functionality by following any of the tutorials in the +You can further explore the Bookinfo app and Istio functionality by following any of the tutorials in the [Guides]({{home}}/docs/guides/) section. However, to do this you need to install `istioctl` to interact with Istio. You can either [install]({{home}}/docs/setup/kubernetes/quick-start.html#installation-steps) it directly on our workstation or within Cloud Shell. diff --git a/_docs/setup/kubernetes/quick-start.md b/_docs/setup/kubernetes/quick-start.md index 0fc2f003d9ad7..64e48548b6b83 100644 --- a/_docs/setup/kubernetes/quick-start.md +++ b/_docs/setup/kubernetes/quick-start.md @@ -75,7 +75,7 @@ with UID 0 for Istio's service accounts for ingress as well the Prometheus and G ## Installation steps Starting with the 0.2 release, Istio is installed in its own `istio-system` -namespace, and can manage micro-services from all other namespaces. +namespace, and can manage services from all other namespaces. 1. Go to the [Istio release](https://github.com/istio/istio/releases) page to download the installation file corresponding to your OS. If you are using a MacOS or Linux system, you can also @@ -162,7 +162,7 @@ istio-mixer-2104784889-20rm8 2/2 Running 0 5h ## Deploy your application You can now deploy your own application or one of the sample applications provided with the -installation like [BookInfo]({{home}}/docs/guides/bookinfo.html). +installation like [Bookinfo]({{home}}/docs/guides/bookinfo.html). Note: the application must use HTTP/1.1 or HTTP/2.0 protocol for all its HTTP traffic because HTTP/1.0 is not supported. If you started the [Istio-sidecar-injector]({{home}}/docs/setup/kubernetes/sidecar-injection.html#automatic-sidecar-injection), @@ -209,6 +209,6 @@ kubectl delete -f install/kubernetes/istio-auth.yaml ## What's next -* See the sample [BookInfo]({{home}}/docs/guides/bookinfo.html) application. +* See the sample [Bookinfo]({{home}}/docs/guides/bookinfo.html) application. * See how to [test Istio mutual TLS Authentication]({{home}}/docs/tasks/security/mutual-tls.html). diff --git a/_docs/tasks/policy-enforcement/rate-limiting.md b/_docs/tasks/policy-enforcement/rate-limiting.md index 2bb0c4b7faf96..dd8266e57d372 100644 --- a/_docs/tasks/policy-enforcement/rate-limiting.md +++ b/_docs/tasks/policy-enforcement/rate-limiting.md @@ -16,7 +16,7 @@ This task shows you how to use Istio to dynamically limit the traffic to a servi * Setup Istio in a Kubernetes cluster by following the quick start instructions in the [Installation guide]({{home}}/docs/setup/kubernetes/quick-start.html). -* Deploy the [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application. +* Deploy the [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application. * Initialize the application version routing to direct `reviews` service requests from test user "jason" to version v2 and requests from any other user to v3. @@ -36,7 +36,7 @@ Istio enables users to rate limit traffic to a service. Consider `ratings` as an external paid service like Rotten Tomatoes® with `1qps` free quota. Using Istio we can ensure that `1qps` is not breached. -1. Point your browser at the BookInfo `productpage` (http://$GATEWAY_URL/productpage). +1. Point your browser at the Bookinfo `productpage` (http://$GATEWAY_URL/productpage). If you log in as user "jason", you should see black ratings stars with each review, indicating that the `ratings` service is being called by the "v2" version of the `reviews` service. @@ -192,7 +192,7 @@ If you would like the above policies enforced for a given namespace instead of t ``` * If you are not planning to explore any follow-on tasks, refer to the - [BookInfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions + [Bookinfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions to shutdown the application. ## What's next diff --git a/_docs/tasks/security/basic-access-control.md b/_docs/tasks/security/basic-access-control.md index d46387c17b9bf..5c35413375b32 100644 --- a/_docs/tasks/security/basic-access-control.md +++ b/_docs/tasks/security/basic-access-control.md @@ -16,7 +16,7 @@ This task shows how to control access to a service using the Kubernetes labels. * Set up Istio on Kubernetes by following the instructions in the [Installation guide]({{home}}/docs/setup/kubernetes/). -* Deploy the [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application. +* Deploy the [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application. * Initialize the application version routing to direct `reviews` service requests from test user "jason" to version v2 and requests from any other user to v3. @@ -37,10 +37,10 @@ This task shows how to control access to a service using the Kubernetes labels. Using Istio you can control access to a service based on any attributes that are available within Mixer. This simple form of access control is based on conditionally denying requests using Mixer selectors. -Consider the [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application where the `ratings` service is accessed by multiple versions +Consider the [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application where the `ratings` service is accessed by multiple versions of the `reviews` service. We would like to cut off access to version `v3` of the `reviews` service. -1. Point your browser at the BookInfo `productpage` (http://$GATEWAY_URL/productpage). +1. Point your browser at the Bookinfo `productpage` (http://$GATEWAY_URL/productpage). If you log in as user "jason", you should see black rating stars with each review, indicating that the `ratings` service is being called by the "v2" version of the `reviews` service. @@ -88,7 +88,7 @@ Istio also supports attribute-based whitelists and blacklists. The following whi istioctl delete -f samples/bookinfo/kube/mixer-rule-deny-label.yaml ``` -1. Verify that when you access the BookInfo `productpage` (http://$GATEWAY_URL/productpage) without logging in, you see red stars. +1. Verify that when you access the Bookinfo `productpage` (http://$GATEWAY_URL/productpage) without logging in, you see red stars. After performing the following steps you will no longer be able to see stars unless you are logged in as "jason". 1. Create configuration for the [`list`]({{home}}/docs/reference/config/adapters/list.html) @@ -151,7 +151,7 @@ Save the following YAML snippet as `checkversion-rule.yaml`: istioctl create -f checkversion-rule.yaml ``` -1. Verify that when you access the BookInfo `productpage` (http://$GATEWAY_URL/productpage) without logging in, you see **no** stars. +1. Verify that when you access the Bookinfo `productpage` (http://$GATEWAY_URL/productpage) without logging in, you see **no** stars. Verify that after logging in as "jason" you see black stars. ## Cleanup @@ -172,7 +172,7 @@ Verify that after logging in as "jason" you see black stars. ``` * If you are not planning to explore any follow-on tasks, refer to the - [BookInfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions + [Bookinfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions to shutdown the application. ## What's next diff --git a/_docs/tasks/security/mutual-tls.md b/_docs/tasks/security/mutual-tls.md index 7166e50312c42..e26ef99431356 100644 --- a/_docs/tasks/security/mutual-tls.md +++ b/_docs/tasks/security/mutual-tls.md @@ -58,7 +58,7 @@ Istio CA is up if the "AVAILABLE" column is 1. When running Istio with mutual TLS authentication turned on, you can use curl in one service's envoy to send request to other services. -For example, after starting the [BookInfo]({{home}}/docs/guides/bookinfo.html) +For example, after starting the [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application you can ssh into the envoy container of `productpage` service, and send request to other services by curl. diff --git a/_docs/tasks/security/role-based-access-control.md b/_docs/tasks/security/role-based-access-control.md index c4472611aa5fe..34d09cf2f0513 100644 --- a/_docs/tasks/security/role-based-access-control.md +++ b/_docs/tasks/security/role-based-access-control.md @@ -19,7 +19,7 @@ RBAC from [Istio RBAC concept page]({{home}}/docs/concepts/security/rbac.html). Note that authentication should be enabled at step 5 in the [installation steps]({{home}}/docs/setup/kubernetes/quick-start.html#installation-steps). -* Deploy the [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application. +* Deploy the [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application. *> Note: Some sample configurations we use below are not in the current Istio release yet. So before you continue, you need to copy the following configuration files from https://github.com/istio/istio/tree/master/samples/bookinfo/kube to @@ -28,7 +28,7 @@ RBAC from [Istio RBAC concept page]({{home}}/docs/concepts/security/rbac.html). `istio-rbac-details-reviews.yaml`, `istio-rbac-ratings.yaml`.* * In this task, we will enable access control based on Service Accounts, which are cryptographically authenticated in the Istio mesh. -In order to give different microservices different access privileges, we will create some service accounts and redeploy BookInfo +In order to give different microservices different access privileges, we will create some service accounts and redeploy Bookinfo microservices running under them. Run the following command to @@ -53,7 +53,7 @@ microservices running under them. > Note: if you are using a namespace other than `default`, use `istioctl -n namespace ...` to specify the namespace. -Point your browser at the BookInfo `productpage` (http://$GATEWAY_URL/productpage). You should see: +Point your browser at the Bookinfo `productpage` (http://$GATEWAY_URL/productpage). You should see: * "Book Details" section in the lower left part of the page, including type, pages, publisher, etc. * "Book Reviews" section in the lower right part of the page. @@ -69,7 +69,7 @@ It also defines "requestcontext", which is an instance of the [authorization template](https://github.com/istio/istio/blob/master/mixer/template/authorization/template.proto). "requestcontext" defines the input to the RBAC engine at runtime. -Point your browser at the BookInfo `productpage` (http://$GATEWAY_URL/productpage). Now you should see +Point your browser at the Bookinfo `productpage` (http://$GATEWAY_URL/productpage). Now you should see `"PERMISSION_DENIED:handler.rbac.istio-system:RBAC: permission denied."` This is because Istio RBAC is "deny by default", which means that you need to explicitly define access control policy to grant access to any service. @@ -80,7 +80,7 @@ which means that you need to explicitly define access control policy to grant ac Using Istio RBAC, you can easily setup namespace-level access control by specifying all (or a collection of) services in a namespace are accessible by services from another namespace. -In our BookInfo sample, the "productpage", "reviews", "details", "ratings" services are deployed in "default" namespace. +In our Bookinfo sample, the "productpage", "reviews", "details", "ratings" services are deployed in "default" namespace. The Istio components like "ingress" service are deployed in "istio-system" namespace. We can define a policy that all services in "default" namespace are accessible by services in the same namespace (i.e., "default" namespace) and services in "istio-system" namespace. @@ -131,7 +131,7 @@ servicerole "service-viewer" created servicerolebinding "bind-service-viewer" created ``` -Now if you point your browser at BookInfo `productpage` (http://$GATEWAY_URL/productpage). You should see "BookInfo Sample" page, +Now if you point your browser at Bookinfo `productpage` (http://$GATEWAY_URL/productpage). You should see "Bookinfo Sample" page, with "Book Details" section in the lower left part and "Book Reviews" section in the lower right part. > Note: There may be delay due to caching on browser and Istio proxy. @@ -150,9 +150,9 @@ This task shows you how to set up service-level access control using Istio RBAC. * You have [enabled Istio RBAC](#enabling-istio-rbac). * You have [removed namespace-level Istio RBAC policy](#cleanup-namespace-level-access-control). -Point your browser at the BookInfo `productpage` (http://$GATEWAY_URL/productpage). You should see +Point your browser at the Bookinfo `productpage` (http://$GATEWAY_URL/productpage). You should see `"PERMISSION_DENIED:handler.rbac.istio-system:RBAC: permission denied."` We will incrementally add -access to the services in BookInfo sample. +access to the services in Bookinfo sample. ### Step 1. allowing access to "productpage" service @@ -195,7 +195,7 @@ The policy does the following: name: "productpage-viewer" ``` -Point your browser at the BookInfo `productpage` (http://$GATEWAY_URL/productpage). Now you should see "BookInfo Sample" +Point your browser at the Bookinfo `productpage` (http://$GATEWAY_URL/productpage). Now you should see "Bookinfo Sample" page. But there are errors `"Error fetching product details"` and `"Error fetching product reviews"` on the page. These errors are expected because we have not granted "productpage" service to access "details" and "reviews" services. We will fix the errors in the following steps. @@ -253,7 +253,7 @@ account "cluster.local/ns/default/sa/bookinfo-productpage" (representing the "pr name: "details-reviews-viewer" ``` -Point your browser at the BookInfo `productpage` (http://$GATEWAY_URL/productpage). Now you should see "BookInfo Sample" +Point your browser at the Bookinfo `productpage` (http://$GATEWAY_URL/productpage). Now you should see "Bookinfo Sample" page with "Book Details" on the lower left part, and "Book Reviews" on the lower right part. However, in "Book Reviews" section, you see one of the following two errors: 1. `"Error featching product reviews"`. This is because "productpage" service is only allowed to access "reviews" service with versions @@ -324,7 +324,7 @@ account "cluster.local/ns/default/sa/bookinfo-reviews", which represents the "re name: "ratings-viewer" ``` -Point your browser at the BookInfo `productpage` (http://$GATEWAY_URL/productpage). Now you should see +Point your browser at the Bookinfo `productpage` (http://$GATEWAY_URL/productpage). Now you should see the "black" and "red" ratings in "Book Reviews" section. > Note: There may be delay due to caching on browser and Istio proxy. diff --git a/_docs/tasks/security/secure-access-control.md b/_docs/tasks/security/secure-access-control.md index a2905484aaa32..15502904e7188 100644 --- a/_docs/tasks/security/secure-access-control.md +++ b/_docs/tasks/security/secure-access-control.md @@ -24,7 +24,7 @@ For the format of the service account in Istio, please refer to the Note that authentication should be enabled at step 5 in the [installation steps]({{home}}/docs/setup/kubernetes/quick-start.html#installation-steps). -* Deploy the [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application. +* Deploy the [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application. * Run the following command to create service account `bookinfo-productpage`, and redeploy the service `productpage` with the service account. @@ -45,11 +45,11 @@ For the format of the service account in Istio, please refer to the ## Access control using _denials_ -In the [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application, the `productpage` service is accessing +In the [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application, the `productpage` service is accessing both the `reviews` service and the `details` service. We would like the `details` service to deny the requests from the `productpage` service. -1. Point your browser at the BookInfo `productpage` (http://$GATEWAY_URL/productpage). +1. Point your browser at the Bookinfo `productpage` (http://$GATEWAY_URL/productpage). You should see the "Book Details" section in the lower left part of the page, including type, pages, publisher, etc. The `productpage` service obtains the "Book Details" information from the `details` service. @@ -96,7 +96,7 @@ the `productpage` service. ``` * If you are not planning to explore any follow-on tasks, refer to the - [BookInfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions + [Bookinfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions to shutdown the application. ## What's next diff --git a/_docs/tasks/telemetry/distributed-tracing.md b/_docs/tasks/telemetry/distributed-tracing.md index 2e6420ef2ead9..3412327ab984e 100644 --- a/_docs/tasks/telemetry/distributed-tracing.md +++ b/_docs/tasks/telemetry/distributed-tracing.md @@ -15,7 +15,7 @@ After completing this task, you should understand all of the assumptions about y application and how to have it participate in tracing, regardless of what language/framework/platform you use to build your application. -The [BookInfo]({{home}}/docs/guides/bookinfo.html) sample is used as the +The [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample is used as the example application for this task. @@ -36,7 +36,7 @@ example application for this task. ``` for Jaeger. -* Deploy the [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application. +* Deploy the [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application. ## Accessing the dashboard @@ -62,9 +62,9 @@ kubectl port-forward -n istio-system $(kubectl get pod -n istio-system -l app=ja Then open your browser at [http://localhost:16686](http://localhost:16686) -## Generating traces using the BookInfo sample +## Generating traces using the Bookinfo sample -With the BookInfo application up and running, generate trace information by accessing +With the Bookinfo application up and running, generate trace information by accessing `http://$GATEWAY_URL/productpage` one or more times. If you now look at the dashboard, you should see something similar to the following: @@ -102,7 +102,7 @@ The page should look something like this: %} As you can see, the trace is comprised of spans, -where each span corresponds to a BookInfo service invoked during the execution of a `/productpage` request. +where each span corresponds to a Bookinfo service invoked during the execution of a `/productpage` request. Although every service has the same label, `istio-proxy`, because the tracing is being done by the Istio sidecar (Envoy proxy) which wraps the call to the actual service, the label of the destination (to the right) identifies the service for which the time is represented by each line. @@ -197,7 +197,7 @@ When you make downstream calls in your applications, make sure to include these ``` * If you are not planning to explore any follow-on tasks, refer to the - [BookInfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions + [Bookinfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions to shutdown the application. ## What's next diff --git a/_docs/tasks/telemetry/fluentd.md b/_docs/tasks/telemetry/fluentd.md index 9ba1831391430..c2e488d76248a 100644 --- a/_docs/tasks/telemetry/fluentd.md +++ b/_docs/tasks/telemetry/fluentd.md @@ -20,7 +20,7 @@ architecture. One popular logging backend is end of this task, a new log stream will be enabled sending logs to an example Fluentd / Elasticsearch / Kibana stack. -The [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application is used +The [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application is used as the example application throughout this task. ## Before you begin @@ -370,7 +370,7 @@ example stack. 1. Send traffic to the sample application. For the - [BookInfo]({{home}}/docs/guides/bookinfo.html#determining-the-ingress-ip-and-port) + [Bookinfo]({{home}}/docs/guides/bookinfo.html#determining-the-ingress-ip-and-port) sample, visit `http://$GATEWAY_URL/productpage` in your web browser or issue the following command: @@ -410,7 +410,7 @@ example stack. ``` * If you are not planning to explore any follow-on tasks, refer to the - [BookInfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions + [Bookinfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions to shutdown the application. ## What's next diff --git a/_docs/tasks/telemetry/metrics-logs.md b/_docs/tasks/telemetry/metrics-logs.md index c2713c7b3238f..83f9ddd48c322 100644 --- a/_docs/tasks/telemetry/metrics-logs.md +++ b/_docs/tasks/telemetry/metrics-logs.md @@ -14,7 +14,7 @@ This task shows how to configure Istio to automatically gather telemetry for services in a mesh. At the end of this task, a new metric and a new log stream will be enabled for calls to services within your mesh. -The [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application is used +The [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application is used as the example application throughout this task. ## Before you begin @@ -141,7 +141,7 @@ as the example application throughout this task. 1. Send traffic to the sample application. - For the BookInfo sample, visit `http://$GATEWAY_URL/productpage` in your web + For the Bookinfo sample, visit `http://$GATEWAY_URL/productpage` in your web browser or issue the following command: ```bash @@ -308,7 +308,7 @@ here to illustrate how to use `match` expressions to control rule execution. ``` * If you are not planning to explore any follow-on tasks, refer to the - [BookInfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions + [Bookinfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions to shutdown the application. ## What's next diff --git a/_docs/tasks/telemetry/querying-metrics.md b/_docs/tasks/telemetry/querying-metrics.md index d9a92c31f0e1d..7c8339268e34b 100644 --- a/_docs/tasks/telemetry/querying-metrics.md +++ b/_docs/tasks/telemetry/querying-metrics.md @@ -14,7 +14,7 @@ This task shows you how to query for Istio Metrics using Prometheus. As part of this task, you will install the Prometheus Istio addon and use the web-based interface for querying metric values. -The [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application is used as +The [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application is used as the example application throughout this task. ## Before you begin @@ -48,7 +48,7 @@ the example application throughout this task. 1. Send traffic to the mesh. - For the BookInfo sample, visit `http://$GATEWAY_URL/productpage` in your web + For the Bookinfo sample, visit `http://$GATEWAY_URL/productpage` in your web browser or issue the following command: ```bash @@ -56,7 +56,7 @@ the example application throughout this task. ``` Note: `$GATEWAY_URL` is the value set in the - [BookInfo]({{home}}/docs/guides/bookinfo.html) guide. + [Bookinfo]({{home}}/docs/guides/bookinfo.html) guide. 1. Open the Prometheus UI. @@ -139,7 +139,7 @@ docs](https://prometheus.io/docs/querying/basics/). ``` * If you are not planning to explore any follow-on tasks, refer to the - [BookInfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions + [Bookinfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions to shutdown the application. ## What's next diff --git a/_docs/tasks/telemetry/servicegraph.md b/_docs/tasks/telemetry/servicegraph.md index a7610e31dcd3f..86c3329548ac3 100644 --- a/_docs/tasks/telemetry/servicegraph.md +++ b/_docs/tasks/telemetry/servicegraph.md @@ -14,7 +14,7 @@ This task shows you how to generate a graph of services within an Istio mesh. As part of this task, you will install the Servicegraph addon and use the web-based interface for viewing service graph of the service mesh. -The [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application is used as +The [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application is used as the example application throughout this task. ## Before you begin @@ -56,7 +56,7 @@ the example application throughout this task. 1. Send traffic to the mesh. - For the BookInfo sample, visit `http://$GATEWAY_URL/productpage` in your web + For the Bookinfo sample, visit `http://$GATEWAY_URL/productpage` in your web browser or issue the following command: ```bash @@ -67,7 +67,7 @@ the example application throughout this task. small amount of traffic. Note: `$GATEWAY_URL` is the value set in the - [BookInfo]({{home}}/docs/guides/bookinfo.html) guide. + [Bookinfo]({{home}}/docs/guides/bookinfo.html) guide. 1. Open the Servicegraph UI. @@ -117,5 +117,5 @@ The Servicegraph example is built on top of Prometheus queries. ``` * If you are not planning to explore any follow-on tasks, refer to the - [BookInfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions + [Bookinfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions to shutdown the application. diff --git a/_docs/tasks/telemetry/tcp-metrics.md b/_docs/tasks/telemetry/tcp-metrics.md index 737267d5ffb19..e3adf5ee9ae9e 100644 --- a/_docs/tasks/telemetry/tcp-metrics.md +++ b/_docs/tasks/telemetry/tcp-metrics.md @@ -15,14 +15,14 @@ This task shows how to configure Istio to automatically gather telemetry for TCP services in a mesh. At the end of this task, a new metric will be enabled for calls to a TCP service within your mesh. -The [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application is used +The [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application is used as the example application throughout this task. ## Before you begin * [Install Istio]({{home}}/docs/setup/) in your cluster and deploy an application. -* This task assumes that the BookInfo sample will be deployed in the `default` +* This task assumes that the Bookinfo sample will be deployed in the `default` namespace. If you use a different namespace, you will need to update the example configuration and commands. @@ -124,7 +124,7 @@ as the example application throughout this task. Created config rule/default/mongoprom at revision 3852846 ``` -1. Setup BookInfo to use MongoDB. +1. Setup Bookinfo to use MongoDB. 1. Install `v2` of the `ratings` service. @@ -184,7 +184,7 @@ as the example application throughout this task. 1. Send traffic to the sample application. - For the BookInfo sample, visit `http://$GATEWAY_URL/productpage` in your web + For the Bookinfo sample, visit `http://$GATEWAY_URL/productpage` in your web browser or issue the following command: ```bash @@ -261,7 +261,7 @@ protocols within policies. ``` * If you are not planning to explore any follow-on tasks, refer to the - [BookInfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions + [Bookinfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions to shutdown the application. ## What's next diff --git a/_docs/tasks/telemetry/using-istio-dashboard.md b/_docs/tasks/telemetry/using-istio-dashboard.md index c6c3b9aa34bb6..1a1f322762c00 100644 --- a/_docs/tasks/telemetry/using-istio-dashboard.md +++ b/_docs/tasks/telemetry/using-istio-dashboard.md @@ -14,7 +14,7 @@ This task shows you how to setup and use the Istio Dashboard to monitor mesh traffic. As part of this task, you will install the Grafana Istio addon and use the web-based interface for viewing service mesh traffic data. -The [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application is used as +The [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application is used as the example application throughout this task. ## Before you begin @@ -75,7 +75,7 @@ the example application throughout this task. 1. Send traffic to the mesh. - For the BookInfo sample, visit `http://$GATEWAY_URL/productpage` in your web + For the Bookinfo sample, visit `http://$GATEWAY_URL/productpage` in your web browser or issue the following command: ```bash @@ -96,7 +96,7 @@ the example application throughout this task. %} Note: `$GATEWAY_URL` is the value set in the - [BookInfo]({{home}}/docs/guides/bookinfo.html) guide. + [Bookinfo]({{home}}/docs/guides/bookinfo.html) guide. ### About the Grafana add-on @@ -135,5 +135,5 @@ For more on how to create, configure, and edit dashboards, please see the ``` * If you are not planning to explore any follow-on tasks, refer to the - [BookInfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions + [Bookinfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions to shutdown the application. diff --git a/_docs/tasks/traffic-management/fault-injection.md b/_docs/tasks/traffic-management/fault-injection.md index c92ae47878325..43e2dd0643369 100644 --- a/_docs/tasks/traffic-management/fault-injection.md +++ b/_docs/tasks/traffic-management/fault-injection.md @@ -16,7 +16,7 @@ This task shows how to inject delays and test the resiliency of your application * Setup Istio by following the instructions in the [Installation guide]({{home}}/docs/setup/). -* Deploy the [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application. +* Deploy the [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application. * Initialize the application version routing by either first doing the [request routing](./request-routing.html) task or by running following @@ -39,7 +39,7 @@ This task shows how to inject delays and test the resiliency of your application # Fault injection ## Fault injection using HTTP delay -To test our BookInfo application microservices for resiliency, we will _inject a 7s delay_ +To test our Bookinfo application microservices for resiliency, we will _inject a 7s delay_ between the reviews:v2 and ratings microservices, for user "jason". Since the _reviews:v2_ service has a 10s timeout for its calls to the ratings service, we expect the end-to-end flow to continue without any errors. @@ -94,7 +94,7 @@ continue without any errors. ## Understanding what happened - The reason that the entire reviews service has failed is because our BookInfo application + The reason that the entire reviews service has failed is because our Bookinfo application has a bug. The timeout between the productpage and reviews service is less (3s + 1 retry = 6s total) than the timeout between the reviews and ratings service (10s). These kinds of bugs can occur in typical enterprise applications where different teams develop different microservices @@ -182,7 +182,7 @@ message. ``` * If you are not planning to explore any follow-on tasks, refer to the - [BookInfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions + [Bookinfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions to shutdown the application. ## What's next diff --git a/_docs/tasks/traffic-management/request-routing.md b/_docs/tasks/traffic-management/request-routing.md index 7f8b6df2a5f40..48e2f68293c91 100644 --- a/_docs/tasks/traffic-management/request-routing.md +++ b/_docs/tasks/traffic-management/request-routing.md @@ -16,7 +16,7 @@ This task shows you how to configure dynamic request routing based on weights an * Setup Istio by following the instructions in the [Installation guide]({{home}}/docs/setup/). -* Deploy the [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application. +* Deploy the [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application. > Note: This task assumes you are deploying the application on Kubernetes. All of the example commands are using the Kubernetes version of the rule yaml files @@ -27,7 +27,7 @@ This task shows you how to configure dynamic request routing based on weights an ## Content-based routing -Because the BookInfo sample deploys 3 versions of the reviews microservice, +Because the Bookinfo sample deploys 3 versions of the reviews microservice, we need to set a default route. Otherwise if you access the application several times, you'll notice that sometimes the output contains star ratings. @@ -114,9 +114,9 @@ route requests to all available versions of a service in a random fashion. Since rule propagation to the proxies is asynchronous, you should wait a few seconds for the rules to propagate to all pods before attempting to access the application. -1. Open the BookInfo URL (http://$GATEWAY_URL/productpage) in your browser +1. Open the Bookinfo URL (http://$GATEWAY_URL/productpage) in your browser - You should see the BookInfo application productpage displayed. + You should see the Bookinfo application productpage displayed. Notice that the `productpage` is displayed with no rating stars since `reviews:v1` does not access the ratings service. 1. Route a specific user to `reviews:v2` @@ -161,7 +161,7 @@ route requests to all available versions of a service in a random fashion. ## Understanding what happened -In this task, you used Istio to send 100% of the traffic to the v1 version of each of the BookInfo +In this task, you used Istio to send 100% of the traffic to the v1 version of each of the Bookinfo services. You then set a rule to selectively send traffic to version v2 of the reviews service based on a header (i.e., a user cookie) in a request. @@ -178,7 +178,7 @@ all users to v2, optionally in a gradual fashion. We'll explore this in a separa ``` * If you are not planning to explore any follow-on tasks, refer to the - [BookInfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions + [Bookinfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions to shutdown the application. ## What's next diff --git a/_docs/tasks/traffic-management/request-timeouts.md b/_docs/tasks/traffic-management/request-timeouts.md index 9a7d473657c4a..c2a53883bb0ed 100644 --- a/_docs/tasks/traffic-management/request-timeouts.md +++ b/_docs/tasks/traffic-management/request-timeouts.md @@ -17,7 +17,7 @@ This task shows you how to setup request timeouts in Envoy using Istio. * Setup Istio by following the instructions in the [Installation guide]({{home}}/docs/setup/). -* Deploy the [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application. +* Deploy the [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application. * Initialize the application version routing by running the following command: @@ -78,9 +78,9 @@ to the `ratings` service. EOF ``` -1. Open the BookInfo URL (http://$GATEWAY_URL/productpage) in your browser +1. Open the Bookinfo URL (http://$GATEWAY_URL/productpage) in your browser - You should see the BookInfo application working normally (with ratings stars displayed), + You should see the Bookinfo application working normally (with ratings stars displayed), but there is a 2 second delay whenever you refresh the page. 1. Now add a 1 second request timeout for calls to the `reviews` service @@ -103,7 +103,7 @@ to the `ratings` service. EOF ``` -1. Refresh the BookInfo web page +1. Refresh the Bookinfo web page You should now see that it returns in 1 second (instead of 2), but the reviews are unavailable. @@ -117,7 +117,7 @@ you used Istio to inject a 2 second delay in calls to `ratings`, so that you wou `reviews` service to take longer than 1 second to complete and consequently you could see the timeout in action. -You observed that the BookInfo productpage (which calls the `reviews` service to populate the page), +You observed that the Bookinfo productpage (which calls the `reviews` service to populate the page), instead of displaying reviews, displayed the message: Sorry, product reviews are currently unavailable for this book. This was the result of it receiving the timeout error from the `reviews` service. @@ -143,7 +143,7 @@ the timeout is specified in millisecond (instead of second) units. ``` * If you are not planning to explore any follow-on tasks, refer to the - [BookInfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions + [Bookinfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions to shutdown the application. ## What's next diff --git a/_docs/tasks/traffic-management/traffic-shifting.md b/_docs/tasks/traffic-management/traffic-shifting.md index 452b1b495ffe2..c71d9398e2eaf 100644 --- a/_docs/tasks/traffic-management/traffic-shifting.md +++ b/_docs/tasks/traffic-management/traffic-shifting.md @@ -20,7 +20,7 @@ two steps: 50%, 100%. * Setup Istio by following the instructions in the [Installation guide]({{home}}/docs/setup/). -* Deploy the [BookInfo]({{home}}/docs/guides/bookinfo.html) sample application. +* Deploy the [Bookinfo]({{home}}/docs/guides/bookinfo.html) sample application. > Note: This task assumes you are deploying the application on Kubernetes. All of the example commands are using the Kubernetes version of the rule yaml files @@ -39,7 +39,7 @@ two steps: 50%, 100%. 1. Confirm v1 is the active version of the `reviews` service by opening http://$GATEWAY_URL/productpage in your browser. - You should see the BookInfo application productpage displayed. + You should see the Bookinfo application productpage displayed. Notice that the `productpage` is displayed with no rating stars since `reviews:v1` does not access the ratings service. > Note: If you previously ran the [request routing](./request-routing.html) task, you may need to either log out @@ -113,7 +113,7 @@ For more about version routing with autoscaling, check out [Canary Deployments u ``` * If you are not planning to explore any follow-on tasks, refer to the - [BookInfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions + [Bookinfo cleanup]({{home}}/docs/guides/bookinfo.html#cleanup) instructions to shutdown the application. ## What's next diff --git a/js/misc.js b/js/misc.js index fc649f1f3eab0..5fdfba3744f3f 100644 --- a/js/misc.js +++ b/js/misc.js @@ -50,8 +50,8 @@ $(function ($) { // toggle copy button $(document).on('mouseleave', 'div.copy', function () { - // $(this).parent().children('div.copy').toggleClass("copy-show", false) -// $(this).parent().children('div.copy').toggleClass("copy-hide", true) + $(this).parent().children('div.copy').toggleClass("copy-show", false) + $(this).parent().children('div.copy').toggleClass("copy-hide", true) }); }); }(jQuery));