From 0bd5651d4f529f7bc707ce3de6ea4a475ed72199 Mon Sep 17 00:00:00 2001 From: David Kirstein Date: Thu, 10 Nov 2016 08:19:22 +0100 Subject: [PATCH 1/7] Fix typo in working-with-resources.md mode -> more --- docs/user-guide/working-with-resources.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/working-with-resources.md b/docs/user-guide/working-with-resources.md index 5b300ee6bd..b5b0f8f862 100644 --- a/docs/user-guide/working-with-resources.md +++ b/docs/user-guide/working-with-resources.md @@ -46,7 +46,7 @@ The system adds fields in several ways: - Some fields are added synchronously with creation of the resource and some are set asynchronously. - For example: `metadata.uid` is set synchronously. (Read more about [metadata](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api-conventions.md#metadata)). - - For example, `status.hostIP` is set only after the pod has been scheduled. This often happens fast, but you may notice pods which do not have this set yet. This is called Late Initialization. (Read mode about [status](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api-conventions.md#spec-and-status) and [late initialization](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api-conventions.md#late-initialization) ). + - For example, `status.hostIP` is set only after the pod has been scheduled. This often happens fast, but you may notice pods which do not have this set yet. This is called Late Initialization. (Read more about [status](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api-conventions.md#spec-and-status) and [late initialization](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api-conventions.md#late-initialization) ). - Some fields are set to default values. Some defaults vary by cluster and some are fixed for the API at a certain version. (Read more about [defaulting](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api-conventions.md#defaulting)). - For example, `spec.containers[0].imagePullPolicy` always defaults to `IfNotPresent` in api v1. - For example, `spec.containers[0].resources.limits.cpu` may be defaulted to `100m` on some clusters, to some other value on others, and not defaulted at all on others. From e745b0480157ae4ce17b534b107d21d7552da17c Mon Sep 17 00:00:00 2001 From: David Kirstein Date: Thu, 10 Nov 2016 08:27:09 +0100 Subject: [PATCH 2/7] remove extra space in working-with-resources.md --- docs/user-guide/working-with-resources.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/working-with-resources.md b/docs/user-guide/working-with-resources.md index b5b0f8f862..d2aeeb621e 100644 --- a/docs/user-guide/working-with-resources.md +++ b/docs/user-guide/working-with-resources.md @@ -46,7 +46,7 @@ The system adds fields in several ways: - Some fields are added synchronously with creation of the resource and some are set asynchronously. - For example: `metadata.uid` is set synchronously. (Read more about [metadata](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api-conventions.md#metadata)). - - For example, `status.hostIP` is set only after the pod has been scheduled. This often happens fast, but you may notice pods which do not have this set yet. This is called Late Initialization. (Read more about [status](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api-conventions.md#spec-and-status) and [late initialization](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api-conventions.md#late-initialization) ). + - For example, `status.hostIP` is set only after the pod has been scheduled. This often happens fast, but you may notice pods which do not have this set yet. This is called Late Initialization. (Read more about [status](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api-conventions.md#spec-and-status) and [late initialization](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api-conventions.md#late-initialization)). - Some fields are set to default values. Some defaults vary by cluster and some are fixed for the API at a certain version. (Read more about [defaulting](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api-conventions.md#defaulting)). - For example, `spec.containers[0].imagePullPolicy` always defaults to `IfNotPresent` in api v1. - For example, `spec.containers[0].resources.limits.cpu` may be defaulted to `100m` on some clusters, to some other value on others, and not defaulted at all on others. From 5dd3a00742b273b5a2010bb2aa522955a5f0d2a8 Mon Sep 17 00:00:00 2001 From: Luke Marsden Date: Thu, 27 Oct 2016 17:01:13 +0100 Subject: [PATCH 3/7] Be more vendor neutral. Address review feedback. --- docs/getting-started-guides/kubeadm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/kubeadm.md b/docs/getting-started-guides/kubeadm.md index 08148bd7c3..8e82d52423 100644 --- a/docs/getting-started-guides/kubeadm.md +++ b/docs/getting-started-guides/kubeadm.md @@ -110,7 +110,7 @@ To initialize the master, pick one of the machines you previously installed `kub **Note:** this will autodetect the network interface to advertise the master on as the interface with the default gateway. If you want to use a different interface, specify `--api-advertise-addresses=` argument to `kubeadm init`. -If you want to use [flannel](https://github.com/coreos/flannel) as the pod network; specify `--pod-network-cidr=10.244.0.0/16` if you're using the daemonset manifest below. _However, please note that this is not required for any other networks, including Weave, which is the recommended pod network._ +If you want to use [flannel](https://github.com/coreos/flannel) as the pod network, specify `--pod-network-cidr=10.244.0.0/16` if you're using the daemonset manifest below. _However, please note that this is not required for any other networks besides Flannel._ Please refer to the [kubeadm reference doc](/docs/admin/kubeadm/) if you want to read more about the flags `kubeadm init` provides. From 7f8a38b7432a059ee9b0116469fadeca6ca9b017 Mon Sep 17 00:00:00 2001 From: Steve Perry Date: Tue, 15 Nov 2016 12:26:42 -0800 Subject: [PATCH 4/7] Write style guide. (#1619) --- _data/support.yml | 2 + docs/contribute/style-guide.md | 203 +++++++++++++++++++++++++++++++++ 2 files changed, 205 insertions(+) create mode 100644 docs/contribute/style-guide.md diff --git a/_data/support.yml b/_data/support.yml index e280c827d7..1b8e80699a 100644 --- a/_data/support.yml +++ b/_data/support.yml @@ -14,6 +14,8 @@ toc: path: /docs/contribute/stage-documentation-changes/ - title: Using Page Templates path: /docs/contribute/page-templates/ + - title: Documentation Style Guide + path: /docs/contribute/style-guide/ - title: Troubleshooting section: diff --git a/docs/contribute/style-guide.md b/docs/contribute/style-guide.md new file mode 100644 index 0000000000..219d62560d --- /dev/null +++ b/docs/contribute/style-guide.md @@ -0,0 +1,203 @@ +--- +--- + +{% capture overview %} +This page gives writing style guidelines for the Kubernetes documentation. +These are guidelines, not rules. Use your best judgment, and feel free to +propose changes to this document in a pull request. + +For additional information on creating new content for the Kubernetes +docs, follow the instructions on +[using page templates](/docs/contribute/page-templates/) and +[creating a documentation pull request](/docs/contribute/create-pull-request/). +{% endcapture %} + +{% capture body %} + +## Documentation formatting standards + +### Capitalize API objects + +Capitalize the names of API objects. Refer to API objects without saying +"object." + + + + + +
DoDon't
The Pod has two Containers.The pod has two containers.
The Deployment is responsible for ...The Deployment object is responsible for ...
+ +### Use angle brackets for placeholders + +Use angle brackets for placeholders. Tell the reader what a placeholder +represents. + +1. Display information about a pod: + + kubectl describe pod + + where `` is the name of one of your pods. + +### Use bold for user interface elements + + + + + +
DoDon't
Click Fork.Click "Fork".
Select Other.Select 'Other'.
+ +### Use italics to define or introduce new terms + + + + + +
DoDon't
A cluster is a set of nodes ...A "cluster" is a set of nodes ...
These components form the control plane.These components form the control plane.
+ +### Use code style for filenames, directories, and paths + + + + + + +
DoDon't
Open the envars.yaml file.Open the envars.yaml file.
Go to the /docs/tutorials directory.Go to the /docs/tutorials directory.
Open the /_data/concepts.yaml file.Open the /_data/concepts.yaml file.
+ +## Code snippet formatting + +### Use code style for inline code and commands + +For inline code in an HTML document, use the `` tag. In a Markdown +document, use the backtick (`). + + + + + +
DoDon't
Set the value of the replicas field in the configuration file.Set the value of the "replicas" field in the configuration file.
The kubectl run command creates a Deployment.The "kubectl run" command creates a Deployment.
+ +### Don't include the command prompt + + + + +
DoDon't
kubectl get pods$ kubectl get pods
+ +### Separate commands from output + +Verify that the pod is running on your chosen node: + + kubectl get pods --output=wide + +The output is similar to this: + + NAME READY STATUS RESTARTS AGE IP NODE + nginx 1/1 Running 0 13s 10.200.0.4 worker0 + + +{% comment %}## Kubernetes.io word list + +A list of Kubernetes-specific terms and words to be used consistently across the site. + + + + +
TermUseage
TBDTBD
{% endcomment %} + + +## Content best practices + +This section contains suggested best practices for clear, concise, and consistent content. + +### Use present tense + + + + +
DoDon't
This command starts a proxy.This command will start a proxy.
+ +Exception: Use future or past tense if it is required to convey the correct +meaning. + +### Use active voice + + + + + +
DoDon't
You can explore the API using a browser.The API can be explored using a browser.
The YAML file specifies the replica count.The replica count is specified in the YAML file.
+ +Exception: Use passive voice if active voice leads to an awkward construction. + +### Use simple and direct language + +Use simple and direct language. Avoid using unnecessary phrases, such as saying "please." + + + + + + + +
DoDon't
To create a ReplicaSet, ...In order to create a ReplicaSet, ...
See the configuration file.Please see the configuration file.
View the Pods.With this next command, we'll view the Pods.
+ +### Address the reader as "you" + + + + + +
DoDon't
You can create a Deployment by ...We'll create a Deployment by ...
In the preceding output, you can see...In the preceding output, we can see ...
+ +## Patterns to avoid + +### Avoid using "we" + +Using "we" in a sentence can be confusing, because the reader might not know +whether they're part of the "we" you're describing. + + + + + + +
DoDon't
Version 1.4 includes ...In version 1.4, we have added ...
Kubernetes provides a new feature for ...We provide a new feature ...
This page teaches you how to use pods.In this page, we are going to learn about pods.
+ +### Avoid jargon and idioms + +Some readers speak English as a second language. Avoid jargon and idioms to help make their understanding easier. + + + + + +
DoDon't
Internally, ...Under the hood, ...
Create a new cluster.Turn up a new cluster.
+ +### Avoid statements about the future + +Avoid making promises or giving hints about the future. If you need to talk about +an alpha feature, put the text under a heading that identifies it as alpha +information. + +### Avoid statements that will soon be out of date + +Avoid words like "currently" and "new." A feature that is new today might not be +considered new in a few months. + + + + + +
DoDon't
In version 1.4, ...In the current version, ...
The Federation feature provides ...The new Federation feature provides ...
+ +{% endcapture %} + + +{% capture whatsnext %} +* Learn about [writing a new topic](/docs/contribute/write-new-topic/). +* Learn about [using page templates](/docs/contribute/page-templates/). +* Learn about [staging your changes](/docs/contribute/stage-documentation-changes/) +* Learn about [creating a pull request](/docs/contribute/create-pull-request/). +{% endcapture %} + +{% include templates/concept.md %} From d10fed8566acd1c407ea869a9a33238695a20fd5 Mon Sep 17 00:00:00 2001 From: ankurshukla Date: Tue, 15 Nov 2016 13:03:34 -0800 Subject: [PATCH 5/7] Added new set of Tech and Services Partners --- README.md | 9 +-------- _includes/partner-script.js | 23 ++++++++++++++++++++++- images/square-logos/datadog.png | Bin 13224 -> 12214 bytes images/square-logos/endocode.png | Bin 0 -> 5231 bytes images/square-logos/giant_swarm.png | Bin 0 -> 9772 bytes images/square-logos/mirantis.png | Bin 0 -> 17311 bytes 6 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 images/square-logos/endocode.png create mode 100644 images/square-logos/giant_swarm.png create mode 100644 images/square-logos/mirantis.png diff --git a/README.md b/README.md index 381cd46567..2801eaead0 100644 --- a/README.md +++ b/README.md @@ -174,14 +174,7 @@ example. If creating an image for a doc, follow the 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. - -* The partner product logo should be a transparent png image centered in a 215x125 px frame. (look at the existing logos for reference) -* The logo must link to a URL that is specific to integrating with Kubernetes, hosted on the partner's site. -* The logo should be named *product-name*_logo.png and placed in the `/images/community_logos` folder. -* The image reference (including the link to the partner URL) should be added in `community.html` under `
...
`. -* Please do not change the order of the existing partner images. Append your logo to the end of the list. -* Once completed and tested the look and feel, submit the pull request. +Kubernetes partners refers to the companies who contribute to the Kubernetes core codebase, extend their platform to support Kubernetes or provide managed services to users centered around the Kubernetes platform. Partners can get their services and offerings added to the [partner page](https://k8s.io/partners) by completing and submitting the [partner request form](https://goo.gl/qcSnZF). Once the information and assets are verified, the partner product/services will be listed in the partner page. This would typically take 7-10 days. ## Thank you! diff --git a/_includes/partner-script.js b/_includes/partner-script.js index f7447c63b7..5763047efc 100644 --- a/_includes/partner-script.js +++ b/_includes/partner-script.js @@ -175,6 +175,20 @@ link: 'https://aporeto.com/trireme', blurb: 'Aporeto makes cloud-native applications secure by default without impacting developer velocity and works at any scale, on any cloud.' }, + { + type: 0, + name: 'Giant Swarm', + logo: 'giant_swarm', + link: 'https://giantswarm.io', + blurb: 'Giant Swarm provides fully-managed Kubernetes Clusters in your location of choice, so you can focus on your product.' + }, + { + type: 0, + name: 'Mirantis', + logo: 'mirantis', + link: 'https://content.mirantis.com/Containerizing-OpenStack-on-Kubernetes-Video-Landing-Page.html', + blurb: 'Mirantis builds and manages private clouds with open source software such as OpenStack, deployed as containers orchestrated by Kubernetes.' + }, { type: 1, name: 'Apprenda', @@ -237,7 +251,14 @@ logo: 'skippbox', link: 'http://www.skippbox.com/services/', blurb: 'Skippbox brings its Kubernetes expertise to help companies embrace Kubernetes on their way to digital transformation. Skippbox offers both professional services and expert training.' - } + }, + { + type: 1, + name: 'Endocode', + logo: 'endocode', + link: 'https://endocode.com/kubernetes/', + blurb: 'Endocode practices and teaches the open source way. Kernel to cluster - Dev to Ops. We offer Kubernetes trainings, services and support.' + } ] var isvContainer = document.getElementById('isvContainer') diff --git a/images/square-logos/datadog.png b/images/square-logos/datadog.png index 82d6d11aaf93168cddb9ba48dac2458cd077562a..aeab0f227f42eeb6fcacd2635bb3835ae2dc0451 100644 GIT binary patch literal 12214 zcmZvCbx<5n)a?=yG`MSUcXxs>?(Xis1h?Q4U>A1?u0evky9W#I*F#^(Id@Ksnu;763NZ=*06>!mN^8Kz64;f7gaEtu3;|bR1F{=X-xB~p z#rf}o17zh80sttg_EJ)6YId$5S5G@vHwt+vDGE0aR~vgLYXHFKcdn+bmL?Qm^ltN7 zQZYItMbT9Q4~arUGA;xcOvgltjHwV!S-6U)-iIY4^PXh1AR0a)AtWA8o#kUJ$_nB> z<@bcJqUhN1ryc(y$ED7@!>QM%WwE2`tK7yJ#9pM2X+Umu-jI(KlH^$1VIzaXJNs;( zLs4kl0GLRPR+OGE)Np|NAQ2H}s$Rry0G!VPDiWYqIlGsGH0llGuVkhXTu3-vF9g}u(a3%sIdaf=z|Xz03o^enf`D9!xTz9xB@VM z0>?U98ek_3sGiY@l>z8+0B~&-2L%ButN;#qT^k^vt_9FLjfvU-K>7&aP>+sa1ibeL zn2l0X`vAf-0l2c4x*`|MwU|dtu$9Ve5NV?klnFINVs%H<)ny}Rn3gAC#^p1AXP)($ zt=~73h%1x_WBY0n04MkrYa>&b)V8{Mu)n{eFeqtg zKCT=1YTIwxtNY^g5G3+^ceCBSOB2dv94hzze!GA2TB(F|27(-Jv3{5+_uPW|_Dr@w zH7IY`4z3qqOd zBuK9N2w8d&Nc%pl_n|(U@r6s$4E9T6N}^bWkb0OgR)3Xbh@7e;V=`m^^_h&PSKTf$ z*$thoU%M4u)D7d&94W7lp)(Zuy~HRIjydJ;XgG^lJ?aD`g3O3}%0A$G>^K^Vv1nX% zDn&3akW(X8i$WVnb}8!dPB6+ywjC@y3gG(s9N8(ynG)KdF8b?ZlT=$dKXJJ1chp%c z5NB2*enIxE$4_F>c)r4;*(y7X--%*UBOJYd2obplojBNr2PEqSSdfz~C+exHKUNJB z*XdNlcf{OS&eVIq#}1Y0Mdo|&ElFWcE&H$=0}DPSMR5%N-kIY zN!O0`Fi2>@#TlgsWT9TdPQ+oy^pBPra9nOL`|?U#vBcJuf@&qCpL1smSI5 z5>qFS{kC#!Kom@2p|T7Yxyzt2?w~+)fO)`kfMA`$ zC81rErLj?7sD;IwXdqcr*sSqGJ*pgs$16*4DhyvH@JHf!&?`k3XPxtc_H1 zmGoKN`3b1ppY%WQ*WMq|BJsjTqHP(7vI!9hZHc@Ie`F|?5-r3Ljc9T3a~@|LWnyHy zYU?pIGX>y*$5B!hQt47jnAo){DoZOjD^aztv?sI@D@-&4Yh|^$HTNozf2CDvSLUi6 zYm#W%RtT3zRoa%jYKa#I>A%Dv=np6js7e*97u1{Xbq-UYS`sz-uuwXpRYiJ*@($9~ zPpt-gVd}_uA?t_}t*j^%l;T$4)@{_dO0f|~+{Zj_;v z;VX*@-PE#GI+l z9VMNj@?Yh%EDhzhQpQqYC1ItJsmZDDQ%jk=*`l1wTu0eQ*~{5mEoKHj1}x3x&8^n* z4f_VA`e)6ZE)fQT`XzeW2F8uDHMupkOC2>GWmsixD#Lkq z=5KPd8?*aQ%h!IK@txV9MXl#g^5iq->2rI|4vb1|s~^mXqvoe_IBr!3sY`FmSNTP9QoT=PsLwxoio->lyJ z-sS*hA+&I|@G+qhp@#3C?)?HNdlJNj)~s(ER!=433)&>`Boe>Yd_Cx^p|l%4Nvff| zJIa^_PurtMs0IC5nng4}G>;ny`bZxU6`>m`p5PX(M?A-w&g(t5F6Fr;{V1I#y_s#x zsVew`Re_gDtdh+^YhJA z2K%V7n{VNC|8+zeegzvgi%{BUrDzp_lz$SKOy&6Tw3j&EvNRP1wnbI~hO zMoi=?mp~?EKgbEVlh>DKh`WU4pe>xfBB@geO=%-rC=WmD3xzY6s8APY7zCW;E?G&b zoZM{t*Y?on%S5$xM8oTlOI!;(c`D+VV`EbF2YptQX35e&S_TZuOo$D(*19%5Q!(R$ zX;pd5Q>T-S<7-L$Ip_Irr`Y}2JCNp*NJU*%GQGpDY6rmv5qIA;ls&u;%#k_>)grC2 z%}maVs#T}D>9s*!bbiW?p(cIfU;CQi9FI}8Q4S&kkJpz^jaBv7^|zYLA0u-~#PDKb zYjM{I((!^<7}k9bNTOWFdotHkepXZswpq>C%-cW@H(B!x(bFo^57W_I&{lu{MBCE& zd3tjzv&No2#jw^9)-2Ul)FaZ`XZ>;dx8J9w3sI-y3uvz=Xy7Ece91R5#&Mt zGCk3;>P>%E)2Z5Ndj0uSVpVD*YEj(qb$#W0J=mewyWnbWUG5GcB5dXre3OVF^&v4c zaUv2e@;FaGOi*xF+~WoMTqZSRHA9z2@cR9AqLu)kJ?MV%czJp*W3Dj$GCjG+IiTd_ zZ|^bDkG0|cVe;-VA8t;QYn`XlKJRsJvh$)X4AuPrieQE}yNCK4&DpZ2WTNEcxA*WF zSI?H*tZOj7Nnr`pPzC_}XaRtbFaY4;4K_jn051*z;IA0~Ad~?B5V%52hhzZ&njLv* z2`!)BC%N7kMz(?H;$=$ttE*fcRjdYHH7xoN)-i~4o37J32j9wjq{wYdws6dks^hf$ z>Fa|=5KN?Sh?!C&nB+@1iASoFlRjjz3T2gGSt z4Ff_f6$yb)YH*WyR#kvQfc57JpYwMqlxsb{bn?ENisRy+SKfm=znbBFPNguezc-~4 zW6#+ay@=i`hD~S`yB~f(`xn%x&}8C0mg1lz0Yz@8=Ree&O-JzMbCeY3G%GMoyXq=D zC7W7|9j{nxdfpcy{BH};ms|jYyif=A{c2_8iif^G8wHY(^`G{Hw7EH6GJSATsy%YZ zeFSc^)42X$kqqZnY)Yue5%dygkF0AO-TtZNWomw0VovYD7^Ej7Mbc zpwajXlENLA9fJ1NX^3u7NDkQMNetDB{HpOO|M?LOS9c%F>D=;3aisM+%|Yz(fLXt; zGu*cO4jpQRuqbBV2uhF{&m1BMT`O%*Rx+SY9xs3jHLzGVG6NexvZ_YQAQ0KvbE6_- z?I?Uf!QjLk8QMO9zg}}KJ?w(D>QO+rlfF7g#j%EFl`pARgl~2N}ke00-k9GJf3LsjllA>9z|?0RHFWPw@t6W&j<*EgNUm<0J zT1CS5h>J$206slW(&nr$NS6!8I!vr~v*4?ku23CJ7LY|-Sm_L>BmwJAAWXF#-gpru zo9e-a-33W4dBTIc+SUR8LcLO^*!QQ(?iP#|WSG*V>lw9l2pZ2Khm7jF9WdMQWXMxG zkW-!z2DRl~`T(xosIH-Lcc!9!sopicQ1WPlhq!ek?=6|z5zb@@#8+C-UgBFXoE zdV%NPpy5D>^x_BFNkg4}Jvx2!igY^xiGdiELpJ2P!`~6r-41Z{cf6YZb>I30#n`%S zDEXd#aYt2HMQTRFUik(VeRaC;NV|x@tfs4b~PD4=l@h%R7kJu z+Udp@J~B;zF8uyyf*jB_G~2(&1CM{RCCexvJXS{L#P6V0{+)u>kBV*he4~NK>@+1* zN;s`-$vIN?AL32<%lYf7La7q!)@&xcu!RsS62Tl)@8~Jm~hDF7%X?!e-1! zT*lhh$|F5(2%m8VT&G5tT3F1KKjC7`C(*>D*+$blt*gSJIe|RZFqj+M9$Iy-Kjzx~ zguhWkiK{()rd1(6KTRFn5;2@?9Eswsw6gz0;1jSSkDz$+kI_vbDxz;)o5ftE$CsW9 ze6p#o6s>z(Cl3B#3$!txtYz}8um#KW7V2yj&}Dw`3pRmiN3;)(ysaj?!Wp?w8w{Fc zHtcST7aYq1=Jv6Puh+KdiW&9=PdhqWVy^Jp373_2 zUUa%BK4UIy3($Aw`X%|I`gcxmev!N6Yqbuadd@Cj6?S;pKq!TSymQV2b_9d|EfV+~ zJy5gg8xQ}jB7i6rm$e^L#Vh#3&IYYfNb{VeWQ9)_L2x?`E4RCS(Xr5&UTnhfZ2ZUK zB0=fB3v`EDzN`Hnmp$*E^{L0~s&Cf^zrqiEIdyHDo1BSwb?m(>b5=G6t(6VDIYJ~9Kx zz(f2LP1KGkSIJ=D)VtyD_y?a$kL-V~f5#(Ed>#nfT?BY9fL}Lj8A2~b4357tXlAQx zS;&ujMyEhn3M;X*gRj|KUk|rig(s{)&CeG671B&)bra1;==D%TL;I?8i6$b*G_*Oi zcENyP(id}LNvG~I_QPPm`~28PXo_sBaO|2mYoibIf2d77LY8FVQ=c7t&o&eAMz%Zm ztDMPap~q?O-|Yen?XpTW)wujB3|r}km&)#_ndb{6(d7APHf{+L_Jii|Vmf-<1Q$sv z87ju<)pq1`tk=bk$~BqkLiF<;v}`FEx#JgNBz3Hu8Yb6f$ct}3GcT_PiLnZ>$ZPBwojM}#{y?(_ zH&)DRvi8$e2&nG@_Bb4nJl$7Aqn6)xTeYh>KD==4l9z}{Z}<=q?r#A*e}&c{r!T3} zED;vTZ7+R_jD{S3C#yEP>dq*Bvd8&w700r&jG4ea){NGL>>8cB`;Sec!7_|%d1;5SWaL3YJ_u5H8^qxz-s%Z24;412mnLZ-6x`As@oTEQT zNUI~*&Rw)~DR4i@?^4>rELqMye}03X^2m^FnzR&jjq%AZ)QV;C$1Z)yyLfx7#%B06rxRZj{y8*|aXzr{ zWTn>Gcaw7w<9}IE1lu{#& z3)lWfk&$u?qV7emjOCPgEi77cg<@B8n)k=t#>=pGwY+;I7hViEmPymQJk?BYzdHZ9 zmURTVInupV3kG(49bcq)!$7Wa@e2Htlxg;!R6Ud(87yV$flf$IeWV74p5^8*}_& z8b5Mwb(OeP^k79F%T!d(m6;MrKQnf7_k%pe;^PO)Wc~f(UKqV7a{o>O#QsIP+1x0dtPFB;#(A%H;q)OymO1luO=4kmR8rn%abYMgC*PN`oRr_8pj6g zfgth^x$jVIwe3J)&h0DnnV!VM*BE3NkXpq@cypo*&izs347|}TSi#DdX#tio}W|-wX;W4UXWmU zXXaVCkJmQFeygE(Smb0*sjV1iUwfM1^t#hgUb*`@E0A+yRbkwz+QWlZoQlo|^knaF z%hO<|E$Df8aP$*e(xSC@z2b9{zqu{!PrT}Lgu=I3AJBi`$ct#;3)2LD?EVxsv5nrQ zCtw{b&g*R3amLC-RIg&Sdbi?yQ- zOl4li-av>I*dr3NFIroryFuq2Q4CNu$J<1peCc1bHt!TAgAC?2~ckXs{tA-L{ygnww!(E1A6hSurCT0`zKH!f#)( zyRTn5d|t)3ESIb3eO@j^JMa3j(yA-W7V%Is42_jc3Q6?Avpl)oX7LMhYraoyQoqO? zq#%7~8jMU6MFoS31@o#y->DQ1AIF%l_t%93X?&hl(g&Q=_l8q;B>#iEVdzTC_i<25 z1k?#dy-k2$ju)2SaWwMu3r3H9*5U1zq+5%hnZV|6O9r>DRYQi`{igd+dh1qUg;rq{ ziyE@TtueXROD23%EwREVbEV{MGZN3r%ZrEH%7qf_Um)Cpr!Qt8!g`=@Bqyu$d_#$I zVJ%X;)VPxD(dv26z*yH5jRoVQpC!$A_{E)As$C)>X+H~Te?$j?#t8=cJ^Od5L1%A& z7g{*eLsIN!SSI>q(Vl|( zVm0_SgW$T1)nW1q#1k>goBO#fakuSZA5SS*-G?c2C-(>=S;Y!S(iIKz&ZDM|jqCiH zfd=EgB41&D|6FkfT=wb|yoI|Y@K2(NPFR?jH{BmL-M8tBODWU6IcrU&J-TT z`R>3M@?+MSo7dw9;C3pFgn7n7BQj%fa=37ohb(X>7uX=pKuDcAnR64D zG-lWN)DM3B{td>7LQXJz0)7J+Z5OYjSCz)Qp-8B-mW*uc0>LYf(M5&jlTlN(*vPce zH?%X4G6J1Np_)$yb%MAcW$IsKyp!?Ri4K218rg$AYzi!u;xanPGRL>sFFY1TmiIfq z4LA?v9?=lT;-KXUMtxapjPf~)I#2jrFu@_befJjF+A|eb3Y8AmH}_t_25K~ifOM?A zY#NovwBo&$tM`1)O^rDJDzs4doqBCw2-^#9C{y{_09O~W4;M%7Fr82}y<2nF#5zKU zsv@uc4sO~w-16QXjm$yWPt=?|B-O1+gqY?}vdAfCJTz38Sc^5#{N*Uv7&NHrcz# zT>NF57_&0AG`X_RZk*^3!UrTXe@52!MZGR+5m`$r8dvuFUD`%XlXW!n3|YjhETMXr41#Q!W=) zpvoFdKQFBm`g{QCt^2xG$iQ|NN`r+yJj)Zv<#66u zQ=5E&yD1V?Tke5fL^!~v<&!Hj&Yf6CaWJn=YsE7ZL2~52rCWQJpFu01^vP|H-2)t5 z`o{^`-Nzr^Ros^6+|+vjyY^v}2_;sJ?b8*a$Vx6#U>C9l7?(Uha2($E=0fzn;lN8= zlnMfb2KLig4dM_NPX;WIXm%wN;uphWk*nE|={e*~tHs5*`}-}UxT#-NMoo-ibk8## z1>sH0tfesR=cszJ*QD&f+Hr$>7vyVoE<#dua{LVo`Ylm$T$lfpnpmaIV!((AA2AZ| zZ{GS=f30r9UWNs7HVsj#Qr|67XspP(nCjbuN@5@d(UsqN(JQT9mE8(c0T`6(TL%J zDbUaI5&7fRL)9y4G6(YjUl|vZXK1bY^wj<*&D_m`of)4i<4VRiV;k@#i{G|^!GPiR z?isra>CaAJtzO{4JBvVhzL%?Pk*jmpJ!ZH1-T6v54ZqWSco*UXulUTx7&%RmyHDrQ z5N$-LbV&VgFa>X}-6(~%dBw8*crYTYPem(VVGZhhP+2l+@fjEHhVBt) z!fNaEuu1c?M_pnPy+x|%DRoqY14dK*X(s$iZqZsyER(7NB$1x65$_zmEK3s7P@)vk zco3A2QG7C3PWX-@d78sEh_b}9Y?Ga#XJr8IQ#+gtmXT3I4m_`{`Q{P>01otp+7 zj{WPC+?xEb=4dRBC4uC!*Uz6Su4U$$OkZf}m_0PY6BIZtQva(*t9m8wmOQ!NW1)tl zHxQC^%<_LY$BGRv5k)WgGZo|f@BVBIB-6Nxc!jiw)mSQwLDd$ZR&;B4VOmt*XykEq z4>Yx0M3PimL@gWdj(SjSQ5k0t<>=$V6?!SW_Zk;a$A_aEVf`R|JeV9N_3r_9tG#p0 zgYVEB+G&Pm8gOtyAiQYatuwhs^)#PP@~_aJELowNLPyz{tZHCupvv zC0l9nd?No=#Ioz4<<&d#p);)mE0%9olMWylHzz8dg21SGmSa1eNTNRrOhdt)JBcZo zat!0VHKc-=q;x%zWWX_zI0nW12?NknO-bjGC+uW{4Ebdc7tuE*11ZVsaYxO6c)my} z2kKg9MXlp@DoLihFr*^ZN(u$O1tXmmrS_4EkV3lnA){-LJ@RFB9%D>Xsy@h3Ls&%xCPM@Qm7Vc-Wl9j{BlpAPr)N^=^x zvMBQDit}k;aLE_@E-04yl7Zz)y`JIo!`F8r54D9As>VR|3aFO1$T}W)jYO*X(eiZ1 z%yDII4X-hxol1cT+$@~KH@3f#t`E6n@!jU@=&wpVl~K2LX??ROW_%=e`4I*|32t}+ z&5F?+LtyRa=IXXtjWyoM`Z=$z;CesfWv~^pOzOqGF>dMu?9H*tuerVLL%wr;>V9`O z8=r^{EHqVZeM%UYsJ1q5iL$8 z0_6rlZ9U6z(|j0m_DZZ={?oscRcyn_=fqit%MtL@yi1@V$y}_qu0maBfw|S?4Q!97 z4od}BU1{Z^1z^Me^qHx;RR^{AlNW3TjWmpX<)!Wd+Rb8JpX4E}$DSmzr&k%MMkY~G z(d$yZal3ms!0KbWzf%B(vGo9^G+fR4@}&Mt5hen}3~u&MuwHD-45!hf*9ez$Sy;WB z>SW-fom^*Av+x2zyq~`iwE|B{5=dFsO6FD(QhyR#4V*^CcX}UzvqJZ3_<@K!8a=*y zv$ha>0oq)DQxS-(duXq_ULP<|$ziisZRs zSgWvpGeNARrck#=dHgZ7qeFpDS^BF6T786fT>=2d5Fs2tRSHF0oOLal83?PV*1j! z-N;ch4Fzd`9F=$-Mh#b8p2aUh87IdvZK`Ari9eSSk-bMcyNt1Di4{f*CK_0dY)kUL zkE$$kTj0;+M)w5vGP3A)Aj5$X5)QKV}_U2q*wQ#0l#4KqYHjh4E( zeEgOYU8xzLN3oO6JTeC#LpzGXC|dtl&N$TpK%@5+D=eepBdo*3WEgSvsdq$XlFjxP zshu(}>A9BE7d*4XRi`98MjZ6vlovzCCueb)RNO_Ib3SnG0L>0@IL}OTE_A3IwaG0H z?4dL;Av~+)K>v@%?M=FPpE>b#38d`#bzNXk{|_LDbpqn#U0L>i#~}iWiCv6p$kPZE z{Agg4MDgfBSCcv(8(@rnp?Er!-<4mnx^{wVKd@z?q{Hpsl3!=X)0Omwi6Ce-RNH*k z+$~K0(6Qw#dK-k3rT(D`1FP2W(^Q z^!be7Jo|JKxCVt;*S_#}Yc&_xnIAwtH#nJxZrEtrxqd8xk*g9|EfU-V7h`3lMFTJZ zy!h5E8Y;#LgDgE-1f@K5M3tA94C}AfzUSWHhpkP)#4I8|s}gxjPK|OsN7VzpZ~^+vfpd z(G%dOIiM#D)W5-$9j`;6-b`m^gJa`3-D{)VS_?G{jhRdq82$Gy5@p+O;c3evJVG`M z@t&fnjL(v=eiGlk(?}i3h-RAJpOrU0e%3_EGtHwH+l(lTpmxS=&;Wx&wlV4|CZ%U| zhkt|c+g?v1_y_qyA41U3_7W>e1gjn0NFoQ*56_`HS&D- zHzc=@_sIXEIT&Rn1^+GgMiI8{MMPrtzJ2)TtOQ-c`p3B~A#pZmv)W`vL-M*Cpt}Vn zrR{6#PEotGRc}`6N4y9ULeIjqXDX|L}H<9VJC;5MR^pyUB{&`01u)upD5h%N3A2K-){! zyC<0NkRL9sH5kT)SdQSrDSu%YdXCa>+Z7~UC;!YB*Al|oi{(B|@U8{b1KtVns+g1C z_Tis*sA|^c9e^FFW|ksBpK17ubppoXPs#b4%x_v z6e52h)T2=6I}`ACppDkHUZY7o&i#YiroDI!Z{2w$r0Yj_N5|UsmC)eWODY2SYwz9gPehE~L@$L)7mqfa9h*I<* zc89C)MJLgv9|;`Jm9{R$U1Sm9-zVL>!oQAQKV0>`S?-U27x*WGpsSP_rz++`WyS1v zCxEVFBp{*#1ey_qH8NC11(>3&+j`*U!EN%%r!y4}m+kF5bV6T#gi8nYU%%Lv?Fi)d zYL?y|557J0zFRmFC$$xKH)qdso;w*ZYsLtk;$f$~kNT`24eWOUWnW++=*<7_?+viI zQhw^^S(##1HZP!~tiZfASn_QTgJz~QOr0{_Rd9u}A;(lVj>)LRZMy8Nah14XLD z<`Xt{|_$AtvJBi(6K6aQuA6or|NJ5SeBH@ zi!ZC63IpC4N1)}HQ^UKkfA_@v*Yu4PK6GN=;+sgWWsUD9& z6JytoH9S3I8W9UTYEx!{n?*n;^GL53q>p7eEdr8xIn^-S(YFx z$m~Q&S!j=yPrSRRY$uh~fNvIB9ouj#zBEc?!{rkXIJxnhQ zSvc8O9%&XEGDhp<*jCS+EpluXdVWsEf=58w9JPpraiarO4j3e29YEi$J^7&Td z3<<^g?nz~nzm`~ZAV&QB)P7DfvZ~rhF~v+BaMvQK5v0G)-$F5?U6g_R=0a6Zq>6HN zWWE639nuHq$DI?5RIC*5zD_6`I*etm`7&uG>^wN?RmS15t$O5EE&7$iJ7cstGxU3W z3N&XDeaU!NSQ!Ypn2iE=OyhrBj{y6tM)%B-=i$oIm8q0J=UWz&$_*?JK8RD~^nTbi zQ0RAY0&LYv@%r%nh{fu%-V$9-#l9 zALxHQK>vAz{x|-=JV5{Xfna8$|MdnZ!; zTS z?H3Gu6qA5{P}~kWr4sN4{q~-A0cJ$Nfa^^&QPV63W*kr-_Ui8123oIjd?;{1TqNOf zF&a)rKr%*Ob_uB(FsqN^q*}uHG0Gl?UQyC)#f?opL8n-v48fLsBUW5>Nq=_@Dh@|26mxm#;pE|{8sB~^Q9@ zb;*Av?wEs9f?J7XqMT4SGFUAL8CQBX#E};ONR$b}#_VO*5>EKZH3A9{90EXth8dqN z=<#n4Wu5-hnIK8OB}z$##ljS)@qaVGI+Q`hvVpr&?Mi|dgfJu$+KmtE2k{S%e?Y+T`%NK+f zoib8R-y+He0E{5E3cA!pkyuPp?LQ9|-k~kZycQ6H)N^fpJJIqPI zCbC2$#i$@qV~XuOwQ!6Hg&gFezsq}!2KG;X)bDOISS+AU6=fmn%k@9m%e`x{{Fa?Y zMVxiS#%btID2i0&yJ8qX#d3HkFH-sQ6e>fN5R37C!9kc%|;8Jx{#>BtrE z(WN9?s-W^}_N0MMLZS>!XQT$boW`)PX8W%mSQgIIf|6TX0K7oTy&{Bm7G#5p2;R_W zqIbo!%74Wqav=n2-McWFX(-Urd(SUPf!th#zE#UpXq@$384h^g({-?=PJO}D?6rsA z*Z5Cz+>nC`b*K?a4tpzB{xg9N;c$R5s?3MgyL+=}ac*V&~zRDnI%M!BefBx>~E zevw#zkj>?y?raYqI1}22QsI0jKxe*xhgRmq zk5#JQ+6l)JYkL`rkSpa13Kf+Nrgk#{+$O`RH>hf$adK*GclQ{=8|}_?TOkVOj~s9T zHx?1Vo`7sIRE5^#W7>cB;c$rXUFJ(kxKI-=Giz*Nd`p}Oh7Z9P8&QED{WmHov=)hg zeE=+Kr5P>JSWdRhD)nbRPFiWIPLe$5KAHO}QE7xgq8ED6W zau=tN2c}i$#C3ew5`A$ZPSH&Z-AKSvG*k(#d3#=eJk#dMJF^y%W~Twb3hNH&9 z2?paRGv8c$C8_TtJ*CL%-nH8n;2BS22iTLZywGYOs$IWS#eeSj=6P_~Lcf zY~xzWGE3md%aKH51XhkqOOC)~ZFFdzwD1WPh9634xJ_Fz*U3~lvH2E3BkGdo8)Rdu zAWt*FVHHnq`?=sW4z`1m(bgLdg|ArDfJ?#fe0}RRfgnBwy6uz1E(AXwQi+pc$K~eG zaGn;E{T*0AD4SPAoC1yaXKG!-Y$RU}+tHwWy-PR?XJ{$N1mo+yF^~BT2ZGCs3_(0; z%X2W?@{=)mW>y3sOr7@eSOUT_531&eYTA`;AO0@^K^Q8tw%|4*^uYZWz00N4ooS$s z%0g!`COY9=kwbPcA#Tft0Qtr1>lcls@G0+{3P}J-j*XOu1mQw7AZ>#mPr>Q;v(;uK z{q>=vg4uK$XUSB}(CZ1Y%fc(|>$_iel6AC6-`yl2NcLYM-ovEibYjFd@1FBqMltZN z9}2g=qQ%GaCs6run^(Jp`N+5(%1ZoJ;ovs$0r_%BP+~jEs<-)fy=J)%VW9=3(FM3F zS3hj9sA2jBUYyK1Y@m-6?98Tw307CkRFAb5jA}|e9nN7f%xGf{7B>P*80*FgWp@lG z7~a3zL@gkgWbeHY;_V*7Vie=*iJ=@yvA}|Of3_Zlzh{>z8YuW2C!NNHQJJyhqTG=> zDf1+HdL;~)9HSrWS70XiZXV<20mTO935_0~$P7H*a33Yc;9A~N-PA)?6ppc~@3+D? z&-$Nb5_=&8AkL(rMBx`^;mZX}oqz{amAak1!oLoQx??zF%y^Tcj*{^wclfu-KC`R5 zKQd|y{&gHJw~@+1iOW$MoDo@YlQg6@J4)=s8TdV*K0;sf{jMkx4l`4g0{4kc7%#f# zD~V7=%VBk1^x3Hbxogj(-!3Dhc5fI1t{!U4AWj%CxUv`ol!yi^s(-v43f)Rl*~_F@ zk`(L~^hU#~+Y362eoent@8EbC>yVk6n6HzX!%k2ha0y4#Ku2jJ)NaoXIK|RK^^$8{ zZechEn+xcCOo(|)d|{p(4jx#i*z+nL^u^8rI`j>mLun`bScjC5N*U@@t~<458Zw;T9+_bxC5ho4FKU(Ql{3 z#+VmJE46P~Ux2O<@rzXBaG>JV*pr%(HUN5rOyda%>KH6)e*QF z6|YPlQ9?Z9fFqWR(cma+GW`0?(VQ5x)$TRje_z@@3aA{k1K^Qh@MuIwa|OdCnBI-L}x=WM+C6 zC&$M_sDwqnw{ARhZ_U^?(vsKN0=^$B?!Uj@4L>EH(t1@x?Avt;f1>sbj3I%wi9f@p zNoo6re*-7Ub(YweVA{=OLYRThg%gt{3fKx7>Q#a7PcuS=XFudi4Y4JXotK`e1;rF! z{0gyi%!JQzEj0)|;GHnqh)NG=ArFsBP#KAgI1)1up$Yr>Fu{M&>}d zUhH(;1=yG2`i0KTU@bVM<3@ZI(UxYwiWpyUy(u+4&U?LW(m(Nwj}(X6nZQ?{1l%F>q9$hl9#S9uri@*1OTK?8#5s3#T<=m3wiQW>2MPadXE_X`mm%TjN`5D@5FA?yA zCn1R1zx^JMC#i|49_KMOf&<$wY;MsLC@{4^$DO|d!eOE8rCq7?1aZ_%iL2>ZiDHZe zYamFJml3s`LR>Plmj7-Z;K(ZxJ9wg;en-hu4faSJBua^ zCoP~-pDt(*P#$a`v?t0u*S%99{<&`?xqR+MU>rc$fJxD6`b4QhKHI=u2_{N0Y$_eE zCnr*sb^l3^PJy669GgW7jXN2c@e3KJ984!Ca z0;{Wen(M0)HXw|xDB=cbuAUe4O^ysoI~hb*NgrA|`Y(V9w`Ybt#up(0N_{wFl2G4X z=N#GxI)REez?v|$OSf@?x5Xk}B;D|2?drs-J7QxBsAwjZ2a66>PlMM-{29C)2(wuL z;u0A)_EeeTHaY>p!jfcci-?7=B|5jO;k>&9zk}ZSsvD&PPPBTfM_WlStsIh!h*|Lq8exS<=HoGk zS+b^e`SE*q+t(Fxb=P}%jYW?YraD==kFu)BmTQtfUUl&9r&>i%S>~_reb$L$Fx~G5 zE8HGy`hWn7*UAx{g45QeU$S|74%B|v1RX0@7Ap>On24j^`}u~;EoZ#QRQ!mPtv3*q zI*WzfI*7)CAOkgQoc?Uon6Di4;U~rS(AW6>eY6f}P?o}l^~qsy2XDwvTvESaKX}{- z9_XY=jpH}GN`j}8FjG1D*Dz2`z<+*c)Yal|Z0UPJAVV(Qn3xl~+(_#9^IM1Al($VK zTPU$Q-%oH=^thu-Z1QVZ(4gVPnUItr{8y^uqb{)Fzli-_H@O2#J=Kcb?mf^%xHOnN ziV@v*V$`|;2w{L(_&|i|n-WXizt-tI_nt!`{OA-ep(%cQUeajCSy)j=m3Z|Dyh(pR@woz{F&b)` zO2j=|$L>wO^u>g{Ib!-JAl`mR=w>UvCReaJ22emmtdlZ`VDWS~fncq6r^{_dkVjZ+ zanE3-Wsi3i<956G1wXzjWL^V@_01k50-+(P6S}ehZOsHkiU7U0{Sbwy5v>w}T|q@j zr|}2%d}9NTd7mp$YaSA#ynL~&9f2ZjDz!4l?Yfa`3J^3Z*S>dV{EL{#&tG^_B13dz zE$5SIFS%Riv5w^q1ooEpyr56${qr8SleC5Qp0=v)Yv@@HC;ym4$!M;{XFAV}XNa|> zxU_2d)ogA)&LMNz&=UxU#)2go0=4^>IKqtvm0ZsBW7zyMvg>jbxk6lco*9usm?6ky zCRR3{{AyHe(Dp6KG8o?tKKIR*!N)}3m|4g`5md|c&1dj4HbuUh<`XBB!i`QB_v(ZM zrFQg<`4vLl)_LESNk~HR_RhkEJ7=!KrKT?L;Z zOIMFnYnP>9uY$I6RQl-%?`p=&^BggJk0g z>c5}=fH&kaIppqy%0$ufku+?uW-uRAoQtq&E%>gl`g%Z)4Gl;rwe|3?4KTWs3IHpa$lGxOx6VcA2HzW!CF+p^5%yzRU)E zMEQ&u-=UCz+exFTGj(2=Z-zFzC^XKg5*|v395r%z)ilp(y0TUS^~{}@mqt-W=zq?$ z=thKtL)dm3Y&Gjy3F!CYPT_LDL$jGmwKap^F~!{|)zLenp#?CY-&`}sC!XMK$3PIuf`ZO(yaQhFmc zrdTt2o`Qv2ucDCfxbv9nGipMik2a?~W_d#{X~|3`8=5tatOe&1jpn*K8U)-M{(Y7| z;6}L8Z@&}i7BK;Zzywm+oz=A|=b3P;`rr5ipt}2XKNWf#kOPYEXb6}t9k-{98sVBt za!X<%MG#yQRL|APJh@_P1XS08`>G-*45(jmIo`PYRgza3o75BGyUd6NxS6Dx19lyUm zlOpfRxWiJz<-Wf&PU!LhZ zE+1mpx>s*k8@%ZcUjln@aM|TZd>M!trMp&KNbHBDw1yK~DIB1;8~U5a=ky=HUPZ-a zX$h}TdC_}aN{4A=6yW%|CD_dKs%b-%1Dx>iE3Jh~Z~Q{A3*rNSLh~p}9Qg(&j}`xL zBM!(`qZb|45g%!Q{4%LdHh(Z zLNOyGH2U=TjZxK^D$})`kFI9@G1q%C`mB!)K;&N>s2WKJS-JLvX0q*?%Zhcu>K>m1&Fm=OZzV zS?~0>>}|nKnI_ClUj4I?5PM2Z$gA9{W@QW~!Opnu)h#T6Jh)W48 zY)VBMq;VGdqvglxq+u<63Jjm%bxpQPqq{fsm$6vTIE_Kb0y{Ds9&7aq%nF@o(wKTi zDwT6a=)4IO0GE$qHO-QW!=O_6exKTqgY~6;4o5q+X#>U6$R{||Va+f`d%m%NA@|Zc z=wDKVT#DJ_&TbP{yI`CRsQ}ZNr zL><-3YHBsjz8!XmNfcN4KM{vRe6p7o7HcQcFtGOdI~aUTni8zd3;PBH{;5}oW4Z7( zW5H82EU@*I0bqKe1 zP2KsZR=B@X)2CY%BLe5dd}{%`CIK}Dn26-l#q-{qb&Un-m8W|-T70HbM^|zxIzF+M zh7H5bzXS-pgG0-rLJO3cYbghNq0$`lD~1!5zrPHp!1~aNvyp54<05HN!utLYs=WPz zAsEm4c57JXz>LD7cM>@$S@iN%I* zXIH+JjQHV-VJr6dDe$;OoqrSj^%KNWAKmb2>6~pj&q>dnl)3rP;fi5-0<7`B{U_wtmCM87 zAjZ;tN&e?5kvtGv)^DU!pkmg8Olki!kFva5&9UBmi}== zLRM>?Ejc#cGXK=>%jnnMf1D3>bhi=$RD^`0g8Oi4lD8_f<#?^L6ppwHhV(OX-aq|p1-Wg7m7-NSUSzOyZ>*qM zGzx1?{d4z|&IdTu`<|!6`3?My0{1@O#|2j=a5eEXDMrV#+wW!E!TVK49||C-yj6>% zp1G$aJ6<<>z4+ZyIXk$o9!RK5QgYV&4c%K>3=s+f#Y#t|dLmV}8f(&@c&sNoM_PGH9 zC2p$KObkE&14hnV+~iRdPgvdSl#TcEfxuPAM-!H64|#`|2W7U_XSo6dZQN4_+}hy3H^W=Cz6l=x%_>z8O-TILfUbn9+}0u?(N;Y*~D`3Xe$K<1Qw2 z07ie4ktB|higOlBhsMN-f$~yqsrg5elFv6QWNu}I*sCD5uq*rm>LNj{+%g010^r$k zzosy6GupWOST@h^ZRZuHeuA_}?}T1#M0q%rk0;jbtCfpql@ENB!KwL>p+6;uHA1c` zzE4;Fu&F`UxN&S+jD+Zb=f{WUlza2gsG;#XCGfWyHF(suh)F;zln7BA^5Et#V^; z;fk?pj1{e<>%-=98nK1IYJ`e}(P_o9fa+yR}VhM7n{{%^-M6-NLZ$!p3- z`7*JwDB$4Tf3+b8rtEx=Am*bGPzCUW04 z1@f1_HdSflBS_6hzc?!_=s!ex6M9_;3!*8Cj!~3313KC&CHaueQB%`m-+nuMKT7mT zkr(}ncE3Lmau#$DJQZyEIvzT`6MRwGsQphk7P4U`?;;32&8CY#Dd}c0-3S+bvGf(0 z=~MH2;OMGiKnQZX5o%yN$>Pl-7*d@B)(Q#_U4>gRy5bgx=+f_bXfc;>+;@d)J#=fd z_Xtd)CGMI%y(fDWX+t6!eA;yW@@CH1ik0L+V+0qfP^*?zJY+Wg;sGlZFfy4fLU1^e zWyWIJ8N3Jns??707>IB+%O%6b#;=h%af%HzM7E7u<{&lm zRZS#uA~q_`?x`G!%oTKINY;b$g2E8|f4Q1n zRy`W^UHi2{0l>5y;*(&wcS8-x#!-S?^d{9jYl$@;_RlNK4_oCP)-viBewq55yo}g+ z_>{U&Z^=Xg~XdX!}_m2HuUkPANG+KUNT3)X-OLUUDsp{gsouF+@orb4%rn0h2XUpv)4K4$M|ChjGy< zDXyFEdHCk(mjoD(v4Y31^5p}BAjoP2%RtvkW;j+M&%Z6w=xIdD5HUWYKR0MH+0dbN zk|x$SbCK-rj<)%Ffj0Xgk~XWIS!%T7igL}A<6r2ZJi9BX2(PHvj&|!;KWz!(saDjz zh5^D*FdZfK!`9ZK(IE{?ltI>*D?#kIekwf*bFL;l{lS*FoXcUa>1Q89!^5jH zR*zk$r$^|9W;P3~-eyIV@Xlxz$v)a_N)a`2Ggs74-9n5$eDi`Lmu-s>wL1@1y#><= zG2YJV={gl#MZPZ<_m@tzp%(KF!%sdPpL#J&Uhg+GK6_81sZitl0$4_Y9(JvjkLTT0 zvEJx?7Zak2B>0Qn?^isv6^U90=035->K?Jz8E z5K^xI*V&dgO1{z4Ye)2gK>`Mum^u7;idkYC1SUFedui zbw3!4K@d~i>adcW#Uu4+5SXic)Uy}r#o8oJ#N0r zW*2u2e;dcvc@r#UerACxi-DJCLmT6Rqb8I%Z}QnU(ChYB@1b6{rN$2Ys~8PY({FeT zz^-+^sL$iRvyZ_7*cqXX4>tIrgT6{#b=QV(oPl#A`pUOn7FM`wdXh-Uyc=A$pQK2;1Wq9fZmpP${$s z_{%4s8j%gTrZSMGujoGB} zOxR0(!^#eJEo7TlU!!B_*Jj^Q4_R}x#cwR=qnD{*P)_f;>{xG5@aY=k zCJk083gz0M0yJaGqyL_F(|I0r|&0sR*9YJnDpouhlWo>YWuL}O^~?Juxqi=pJ-o53mj3=i z<8)iQX_d{g`IT63;YdkL6RSx5N8fq#u7(u8y=oeZH~{P!<)Hh^oFgHf*JA@MewwAt z=eWfu_VV&q%fLnV;HhLHRvD^(3#M`RD)L0#V$`FPXc#Mrv( zxpfmJ{j>^zGD>reZ2qQZFRwr2MNCVoIN;^3k@9m2GoN0#-8b9)Bn~Qa5_T)6{XZ5l z22aFKkYt8CPjZ@nklZ_+>lJ&$g+ev@e{5;$8}a*IR6R_*umL!~##VP6)DQ%&G!rrG za#gtn9_R2F+3J%zUSd@GZk`76xC@cSJPUCt&HCrp$|%q&l}UA(LdYKi<3MI|MjMR# z?t4vOeGvh3Q!^n#_hFqOBGbIoWngi$&1&oRRA!=93v6y7H$*ZMxp{I2j9!v{y5fDB zrkyM3>{U;% zT)YkRI6S!+dzI{m8(%!D-83FAu?%o4{_blR(oCtlN)e% z^_Ht&U+{D#Iw+vSXdPMIVRuexv^CRyMrfhxxZ2+A-~nR9VC^tJ9~kYP7&)c!AUv8L zp#RBK)^u^)aWIqfu6vWNywYkS1<8GXBwzb*ycmZ3d2kf=9PdBT&smh`=1tIO&Nl%N zx)Fk$T;_Zu&3pJfi^wP4=uG=OSm<}r0&X}Qasze|SOY&U&)?zJmOKJp7oSI#nhJDp zZdpA8tCAQ-8weK8eU}Kdgg{QZ-ydRo{za&Xf&bZM)$aJa1+?#XoP0c-*sTdS?mgZ6 z5p1&W9f^J-XpP(MbNaj6lJOetK*5Q=QQLvSQb54p+X|Q}{X{XAm8d~~>r72F$Qvyp zC61@>!7KMdcTs9pLVjie4}~`*C1j5V8?_b{N5LucdGPOANfnki84T$WUzO7>XK6Bx zEc?(EmBgQWd%yobw?%B5V9XDoPx;3x!>y)E|wKKLdJ zIlxv1x(tKhC-Q!3JvC8}MVP=fYn_MXjp@tI!Rqd|z34TO_QObZ0ec0m6ndnDf13Z`q1iokd=ut;InF}MvMqR#^))@{7M{Km z@^|YHa8>Uz>NB|N_7TYzuCZ;=sx=|TCxnrQg8@oB-@g!i=g}#)K;hHmtMB^YAEMhn z%nAP4R(XsTA=I|;!1`*+ye*(2`zNEz9UFghIYe&G{F4K2F?j#Ttws9znb1Y`vf;tK z_4bbgM)O}8SRa#xps6!u4Bd);9{5<(%!xQNYYuIRUd48&ldr$&6U>)r~sg}SccSX@+Tf{Un%4X4t2+` zlM8Ne3pV+Dd);arx|`ljhI3o+kNwcSmzO?CgYb}g7h2shWFvs!(P8l$^48$Z(8LC@ zEtUQA{9zHe$vucm7f$nm;g-ue+wUQ~Gsd#Lrk@_j(Q!mCWlf@Z8X|sWMx2fV0F9%9 zazwBqyZ`N~T_qa=vQW3B-@t^OcEbXHE33vJqZ3T{^hP?xh?;FsK9$si^uTK`){l3u zkIro?k(b<)#YS?%&Sz|qzi!{4y*4eCo9*rBMd{ra1{VodohPf*d+ia@hF}4;4%uAO zF>7ckh0AYx2P}~rhsJoH4UIK{)0Mf)+<(5J;g)bI#*$q=52+pe*!HQ?Z{OVHEIc*_ ze5wRVZ#&r~X-FBNbwX{CFK#JDKHoR#81|g+s#3_y9Z=o9n$cMx-m}%&Kp}5;?djL0 z&j>1PmeIi)bLz+3Q^Ai?PIe4OOX*SEJ)?3_S--3>rtH`ftuqi zE7#8m94IOU*!#WY?mTh0Nbz;&P{S#%_ixp47HC58Hp8rW&TRh7ved&D3>M|by}M0A z&T8Er4aG=BChpnY&zzRRd7t`tTt!Jd+gx<(nx;#O@fk4BBW9^ zcEWkieZmtD=NlH`pQV`DIyOX!|4Plucw$RdTokj2q%;frtDdG7pPJ1j?xUWp`)ks_ z>#-KY4*eny-jva79?c-*-4QIEuj-e3xbrXM!mj!?y8Ye)}CEZGbfl3w% z=Z6`vV4Ta^Y-6Lv`cbZ0%)ELfU#x z{eLY>acr{482xU`mlNBG38=evQmPi8UA0wjVD=~;$!4FB$qJ_7;dIIh^q(W=9it??sy^cf zHST|&Cp$kD==4O6b((=nu;eU7x*e>i3}pXi{i>>oh2=kfeOYo6`7GCIHnBkE+KW2~ z&%Kw$d+*ht3vl=-s~q*tlB)eY&qlBE?R=W`ZU0s(I$l3lz;$!#&aj0c#=54{?_C1> z;_%&-YpaeZw|(@-d-nP72Z+Slb9&3!MQ+_$c*1n|4Gv286k%xbO0olAEsOpaT#f6? z!xQ=G|0$~&sT#jG+~@wu47glCL4!uAay0PGx5xI4d+Mrhx)3&bg)hQ4&!2ZH|6sG? zK!fW^f2f(Po4<&VL_Z1Z)P3blXLweZC=P;vCOS%Nz{f8K0h8oO=zu-<#*_1$cV{_| z?;m%U`yWncg)bZ0>g3<8K&K?T^iB1d;@)|5Bs5_rS7T|~7f)mH#>inm#nf9=N7x(| zuZLMt1i6f!Bu->TgM|l-=y8HRO`v1=k9_g} zuyG|-8&LJhstC8ys25ra{S#2bA zhZ5_U_4-I+w|0Ig2x|Q_W3}`nAU|=1h5Y5#&-aNIIzIba{onqIXcGK?j`RZvX%Q diff --git a/images/square-logos/endocode.png b/images/square-logos/endocode.png new file mode 100644 index 0000000000000000000000000000000000000000..a90189d6f99f6467accc7809ba304fdfb8a0437e GIT binary patch literal 5231 zcmai$WmMG7+sA)|bT+Gz%gwB})j>E!`#Eoze>u(j~c+E}aS@NdCF+ zbDs0RpMEj(Idjfj-mNGuhV;leg@Kse5bRSs!FjBEF9_F3_m8Az@yQrAB z0{|}RUjqfm%%%bW9BoH1`1x}Os0Y;D0qR1p3I@}=xIyh5U)uqI*K&>?L|<=@Lh54e zm%MsJK(abimmG^;S3Wv`EP<7i0h>rIf+2s2T&I^v7iMq38=TP76X(jNrkVuWLM11MgzxL5#OGYif~8-7o?FQ4%OB_IR^?vWs- zjuk)#$oj;}mjJR#C;>U?ta?BmI$$|!V~qr!a|4!a@3&`xfSk(=UlhPBnSmT7F9Dz@ zwTn;y93+9NNy8{bz?cspvsdpI2Nt;jK2;-o6`-yafKL$NHUL<70H01oCHxp;~3i^7MIU zPzwYK5pJA~0YF{?`NM0^ZoMW5Y9=N`Vp|9-xc7T7?isDEk#}2@l`gUX@Xf=2`tBKT z00H)@iLLBYUV6bX@M?(dT)lE<+Ppmnq4s0xy24;!ze*Kr6-av|X9 zGx$UxwJYm?;*EG9&bop;rZ+B$}CiID$-vQ9VIe zgkO;V zIwH?)ChKA7B!P->Y!P&rJiXNuITd3KW35G%GJ0BOA>w6hQEapjojx|kq%!p;)^_4Q z{Z!Th{Nctb&zR;(;z)Ukd?Ud9qRb?bU;(zacvRK;BK;YX8Ks#wx=ee|%Cm%29y28k zFWWjbV2UR{qv!e(x|y^2c~fwcW|QI63@680*0tzT?>oEh$SXDKEut-o$xYJp|_dhc!OsDYK6qC><^wYj-``iC0seXr)aV z&5Z6T@22gd{et1)hmi*lML^i8v#2nsAk;9b+H{Q)>e*=OA$>kk{)6$@Vgs$aL4sY!5B$9rn_+GykYHvJ;N)95f|D8g2Y` zFPth;(^8EqRVsBVl@Gc^YK}^CO1cy~Os)e7nFzkoM%wx(rpKc?_GtylSLgS7)8%{xrIHoOT& z)eCj4#juJCs}oA;-_mX$k)BI_|u;~@B`?|uFLaM@A7KC40yp~%{ zm{Yof=M`vKv|XrOW{}6;WNgkj$5{2XI;}VlXN}04*WK$kM`z*RbH3vueJRsL@6mm<@X-dR9OqKiK`F(KYnzJftBsRgnR z*|zr_t+ESkxEpvA-OBqU1#{S`F}~`N2{%rQe95l9DftoVVoPzDx)C>>@pf0$EAa-9t2Y7%N&bi{%n+jr^eL)^(|Jz2 z^2jKy#=nczN7E_rW$#E(Z!?P10j>egR;b^>%EFPkwlS~Cdb8D4SPqRed1O=#8GlaV(C6+y7e5<};&OY^|gV6E5lFvNN zRLauJyf(8oYu6r=o}S-d^SMz*JSEH)0-1QLo#_udF7E}+CP7XoV{%e*{QPJig5+-be39c1ljXIQ`^t+JM+1HTq||ItIPW*#r^zTuDH}{*O?FWV&LL@onqDBjqP?~v||az zc3j=5-D&Yl_DF6Cyc#|yV|KT)c(U^T6&#j#Hoc;Jfe{)!d6#e=M+kltmk~D_h97p2 zD<&;2{$0lHcJHPXJZU@0noD_Ca5q{*Nx|!XId`xyF`Yi0pLUv-)Z_fF_;w$DKwXO% z>>GU2J?tgO|MHjN^-(Wu1x9yLxK60O`HucQ`@O@T`g6Uh((5GZq@;UvwDhwZ8$oWw zgKyH?sOV|}fDa1*1Ox-XpZf>y0l-^60NA$#0Eu(}poAt`3@AOQX{M@zoW9rcVU};a zp&i|jjIWJRjZI!O^3ecao0y7~szWRv-)&K9CQ8)( zyYN5w{|Ef1p#L-ApEntBO7*b_ZkdJnV~DXSAHKB2|Dn9$vw@yRGJCuZSKBC_T3^E) zi)*Sxxx;<;$N@DK^+WE(du%TZFWO7esobAbC5!di7@2_*(QRmpB$V!AQ>J>Oip}_6 zjZ2xbamG+fOf&*+;Ubn?KbWU73ZT%s?i@$geI~zaK^L)a?|IR9e)pd=_)FOh{qd0R zn1)jZBHhK@>L7^1XhC)C6(DAW!;g0g?hDzp~~^}Gn@_$pKh zkn_6Lt@xyZhBc-O&5t9pzK_n7wF4`f)-*rpUE=7Rk|_=le`JH%CLV93rX$T!H6~q- z+XFs`c!Q|CoiTp=$@cd^i9TEDw&3O?g_XXGBSb^W_dNaGRJ*x5$}CwP2awW^WIrjSAR z1z_xv|DzTC?>Sdf3C4Pcx;R1vm$GVmoZ`h*rxccSd;;6eDezMFeh{WHVJD9jyc#2R zn7EbY*V)2%`;_FNjwfO*8+kRSCLO+a7R(Y)8#BrUuug%L<5bFJRlRy{gCj?2IV`@N*2Gx~&d+^g8FZ<#1RH3hCeL{%D$|OeJ3C&EMn5WCa zWxtOwEEVJtxZH-dOly8{!ozHCU@dFvO$dIfU+zKu;)q&#(r$sSG|J8LEbFMR5b(5B zSMKHVVL$2$l=3<;q-FN-I!mf?E+s!owsO2mm8Cp#RSx?|GuPHxTn?XdgJGis{T{~f zLoVr#4K7OOdS~bKGxm9QW56gKwRfX|;){hQpF4k>;rZQ=7QsMF&_W^krBf=dvHr-x zVNw688yDP&u8=u$R5v-~-N9y9{2~pVt_WfQUAc3}=Bja;VT*mkLwoF==qoW&jhRq^ z=a;SadV%m4d;$(-v{EmO+q$VqUSk=Egqn4Cr5 zshyrHdtOIW9V#^!E97UbJD?NqSMuIvBhnjNWPVQ{#f&euu5#3vK*P>1vcV(B9}DW{ z=Ln-Xg#!1*#wU;Q2)vHTY+M(J5G3|Oltbe4Z`0!)`yJGX*__suAR5dT9-Sf}fkyjc zq>73-+3xR^{VdQ}IGG$NZ7W?z5?$m4n&^iMP2Sg|mY0Um-Cj zUGZJw*JLH4%Gt}P!9q@J)1yH035My26I`Qe#2?5LMVd<33Qd*$nAZW?C62k2zEJxRx+Wn!28$C|4a$yUK z{&uLyM(o2z#;s{qeTnx~%WRPcizJd;D|o=oJdK+JdOse!HJjT|+!)Bd(n}R+$>_nHSLGQ)6 zWnF$=%cf|5Th{Ep+Re+hX#Cv_=4slg2Rb@-)zIKw)Ghg{P|B)L5#c|VLEjx*iP^2( z67+_;DV*o>B=UV9iPXGM@Fman9pO!!C5;qg4%SVmWq1d#m8RbQAJ?#heH+qVaKIqh zT-;SiZ3$C?U+M5z7{b}|Grf9SYImtrIJU?%#TFz1X>3?$JM&r)5k+$KJ34XlrzSNz z>u9DM`&W)i%;r}_>+Z0zqpMgvK~>u80L7HM**zQdkD?=^m(SOad5CtrH}qI?dnB=? zQ~BxfiogHi4TNBR^YcVGDS#Tm(&JENMu^?BSeQB(B`53Oo_`R(empTjxlQICe(nrW z-8u2!AVu>IoKZ2c-SH@d_&g;xK~`%KH%dc-=Iwt@zGap_LPrczENAj*ju{v-E~~jY zADYr&nd$X|Y$F%sH4f+x{y+8VY?+f_ao;}}DbIZsw#_|KE$ z@>9Q#l%5ZH$D)yzNTuq573W(oDwveOm_$(K;U9Eg*3zlgq+LMH*}xm9%el)W~sMWy*tN+AjcsQk#MH^EU8zVDZQ7QfketXnSZ&&zZKvg z?(omAKlE?;c#x6*A|Zbl{tp5F-D3XN0Ik4(ocXu#{BvtmVfH;fK(##2mrJfL_h58@ Ns-l)cjl5;hzW_Vd&9wjk literal 0 HcmV?d00001 diff --git a/images/square-logos/giant_swarm.png b/images/square-logos/giant_swarm.png new file mode 100644 index 0000000000000000000000000000000000000000..6434f98735d8106dd8c799ea4349d072a750c399 GIT binary patch literal 9772 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

>52LK36D#}Re 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 literal 0 HcmV?d00001 From 0bb20de3a46b9d358d82fa9129e5797c4aafc834 Mon Sep 17 00:00:00 2001 From: chrismarino Date: Tue, 15 Nov 2016 21:39:54 -0800 Subject: [PATCH 6/7] Fix broken link by removing invalid characters.... (#1605) * Fix broken link by removing invalid characters.... The link to this page is broken because of invalid characters introduced with PR #1549. * Update networking.md --- docs/admin/networking.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/admin/networking.md b/docs/admin/networking.md index 2acbf062d4..0cfd9d7989 100644 --- a/docs/admin/networking.md +++ b/docs/admin/networking.md @@ -83,7 +83,7 @@ talk to other VMs in your project. This is the same basic model. Until now this document has talked about containers. In reality, Kubernetes applies IP addresses at the `Pod` scope - containers within a `Pod` share their network namespaces - including their IP address. This means that containers -within a `Pod` can all reach each other’s ports on `localhost`. This does imply +within a `Pod` can all reach each other's ports on `localhost`. This does imply that containers within a `Pod` must coordinate port usage, but this is no different than processes in a VM. We call this the "IP-per-pod" model. This is implemented in Docker as a "pod container" which holds the network namespace @@ -163,7 +163,7 @@ Lars Kellogg-Stedman. [Weave Net](https://www.weave.works/products/weave-net/) is a resilient and simple to use network for Kubernetes and its hosted applications. Weave Net runs as a [CNI plug-in](https://www.weave.works/docs/net/latest/cni-plugin/) -or stand-alone. In either version, it doesn’t require any configuration or extra code +or stand-alone. In either version, it doesn't require any configuration or extra code to run, and in both cases, the network provides one IP address per pod - as is standard for Kubernetes. From d41078c48226729c85cdd17280a5b3b09b396b83 Mon Sep 17 00:00:00 2001 From: Eric Tune Date: Thu, 7 Jul 2016 10:53:13 -0700 Subject: [PATCH 7/7] Delete references to v1beta3, which was deleted --- docs/api.md | 43 ------------------------------------------- 1 file changed, 43 deletions(-) diff --git a/docs/api.md b/docs/api.md index aa9aea1d7f..9ea627721e 100644 --- a/docs/api.md +++ b/docs/api.md @@ -95,46 +95,3 @@ DaemonSets, Deployments, HorizontalPodAutoscalers, Ingress, Jobs and ReplicaSets Other extensions resources can be enabled by setting runtime-config on apiserver. runtime-config accepts comma separated values. For ex: to disable deployments and jobs, set `--runtime-config=extensions/v1beta1/deployments=false,extensions/v1beta1/jobs=false` - -## v1beta1, v1beta2, and v1beta3 are deprecated; please move to v1 ASAP - -As of June 4, 2015, the Kubernetes v1 API has been enabled by default. The v1beta1 and v1beta2 APIs were deleted on June 1, 2015. v1beta3 is planned to be deleted on July 6, 2015. - -### v1 conversion tips (from v1beta3) - -We're working to convert all documentation and examples to v1. Use `kubectl create --validate` in order to validate your json or yaml against our Swagger spec. - -Changes to services are the most significant difference between v1beta3 and v1. - -* The `service.spec.portalIP` property is renamed to `service.spec.clusterIP`. -* The `service.spec.createExternalLoadBalancer` property is removed. Specify `service.spec.type: "LoadBalancer"` to create an external load balancer instead. -* The `service.spec.publicIPs` property is deprecated and now called `service.spec.deprecatedPublicIPs`. This property will be removed entirely when v1beta3 is removed. The vast majority of users of this field were using it to expose services on ports on the node. Those users should specify `service.spec.type: "NodePort"` instead. Read [External Services](/docs/user-guide/services/#external-services) for more info. If this is not sufficient for your use case, please file an issue or contact @thockin. - -Some other difference between v1beta3 and v1: - -* The `pod.spec.containers[*].privileged` and `pod.spec.containers[*].capabilities` properties are now nested under the `pod.spec.containers[*].securityContext` property. See [Security Contexts](/docs/user-guide/security-context). -* The `pod.spec.host` property is renamed to `pod.spec.nodeName`. -* The `endpoints.subsets[*].addresses.IP` property is renamed to `endpoints.subsets[*].addresses.ip`. -* The `pod.status.containerStatuses[*].state.termination` and `pod.status.containerStatuses[*].lastState.termination` properties are renamed to `pod.status.containerStatuses[*].state.terminated` and `pod.status.containerStatuses[*].lastState.terminated` respectively. -* The `pod.status.Condition` property is renamed to `pod.status.conditions`. -* The `status.details.id` property is renamed to `status.details.name`. - -### v1beta3 conversion tips (from v1beta1/2) - -Some important differences between v1beta1/2 and v1beta3: - -* The resource `id` is now called `name`. -* `name`, `labels`, `annotations`, and other metadata are now nested in a map called `metadata` -* `desiredState` is now called `spec`, and `currentState` is now called `status` -* `/minions` has been moved to `/nodes`, and the resource has kind `Node` -* The namespace is required (for all namespaced resources) and has moved from a URL parameter to the path: `/api/v1beta3/namespaces/{namespace}/{resource_collection}/{resource_name}`. If you were not using a namespace before, use `default` here. -* The names of all resource collections are now lower cased - instead of `replicationControllers`, use `replicationcontrollers`. -* To watch for changes to a resource, open an HTTP or Websocket connection to the collection query and provide the `?watch=true` query parameter along with the desired `resourceVersion` parameter to watch from. -* The `labels` query parameter has been renamed to `labelSelector`. -* The `fields` query parameter has been renamed to `fieldSelector`. -* The container `entrypoint` has been renamed to `command`, and `command` has been renamed to `args`. -* Container, volume, and node resources are expressed as nested maps (e.g., `resources{cpu:1}`) rather than as individual fields, and resource values support [scaling suffixes](/docs/user-guide/compute-resources/#specifying-resource-quantities) rather than fixed scales (e.g., milli-cores). -* Restart policy is represented simply as a string (e.g., `"Always"`) rather than as a nested map (`always{}`). -* Pull policies changed from `PullAlways`, `PullNever`, and `PullIfNotPresent` to `Always`, `Never`, and `IfNotPresent`. -* The volume `source` is inlined into `volume` rather than nested. -* Host volumes have been changed from `hostDir` to `hostPath` to better reflect that they can be files or directories. \ No newline at end of file