Skip to content

Commit 7c9439a

Browse files
committed
Update create_deployment notebook
1 parent 5521d84 commit 7c9439a

File tree

1 file changed

+209
-19
lines changed

1 file changed

+209
-19
lines changed
Lines changed: 209 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,249 @@
11
{
22
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"metadata": {
6+
"deletable": true,
7+
"editable": true
8+
},
9+
"source": [
10+
"How to create a Deployment\n",
11+
"==========================\n",
12+
"\n",
13+
"In this notebook, we show you how to create a Deployment with 3 ReplicaSets.\n",
14+
"These ReplicaSets are owned by the Deployment and are managed by the Deployment controller"
15+
]
16+
},
317
{
418
"cell_type": "code",
519
"execution_count": null,
620
"metadata": {
7-
"collapsed": true
21+
"collapsed": true,
22+
"deletable": true,
23+
"editable": true
824
},
925
"outputs": [],
1026
"source": [
1127
"from kubernetes import client, config"
1228
]
1329
},
30+
{
31+
"cell_type": "markdown",
32+
"metadata": {
33+
"deletable": true,
34+
"editable": true
35+
},
36+
"source": [
37+
"### Load config from default location"
38+
]
39+
},
1440
{
1541
"cell_type": "code",
1642
"execution_count": null,
1743
"metadata": {
18-
"collapsed": true
44+
"collapsed": true,
45+
"deletable": true,
46+
"editable": true
1947
},
2048
"outputs": [],
2149
"source": [
22-
"client.Configuration().host=\"http://localhost:8080\""
50+
"config.load_kube_config()\n",
51+
"extension = client.ExtensionsV1beta1Api()"
52+
]
53+
},
54+
{
55+
"cell_type": "markdown",
56+
"metadata": {
57+
"deletable": true,
58+
"editable": true
59+
},
60+
"source": [
61+
"### Create Deployment object"
2362
]
2463
},
2564
{
2665
"cell_type": "code",
2766
"execution_count": null,
2867
"metadata": {
29-
"collapsed": true
68+
"collapsed": true,
69+
"deletable": true,
70+
"editable": true
3071
},
3172
"outputs": [],
3273
"source": [
33-
"extensions = client.ExtensionsV1beta1Api()"
74+
"deployment = client.ExtensionsV1beta1Deployment()"
75+
]
76+
},
77+
{
78+
"cell_type": "markdown",
79+
"metadata": {
80+
"deletable": true,
81+
"editable": true
82+
},
83+
"source": [
84+
"### Fill required Deployment fields (apiVersion, kind, and metadata)"
3485
]
3586
},
3687
{
3788
"cell_type": "code",
3889
"execution_count": null,
3990
"metadata": {
40-
"collapsed": true
91+
"collapsed": true,
92+
"deletable": true,
93+
"editable": true
94+
},
95+
"outputs": [],
96+
"source": [
97+
"deployment.api_version = 'extensions/v1beta1'\n",
98+
"deployment.kind = 'Deployment'\n",
99+
"deployment.metadata = client.V1ObjectMeta(name='nginx-deployment')"
100+
]
101+
},
102+
{
103+
"cell_type": "markdown",
104+
"metadata": {
105+
"deletable": true,
106+
"editable": true
107+
},
108+
"source": [
109+
"### A Deployment also needs a .spec section"
110+
]
111+
},
112+
{
113+
"cell_type": "code",
114+
"execution_count": null,
115+
"metadata": {
116+
"collapsed": true,
117+
"deletable": true,
118+
"editable": true
119+
},
120+
"outputs": [],
121+
"source": [
122+
"spec = client.ExtensionsV1beta1DeploymentSpec()\n",
123+
"spec.replicas = 3"
124+
]
125+
},
126+
{
127+
"cell_type": "markdown",
128+
"metadata": {
129+
"deletable": true,
130+
"editable": true
131+
},
132+
"source": [
133+
"### Add Pod template in .spec.template section"
134+
]
135+
},
136+
{
137+
"cell_type": "code",
138+
"execution_count": null,
139+
"metadata": {
140+
"collapsed": true,
141+
"deletable": true,
142+
"editable": true
41143
},
42144
"outputs": [],
43145
"source": [
44-
"body = extensions.V1beta1Deployment()\n",
45-
"namespace = \"default\"\n",
46-
"\n",
47-
"deployment = client.V1beta1Deployment()\n",
48-
"deployment.metadata = client.V1ObjectMeta(name=\"jupyter\")\n",
49-
"spec = client.V1beta1DeploymentSpec()\n",
50146
"spec.template = client.V1PodTemplateSpec()\n",
51-
"spec.template.metadata = client.V1ObjectMeta()\n",
52-
"spec.template.spec = client.V1PodSpec()\n",
53-
"\n",
54-
"\n",
55-
"extensions.create_namespaced_deployment(namespace, body)"
147+
"spec.template.metadata = client.V1ObjectMeta(labels={'app': 'nginx'})\n",
148+
"spec.template.spec = client.V1PodSpec()"
56149
]
150+
},
151+
{
152+
"cell_type": "markdown",
153+
"metadata": {
154+
"deletable": true,
155+
"editable": true
156+
},
157+
"source": [
158+
"### Pod template container description"
159+
]
160+
},
161+
{
162+
"cell_type": "code",
163+
"execution_count": null,
164+
"metadata": {
165+
"collapsed": true,
166+
"deletable": true,
167+
"editable": true
168+
},
169+
"outputs": [],
170+
"source": [
171+
"container = client.V1Container()\n",
172+
"container.name='nginx'\n",
173+
"container.image='nginx:1.7.9'\n",
174+
"container. ports = [client.V1ContainerPort(container_port=80)]"
175+
]
176+
},
177+
{
178+
"cell_type": "code",
179+
"execution_count": null,
180+
"metadata": {
181+
"collapsed": false,
182+
"deletable": true,
183+
"editable": true
184+
},
185+
"outputs": [],
186+
"source": [
187+
"spec.template.spec.containers = [container]\n",
188+
"deployment.spec = spec"
189+
]
190+
},
191+
{
192+
"cell_type": "markdown",
193+
"metadata": {
194+
"deletable": true,
195+
"editable": true
196+
},
197+
"source": [
198+
"### Create Deployment"
199+
]
200+
},
201+
{
202+
"cell_type": "code",
203+
"execution_count": null,
204+
"metadata": {
205+
"collapsed": false,
206+
"deletable": true,
207+
"editable": true
208+
},
209+
"outputs": [],
210+
"source": [
211+
"extension.create_namespaced_deployment(namespace='default', body=deployment)"
212+
]
213+
},
214+
{
215+
"cell_type": "markdown",
216+
"metadata": {
217+
"deletable": true,
218+
"editable": true
219+
},
220+
"source": [
221+
"### Delete Deployment"
222+
]
223+
},
224+
{
225+
"cell_type": "code",
226+
"execution_count": null,
227+
"metadata": {
228+
"collapsed": false,
229+
"deletable": true,
230+
"editable": true
231+
},
232+
"outputs": [],
233+
"source": [
234+
"extension.delete_namespaced_deployment(name='nginx-deployment', namespace='default', body=client.V1DeleteOptions(propagation_policy='Foreground', grace_period_seconds=5))"
235+
]
236+
},
237+
{
238+
"cell_type": "code",
239+
"execution_count": null,
240+
"metadata": {
241+
"collapsed": true,
242+
"deletable": true,
243+
"editable": true
244+
},
245+
"outputs": [],
246+
"source": []
57247
}
58248
],
59249
"metadata": {
@@ -72,9 +262,9 @@
72262
"name": "python",
73263
"nbconvert_exporter": "python",
74264
"pygments_lexer": "ipython2",
75-
"version": "2.7.12"
265+
"version": "2.7.6"
76266
}
77267
},
78268
"nbformat": 4,
79-
"nbformat_minor": 1
269+
"nbformat_minor": 2
80270
}

0 commit comments

Comments
 (0)