diff --git a/site/cni-plugin.md b/site/cni-plugin.md
index 9440a1e4..971fbeb0 100644
--- a/site/cni-plugin.md
+++ b/site/cni-plugin.md
@@ -3,6 +3,11 @@ title: Integrating Kubernetes and Mesos via the CNI Plugin
menu_order: 65
---
+> The recommended way of using Weave with Kubernetes is via the new
+> [Kubernetes Addon](/site/kube-addon.md). The instructions below
+> remain valid however, and are still the recommended method for
+> integrating with Mesos.
+
CNI, the [_Container Network Interface_](https://github.com/containernetworking/cni),
is a proposed standard for configuring network interfaces for Linux
application containers. CNI is supported by
diff --git a/site/features.md b/site/features.md
index 3a987960..7e7df905 100644
--- a/site/features.md
+++ b/site/features.md
@@ -11,6 +11,7 @@ menu_order: 20
* [Address Allocation (IPAM)](#addressing)
* [Naming and Discovery](#naming-and-discovery)
* [Application Isolation](#application-isolation)
+ * [Network Policy](#network-policy)
* [Dynamic Network Attachment](#dynamic-network-attachment)
* [Security](#security)
* [Host Network Integration](#host-network-integration)
@@ -139,6 +140,11 @@ See [Isolating Applications](/site/using-weave/application-isolation.md)
for information on how to use the isolation-through-subnets
technique with Weave Net.
+###Network Policy
+
+The Weave [Kubernetes Addon](/site/kube-addon.md) includes a network
+policy controller that implements [Kubernetes Network
+Policies](http://kubernetes.io/docs/user-guide/networkpolicies/).
###Dynamic Network Attachment
diff --git a/site/kube-addon.md b/site/kube-addon.md
new file mode 100644
index 00000000..9e61aebf
--- /dev/null
+++ b/site/kube-addon.md
@@ -0,0 +1,73 @@
+---
+title: Integrating Kubernetes via the Addon
+menu_order: 63
+---
+
+## Installation
+
+If you're using Kubernetes 1.4 or later, and it is configured to use
+CNI, it is possible to install Weave Net on your cluster with a single
+command:
+
+```
+kubectl create -f https://git.io/weave-kube
+```
+
+After a few seconds, you should have a Weave Net pod running on each
+node, and any further pods you create will be attached to the Weave
+network.
+
+> If you do not already have a CNI-enabled cluster, you can bootstrap
+> one easily with
+> [kubeadm](http://kubernetes.io/docs/getting-started-guides/kubeadm/);
+> alternatively if you are using the older cluster set-up scripts from
+> the Kubernetes repo, you can use
+>
+> ```
+> NETWORK_PROVIDER=cni cluster/kube-up.sh
+> ```
+
+NB If you were previously using the [Weave CNI
+driver](/site/cni-plugin.md) from a full install of Weave Net with your
+cluster, you will need to uninstall it first. Shut down Kubernetes,
+then perform the following _on all nodes_:
+
+ * `weave reset`
+ * Remove any separate provision you have made to run weave at
+ boot-time, e.g. `systemd` units
+ * `rm /opt/cni/bin/weave-*`
+
+You can then relaunch Kubernetes and install the addon as described
+above.
+
+The URL [https://git.io/weave-kube](https://git.io/weave-kube) points
+to the addon YAML for the latest release of the Weave Net addon;
+historic versions will be archived on our [GitHub release
+page](https://github.com/weaveworks/weave/releases).
+
+## Upgrading
+
+Kubernetes does not currently support rolling upgrades of daemon sets,
+so you will need to perform the procedure manually:
+
+* Apply the updated addon manifest `kubectl apply -f https://git.io/weave-kube`
+* Kill each weave net pod in turn with kubectl delete; wait for the
+ replacement to begin running before moving on to the next.
+
+##Network Policy Controller
+
+The addon supports the [Kubernetes policy
+API](http://kubernetes.io/docs/user-guide/networkpolicies/) so that
+you can securely isolate pods from each other based on namespaces and
+labels. For more information on configuring network policies in
+Kubernetes see the
+[walkthrough](http://kubernetes.io/docs/getting-started-guides/network-policy/walkthrough/)
+and the [NetworkPolicy API object
+definition](http://kubernetes.io/docs/api-reference/extensions/v1beta1/definitions/#_v1beta1_networkpolicy).
+
+## Changing Configuration Options
+
+You can change the default configuration by saving and editing the
+addon YAML before you `kubectl apply`. Additional arguments can be
+supplied to the Weave router process by adding them to the `command:`
+array in the yaml file.
diff --git a/site/metrics.md b/site/metrics.md
new file mode 100644
index 00000000..6d1acb15
--- /dev/null
+++ b/site/metrics.md
@@ -0,0 +1,148 @@
+---
+title: Monitoring with Prometheus
+menu_order: 105
+---
+
+Two endpoints are exposed: one for the Weave Net router, and, when deployed as
+a [Kubernetes Addon](/site/kube-addon.md), one for the [network policy
+controller](/site/kube-addon.md#npc).
+
+### Router Metrics
+
+The endpoint address is `localhost:6782`; the following metrics are
+exposed:
+
+* `weave_connections` - Number of peer-to-peer connections.
+* `weave_connection_terminations_total` - Number of peer-to-peer
+ connections terminated.
+* `weave_ips` - Number of IP addresses.
+* `weave_max_ips` - Size of IP address space used by allocator.
+* `weave_dns_entries` - Number of DNS entries.
+* `weave_flows` - Number of FastDP flows.
+
+### Kubernetes Network Policy Controller Metrics
+
+The endpoint address is `localhost:6781`; the following metric is
+exposed:
+
+* `weavenpc_blocked_connections_total` - Connection attempts blocked
+ by policy controller.
+
+# Static Configuration for Weave Net
+
+The following YAML fragment can be used in your Prometheus configuration to
+scrape the router metrics endpoint:
+
+```
+scrape_configs:
+- job_name: 'weave'
+ scrape_interval: 15s
+ static_configs:
+ - targets: ['localhost:6782']
+```
+
+# Discovery Configuration for Kubernetes
+
+If you're running Weave in conjunction with Kubernetes, it is possible
+to discover the endpoints for all nodes automatically. The following
+Kubernetes config will install and configure Prometheus 1.3 on your
+cluster and configure it to discover and scrape the Weave endpoints:
+
+```
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: prometheus
+data:
+ prometheus.yml: |-
+ global:
+ scrape_interval: 15s
+ scrape_configs:
+ - job_name: 'weave'
+ kubernetes_sd_configs:
+ - api_server:
+ role: pod
+ relabel_configs:
+ - source_labels: [__meta_kubernetes_namespace,__meta_kubernetes_pod_label_name]
+ action: keep
+ regex: ^kube-system;weave-net$
+ - source_labels: [__meta_kubernetes_pod_container_name,__address__]
+ action: replace
+ target_label: __address__
+ regex: ^weave;(.+?)(?::\d+)?$
+ replacement: $1:6782
+ - source_labels: [__meta_kubernetes_pod_container_name,__address__]
+ action: replace
+ target_label: __address__
+ regex: ^weave-npc;(.+?)(?::\d+)?$
+ replacement: $1:6781
+ - source_labels: [__meta_kubernetes_pod_container_name]
+ action: replace
+ target_label: job
+---
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ name: prometheus
+ name: prometheus
+spec:
+ selector:
+ app: prometheus
+ type: NodePort
+ ports:
+ - name: prometheus
+ protocol: TCP
+ port: 9090
+ nodePort: 30900
+---
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: prometheus
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: prometheus
+ template:
+ metadata:
+ name: prometheus
+ labels:
+ app: prometheus
+ spec:
+ containers:
+ - name: prometheus
+ image: prom/prometheus:v1.3.0
+ args:
+ - '-config.file=/etc/prometheus/prometheus.yml'
+ ports:
+ - name: web
+ containerPort: 9090
+ volumeMounts:
+ - name: config-volume
+ mountPath: /etc/prometheus
+ volumes:
+ - name: config-volume
+ configMap:
+ name: prometheus
+```
+
+# Weave Cloud Integration
+
+Finally, you can configure your local Prometheus instance to push
+metrics to Weave Cloud by including the following fragment in the
+`prometheus.yml` above (after replacing `` with
+your own token):
+
+```
+remote_write:
+ url: http://frontend.dev.weave.works/api/prom/push
+ basic_auth:
+ password:
+```
+
+For information on getting started with Weave Cloud metrics, including
+on how to obtain your Weave Cloud token, please go
+[here](https://github.com/weaveworks/cortex).