From 1ba01e4a2272ed82f7eb8311f4f8635112be91e1 Mon Sep 17 00:00:00 2001 From: Chao Xu Date: Tue, 30 Aug 2016 15:00:27 -0700 Subject: [PATCH 01/18] add client-go --- docs/user-guide/accessing-the-cluster.md | 37 +++++++++++++++++++----- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/docs/user-guide/accessing-the-cluster.md b/docs/user-guide/accessing-the-cluster.md index cf150723731ad..8997b354bf13a 100644 --- a/docs/user-guide/accessing-the-cluster.md +++ b/docs/user-guide/accessing-the-cluster.md @@ -100,13 +100,36 @@ with future high-availability support. ### Programmatic access to the API -There are [client libraries](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/client-libraries.md) for accessing the API -from several languages. The Kubernetes project-supported -[Go](http://releases.k8s.io/{{page.githubbranch}}/pkg/client/) -client library can use the same [kubeconfig file](/docs/user-guide/kubeconfig-file) -as the kubectl CLI does to locate and authenticate to the apiserver. +The Kubernetes project-supported Go client library is at [https://github.com/kubernetes/client-go](https://github.com/kubernetes/client-go). + +To use it, +* To get the library, run the following command: `go get k8s.io/client-go//kubernetes` See [https://github.com/kubernetes/client-go](https://github.com/kubernetes/client-go) to see which versions are supported. +* Write an application atop of the client-go clients. Note that client-go defines its own API objects, so if needed, please import API definitions from client-go rather than from the main repository, e.g., `import "k8s.io/client-go/1.4/pkg/api/v1"` is correct. + +The Go client can use the same [kubeconfig file](/docs/user-guide/kubeconfig-file) +as the kubectl CLI does to locate and authenticate to the apiserver. See this [example](https://github.com/kubernetes/client-go/examples/out-of-cluster.go): + +```golang +import ( + "fmt" + "k8s.io/client-go/1.4/kubernetes" + "k8s.io/client-go/1.4/pkg/api/v1" + "k8s.io/client-go/1.4/tools/clientcmd" +) +... + // uses the current context in kubeconfig + config, _ := clientcmd.BuildConfigFromFlags("", "path to kubeconfig") + // creates the clientset + clientset, _:= kubernetes.NewForConfig(config) + // access the API to list pods + pods, _:= clientset.Core().Pods("").List(v1.ListOptions{}) + fmt.Printf("There are %d pods in the cluster\n", len(pods.Items)) +... +``` + +If the application is deployed as a Pod in the cluster, please refer to the [next section](#accessing-the-api-from-a-pod). -See documentation for other libraries for how they authenticate. +There are [client libraries](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/client-libraries.md) for accessing the API from other languages. See documentation for other libraries for how they authenticate. ### Accessing the API from a Pod @@ -138,7 +161,7 @@ From within a pod the recommended ways to connect to API are: in any container of the pod can access it. See this [example of using kubectl proxy in a pod](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/examples/kubectl-container/). - use the Go client library, and create a client using the `client.NewInCluster()` factory. - This handles locating and authenticating to the apiserver. + This handles locating and authenticating to the apiserver. [example](https://github.com/kubernetes/client-go/examples/in-cluster.go) In each case, the credentials of the pod are used to communicate securely with the apiserver. From 36fefcf87343ac66703561c6442e513611692a01 Mon Sep 17 00:00:00 2001 From: Pallav Agarwal Date: Mon, 5 Sep 2016 13:50:49 +0530 Subject: [PATCH 02/18] Correct broken links - fix #1154, fix #1161, fix #1162, fix #1163 Fix some broken links in documentation, as well as add a dummy page for single-node docker with deprecation notice to prevent error with old links. --- docs/admin/dns.md | 2 +- docs/getting-started-guides/docker.md | 3 +++ docs/user-guide/kubectl/kubectl_version.md | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 docs/getting-started-guides/docker.md diff --git a/docs/admin/dns.md b/docs/admin/dns.md index bdd0848cf9e37..a85f2338ceaad 100644 --- a/docs/admin/dns.md +++ b/docs/admin/dns.md @@ -41,7 +41,7 @@ Kubernetes installations. This required some minor (backward-compatible) changes to the way the Kubernetes cluster DNS server processes DNS queries, to facilitate the lookup of federated services (which span multiple Kubernetes clusters). -See the [Cluster Federation Administrators' Guide](/docs/admin/federation/index.md) for more +See the [Cluster Federation Administrators' Guide](/docs/admin/federation) for more details on Cluster Federation and multi-site support. ## References diff --git a/docs/getting-started-guides/docker.md b/docs/getting-started-guides/docker.md new file mode 100644 index 0000000000000..90440588342b9 --- /dev/null +++ b/docs/getting-started-guides/docker.md @@ -0,0 +1,3 @@ +# *Stop. This guide has been superseded by [Minikube](../minikube/). The link below is present only for historical purposes* + +The document has been moved to [here](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/local-cluster/docker.md) diff --git a/docs/user-guide/kubectl/kubectl_version.md b/docs/user-guide/kubectl/kubectl_version.md index 1392de872ac1c..014d7f5e7b9c7 100644 --- a/docs/user-guide/kubectl/kubectl_version.md +++ b/docs/user-guide/kubectl/kubectl_version.md @@ -50,7 +50,7 @@ kubectl version ### SEE ALSO -* [kubectl](kubectl.md) - kubectl controls the Kubernetes cluster manager +* [kubectl](../kubectl.md) - kubectl controls the Kubernetes cluster manager ###### Auto generated by spf13/cobra on 12-Aug-2016 From c717cf528d236a6176f7578c709e180bf554d904 Mon Sep 17 00:00:00 2001 From: Ricky Pai Date: Thu, 15 Sep 2016 17:05:56 -0700 Subject: [PATCH 03/18] reference ReplicaSet instead of ReplicationController to start --- docs/reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference.md b/docs/reference.md index c95f21a0c01a9..88f35a74f48cd 100644 --- a/docs/reference.md +++ b/docs/reference.md @@ -20,7 +20,7 @@ In the reference section, you can find reference documentation for Kubernetes AP ## Glossary -Explore the glossary of essential Kubernetes concepts. Some good starting points are the entries for [Pods](/docs/user-guide/pods/), [Nodes](/docs/admin/node/), [Services](/docs/user-guide/services/), and [Replication Controllers](/docs/user-guide/replication-controller/). +Explore the glossary of essential Kubernetes concepts. Some good starting points are the entries for [Pods](/docs/user-guide/pods/), [Nodes](/docs/admin/node/), [Services](/docs/user-guide/services/), and [ReplicaSets](/docs/user-guide/replicasets/). ## Design Docs From ef8229f2c6ede7ae88989a83c2752f7db1b23c40 Mon Sep 17 00:00:00 2001 From: Kazuki Suda Date: Fri, 16 Sep 2016 16:23:14 +0900 Subject: [PATCH 04/18] Fix broken link in the authorization page --- docs/admin/authorization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/authorization.md b/docs/admin/authorization.md index 18e97398a3602..3b1fa47e4d8ee 100644 --- a/docs/admin/authorization.md +++ b/docs/admin/authorization.md @@ -204,7 +204,7 @@ As of 1.3 RBAC mode is in alpha and considered experimental. To use RBAC, you must both enable the authorization module with `--authorization-mode=RBAC`, and [enable the API version]( -cluster-management.md/#Turn-on-or-off-an-API-version-for-your-cluster), +/docs/admin/cluster-management/#turn-on-or-off-an-api-version-for-your-cluster), with a `--runtime-config=` that includes `rbac.authorization.k8s.io/v1alpha1`. ### Roles, RolesBindings, ClusterRoles, and ClusterRoleBindings From 230957781a39d0c5c852b3c118bcbecfffa7005f Mon Sep 17 00:00:00 2001 From: Jeff Mendoza Date: Fri, 16 Sep 2016 10:23:24 -0700 Subject: [PATCH 05/18] Added "Edit This Page" button to bottom of docs. Next to "Create Issue" button, in addition to the edit button already at the top. --- _layouts/docwithnav.html | 1 + 1 file changed, 1 insertion(+) diff --git a/_layouts/docwithnav.html b/_layouts/docwithnav.html index c4405630f3145..026e4ec287a89 100755 --- a/_layouts/docwithnav.html +++ b/_layouts/docwithnav.html @@ -47,6 +47,7 @@
{{ site.data[foundTOC].abstract }}
Create Issue + Edit This Page {% endif %} From 2ee8a639fba4249ccfcca069f3c8b24d0c5ac558 Mon Sep 17 00:00:00 2001 From: Casey Davenport Date: Wed, 7 Sep 2016 10:12:30 -0700 Subject: [PATCH 06/18] Add Calico, NetworkPolicy to the from-scratch networking section. --- docs/getting-started-guides/scratch.md | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index c59d22ba1c2f4..f658fb4c1e9ac 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -57,6 +57,7 @@ on how flags are set on various components. ### Network +#### Network Connectivity Kubernetes has a distinctive [networking model](/docs/admin/networking). Kubernetes allocates an IP address to each pod. When creating a cluster, you @@ -66,21 +67,25 @@ the node is added. A process in one pod should be able to communicate with another pod using the IP of the second pod. This connectivity can be accomplished in two ways: -- Configure network to route Pod IPs +- **Configure underlay network to route Pod IPs** - Harder to setup from scratch. - Google Compute Engine ([GCE](/docs/getting-started-guides/gce)) and [AWS](/docs/getting-started-guides/aws) guides use this approach. - - Need to make the Pod IPs routable by programming routers, switches, etc. - - Can be configured external to Kubernetes, or can implement in the "Routes" interface of a Cloud Provider module. + - Need to make the Pod IPs routable by programming routers, switches, etc. + - This can be done in a few different ways: + - Implement in the "Routes" interface of a Cloud Provider module. + - Manually configure static routing external to Kubernetes. - Generally highest performance. -- Create an Overlay network +- **Use a network plugin** - Easier to setup - - Traffic is encapsulated, so per-pod IPs are routable. + - Pod IPs are made accessible through route distribution or encapsulation. - Examples: - [Flannel](https://github.com/coreos/flannel) + - [Calico](http://https://github.com/projectcalico/calico-containers) - [Weave](http://weave.works/) - [Open vSwitch (OVS)](http://openvswitch.org/) - Does not require "Routes" portion of Cloud Provider module. - Reduced performance (exactly how much depends on your solution). + - More information on network plugins can be found [here](/docs/admin/networking#how-to-achieve-this). You need to select an address range for the Pod IPs. @@ -116,6 +121,16 @@ Also, you need to pick a static IP for master node. - Open any firewalls to allow access to the apiserver ports 80 and/or 443. - Enable ipv4 forwarding sysctl, `net.ipv4.ip_forward = 1` +#### Network Policy + +Kubernetes enables the definition of fine-grained network policy between Pods +using the [NetworkPolicy](/docs/user-guide/networkpolicy) resource. + +For clusters which choose to enable NetworkPolicy, the Calico +[policy controller addon](https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/calico-policy-controller) +can enforce the NetworkPolicy API on top of native cloud-provider networking, +Flannel, or Calico networking. + ### Cluster Naming You should pick a name for your cluster. Pick a short name for each cluster From b0ce1986159f589ed7aa253d78f2e6c19fb7e822 Mon Sep 17 00:00:00 2001 From: Casey Davenport Date: Fri, 16 Sep 2016 15:57:58 -0700 Subject: [PATCH 07/18] Re-work networking section to be more clear --- docs/getting-started-guides/scratch.md | 49 +++++++++++++++----------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index f658fb4c1e9ac..38b7fa82f906f 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -67,27 +67,35 @@ the node is added. A process in one pod should be able to communicate with another pod using the IP of the second pod. This connectivity can be accomplished in two ways: -- **Configure underlay network to route Pod IPs** - - Harder to setup from scratch. - - Google Compute Engine ([GCE](/docs/getting-started-guides/gce)) and [AWS](/docs/getting-started-guides/aws) guides use this approach. - - Need to make the Pod IPs routable by programming routers, switches, etc. - - This can be done in a few different ways: - - Implement in the "Routes" interface of a Cloud Provider module. - - Manually configure static routing external to Kubernetes. - - Generally highest performance. -- **Use a network plugin** - - Easier to setup - - Pod IPs are made accessible through route distribution or encapsulation. - - Examples: +- **Using an overlay network** + - An overlay network obscures the underlying network architecture from the + pod network through traffic encapsulation (e.g vxlan). + - Encapsulation reduces performance, though exactly how much depends on your solution. +- **Without an overlay network** + - Configure the underlying network fabric (switches, routers, etc) to be aware of pod IP addresses. + - This does not require the encapsulation provided by an overlay, and so can achieve + better performance. + +Which method you choose depends on your environment and requirements. There are various ways +to implement one of the above options: + +- **Use a network plugin which is called by Kubernetes** + - Kubernetes supports the [CNI](https://github.com/containernetworking/cni) network plugin interface. + - There are a number of solutions which provide plugins for Kubernetes: - [Flannel](https://github.com/coreos/flannel) - [Calico](http://https://github.com/projectcalico/calico-containers) - [Weave](http://weave.works/) - [Open vSwitch (OVS)](http://openvswitch.org/) - - Does not require "Routes" portion of Cloud Provider module. - - Reduced performance (exactly how much depends on your solution). - - More information on network plugins can be found [here](/docs/admin/networking#how-to-achieve-this). + - [More found here](/docs/admin/networking#how-to-achieve-this) + - You can also write your own. +- **Compile support directly into Kubernetes** + - This can be done by implementing the "Routes" interface of a Cloud Provider module. + - The Google Compute Engine ([GCE](/docs/getting-started-guides/gce)) and [AWS](/docs/getting-started-guides/aws) guides use this approach. +- **Configure the network external to Kubernetes** + - This can be done by manually running commands, or through a set of externally maintained scripts. + - You have to implement this yourself, but it can give you an extra degree of flexibility. -You need to select an address range for the Pod IPs. +You will need to select an address range for the Pod IPs. Note that IPv6 is not yet supported for Pod IPs. - Various approaches: - GCE: each project has its own `10.0.0.0/8`. Carve off a `/16` for each @@ -95,10 +103,8 @@ You need to select an address range for the Pod IPs. Each node gets a further subdivision of this space. - AWS: use one VPC for whole organization, carve off a chunk for each cluster, or use different VPC for different clusters. - - IPv6 is not supported yet. - Allocate one CIDR subnet for each node's PodIPs, or a single large CIDR - from which smaller CIDRs are automatically allocated to each node (if nodes - are dynamically added). + from which smaller CIDRs are automatically allocated to each node. - You need max-pods-per-node * max-number-of-nodes IPs in total. A `/24` per node supports 254 pods per machine and is a common choice. If IPs are scarce, a `/26` (62 pods per machine) or even a `/27` (30 pods) may be sufficient. @@ -126,8 +132,9 @@ Also, you need to pick a static IP for master node. Kubernetes enables the definition of fine-grained network policy between Pods using the [NetworkPolicy](/docs/user-guide/networkpolicy) resource. -For clusters which choose to enable NetworkPolicy, the Calico -[policy controller addon](https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/calico-policy-controller) +Not all networking providers support the Kubernetes NetworkPolicy features. +For clusters which choose to enable NetworkPolicy, the +[Calico policy controller addon](https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/calico-policy-controller) can enforce the NetworkPolicy API on top of native cloud-provider networking, Flannel, or Calico networking. From 68334c002516141153f48278dc5e69ce0d2dbaa5 Mon Sep 17 00:00:00 2001 From: Mayank Kumar Date: Mon, 19 Sep 2016 01:07:05 -0700 Subject: [PATCH 08/18] fix minor documentation issues --- docs/user-guide/kubectl/kubectl_drain.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/user-guide/kubectl/kubectl_drain.md b/docs/user-guide/kubectl/kubectl_drain.md index 535b6e024d08a..53de9f5844a9f 100644 --- a/docs/user-guide/kubectl/kubectl_drain.md +++ b/docs/user-guide/kubectl/kubectl_drain.md @@ -11,13 +11,13 @@ Drain node in preparation for maintenance Drain node in preparation for maintenance. The given node will be marked unschedulable to prevent new pods from arriving. -Then drain deletes all pods except mirror pods (which cannot be deleted through +The `drain` deletes all pods except mirror pods (which cannot be deleted through the API server). If there are DaemonSet-managed pods, drain will not proceed without --ignore-daemonsets, and regardless it will not delete any DaemonSet-managed pods, because those pods would be immediately replaced by the DaemonSet controller, which ignores unschedulable markings. If there are any -pods that are neither mirror pods nor managed--by ReplicationController, -ReplicaSet, DaemonSet or Job--, then drain will not delete any pods unless you +pods that are neither mirror pods nor managed by ReplicationController, +ReplicaSet, DaemonSet or Job, then drain will not delete any pods unless you use --force. When you are ready to put the node back into service, use kubectl uncordon, which From a2869a43142cc03d8c988e8b0b3ee44ae8fa173e Mon Sep 17 00:00:00 2001 From: Charles Butler Date: Mon, 19 Sep 2016 13:39:39 -0500 Subject: [PATCH 09/18] Update link to cephfs example Closes #1262 --- docs/user-guide/volumes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/volumes.md b/docs/user-guide/volumes.md index d4d20e3e473ec..9ccc8c73c36c0 100644 --- a/docs/user-guide/volumes.md +++ b/docs/user-guide/volumes.md @@ -370,7 +370,7 @@ writers simultaneously. __Important: You must have your own Ceph server running with the share exported before you can use it__ -See the [CephFS example](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/examples/cephfs/) for more details. +See the [CephFS example](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/examples/volumes/cephfs/) for more details. ### gitRepo From c2c95999f39928f5e5c77621a010565b8f52f9be Mon Sep 17 00:00:00 2001 From: Chris Kim Date: Mon, 19 Sep 2016 17:31:01 -0400 Subject: [PATCH 10/18] Fix typo in kubeconfig-file.md --- docs/user-guide/kubeconfig-file.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/kubeconfig-file.md b/docs/user-guide/kubeconfig-file.md index 043b6cc002c46..3db16e17de310 100644 --- a/docs/user-guide/kubeconfig-file.md +++ b/docs/user-guide/kubeconfig-file.md @@ -307,8 +307,8 @@ $ kubectl config use-context federal-context So, tying this all together, a quick start to creating your own kubeconfig file: -- Take a good look and understand how you're api-server is being launched: You need to know YOUR security requirements and policies before you can design a kubeconfig file for convenient authentication. +- Take a good look and understand how your api-server is being launched: You need to know YOUR security requirements and policies before you can design a kubeconfig file for convenient authentication. - Replace the snippet above with information for your cluster's api-server endpoint. -- Make sure your api-server is launched in such a way that at least one user (i.e. green-user) credentials are provided to it. You will of course have to look at api-server documentation in order to determine the current state-of-the-art in terms of providing authentication details. \ No newline at end of file +- Make sure your api-server is launched in such a way that at least one user (i.e. green-user) credentials are provided to it. You will of course have to look at api-server documentation in order to determine the current state-of-the-art in terms of providing authentication details. From 2d4f77995d8e44f571aaa7fd56596770397e82e1 Mon Sep 17 00:00:00 2001 From: Pablo Guerrero Date: Tue, 20 Sep 2016 08:57:00 +0200 Subject: [PATCH 11/18] Minor typo correction --- docs/user-guide/namespaces.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/namespaces.md b/docs/user-guide/namespaces.md index 0c4b86840d86c..8fc9ac47350b7 100644 --- a/docs/user-guide/namespaces.md +++ b/docs/user-guide/namespaces.md @@ -90,7 +90,7 @@ across namespaces, you need to use the fully qualified domain name (FQDN). ## Not All Objects are in a Namespace Most kubernetes resources (e.g. pods, services, replication controllers, and others) are -in a some namespace. However namespace resources are not themselves in a namespace. -And, low-level resources, such as [nodes](/docs/admin/node) and +in some namespace. However namespace resources are not themselves in a namespace. +And low-level resources, such as [nodes](/docs/admin/node) and persistentVolumes, are not in any namespace. Events are an exception: they may or may not have a namespace, depending on the object the event is about. From b3d167cfc27789fc5de43c98fcc957b65af5ac06 Mon Sep 17 00:00:00 2001 From: Derek Mahar Date: Tue, 20 Sep 2016 13:01:18 -0400 Subject: [PATCH 12/18] Correct name of secret in example in "Use-Case: Pod with ssh keys". In the example in section "Use-Case: Pod with ssh keys", change name of new SSH secret from "my-secret" to "ssh-key-secret" to match that in the subsequent pod specification that references the secret. --- docs/user-guide/secrets/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/secrets/index.md b/docs/user-guide/secrets/index.md index fff246c93754e..b0a1d32706f46 100644 --- a/docs/user-guide/secrets/index.md +++ b/docs/user-guide/secrets/index.md @@ -398,7 +398,7 @@ start until all the pod's volumes are mounted. Create a secret containing some ssh keys: ```shell -$ kubectl create secret generic my-secret --from-file=ssh-privatekey=/path/to/.ssh/id_rsa --from-file=ssh-publickey=/path/to/.ssh/id_rsa.pub +$ kubectl create secret generic ssh-key-secret --from-file=ssh-privatekey=/path/to/.ssh/id_rsa --from-file=ssh-publickey=/path/to/.ssh/id_rsa.pub ``` **Security Note:** think carefully before sending your own ssh keys: other users of the cluster may have access to the secret. Use a service account which you want to have accessible to all the users with whom you share the kubernetes cluster, and can revoke if they are compromised. From 2a613c0158466db998e042b011901f3f76d18332 Mon Sep 17 00:00:00 2001 From: Jeff Mendoza Date: Tue, 20 Sep 2016 12:20:15 -0700 Subject: [PATCH 13/18] Add yaml guidelines to readme.md /editdocs --- README.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/README.md b/README.md index c6c27f9d3f4c1..a5c774ba66426 100644 --- a/README.md +++ b/README.md @@ -152,6 +152,32 @@ http://kubernetes-v1-3.github.io/ Editing of these branches will kick off a build using Travis CI that auto-updates these URLs; you can monitor the build progress at [https://travis-ci.org/kubernetes/kubernetes.github.io](https://travis-ci.org/kubernetes/kubernetes.github.io). +## Config yaml guidelines + +Guidelines for config yamls that are included in the site docs. These +are the yaml or json files that contain Kubernetes object +configuration to be used with `kubectl create -f` Config yamls should +be: + +* Separate deployable files, not embedded in the document, unless very + small variations of a full config. +* Included in the doc with the include code + [above.](#include-code-from-another-file) +* In the same directory as the doc that they are being used in + * If you are re-using a yaml from another doc, that is OK, just + leave it there, don't move it up to a higher level directory. +* Tested in + [test/examples_test.go](https://github.com/kubernetes/kubernetes.github.io/blob/master/test/examples_test.go) +* Follows + [best practices.](http://kubernetes.io/docs/user-guide/config-best-practices/) + +Don't assume the reader has this repository checked out, use `kubectl +create -f https://github...` in example commands. For Docker images +used in config yamls, try to use an image from an existing Kubernetes +example. If creating an image for a doc, follow the +[example guidelines](https://github.com/kubernetes/kubernetes/blob/master/examples/guidelines.md#throughout) +section on "Docker images" from the Kubernetes repository. + ## Partners Kubernetes partners refers to the companies who contribute to the Kubernetes core codebase and/or extend their platform to support Kubernetes. Partners can get their logos added to the partner section of the [community page](http://k8s.io/community) by following the below steps and meeting the below logo specifications. Partners will also need to have a URL that is specific to integrating with Kubernetes ready; this URL will be the destination when the logo is clicked. From f7cba5c6ab39e14160db4ed6191e0d73cb1666c8 Mon Sep 17 00:00:00 2001 From: a-mccarthy Date: Tue, 20 Sep 2016 16:37:08 -0400 Subject: [PATCH 14/18] Create ISSUE_TEMPLATE.md Created issue template. --- ISSUE_TEMPLATE.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 ISSUE_TEMPLATE.md diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md new file mode 100644 index 0000000000000..a0656931f0e52 --- /dev/null +++ b/ISSUE_TEMPLATE.md @@ -0,0 +1,22 @@ + + + + +**This is a...** + +- [ ] Feature Request +- [ ] Bug Report + +**Problem:** + + +**Proposed Solution:** + + +**Page to Update:** +http://kubernetes.io/... + + + + + From 6d4ea99b12888f5b2ae33aaef17809d0b20f7eb9 Mon Sep 17 00:00:00 2001 From: Jeff Mendoza Date: Tue, 20 Sep 2016 10:17:53 -0700 Subject: [PATCH 15/18] Move staging container to gcr, check in Dockerfile. --- README.md | 6 +++--- docs/templatedemos/index.md | 6 +++--- staging-container/Dockerfile | 13 +++++++++++++ 3 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 staging-container/Dockerfile diff --git a/README.md b/README.md index a5c774ba66426..e2fc558f9d3bf 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ change the name of the fork to be: YOUR_GITHUB_USERNAME.github.io -Then make your changes. +Then make your changes. When you visit [http://YOUR_GITHUB_USERNAME.github.io](http://YOUR_GITHUB_USERNAME.github.io) you should see a special-to-you version of the site that contains the changes you just made. @@ -21,11 +21,11 @@ Don't like installing stuff? Download and run a local staging server with a sing git clone https://github.com/kubernetes/kubernetes.github.io.git cd kubernetes.github.io - docker run -ti --rm -v "$PWD":/k8sdocs -p 4000:4000 johndmulhausen/k8sdocs + docker run -ti --rm -v "$PWD":/k8sdocs -p 4000:4000 gcr.io/google-samples/k8sdocs:1.0 Then visit [http://localhost:4000](http://localhost:4000) to see our site. Any changes you make on your local machine will be automatically staged. -If you're interested you can view [the Dockerfile for this image](https://gist.github.com/johndmulhausen/f8f0ab8d82d2c755af3a4709729e1859). +If you're interested you can view [the Dockerfile for this image](https://github.com/kubernetes/kubernetes.github.io/blob/master/staging-container/Dockerfile). ## Staging the site locally (from scratch setup) diff --git a/docs/templatedemos/index.md b/docs/templatedemos/index.md index ad58731bd733d..88a94159f19fa 100644 --- a/docs/templatedemos/index.md +++ b/docs/templatedemos/index.md @@ -37,14 +37,14 @@ git fetch upstream git reset --hard upstream/docsv2 ``` -### Step 3: Make sure you can serve rendered docs +### Step 3: Make sure you can serve rendered docs One option is to simply rename your fork's repo on GitHub.com to `yourusername.github.io`, which will auto-stage your commits at that URL. Or, just use Docker! Run this from within your local `kubernetes.github.io` directory and you should be good: ```shell -docker run -ti --rm -v "$PWD":/k8sdocs -p 4000:4000 johndmulhausen/k8sdocs +docker run -ti --rm -v "$PWD":/k8sdocs -p 4000:4000 gcr.io/google-samples/k8sdocs:1.0 ``` The site will then be viewable at [http://localhost:4000/](http://localhost:4000/). @@ -246,4 +246,4 @@ You probably shouldn't be using this, but we also have templates which consume Y ### Adding page to navigation -Once your page is saved, somewhere in the `/docs/` directory, add a reference to the `reference.yml` file under `/_data/` so that it will appear in the left-hand navigation of the site. This is also where you add a title to the page. \ No newline at end of file +Once your page is saved, somewhere in the `/docs/` directory, add a reference to the `reference.yml` file under `/_data/` so that it will appear in the left-hand navigation of the site. This is also where you add a title to the page. diff --git a/staging-container/Dockerfile b/staging-container/Dockerfile new file mode 100644 index 0000000000000..a5b41625b5c5c --- /dev/null +++ b/staging-container/Dockerfile @@ -0,0 +1,13 @@ +FROM starefossen/ruby-node:2-4 + +RUN gem install github-pages + +VOLUME /k8sdocs + +EXPOSE 4000 + +WORKDIR /k8sdocs + +CMD bundle && jekyll clean && jekyll serve -H 0.0.0.0 -P 4000 + +# For instructions, see http://kubernetes.io/editdocs/ From d8ffef3e77a63d2fbbcf2ad10c38ed920df7841d Mon Sep 17 00:00:00 2001 From: ankurshukla Date: Wed, 21 Sep 2016 11:58:06 -0700 Subject: [PATCH 16/18] adding Canonical as a partner --- community.html | 1 + .../community_logos/ubuntu_cannonical_logo.png | Bin 0 -> 17457 bytes 2 files changed, 1 insertion(+) create mode 100644 images/community_logos/ubuntu_cannonical_logo.png diff --git a/community.html b/community.html index 43901dd05a235..377cd85e1dbc8 100644 --- a/community.html +++ b/community.html @@ -74,6 +74,7 @@

