Skip to content

Commit 84c057b

Browse files
authored
Merge pull request kubernetes-client#673 from micw523/yaml-list
Extend YAML load functionality to *LIST and multi-resources
2 parents 374233d + c0f71c3 commit 84c057b

14 files changed

+657
-106
lines changed

examples/create_deployment_from_yaml.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ def main():
2323
# default location.
2424
config.load_kube_config()
2525
k8s_client = client.ApiClient()
26-
k8s_api = utils.create_from_yaml(k8s_client, "nginx-deployment.yaml")
26+
utils.create_from_yaml(k8s_client, "nginx-deployment.yaml")
27+
k8s_api = client.ExtensionsV1beta1Api(k8s_client)
2728
deps = k8s_api.read_namespaced_deployment("nginx-deployment", "default")
2829
print("Deployment {0} created".format(deps.metadata.name))
2930

kubernetes/e2e_test/test_utils.py

+268-65
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
{
2+
"kind":"ServiceList",
3+
"apiVersion":"v1",
4+
"items":[
5+
{
6+
"metadata":{
7+
"name":"mock-3",
8+
"labels":{
9+
"app":"mock-3"
10+
}
11+
},
12+
"spec":{
13+
"ports": [{
14+
"protocol": "TCP",
15+
"port": 99,
16+
"targetPort": 9949
17+
}],
18+
"selector":{
19+
"app":"mock-3"
20+
}
21+
}
22+
},
23+
{
24+
"metadata":{
25+
"name":"mock-3",
26+
"labels":{
27+
"app":"mock-3"
28+
}
29+
},
30+
"spec":{
31+
"ports": [{
32+
"protocol": "TCP",
33+
"port": 99,
34+
"targetPort": 9949
35+
}],
36+
"selector":{
37+
"app":"mock-3"
38+
}
39+
}
40+
},
41+
{
42+
"metadata":{
43+
"name":"mock-4",
44+
"labels":{
45+
"app":"mock-4"
46+
}
47+
},
48+
"spec":{
49+
"ports": [{
50+
"protocol": "TCP",
51+
"port": 99,
52+
"targetPort": 9949
53+
}],
54+
"selector":{
55+
"app":"mock-4"
56+
}
57+
}
58+
}
59+
]
60+
}
+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
apiVersion: v1
2+
kind: List
3+
items:
4+
- apiVersion: v1
5+
kind: Service
6+
metadata:
7+
name: list-service-test
8+
spec:
9+
ports:
10+
- protocol: TCP
11+
port: 80
12+
selector:
13+
app: list-deployment-test
14+
- apiVersion: extensions/v1beta1
15+
kind: Deployment
16+
metadata:
17+
name: list-deployment-test
18+
labels:
19+
app: list-deployment-test
20+
spec:
21+
replicas: 1
22+
template:
23+
metadata:
24+
labels:
25+
app: list-deployment-test
26+
spec:
27+
containers:
28+
- name: nginx
29+
image: nginx
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
apiVersion: v1
2+
kind: PodList
3+
items:
4+
- apiVersion: v1
5+
kind: Pod
6+
metadata:
7+
name: mock-pod-0
8+
labels:
9+
app: mock-pod-0
10+
spec:
11+
containers:
12+
- name: mock-pod-0
13+
image: busybox
14+
command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']
15+
- apiVersion: v1
16+
kind: Pod
17+
metadata:
18+
name: mock-pod-1
19+
labels:
20+
app: mock-pod-1
21+
spec:
22+
containers:
23+
- name: mock-pod-1
24+
image: busybox
25+
command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']
26+
---
27+
apiVersion: apps/v1beta1
28+
kind: Deployment
29+
metadata:
30+
name: mock
31+
labels:
32+
app: mock
33+
spec:
34+
replicas: 3
35+
selector:
36+
matchLabels:
37+
app: mock
38+
template:
39+
metadata:
40+
labels:
41+
app: mock
42+
spec:
43+
containers:
44+
- name: mock
45+
image: nginx:1.15.4
46+
ports:
47+
- containerPort: 80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: mock
5+
labels:
6+
app: mock
7+
spec:
8+
ports:
9+
- port: 99
10+
protocol: TCP
11+
targetPort: 9949
12+
selector:
13+
app: mock
14+
---
15+
apiVersion: v1
16+
kind: ReplicationController
17+
metadata:
18+
name: mock
19+
spec:
20+
replicas: 1
21+
selector:
22+
app: mock
23+
template:
24+
metadata:
25+
labels:
26+
app: mock
27+
spec:
28+
containers:
29+
- name: mock-container
30+
image: k8s.gcr.io/pause:2.0
31+
ports:
32+
- containerPort: 9949
33+
protocol: TCP
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
apiVersion: v1
2+
kind: NamespaceList
3+
items:
4+
- apiVersion: v1
5+
kind: Namespace
6+
metadata:
7+
name: mock-1
8+
labels:
9+
name: mock-1
10+
- apiVersion: v1
11+
kind: Namespace
12+
metadata:
13+
name: mock-2
14+
labels:
15+
name: mock-2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
apiVersion: extensions/v1beta1
2+
kind: Deployment
3+
metadata:
4+
name: triple-nginx
5+
spec:
6+
replicas: 3
7+
template:
8+
metadata:
9+
labels:
10+
app: nginx
11+
spec:
12+
containers:
13+
- name: nginx
14+
image: nginx:1.7.9
15+
ports:
16+
- containerPort: 80
17+
---
18+
apiVersion: extensions/v1beta1
19+
kind: Deployment
20+
metadata:
21+
name: triple-nginx
22+
spec:
23+
replicas: 3
24+
template:
25+
metadata:
26+
labels:
27+
app: nginx
28+
spec:
29+
containers:
30+
- name: nginx
31+
image: nginx:1.7.9
32+
ports:
33+
- containerPort: 80
34+
---
35+
apiVersion: extensions/v1beta1
36+
kind: Deployment
37+
metadata:
38+
name: triple-nginx
39+
spec:
40+
replicas: 3
41+
template:
42+
metadata:
43+
labels:
44+
app: nginx
45+
spec:
46+
containers:
47+
- name: nginx
48+
image: nginx:1.7.9
49+
ports:
50+
- containerPort: 80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: mock-2
5+
labels:
6+
app: mock-2
7+
spec:
8+
ports:
9+
- port: 99
10+
protocol: TCP
11+
targetPort: 9949
12+
selector:
13+
app: mock-2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: mock-2
5+
labels:
6+
app: mock-2
7+
spec:
8+
ports:
9+
- port: 99
10+
protocol: TCP
11+
targetPort: 9949
12+
selector:
13+
app: mock-2
14+
---
15+
apiVersion: v1
16+
kind: ReplicationController
17+
metadata:
18+
name: mock-2
19+
spec:
20+
replicas: 1
21+
selector:
22+
app: mock-2
23+
template:
24+
metadata:
25+
labels:
26+
app: mock-2
27+
spec:
28+
containers:
29+
- name: mock-container
30+
image: k8s.gcr.io/pause:2.0
31+
ports:
32+
- containerPort: 9949
33+
protocol: TCP

kubernetes/utils/__init__.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,6 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
from .create_from_yaml import create_from_yaml
15+
from __future__ import absolute_import
16+
17+
from .create_from_yaml import FailToCreateError, create_from_yaml

0 commit comments

Comments
 (0)