Add examples
This commit is contained in:
parent
3ad3c5df94
commit
db2f4fbcd8
44
README.md
44
README.md
@ -4,19 +4,55 @@ Python clients for talking to a [kubernetes](http://kubernetes.io/) cluster.
|
|||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
```python
|
list all pods:
|
||||||
from __future__ import absolute_import
|
|
||||||
|
|
||||||
|
```python
|
||||||
|
import k8sutil
|
||||||
import k8sclient
|
import k8sclient
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
# Configs can be set in Configuration class directly or using helper utility
|
||||||
|
k8sutil.load_kube_config(os.environ["HOME"] + '/.kube/config')
|
||||||
|
|
||||||
v1=k8sclient.CoreV1Api()
|
v1=k8sclient.CoreV1Api()
|
||||||
print "Listing pods with their IPs:"
|
print("Listing pods with their IPs:")
|
||||||
ret = v1.list_pod_for_all_namespaces(watch=False)
|
ret = v1.list_pod_for_all_namespaces(watch=False)
|
||||||
for i in ret.items:
|
for i in ret.items:
|
||||||
print "%s\t%s\t%s" % (i.status.pod_ip, i.metadata.namespace, i.metadata.name)
|
print("%s\t%s\t%s" % (i.status.pod_ip, i.metadata.namespace, i.metadata.name))
|
||||||
```
|
```
|
||||||
|
|
||||||
|
watch on namespace object:
|
||||||
|
|
||||||
|
```python
|
||||||
|
import k8sutil
|
||||||
|
import k8sclient
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
|
# Configs can be set in Configuration class directly or using helper utility
|
||||||
|
k8sutil.load_kube_config(os.environ["HOME"] + '/.kube/config')
|
||||||
|
|
||||||
|
v1 = k8sclient.CoreV1Api()
|
||||||
|
count = 10
|
||||||
|
watch = k8sutil.Watch()
|
||||||
|
for event in watch.stream(v1.list_namespace, _request_timeout=60):
|
||||||
|
print("Event: %s %s" % (event['type'], event['object'].metadata.name))
|
||||||
|
count -= 1
|
||||||
|
if not count:
|
||||||
|
watch.stop()
|
||||||
|
|
||||||
|
print("Ended.")
|
||||||
|
```
|
||||||
|
|
||||||
|
More examples can be found in [examples](examples/) folder. To run examples, run this command:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
python -m examples.example1
|
||||||
|
```
|
||||||
|
|
||||||
|
(replace example1 with the example base filename)
|
||||||
|
|
||||||
|
|
||||||
# Generated client README
|
# Generated client README
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -4,9 +4,9 @@ Python clients for talking to a [kubernetes](http://kubernetes.io/) cluster.
|
|||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
```python
|
list all pods:
|
||||||
from __future__ import absolute_import
|
|
||||||
|
|
||||||
|
```python
|
||||||
import k8sutil
|
import k8sutil
|
||||||
import k8sclient
|
import k8sclient
|
||||||
import os
|
import os
|
||||||
@ -14,15 +14,34 @@ import os
|
|||||||
# Configs can be set in Configuration class directly or using helper utility
|
# Configs can be set in Configuration class directly or using helper utility
|
||||||
k8sutil.load_kube_config(os.environ["HOME"] + '/.kube/config')
|
k8sutil.load_kube_config(os.environ["HOME"] + '/.kube/config')
|
||||||
|
|
||||||
# Prior to python 3.4 hosts with ip-addresses cannot be verified for SSL. this
|
|
||||||
# utility function fixes that.
|
|
||||||
k8sutil.fix_ssl_hosts_with_ipaddress()
|
|
||||||
|
|
||||||
v1=k8sclient.CoreV1Api()
|
v1=k8sclient.CoreV1Api()
|
||||||
print "Listing pods with their IPs:"
|
print("Listing pods with their IPs:")
|
||||||
ret = v1.list_pod_for_all_namespaces()
|
ret = v1.list_pod_for_all_namespaces(watch=False)
|
||||||
for i in ret.items:
|
for i in ret.items:
|
||||||
print "%s\t%s\t%s" % (i.status.pod_ip, i.metadata.namespace, i.metadata.name)
|
print("%s\t%s\t%s" % (i.status.pod_ip, i.metadata.namespace, i.metadata.name))
|
||||||
|
```
|
||||||
|
|
||||||
|
watch on namespace object:
|
||||||
|
|
||||||
|
```python
|
||||||
|
import k8sutil
|
||||||
|
import k8sclient
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
|
# Configs can be set in Configuration class directly or using helper utility
|
||||||
|
k8sutil.load_kube_config(os.environ["HOME"] + '/.kube/config')
|
||||||
|
|
||||||
|
v1 = k8sclient.CoreV1Api()
|
||||||
|
count = 10
|
||||||
|
watch = k8sutil.Watch()
|
||||||
|
for event in watch.stream(v1.list_namespace, _request_timeout=60):
|
||||||
|
print("Event: %s %s" % (event['type'], event['object'].metadata.name))
|
||||||
|
count -= 1
|
||||||
|
if not count:
|
||||||
|
watch.stop()
|
||||||
|
|
||||||
|
print("Ended.")
|
||||||
```
|
```
|
||||||
|
|
||||||
More examples can be found in [examples](examples/) folder. To run examples, run this command:
|
More examples can be found in [examples](examples/) folder. To run examples, run this command:
|
||||||
@ -33,6 +52,7 @@ python -m examples.example1
|
|||||||
|
|
||||||
(replace example1 with the example base filename)
|
(replace example1 with the example base filename)
|
||||||
|
|
||||||
|
|
||||||
# Generated client README
|
# Generated client README
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
15
examples/__init__.py
Normal file
15
examples/__init__.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Copyright 2016 The Kubernetes Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
# Empty init file to make examples folder a python module.
|
||||||
35
examples/example1.py
Normal file
35
examples/example1.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# Copyright 2016 The Kubernetes Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
import k8sclient
|
||||||
|
import k8sutil
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
# Configs can be set in Configuration class directly or using helper
|
||||||
|
# utility
|
||||||
|
k8sutil.load_kube_config(os.environ["HOME"] + '/.kube/config')
|
||||||
|
|
||||||
|
v1 = k8sclient.CoreV1Api()
|
||||||
|
print("Listing pods with their IPs:")
|
||||||
|
ret = v1.list_pod_for_all_namespaces(watch=False)
|
||||||
|
for i in ret.items:
|
||||||
|
print("%s\t%s\t%s" %
|
||||||
|
(i.status.pod_ip, i.metadata.namespace, i.metadata.name))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
39
examples/example2.py
Normal file
39
examples/example2.py
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# Copyright 2016 The Kubernetes Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
import k8sclient
|
||||||
|
import k8sutil
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
# Configs can be set in Configuration class directly or using helper
|
||||||
|
# utility
|
||||||
|
k8sutil.load_kube_config(os.environ["HOME"] + '/.kube/config')
|
||||||
|
|
||||||
|
v1 = k8sclient.CoreV1Api()
|
||||||
|
count = 10
|
||||||
|
watch = k8sutil.Watch()
|
||||||
|
for event in watch.stream(v1.list_namespace, timeout_seconds=10):
|
||||||
|
print("Event: %s %s" % (event['type'], event['object'].metadata.name))
|
||||||
|
count -= 1
|
||||||
|
if not count:
|
||||||
|
watch.stop()
|
||||||
|
|
||||||
|
print("Ended.")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
42
examples/example3.py
Normal file
42
examples/example3.py
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
# Copyright 2016 The Kubernetes Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
import k8sclient
|
||||||
|
import k8sutil
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
# Configs can be set in Configuration class directly or using helper
|
||||||
|
# utility
|
||||||
|
k8sutil.load_kube_config(os.environ["HOME"] + '/.kube/config')
|
||||||
|
|
||||||
|
print("Supported APIs (* is preferred version):")
|
||||||
|
print("%-20s %s" %
|
||||||
|
("core", ",".join(k8sclient.CoreApi().get_api_versions().versions)))
|
||||||
|
for api in k8sclient.ApisApi().get_api_versions().groups:
|
||||||
|
versions = []
|
||||||
|
for v in api.versions:
|
||||||
|
name = ""
|
||||||
|
if v.version == api.preferred_version.version and len(
|
||||||
|
api.versions) > 1:
|
||||||
|
name += "*"
|
||||||
|
name += v.version
|
||||||
|
versions.append(name)
|
||||||
|
print("%-20s %s" % (api.name, ",".join(versions)))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
Loading…
Reference in New Issue
Block a user