Partners

+ diff --git a/images/community_logos/ubuntu_cannonical_logo.png b/images/community_logos/ubuntu_cannonical_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d126c22f25a9151a271b49d1a088e8a24258c390 GIT binary patch literal 17457 zcmcF{V{;}<(C!`Ewz08o+jnf+&c?RAv2EM-#o1oktPbh=3GX2NeuxVil3- z0Q5vk8WI>}nFx}CbqwVJ6mfBIyz%@9u(-H@7z|}P_$b&ls3VfXxZt9QsL79gpCX%; z?w6C9@0L}8)9Qzura7p7X!tZKR%P}8_zDq1l)d1w;nDpg2BAP$az_9%bdxEG%NH34 z;MI?hkCwC_suuv_xdaCd=$Fs#XTlHvLAnsh)CCC$0qJ*5v!SWC;+E^P1@c0?&dP>QUkV zO(p=kx$H1EV2vKYB&}gC1*mTW^v@#0H3FdF0Zhsfp}zp&J^;gUGBQsQi}wE*(ZH#8m`|0g%%1qmJN>&Hh&Ycj(kI!2QkzTXyu2K^dewr_rX zpD#~)y$9rhEP8>G;IDgw(~oi`_;X1xA;w!L@sgiya6g{}OQgfn#vPh8=!eRvPH|#c zF%K*yq>&;?zeXq)e@qW{={~>&cG&^-)&d|tiS*@qCScF9RLGjH{Rb}qz8{W*`HTfr~Mdg^+VzhKx_@b zeHwCvh>#BtiXe-?ng-xI8~&;e5}^*8sVAT@Wc({cz}By98J6sb$S??ON91=zdN+d3 z9iZ+GgaH>Ghek6Z*@yr!j?yHHgT~4XeI*%?0!NJ|C!UBvS0q>Mc@{R*ofkJ!pJ79>4%;#@j1Gx3aM8gen@ly3R>N0~;?}EIgLOqdnankKfTISA z_rq|2dx#Jl5eiFb%4sUBNtF}hle3|0z;MEVg(weFktUbRHdA(@ybWU;voMEiO3{(6 zpvI#yBKt&$4s(*DMvAgfbtHgFHx#QaqAp4-+N+SA(^X`%N#T+uPi&alG(vHw&=J#) zhaTk|4IQx_;T@6O>%it13po|Psvc0QOj^s}93vmI9YdOBum}T-vQ)Oq3)E29*xa(XXM!=MWlL%bQdss{QMOYF71HN57N^c7&(hDp9zEa@ z!Z3ozA}pwJvazACEpR-r>oVj@ah9TS#?+WNnJ+U=Gm$bKfSNR|G`}$tCt*`%QYlmM zXc*NhDoZPOD&c?+z$vx(3Vl`IS_vSl>R|=U-?S=VWscINDxRuE1#fwHrA4`enqaY? z)>kB?){xwgqG+*leuKeb_b4%(2~LwI9f=J>RhU~K`!Hq0%=&M4ny!p5g05)(%8CMR zQC1mNjV6_c6mvnS!wjd_KduTer_^QX4}MWQ=(oQPe&Lm}$#pQB>DpALrKf3DNmVIV zNnZAF)Lxh6l=g^sX?+AD3XjQ9=~78r#Lq(HoT{#?ZkNH9VaoIKJk>H(+LYiGbcuQN z*_Yj9n!fQe{!IML7!p~y!jj%g8@DVVMZT?dh z)f*BLEip{#F{T9$~FK#H*%)jcFXv>UY>Euw^^B%zd*zmUJlQjzZ{{Z+~< z$168BGd)u{vy#c4&Ck5ba+-aby_&t-W~l9{P1jo9+HNM@c%)sbb<^5yAF9o*RiX*h z)@zce$*G}O>8j}}Ln-S}NLHxIU9lLd|JORvTG576f4l~{S=(yY>T6_SjAhX_Qaf~$ z+>`9v=^OjS4}}oEj#x#YP2lI!?2OK%&a;y>`{zc`cjPhcoY6va4tZ{k^{^Ff>esMU zj%xOjqy?5mhfDB7M0BKV&=f`DWb>$BorZ z_*ULDTi&l+EmoKLp>feY<>LiGxV%&*o84+ZMN!2-inFbIL8Q0+y&-zc8`TEQI}n@cd<0FooowcMeaI!8Fm_hN(O7b4bD!s zPQg(IbFJxR%^Xc>TUmT=2AWz9d)waK&+CWqgPa4nLm#XR#&JDIuY%dZ$Ivp&3I*=P+%>>Rrw|PI; zsDr5cNv$PevKsURnkPNg*4&MJPF|a^hZqpFVd{|8eC<)KG(wupB%AjL4{3^i8aE4F5IiEze`TaEHmh z%&nB>imKrb(>e1+^YfD(`dl5vw9538bVPfE^^InPUG?Vcr)Tj^#`GEL&92~9(T<`% zzV>djvWeLlUO}~DwMVsgHIAFb?G~feSNnwSjq{+TWQ+T`n4HucUq6PoEyK;iR-aRo*7Pcf`AVY)az7wC~kwhWlGvlYi5W+5Vxdgbm4+NdR&OggU z=S=4)bFsb)zo%-kFd6+`moHam7cv$K((lug`|N&~d|mWk;?!-94vrG`PI$61>p!Z0 zTn~6`c@W$d?II~2{U-LO{;_;(cv77&`$)z~PW}N0%Xs)SVWr>vuiqp#ky4Qd0K6#x zfPi2C;O*x>eGUM)F#!M*9-zvln-m;nAi^Z)hu|FV$~ zTCD7Va%gA>S)A_AqnTX(l6`VZBT$f+i%SaHXnjunD5OtO%+igglsYO)n3K$$*OR}TOYRmgQ?amZD|!vt6)s-U3+KRG#3CzyMEN}ZLn)w!?cBEaXFv!R4d!Prha6XmWx@^ukPweIzQK_MV4w#BNAQ#y)Mg^jRWOd{ zk4VBG!y^hKIy$%;>3DB$fl!cAv>1!uFI=ZeK>U1CxFK<|e_GLRCy6g|Ng)FR!s@wr zWkMiqJ@=(Kzvgh`E#Hdr=&`T}VJ1nijA)qxs3xYhEuI!=_PeFX#f1g}JFZ(JS2V(* zl67prBICqyY)q4QJ1^UxdF68*>qi`ae0Oh;cyP)u4qDJ>xkaF<e0s&3&Nq0}3cILEt*r(5slfLC~=Y9YCA z#><4y^ZEE2O*iB?(c_UeemS%R1~7^j~`>1Suj&wM7=4h5amJ-FD&RMi)u>(FZRp;wE(5o^#M=7F>p+1-Z0W|KtU z0$`@sjW67bM&S<6|L zM>4^gy~8~Dv)0Uy&#{cRyUj!{ko>o|c$P;|!GSQ1-o$}2f%uixI@6P)pGGN$05MZZ z^GCWpy#L^n1XU)P;VfG}6<4PNwn@QCT%j~VB*m4H#lxthZoNPcKuA|WAMmJeYc)J~ zo{c!DL~8Q~aZ^}Ra(Q*S&K5ETj4tB6L9vInECj}{#&$z1kVsb;$OSXL9zV+e_%j#H z`Qw1a`%*S(eCjY}+rm?OE-X-|x+tXSB1LTs+PC?L1im)z{&N0(m(tCna{V8Cd-u8G zcM!^z!aZ1g=Skiy#9gN8)ev`}1O}vNZnFKxC{CR>RJQ(yeiCb|%2iMBGiTplTCApU z{>iD-#L}KM8=;gLs;?L%Ois$FMl@#xh@oyP<#Jm3l?LO5 z!TlaV9FH!nkQ~TiZJ`-xBHpw18oc^KPjN96HIfR$@X>b_d+2S%izpy#mN7yve>`t9 zksxo&e=lYN3`eX83ZmnPdbMHx9Dmmv#|DEKi8}xSQn?lE6tpYAC4gP%IJfvU{+YI_ zLmdt#Fqz;~TFwZoI&XhR14&E1u72zeg|LL6OShN zPTO3Agi2UM7O0)H$~~{W`R=7(>_poax4kpbd8?k}`aKp7D9I(u-I@i<<206P z*DDl^SL?mcNnj)tr4IEyZFw$5&!AcG0r;DR$uxqbDIhTJcih5S>7TD1NL&7d5wZVlrb};KIcsg@=ipl4YTHTj3AH{rd7jDBqm) z(qqKr*E0Cd+L<)zJq<#EGrV+tAQ5*K}$#~Y+ z$Dg534FSo^s=Tpc4D@;X@Qoq=fW*^JHo$eAFUoam;(LFgab!XTX}tY!!*R1C@gM>fCA?P^Htg;C#}b%?P$6}6NlQoNT+0Ll{_c8Gat^lem6!45=$<%xesGxC4k9ow zVY&$<>$>SX=;WoJ&2^5(cyX@|$RB&LZ_LE5{ku*?LhGRxvm=$d&5?5l2Jb`C@_TWc z>%JwQ^Qk=%O?g2i$-C(Ow9st0q^di8Lq?&Z1N=K!Cw=3h{7~?x7#S`zc1XKyo9pI0s+_|BuIrsXzAk)v(qz(CVSo;;>yY%JK zrE-T-&eG7}r|Ml_Ce_T02HMF5){x3R9kBSY^rgTa+_$hoMHG_+ZLmnRlioY#FuyYh zwb>5=34^<6L%Iz+wELKMGQy$p_%A+pSArY|y^$*m!3gs6Mq%zphMc;s`+$ThhlaGu zOwc>pn&}`NQ`1ySDYq6JH>&*|JhBs*p1M^u-#b=tKb^>2E+)QLXW?4=+1UaTB~u9T zHe!Wzv%jD{4WnOw0mNQhu!r#nkdP_A*9D>9_T`QD(r81Nh4YBVJAM8Itw4Wz?|+pP zKAZKoX=pRLOm6YtfAi5RBX@3?b9=CPyi+??P1i+>zuK=dqm<%EfqDttF(2afRa^1{ zP^sF%JeqzG>P%-CznHU5Z9kj*C1Qkg$Z+*UUsi7C-|sClynnKPJ>O_muW3eP!`9`Q z=5xOZjp%xdAU^Rs4Js-F{PFn~aUb-VPxfUE?90}*uFZC_OqNZCiwTQet~8af#=QPy z95d6rd*qwY)~r@&n_?wi&^Wsp^yt)JA7?*=W#6pD$k~n&={~TRy=yfM7jd>g=G^{{ z?ehB&pEmgN60smuwK0SWw={UcV7pZEe@w>yEI55)3H8<3fd)_QB0q6f@mMtRj7STm zCFU&f4klgoIi*Z2x39?sdxuVVP=8A$uzdXp9PM|BWrm8A!pYI6F5WX|zZz@YC8h@= za^IGbnsCroLotBQ3aGq4IZ0=I%P6D!HzRL)-YSwOGW{APL_s5>JyCH*t$X`=D>W(l z?K-hT0O`nb98S=`p7T*Co-#P&0}jnqk|+umi) z?2(X+-=OgBUR$-PtA_tgB;>4M^cS#4BDQ;mh6s(>2Vj1B5^;zCkH8C?=Kx>H$VS@N zu(*txNECtkA!}9aPuD|`VM@L4YLaQ;;OG8L%4^q)K_tUgDTXdCT(xcf`}ZG(Hc?_* z6z0B|dsvhTI(e@sW=0%b!uM6KCVW|Im4(cSEqe(v$P(;!2gFcmOWrYLX= zX`~xe*Wl>rRey_f^|dno^joO#t_|`^#9QnDoNW(LPU))0#fX9HRk5!0yPS&YBkxx7 z0Y1{iI0XNN5N)m-7_>#UiN~K3aa?oV4k_I(*pvVe*TNQ~detAYj&;;9JSL8Oy&6<&8cCCsd;@qk4wq z49V-(K_Kz5EsA(j*U^ZFcVOgH6?=#P3j?Kg%B6RH##6gRCK@m)=uHG!-QsV&FnN&6 zz$}$SS{!X%5e5JohrcpN1;?xEs7Y5J@hu z(@RPL{c{fd3BZ`ZMp?fK@^!}yq03mBvj$N^e#36~X|?dX{LSc8;e50hLXG{!J6{zy zURf^CK@IyW3bf7J-G1aWxMehfd;*5wSi9;8#{Gwyf_AVg>!Cd~=y0cT<}#_!vx2y7 zOrpL~WzPrr*{V&ZKuc~Fg^@|Ww;b$q;>WO9|Fd)D=`Gcwu3FZhEL)^bCY=NX{VmRB zSYM8f|IRSaNGPmAB-pc1y-Kt6Yw@JHQ9GJN`TUJQi{He4X6s;192{ZtQ!aVELd)FT z{PfQQk#<@=GV)r|uoHzeY7+T=h%qcmVN@4Z{-@k_>fCDC5Jh?{O!0=2W&3Sv0wZby9^Yl90EHq^ zW_808ImP^%5*3{!1&(KLgsdmuf?npt2GaH#P|oM=eYC?CnilO?_b%VR?yk};-lUmR zs)QaDG`IG%53kxmkLb{$q0=6{mw$ZCpi}!`5_M6da|z}vL4{$Wc7R7MRb+?mq6?P_ z?y&f2;lI%$x#AjD_C(_ir8z~%G1(gsyfH|V`(O7%aD%Z45x1xd%YKOY+fgJ%L^4#F z!iu%^CL?%ZzKQFtBH32>V(6>IaTd^?_u|Csn-^W`2qSv&Fic*p)Bcs%kE)8D)hh+9 zTwY=a5dvz3+KsiaDUe0Lovq<|h!&4jfQ8h?uC6I`!E4xI8m1#b%&Oaaw+R$Spt18u zbW$HS9s9yen)4tO=flIY&vh_Cs)7sWoxc*~r<@UK7LrurlXEvi?S$Z%byO;pDprZ= z!#E%vVQ;NkJ^4<^y__%d-bfre)KbZ%t=dYt9GML01-R4*%D2NNM`ZoSHazWGctRqe zN{R4;pZ0R7#+}WOMVKU0f@y=J?73`fZZjR}HJKXHF2JO!M@~`p{du@GW+eICsS7;; zdB;A5Z5fawrOZynlJ=q~e3g0wbke%eiBEXeqD|mH=Z@VZ{g+8+Y4Vs_B8sG;brlo% z9Q!iX1_y^Ry5n@i1&Z4reKxSlW$PaIlQLmA4wP~J&nb{OGtmXGtjn)lt1YZdOXlp> zD8t!CQk&|HsvzaPfkg`9Hg2>T7~Jd8!Y5Re?w5!1>6(P*otrXMiiI*1T+CjkD&1{0 zKf`j11zG3qQ*App5+-BZD)(Do z=kxOv2xJuPhZ-O!6t2zm-n@`}S{4;>ctg}mo2-27?agFc;E#eBI!X-l)cCRwiFaPl z`Ho5=p#aOt_}j#7I{cuD#xm>=`{CPYw}t#NAMwhiTB59a_nziLR&8V6d0>Lb>GnbA z>STMrHf!bhikTv%l4+;^Zp>JQkez0~r9&6Rl%6Dz06Ee1*cZafF{?MZ;S-j@{dG-s zrpogid4!g8!;5@AOnnPRDKQG=x6kL{&vU3^j*?~pwf9`7v z-YaXO*xQPj3W*^y_%>-JqP(G_tuNKCzVkaBg8z5!1IUI`Hgz0RW&tab^7b>$q}e&X zY_Bt9%!Ss!D1xy8&wFi!8Z9kqsCJEDso48IC^P{xe!)hG^L8kbj)1SJiPG{juh_sa zx-(MY3^W3CD zCS;ETUuCLUlp4CXE1Z>#r^Hx$)$`@oV`+)9O(Ul02@zpb4MJNI-MPx~eRd`?^Y(Rn zq7Dc_J(e<1eUlA_BFocg(OM4cB_~rvJQ|dgda_7Vlj_GUJoag|tXJwW#WBxAX<_@z-7sm<>CnSwvUDrQ$Kz>IcL80ybT z_Jn*i627hCX^sly+crAqM!jS#IoLg_ckU3eJUd!oY7H=N*v zP9Z;NgBaKDT}#$2XU*Cf-(omi)TFBfC=FEtW!YV9mzYN#I%$(A%txsV;z>Ct;K_dK z%0i}nwNfI~-oh=+^$h}S(?TW*u1o`??#ukk)`9Fw6~)C*;0^oc6w|dCC-U2c55vK# z$;}U1TS*Flpny>K8ebWADGh|*rYv{8!MTZN-w!1JMGo4j1JvjYlTH!q%Pf{IQm(1p zFe=CTX%AfpQ@y9|r)z3H@?070))n`2OI0ZPu38uA$Ug=|w1L8Wg#$UlHJ832G?yxEoyX z4lkdtF_-(`E=6Lunsx65X>1&b*2Md9HnFtS`BQ!H{fl zx~t51s>A|)<^EFD*?bxIHw={D(CD+uT;VVK4C>G4s>H8?L3dK>`1!Ssnh1@Ep3G;sq!FX3`w}8W zgfqeV4fiDx$DlUTyeJRU-n?SoFWR<%QaC!X+micO2t>>~I8F@RP1ygC=nv&2g-FzL z6?Kzg=7Pajd;Vg)ThXno%&UIgSmsEw>R)YquRk(IX+kk-3b}jqp>-*ISGgSwt6Xu% zn@)j+0$_@~YG5_k|@3oM}-a%i4&cFp^9z7dP1U;W!}YvTgPgSB=w903WUoM zE!1rDxfyR=d+(E>H`7qmADx6}sFVcqT4zqxtf9zLt4}UPn5HIB5-+o+i2&{cy~{kwMveG)Voj;Vcpg^c+O zdqUBKX(*N0GNMIOTIBPa4rRSTgPGJV-m)fUY}_my{+3Q6cTh&4ZDXwi$tA+L{~bX> zO1^{p8MM5rN=gU^&a2rkYwy~9`6r@@ChWwwS6x#AVo@9Fzc+Y3Vuxmtf>F)jWSFtWyWGmqX{3v>KO&lc3Z|`ed~!uBxQuI ztx2Rct9;o!ea1!2{+YgfFkZY2!y7Unvah!=4X}3GuNsLo?*qHRsPrC_jt-}rpbXMT zv`VwyMeF{HZJoFuhwpb|K9|E?{1PbYG-(3|Y_Zu>jBOyA>-qRab`PH720b*T@5oq@ z2xd2rNaNBUVr_J~3sN^9f6{U7F z1x~GimO^_c<9?MxemRzH_xe~mo)H3-sef;4fABqhXVQG8^mmlU5wkQ$9b`eV%u~|1 zR9;~YwL$bA=X6yp+wZpC4U8&HCW)_}E3F|tcB)x{Bt zN6AHo1rLN*AP??P%Uk?g(Zajiso|;)G}DVxb0ZqPnxc49qrZ*NuF1HK4rc`HJU^+dCXRgi5z;)PuN`pS~Ub?_`yLvYFQ$~6T^ER@1Tr@*LR7G_8V&DWnfN_t;s$(Mj~l{F6pd&?8Ajv znt82A3@!dXb}YA8dnmF0$;eL&ZXcQR1m^q`DZhi*K)F;j@^dtk>d~7RddX6dsn#ON zjLPGg@3A86$3_B#<((n%s~7o{)P0XtNU?&r5Ox7wFcwQQSj(`{i0pe#wtoNp09a@l<})r zuVK0iLtW~9`?a~v_%{x@%vWm(;75Qg2-6-Lt~~3Fr~`*o?1RiTGcfQrKusI1E_Zq_ z{k<*xasGr@vtT8@sN9qA@jO&#J?DJ}*wAK<;ev`^8`oY@TlAjSwB3+Olm0goul4wFLfZS6GVLE!s3mv_H*-f~Mn*O;gEn<#MGd7`;Y<}x1B+RV(! zH21de^*Fg7YZgIaYSfb4A&&b5-h2X&aUt6s zE>NPPqDNi|__U&;hiZ!`lx0*_#{_@zXDtaE^s3v85QU*h63Af=4~xj3U`^Vti?Zc& zP@Tmgx^Fu9b(!!V##=C=0O^>MLUbXoxgN|B3bD^fApi+CWi*ZCl!3&Mg;>0adj=n> z=Y?~3C$G2`_kYL3qw~LDt6RvW<#Hjy4pAyiFrLMGKp$&#+U{o@{E`a_NM<)0B7Hp+ zm~msBJR0JsUsl$F-bdcWZ^5KNS17r#-g}-*8~nY{#fwuz_Uq&R&A9Mgp|r8Gn#E%! z(Ty_Oti~+ZwpdyqqKM*)i>1QajE$9ZUXUxxuq$t57En8%oWLG%-JoDu{;dqjSEIqO zZh`$T2Ql$=Wb#P$m)&5^y}D+uj%32MC7agIFbT-UiV2{ZSoip?4&jpgsLxxO2^K~` zh(ldNXXhmC8krvTTbu8pJRE#{(?cAKy?eyobEkr~2G>KJ%gjZuMqb|Nl{M{PaV96R zef%t1YYaw6B6w+hVG1*o?nq@EGC~YU++eQN>@s}=)OhTn*E8(ijN*BG(gAC+-ZN*Y z80Mbu@ZNq|Lu#CZ>ZaMNoGJ`(sA8cf^iYU4_O7j!tNVZa^7xLC7?3XE1}Y5i>1DDa zWaZBcw>Y-&i)#!0++#;aqZM_p@wj2R?+*C1Vg`SuRGouo0b~?*NT{F(P0-RFwby*8A_oc$_l@jgjiI z8F_gmjr9&c=-2M)4|9TD9_4of%A?l5#GO8*J19vWXPd1#v#+*VqFYQ%j=uO!2B1Xl zLLA#O7Z+8G@nT1*flZOV7Fz>>vbXuK z23#M+d{>3~TIP4&)9lwrvfn@E97FB)UUHoZB9FHr>a$ITx{I&=h32y!rZu* z7w}mi?gsv7hh$`IVJeV~0Yo^4emsZs^W<`68MEk@Z6j;5=8Xx=YXs(omH^JR5v*_M zAFqP<annB|Nj5Lrgul$V+fgJrxJbjGgW; zZ2g3II0F(WS*KOQD4iF&)oFOHv-`T5BI5xOX0}(h)fk;kn4o9Ku6Z1Dch^BVkc?FC z?asqLZJTy~TqI{uy|J)yu#Hw{^@b&wBFTVbzoFsPaHp>`%(ky^Y$K5ZFmAf_)SWJ8 zlv7ixUw>pM%!a~fa%P!GhQoDir;KGohxmGss_fk$))k1HYYy_C-=)tAeHygk|GU>! z;adNIw?UXl5^&5omF3=N;K#AuURtjRRU-Tg$X3=8h(#}2XAX+vsjdY#k2>p=v-vN$QQ%?gUMD@zXi4$bZ0)U`e3>HEr3&$wC^2*zV#E8n)sU3n*H*fV06?^{0LZ{P%C&|y8+0ZNqJ>2n)bVMF!LE69h4ecH@0N@ReUMZ@kaz~Iy*KCsUoond7X^r zFzjx$I$MA?&V<8mBP8*oje{$szd$q@+eA4+NY%uQSYE7i8&g$Pm7j4Re9yP9M$+M{ z`In4G%i`q6y|)nEs@&#M`G$d#(QL(A!Fau*611OAnb;fd|;xVBp1~_4$9#m-z~5xTtzYl)2?N&NU+7 z4Bot7FLE}b4D8H7T=hHMm?a~0TByS&i4cFe*_2JgfP?h_Fp;u! z9W+3C=XOn7K}(t5I!#?e)#$8QvJLNXdM@MrofKf2pNjD1L2>@*7dpIN+1OmI(UB}s(W;Bf zlfL*j+sbj>InY3?P^a!0KE983OJT0l)Nx`~-hu5zFD6(`((N;|XLzSfN*o_w{iV#g zh;yG*64k57+*PBvCdl&-7sy?_z1MoZ^~yPrjaMDZ(U$elhpooQo~9+XQ&;)pr@7)P z1jY#bG>a%N--@YMo2On}o38^<#qQ*aweiJgIZxvBC$3d55aZL=-^f+hKo3i(Yo z1@DETTrn%?t7>y*lr7kD$tYgU$uejf0VB}G74jTC60$4y7GKhM?)y6Xx`v(FEV5%I z$ocRc+9RLi&1t;@rn?|}6A}yVx2W;p!jr1YWE{J}h+T9`9>H79H=W#-Iw>0vYwYG> z()v&R@_Lz`py@fNog7j9(!# zuikExBlhq$8`9Uia)dS3SPi@?Q19a<0bMWVo-OeXUbH_W0DA;F9@#`ch%qB~N3bw( zms5SNdDd?P+lMv`D-Is%_v`%kS68du=IFbd4I`qyzan^D+E45~YvRl0A(?G3l94LA3hs5gEDzBsAc=L>t}LpWhEvAY!u z0cQg7F0#~r_S@>Kg_A^kSN28seFGt~ zF^Q}w6Y+%~!4Z6NM)GPIKPmZ1&-G zlsiG96vn8v_-N)9@(LUqQPTEK(~~CZyk@bvIMRog73*#6e@JNzZe_#HzW<^P$fK?< zIUNK{;08XktzYr)6x{A3XH1~Br>2mo9Up1N_w@6mH6Te zLUKcS0k7V^#4mr?U7_~YGk+50XxI50LY*uBy)$+~Prw7eim)S@PIFZL8K`OBOscks zp6>QD4l&wuVJ2O;w80LoUHmjTMII@*cYlR5utCJJ@)=@P_JgvHPn6webs|_Pa!q|> zQYpNPaDsJcA5~}JuK}*FQ!`vQ>-^(%`>0A8$*3G@Yii+Jq>Lj=`VdiZzG1N2V9`^W zir6)q1;7{{Hy6$tz+#1S3o)h-b(x->W#!!*)E>%eV0W0pjgxjsn6&>%Yx%DfFH59a z5N2g{(MTUQn=d)&FxNF-o30?W%o{%Iq-w~`Uir9`ss5eSY`bCaaJprl?d#sCwzNoS zvo5?{-Sab877$(5RHHm-e+ci8b(b|B*ZaiywI$f{a5EIsV(>EGYRpqqWW!{gYtVkR z0IjH!c!?Zr?NG2GCgQlCx)D~5TP}7I4f&;;)-oG@R#k-oA!tg!`u+8hnPWr9f~rqy ztWOM1d!~~UDcJcFvv22AZ7FDtG{C?BT00#HB|o&c=hjfWD{7R2&P#HZZAY%ifoe_M zgP+SBxoEsQK;^u;-S;4VTA8F;>`-V#e5#|SeCrFNx{yi%<-cea-G;&uC?i7*!u zC;6|pP~Dki0UN=c1cXXhq}WqzZ~oCV>*GMWTpzE3f68LP1evg6bn6^AH)FddR2(n< zSjtuN9UfUg9g+~P3ye0Qm;^RQ|AIbHRu+HUHY{AvJcrA!c@75-d3Cwpv=h&P`P>TB z1LfE>XxzbE$7QuBbGwGK9HOrX4;(g`u$2v%PQ2ChPi&e zV)=ZPd06gjcQ2)vs=m|pO%#Z17v=Tpnv(C_8j?6Hx`J0EPC<$eu5~Chfglaa1;)E{ z>I@Qt5-3qS6YUJr$vF1yW=LpIlzrr+9>vnlE~i?XA1-u8&iBNjbN*u8-xf0yZj_H< zMl~Q|LQr?J)eoXKR!+lk%arLFOZ*s=z$( zJ+YKVFtT6PWIpc(oVbUM3rI6IL&2X2PyZXqT}V3>69Xxzh@uCSmT82$rjqb0MfUkh zR~6ln_ooBw&&;}&gp;KTe|kS^ecxVR&)#Kde17{765+sNkQ*urIccHaOLVP9pqb}9 ze5}~5)mz;T4~H*|Hb0E0w%Kid(hC#mp?{zFW=lB0TWBYVU}tJqtBn7?n;2r~9gd5O zdoypE0BY!sjNb{}=9^eVE?Mf{`J;8bMh=m4UIvg(Qos@!q)j4Y(DXb}h>sla{PEfG zB6D$R5@kR~i)>gL##~hr1HItJ7UNx!@%B9Ig+9nw7mUPlo$O?$^0Z^S=y_K`w=7yC z!4uzYR2Hd@qGICRG`>(u{>NT~l^xMmRLYRHEu%?mJPISADku2oN1s%qNLU|S37E-NGr^N=PAEJeRbubWzzR^@r4uT;oNN71(rw(+GQ6?H0W;^I2ukLhttH>`RFP=g}fHT;t^ej*RCL2LO8cNeQ zbQ>ZFf*>$%#lyRlLqdc?Som3orl+g*SUDcYuw97T57KK!J)njlz`yb{sI?kx3wF_t zw6{2nz==AsEB{*m%5iVAfw13w(31#8-D;tau+hadh;Ebq#zC>j3 z0n8lJ=$3J;9po)SrRCi=dCQ-kL)(~_V1>uVEp#FrY;5kmQ(jJsT2Bt~Z|~RxB}H0j zZ>>9T1ry7&_{M4qxE9~=p30pMjRAGmyd!C`F>X0>dXbkZ%VU+>Cjh8=ihG%?WN1Mm zjWW5x67d{j23(F}U9?H?OKI%XmlLd(b7BTEycl;B-wcmxUUqg@ty1|4F40x%i9y7B zdgTRW2PbO>yOaP*cj>*`|2PqheJaeKB=a<3I%m6FY#L~jCi5SV*>wHGQUXCXKO{sL<- z#z-{}@665PdegYoXWa)wDE-CY^D|d_C+Bx(EsV8^SJ53?T&T! zwJ3%>{md3~3#WX(wr&?AeIPSF%ERb!emJrFp-_<(stOt&#TA1uI1SwioGgw%6oeZU zFkZs3F`&C(1V(-{l-n~8h70B8pN&|deu>m*`)qBaeRTL3|McP6^qPqYcG_RpFsdy- zu(y{PufeQ^ma>j!jKCFC(qL6hzL2~-I=>}TbJjU)cNZ|Td5%$F>GylqxaWZX;0%AK z68GLsV4Z9+x%h>|)uD}De=q0I{P_R|mW`qc{5o4|UcJ9|O86YPl6!u2?{aBrIT^Gs z`{EU750BhWl$cf!mfMHzeo2G|V$NYIqqpRk)%(gn8xB zjig~A?hrlmAA@%7j%PzBYGMC_)bN>9`4J#gY5n}`er)#C!FsmssjKbE-1!GYVovjA zC2&76&$-|=2-3>xtdD_NcBKJ>=&G!`VU7*Gk1(VSJWoTdghJvurf&PrEB*LqAMU4Y zC;XJ;okh(&XuO%`r^#xG@(=AZme$Lqz^ks9k7OcDvc!?>cAx^SDM;Oe|BYTtYy%@2 zLSJ+S4EbkP#+gA@jWpZj$#6y;M|P}wT3PvxD7h)kJ9{@iGAQV3(KIAc{pfG3Cr0#C z4amnQu4>J$O`qPBHl9A4SZN5~8cUSOagylYl`3{uPO#!_54bI#;w8p;sx=(n2d-{# z$7(5rdfw+nn9npdk=3??mZZ3)=>9HAan5J+KZXk*k~k$RRJcN;%GBPiqEGN|>})rEj&&YB*TddfRX;lRu-WCz9* zY~HpxEoI7z69t7PdWYDAU4tjLr>QN{xb*e)^}@@(*VWVWZtk(wcS>1vQ`?XK>07hk z&z{}blq##oFOhsc!EAc6u@h@VmUkkYkZogY54UAspL*HXR7%W<~hB;C^B)R8J zVWmaEU*7AJRYK3%=CjYu6JLCBvbN`!G}S*A1!p&LY0OqU#_Y8_R=qR1C-b=Ck>?6m z_IzKv@YsiPRljG?)6)(-O?X??!n^k=|FX1aQNjPez5l;%{@**#SG})!9{sv&ZkMx^ z)IPtCnxi3iFRT@>E6=(=bMn!{_M4|}G3|3n3l7-Mx43*!m4V-@zs&khK`VbOl+OS2 zZ|2F9ADRAjZQOWb&fe_j8pd0vsTI!+;5@wSE{B=-vy=;uxAeLvt5{vu;0&y}e&oo$ znJU|Qdix|-CsrFQ6r1wWg1=p_`c&}kncx4Mf4<)#$d`@h?ulhTO}=0D`>tQ}(E9uS zr%_GKf3vSP-TF5lczQ!bs7TX-6%AKsjJbT!E=+q%-dI6 zQh7DQkL2Y(c&%-$dh2yvNk-)RUr%SeiSJ%s_oeLABxZBH)pM46oCaLJl4|WZKgjb@NYfv-7yEA|tdE>{oIQAhSN_>1(cXrzg!unf zIt+z9Ten@-e;w7Ocj4{T7+r6>yI1#5>$$jKRptA;`XLeDmSrUBiEBNb#uo2Auk!mL z?kJt^*MHw_IxM}$@W$cddw=G6WZX&K%qcNhC+Ed$iRhZVw7ggER=!j#%!xF%Y7%TN ze!DN>7H9HhfByTm;c+jY>{xN^$W5CSieI9R`TF_-hs`}6WyDN*zOqBSVsqfR;CIn{MCW(kb*ka2tpM?=Pgo?m@(UMfJY_^$g_= X48K=9#q|OAWHNZV`njxgN@xNA<}?B+ literal 0 HcmV?d00001 From b603098192f8c4105723ef50d27354ae9f93f473 Mon Sep 17 00:00:00 2001 From: ankurshukla Date: Fri, 23 Sep 2016 12:50:42 -0700 Subject: [PATCH 17/18] added Nuage Network to partner section --- community.html | 1 + images/community_logos/nuage_network_logo.png | Bin 0 -> 13045 bytes 2 files changed, 1 insertion(+) create mode 100644 images/community_logos/nuage_network_logo.png diff --git a/community.html b/community.html index 377cd85e1dbc8..f47bff33e7b04 100644 --- a/community.html +++ b/community.html @@ -75,6 +75,7 @@

Partners

+ diff --git a/images/community_logos/nuage_network_logo.png b/images/community_logos/nuage_network_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..72da8352cb7864a342b0327b1f5ef14178dfb16a GIT binary patch literal 13045 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 literal 0 HcmV?d00001 From 6e7ca595dab8a4083db37e7ad426270bd3a609ef Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Fri, 23 Sep 2016 14:10:16 -0700 Subject: [PATCH 18/18] Fix Travis CI build failure --- test/examples_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/examples_test.go b/test/examples_test.go index a2485ac0c2fb6..4f5112c1ce8c3 100644 --- a/test/examples_test.go +++ b/test/examples_test.go @@ -32,7 +32,7 @@ import ( "k8s.io/kubernetes/pkg/apis/extensions" expvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation" "k8s.io/kubernetes/pkg/capabilities" - "k8s.io/kubernetes/pkg/registry/job" + "k8s.io/kubernetes/pkg/registry/batch/job" "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/types" "k8s.io/kubernetes/pkg/util/validation/field"