Update docs to use templates.

This commit is contained in:
Martin Taillefer 2017-04-07 11:15:04 -07:00
parent 471cc5f453
commit c72c252bc0
6 changed files with 65 additions and 37 deletions

View File

@ -22,23 +22,14 @@
{% endif %}
{% if steps %}
{{ steps }}
{% else %}
{% include templates/_errorthrower.md missing_block='steps' purpose='lists a sequence of numbered steps that accomplish the task.' %}
{% endif %}
{% if discussion %}
{{ discussion }}
{% else %}
{% include templates/_errorthrower.md missing_block='discussion' purpose='supplies the discussion of the page content.' %}
{% endif %}

View File

@ -1,15 +1,18 @@
---
bodyclass: docs
headline: Architecture
layout: docs
sidenav: doc-side-concepts-nav.html
title: Architecture
headline: Architecture
sidenav: doc-side-concepts-nav.html
bodyclass: docs
layout: docs
type: markdown
---
The Istio service mesh consists of three major components:
{% capture overview %}
The page explains in broad terms the major components of the Istio service mesh design.
{% endcapture %}
## Proxy
{% capture body %}
## The proxy
The Istio proxy is designed to mediate inbound and outbound
traffic for all Istio-managed services. The Istio proxy is based on
@ -21,7 +24,7 @@ Istio extends the proxy to interact with the mixer to enforce various
access control policies rate limiting, ACLs, as well as telemetry
reporting.
## Mixer
## The mixer
The Istio mixer is responsible for enforcing access control
and usage policies across the service mesh and collects telemetry data from
@ -32,7 +35,7 @@ attribute extraction and policy evaluation can be found
it to interface to a variety of host environments and configured backends,
abstracting the proxy and Istio-managed services from these details.
## Manager
## The manager
The Istio manager serves as an interface between the user
and Istio, collecting configuration, validating it and propagating it to
@ -44,5 +47,6 @@ of the underlying platform. In addition, [traffic management rules](../reference
can be programmed at runtime via the Istio Manager.
<img src="../../img/arch.svg" alt="The overall architecture of an Istio-based service.">
{% endcapture %}
<div id="toc" class="toc mobile-toc"></div>
{% include templates/concept.md %}

View File

@ -6,6 +6,12 @@ sidenav: doc-side-concepts-nav.html
title: Mixer
type: markdown
---
{% capture overview %}
The page explains the role and composition of the Istio mixer.
{% endcapture %}
{% capture body %}
## General usage
The mixer provides the control-plane abstractions necessary for most real-world multi-tenant services.
The proxy delegates policy decisions to the mixer and dispatches its telemetry data to the mixer, which
@ -27,7 +33,7 @@ for its consumers.
**Quota Management**. Enables services to allocate and free quota on a number of dimensions, Quotas are used as a relatively simple resource management
tool to provide some fairness between service consumers when contending for limited resources.
## Mixer Adapters
## Adapters
Adapters are binary-level plugins to the mixer which make it possible to customize the mixers behavior. Adapters allow the mixer to interface
to different backend systems that deliver core control-plane functionality, such as logging, monitoring, quotas, ACL checking, and more. Adapters
@ -35,5 +41,6 @@ enable the mixer to expose a single consistent control API, independent of the b
used at runtime is determined through configuration.
<img src="../../img/adapters.svg" alt="Mixer and its adapters.">
{% endcapture %}
<div id="toc" class="toc mobile-toc"></div>
{% include templates/concept.md %}

View File

@ -7,6 +7,11 @@ title: Service Model
type: markdown
---
{% capture overview %}
The page explains Istio's overall service model.
{% endcapture %}
{% capture body %}
The Istio manager serves as an interface between the user and Istio,
collecting configuration, validating it and propagating it to various
components. It abstracts platform-specific implementation details from the
@ -78,5 +83,6 @@ source/destination and/or by weights assigned to each version.
Note that Istio does not provide a DNS. Applications can try to resolve the
FQDN using the DNS service present in the underlying platform (kube-dns,
mesos-dns, etc.).
{% endcapture %}
<div id="toc" class="toc mobile-toc"></div>
{% include templates/concept.md %}

View File

@ -231,18 +231,19 @@ To write a new sample page, create a Markdown file in a subdirectory of the
variables, and then include templates/sample.md:
- `overview` - required
- `body` - required
- `prerequisites` - required
- `discussion` - required
- `whatsnext` - optional
In the `body` section, use `##` to start with a level-two heading. For subheadings,
In the `discussion` section, use `##` to start with a level-two heading. For subheadings,
use `###` and `####` as needed.
Here's an example of a page that uses the concept template:
{% raw %}
<pre>---
title: Trying a Thing
headline: Trying a Thing
title: Running a Thing
headline: Running a Thing
sidenav: doc-side-samples-nav.html
bodyclass: docs
layout: docs
@ -250,23 +251,36 @@ type: markdown
---
{% capture overview %}
This page explains ...
This page shows how to ...
{% endcapture %}
{% capture body %}
{% capture prerequisites %}
* Do this.
* Do this too.
{% endcapture %}
{% capture discussion %}
## Building ...
1. Do this.
1. Do this next. Possibly read this [related explanation](...).
## Running ...
To run this sample...
1. Do this.
1. Do this next.
## Understanding the code
Here's something interesting about the code you ran in the preceding steps.
{% endcapture %}
{% capture whatsnext %}
* Learn more about [this](...).
* See this [related task](...).
* See this [related tutorial](...).
{% endcapture %}
{% include templates/sample.md %}
</pre>
{% endraw %}
Here's an example of a published topic that uses the sample template: [TBD]({{site.baseurl}}/docs/samples/TBD.html)
Here's an example of a published topic that uses the sample template: [BookInfo]({{site.baseurl}}/docs/samples/bookinfo.html)

View File

@ -1,12 +1,13 @@
---
title: Bookinfo - A Polyglot Microservice App
headline: 'Bookinfo - A Polyglot Microservice App'
title: BookInfo
headline: 'BookInfo - A Polyglot Microservice App'
sidenav: doc-side-samples-nav.html
bodyclass: docs
layout: docs
type: markdown
---
{% capture overview %}
In this sample, we will deploy a simple app that displays information about a
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
@ -31,11 +32,11 @@ The end-to-end architecture of the application is shown below.
This application is polyglot, i.e., the microservices are written in different languages.
{% endcapture %}
{% capture prerequisites %}
_Note: The following instructions assume that you have access to a kubernetes cluster. To install kubernetes locally, checkout [minikube](https://github.com/kubernetes/minikube)_
## Setup Istio
1. Clone the istio GitHub repository and start the core Istio services (the istio-manager, the istio-mixer, and the istio ingress controller).
```bash
@ -84,7 +85,9 @@ http://<grafana-svc-external-IP>:3000/dashboard/db/istio-dashboard
> If in doubt, download again or add the `--tag` option when running `istioctl kube-inject`.
> Invoke `istioctl kube-inject --help` for more details.
{% endcapture %}
{% capture discussion %}
## Start the Application
1. Change your current working directory to the bookinfo application directory:
@ -403,3 +406,6 @@ If you now refresh the `productpage` you'll see that while the load generator is
$ kubectl get pods #-- the bookinfo, and (optionally) control plane services, should be deleted
No resources found.
```
{% endcapture %}
{% include templates/sample.md %}