Welcome to kubernetes-python-client’s documentation!¶
Contents:
Kubernetes Python Client¶
Python client for the kubernetes API.
Installation¶
From source:
git clone --recursive https://github.com/kubernetes-client/python.git
cd python
python setup.py install
From PyPi directly:
pip install kubernetes
Examples¶
list all pods:
from kubernetes import client, config
# Configs can be set in Configuration class directly or using helper utility
config.load_kube_config()
v1 = client.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))
watch on namespace object:
from kubernetes import client, config, watch
# Configs can be set in Configuration class directly or using helper utility
config.load_kube_config()
v1 = client.CoreV1Api()
count = 10
w = watch.Watch()
for event in w.stream(v1.list_namespace, _request_timeout=60):
print("Event: %s %s" % (event['type'], event['object'].metadata.name))
count -= 1
if not count:
w.stop()
print("Ended.")
More examples can be found in examples folder. To run examples, run this command:
python -m examples.example1
(replace example1 with the example base filename)
Documentation¶
All APIs and Models’ documentation can be found at the Generated client’s README file
Compatibility¶
client-python
follows semver, so until the major version of
client-python gets increased, your code will continue to work with explicitly
supported versions of Kubernetes clusters.
Compatibility matrix¶
Kubernetes 1.5 | Kubernetes 1.6 | Kubernetes 1.7 | Kubernetes 1.8 | Kubernetes 1.9 | Kubernetes 1.10 | Kubernetes 1.11 | Kubernetes 1.12 | Kubernetes 1.13 | Kubernetes 1.14 | |
---|---|---|---|---|---|---|---|---|---|---|
client-python 1.0 | ✓ | - | - | - | - | - | - | - | - | - |
client-python 2.0 | + | ✓ | - | - | - | - | - | - | - | - |
client-python 3.0 | + | + | ✓ | - | - | - | - | - | - | - |
client-python 4.0 | + | + | + | ✓ | - | - | - | - | - | - |
client-python 5.0 | + | + | + | + | ✓ | - | - | - | - | - |
client-python 6.0 | + | + | + | + | + | ✓ | - | - | - | - |
client-python 7.0 | + | + | + | + | + | + | ✓ | - | - | - |
client-python 8.0 | + | + | + | + | + | + | + | ✓ | - | - |
client-python 9.0 | + | + | + | + | + | + | + | + | ✓ | - |
client-python 10.0 | + | + | + | + | + | + | + | + | + | ✓ |
client-python HEAD | + | + | + | + | + | + | + | + | + | ✓ |
Key:
✓
Exactly the same features / API objects in both client-python and the Kubernetes version.+
client-python has features or api objects that may not be present in the Kubernetes cluster, but everything they have in common will work.-
The Kubernetes cluster has features the client-python library can’t use (additional API objects, etc).
See the CHANGELOG for a detailed description of changes between client-python versions.
Client version | Canonical source for OpenAPI spec | Maintenance status |
---|---|---|
1.0 Alpha/Beta | Kubernetes main repo, 1.5 branch | ✗ |
1.0.x | Kubernetes main repo, 1.5 branch | ✗ |
2.0 Alpha/Beta | Kubernetes main repo, 1.6 branch | ✗ |
2.0.x | Kubernetes main repo, 1.6 branch | ✗ |
3.0 Alpha/Beta | Kubernetes main repo, 1.7 branch | ✗ |
3.0 | Kubernetes main repo, 1.7 branch | ✗ |
4.0 Alpha/Beta | Kubernetes main repo, 1.8 branch | ✗ |
4.0 | Kubernetes main repo, 1.8 branch | ✗ |
5.0 Alpha/Beta | Kubernetes main repo, 1.9 branch | ✗ |
5.0 | Kubernetes main repo, 1.9 branch | ✗ |
6.0 Alpha/Beta | Kubernetes main repo, 1.10 branch | ✗ |
6.0 | Kubernetes main repo, 1.10 branch | ✗ |
7.0 Alpha/Beta | Kubernetes main repo, 1.11 branch | ✗ |
7.0 | Kubernetes main repo, 1.11 branch | ✗ |
8.0 Alpha/Beta | Kubernetes main repo, 1.12 branch | ✗ |
8.0 | Kubernetes main repo, 1.12 branch | ✓ |
9.0 Alpha/Beta | Kubernetes main repo, 1.13 branch | ✗ |
9.0 | Kubernetes main repo, 1.13 branch | ✓ |
10.0 Alpha/Beta | Kubernetes main repo, 1.14 branch | ✗ |
10.0 | Kubernetes main repo, 1.14 branch | ✓ |
Key:
✓
Changes in main Kubernetes repo are manually (should be automated) published to client-python when they are available.✗
No longer maintained; please upgrade.
Kubernetes supports three minor releases at a time. “Support” means we expect users to be running that version in production, though we may not port fixes back before the latest minor version. For example, when v1.3 comes out, v1.0 will no longer be supported. In consistent with Kubernetes support policy, we expect to support three GA major releases (corresponding to three Kubernetes minor releases) at a time.
Note: There would be no maintenance for alpha/beta releases except the latest one.
Community, Support, Discussion¶
If you have any problem on using the package or any suggestions, please start with reaching the Kubernetes clients slack channel, or filing an issue to let us know. You can also reach the maintainers of this project at SIG API Machinery, where this project falls under.
Code of Conduct¶
Participation in the Kubernetes community is governed by the CNCF Code of Conduct.
Troubleshooting¶
SSLError on macOS¶
If you get an SSLError, you likely need to update your version of python. The version that ships with macOS may not be supported.
Install the latest version of python with brew:
brew install python
Once installed, you can query the version of OpenSSL like so:
python -c "import ssl; print ssl.OPENSSL_VERSION"
You’ll need a version with OpenSSL version 1.0.0 or later.
Hostname doesn’t match¶
If you get an ssl.CertificateError
complaining about hostname match, your installed packages does not meet version requirements.
Specifically check ipaddress
and urllib3
package versions to make sure they met requirements in requirements.txt file.
Why Exec/Attach calls doesn’t work¶
Starting from 4.0 release, we do not support directly calling exec or attach calls. you should use stream module to call them. so instead
of resp = api.connect_get_namespaced_pod_exec(name, ...
you should call resp = stream(api.connect_get_namespaced_pod_exec, name, ...
.
See more at exec example.
Installation¶
At the command line:
$ pip install kubernetes
Or, if you have virtualenvwrapper installed:
$ mkvirtualenv kubernetes
$ pip install kubernetes
kubernetes¶
kubernetes package¶
Subpackages¶
kubernetes.client package¶
Subpackages¶
Submodules¶
kubernetes.client.api_client module¶
kubernetes.client.configuration module¶
kubernetes.client.rest module¶
Module contents¶
kubernetes.config package¶
Submodules¶
kubernetes.config.config_exception module¶
kubernetes.config.incluster_config module¶
kubernetes.config.incluster_config_test module¶
kubernetes.config.kube_config module¶
kubernetes.config.kube_config_test module¶
Module contents¶
kubernetes.test package¶
Submodules¶
kubernetes.test.test_apis_api module¶
kubernetes.test.test_apps_api module¶
kubernetes.test.test_apps_v1beta1_api module¶
kubernetes.test.test_authentication_api module¶
kubernetes.test.test_authentication_v1beta1_api module¶
kubernetes.test.test_authorization_api module¶
kubernetes.test.test_authorization_v1beta1_api module¶
kubernetes.test.test_autoscaling_api module¶
kubernetes.test.test_autoscaling_v1_api module¶
kubernetes.test.test_batch_api module¶
kubernetes.test.test_batch_v1_api module¶
kubernetes.test.test_batch_v2alpha1_api module¶
kubernetes.test.test_certificates_api module¶
kubernetes.test.test_certificates_v1alpha1_api module¶
kubernetes.test.test_core_api module¶
kubernetes.test.test_core_v1_api module¶
kubernetes.test.test_extensions_api module¶
kubernetes.test.test_extensions_v1beta1_api module¶
kubernetes.test.test_intstr_int_or_string module¶
kubernetes.test.test_logs_api module¶
kubernetes.test.test_policy_api module¶
kubernetes.test.test_policy_v1beta1_api module¶
kubernetes.test.test_rbac_authorization_api module¶
kubernetes.test.test_rbac_authorization_v1alpha1_api module¶
kubernetes.test.test_resource_quantity module¶
kubernetes.test.test_runtime_raw_extension module¶
kubernetes.test.test_storage_api module¶
kubernetes.test.test_storage_v1beta1_api module¶
kubernetes.test.test_unversioned_api_group module¶
kubernetes.test.test_unversioned_api_group_list module¶
kubernetes.test.test_unversioned_api_resource module¶
kubernetes.test.test_unversioned_api_resource_list module¶
kubernetes.test.test_unversioned_api_versions module¶
kubernetes.test.test_unversioned_group_version_for_discovery module¶
kubernetes.test.test_unversioned_label_selector module¶
kubernetes.test.test_unversioned_label_selector_requirement module¶
kubernetes.test.test_unversioned_list_meta module¶
kubernetes.test.test_unversioned_server_address_by_client_cidr module¶
kubernetes.test.test_unversioned_status module¶
kubernetes.test.test_unversioned_status_cause module¶
kubernetes.test.test_unversioned_status_details module¶
kubernetes.test.test_unversioned_time module¶
kubernetes.test.test_v1_attached_volume module¶
kubernetes.test.test_v1_aws_elastic_block_store_volume_source module¶
kubernetes.test.test_v1_azure_disk_volume_source module¶
kubernetes.test.test_v1_azure_file_volume_source module¶
kubernetes.test.test_v1_binding module¶
kubernetes.test.test_v1_capabilities module¶
kubernetes.test.test_v1_ceph_fs_volume_source module¶
kubernetes.test.test_v1_cinder_volume_source module¶
kubernetes.test.test_v1_component_condition module¶
kubernetes.test.test_v1_component_status module¶
kubernetes.test.test_v1_component_status_list module¶
kubernetes.test.test_v1_config_map module¶
kubernetes.test.test_v1_config_map_key_selector module¶
kubernetes.test.test_v1_config_map_list module¶
kubernetes.test.test_v1_config_map_volume_source module¶
kubernetes.test.test_v1_container module¶
kubernetes.test.test_v1_container_image module¶
kubernetes.test.test_v1_container_port module¶
kubernetes.test.test_v1_container_state module¶
kubernetes.test.test_v1_container_state_running module¶
kubernetes.test.test_v1_container_state_terminated module¶
kubernetes.test.test_v1_container_state_waiting module¶
kubernetes.test.test_v1_container_status module¶
kubernetes.test.test_v1_cross_version_object_reference module¶
kubernetes.test.test_v1_daemon_endpoint module¶
kubernetes.test.test_v1_delete_options module¶
kubernetes.test.test_v1_downward_api_volume_file module¶
kubernetes.test.test_v1_downward_api_volume_source module¶
kubernetes.test.test_v1_empty_dir_volume_source module¶
kubernetes.test.test_v1_endpoint_address module¶
kubernetes.test.test_v1_endpoint_port module¶
kubernetes.test.test_v1_endpoint_subset module¶
kubernetes.test.test_v1_endpoints module¶
kubernetes.test.test_v1_endpoints_list module¶
kubernetes.test.test_v1_env_var module¶
kubernetes.test.test_v1_env_var_source module¶
kubernetes.test.test_v1_event module¶
kubernetes.test.test_v1_event_list module¶
kubernetes.test.test_v1_event_source module¶
kubernetes.test.test_v1_exec_action module¶
kubernetes.test.test_v1_fc_volume_source module¶
kubernetes.test.test_v1_flex_volume_source module¶
kubernetes.test.test_v1_flocker_volume_source module¶
kubernetes.test.test_v1_gce_persistent_disk_volume_source module¶
kubernetes.test.test_v1_git_repo_volume_source module¶
kubernetes.test.test_v1_glusterfs_volume_source module¶
kubernetes.test.test_v1_handler module¶
kubernetes.test.test_v1_horizontal_pod_autoscaler module¶
kubernetes.test.test_v1_horizontal_pod_autoscaler_list module¶
kubernetes.test.test_v1_horizontal_pod_autoscaler_spec module¶
kubernetes.test.test_v1_horizontal_pod_autoscaler_status module¶
kubernetes.test.test_v1_host_path_volume_source module¶
kubernetes.test.test_v1_http_get_action module¶
kubernetes.test.test_v1_http_header module¶
kubernetes.test.test_v1_iscsi_volume_source module¶
kubernetes.test.test_v1_job module¶
kubernetes.test.test_v1_job_condition module¶
kubernetes.test.test_v1_job_list module¶
kubernetes.test.test_v1_job_spec module¶
kubernetes.test.test_v1_job_status module¶
kubernetes.test.test_v1_key_to_path module¶
kubernetes.test.test_v1_lifecycle module¶
kubernetes.test.test_v1_limit_range module¶
kubernetes.test.test_v1_limit_range_item module¶
kubernetes.test.test_v1_limit_range_list module¶
kubernetes.test.test_v1_limit_range_spec module¶
kubernetes.test.test_v1_load_balancer_ingress module¶
kubernetes.test.test_v1_load_balancer_status module¶
kubernetes.test.test_v1_local_object_reference module¶
kubernetes.test.test_v1_namespace module¶
kubernetes.test.test_v1_namespace_list module¶
kubernetes.test.test_v1_namespace_spec module¶
kubernetes.test.test_v1_namespace_status module¶
kubernetes.test.test_v1_nfs_volume_source module¶
kubernetes.test.test_v1_node module¶
kubernetes.test.test_v1_node_address module¶
kubernetes.test.test_v1_node_condition module¶
kubernetes.test.test_v1_node_daemon_endpoints module¶
kubernetes.test.test_v1_node_list module¶
kubernetes.test.test_v1_node_spec module¶
kubernetes.test.test_v1_node_status module¶
kubernetes.test.test_v1_node_system_info module¶
kubernetes.test.test_v1_object_field_selector module¶
kubernetes.test.test_v1_object_meta module¶
kubernetes.test.test_v1_object_reference module¶
kubernetes.test.test_v1_owner_reference module¶
kubernetes.test.test_v1_persistent_volume module¶
kubernetes.test.test_v1_persistent_volume_claim module¶
kubernetes.test.test_v1_persistent_volume_claim_list module¶
kubernetes.test.test_v1_persistent_volume_claim_spec module¶
kubernetes.test.test_v1_persistent_volume_claim_status module¶
kubernetes.test.test_v1_persistent_volume_claim_volume_source module¶
kubernetes.test.test_v1_persistent_volume_list module¶
kubernetes.test.test_v1_persistent_volume_spec module¶
kubernetes.test.test_v1_persistent_volume_status module¶
kubernetes.test.test_v1_photon_persistent_disk_volume_source module¶
kubernetes.test.test_v1_pod module¶
kubernetes.test.test_v1_pod_condition module¶
kubernetes.test.test_v1_pod_list module¶
kubernetes.test.test_v1_pod_security_context module¶
kubernetes.test.test_v1_pod_spec module¶
kubernetes.test.test_v1_pod_status module¶
kubernetes.test.test_v1_pod_template module¶
kubernetes.test.test_v1_pod_template_list module¶
kubernetes.test.test_v1_pod_template_spec module¶
kubernetes.test.test_v1_preconditions module¶
kubernetes.test.test_v1_probe module¶
kubernetes.test.test_v1_quobyte_volume_source module¶
kubernetes.test.test_v1_rbd_volume_source module¶
kubernetes.test.test_v1_replication_controller module¶
kubernetes.test.test_v1_replication_controller_condition module¶
kubernetes.test.test_v1_replication_controller_list module¶
kubernetes.test.test_v1_replication_controller_spec module¶
kubernetes.test.test_v1_replication_controller_status module¶
kubernetes.test.test_v1_resource_field_selector module¶
kubernetes.test.test_v1_resource_quota module¶
kubernetes.test.test_v1_resource_quota_list module¶
kubernetes.test.test_v1_resource_quota_spec module¶
kubernetes.test.test_v1_resource_quota_status module¶
kubernetes.test.test_v1_resource_requirements module¶
kubernetes.test.test_v1_scale module¶
kubernetes.test.test_v1_scale_spec module¶
kubernetes.test.test_v1_scale_status module¶
kubernetes.test.test_v1_se_linux_options module¶
kubernetes.test.test_v1_secret module¶
kubernetes.test.test_v1_secret_key_selector module¶
kubernetes.test.test_v1_secret_list module¶
kubernetes.test.test_v1_secret_volume_source module¶
kubernetes.test.test_v1_security_context module¶
kubernetes.test.test_v1_service module¶
kubernetes.test.test_v1_service_account module¶
kubernetes.test.test_v1_service_account_list module¶
kubernetes.test.test_v1_service_list module¶
kubernetes.test.test_v1_service_port module¶
kubernetes.test.test_v1_service_spec module¶
kubernetes.test.test_v1_service_status module¶
kubernetes.test.test_v1_tcp_socket_action module¶
kubernetes.test.test_v1_volume module¶
kubernetes.test.test_v1_volume_mount module¶
kubernetes.test.test_v1_vsphere_virtual_disk_volume_source module¶
kubernetes.test.test_v1alpha1_certificate_signing_request module¶
kubernetes.test.test_v1alpha1_certificate_signing_request_condition module¶
kubernetes.test.test_v1alpha1_certificate_signing_request_list module¶
kubernetes.test.test_v1alpha1_certificate_signing_request_spec module¶
kubernetes.test.test_v1alpha1_certificate_signing_request_status module¶
kubernetes.test.test_v1alpha1_cluster_role module¶
kubernetes.test.test_v1alpha1_cluster_role_binding module¶
kubernetes.test.test_v1alpha1_cluster_role_binding_list module¶
kubernetes.test.test_v1alpha1_cluster_role_list module¶
kubernetes.test.test_v1alpha1_policy_rule module¶
kubernetes.test.test_v1alpha1_role module¶
kubernetes.test.test_v1alpha1_role_binding module¶
kubernetes.test.test_v1alpha1_role_binding_list module¶
kubernetes.test.test_v1alpha1_role_list module¶
kubernetes.test.test_v1alpha1_role_ref module¶
kubernetes.test.test_v1alpha1_subject module¶
kubernetes.test.test_v1beta1_api_version module¶
kubernetes.test.test_v1beta1_cpu_target_utilization module¶
kubernetes.test.test_v1beta1_daemon_set module¶
kubernetes.test.test_v1beta1_daemon_set_list module¶
kubernetes.test.test_v1beta1_daemon_set_spec module¶
kubernetes.test.test_v1beta1_daemon_set_status module¶
kubernetes.test.test_v1beta1_deployment module¶
kubernetes.test.test_v1beta1_deployment_condition module¶
kubernetes.test.test_v1beta1_deployment_list module¶
kubernetes.test.test_v1beta1_deployment_rollback module¶
kubernetes.test.test_v1beta1_deployment_spec module¶
kubernetes.test.test_v1beta1_deployment_status module¶
kubernetes.test.test_v1beta1_deployment_strategy module¶
kubernetes.test.test_v1beta1_eviction module¶
kubernetes.test.test_v1beta1_horizontal_pod_autoscaler module¶
kubernetes.test.test_v1beta1_horizontal_pod_autoscaler_list module¶
kubernetes.test.test_v1beta1_horizontal_pod_autoscaler_spec module¶
kubernetes.test.test_v1beta1_horizontal_pod_autoscaler_status module¶
kubernetes.test.test_v1beta1_http_ingress_path module¶
kubernetes.test.test_v1beta1_http_ingress_rule_value module¶
kubernetes.test.test_v1beta1_ingress module¶
kubernetes.test.test_v1beta1_ingress_backend module¶
kubernetes.test.test_v1beta1_ingress_list module¶
kubernetes.test.test_v1beta1_ingress_rule module¶
kubernetes.test.test_v1beta1_ingress_spec module¶
kubernetes.test.test_v1beta1_ingress_status module¶
kubernetes.test.test_v1beta1_ingress_tls module¶
kubernetes.test.test_v1beta1_job module¶
kubernetes.test.test_v1beta1_job_condition module¶
kubernetes.test.test_v1beta1_job_list module¶
kubernetes.test.test_v1beta1_job_spec module¶
kubernetes.test.test_v1beta1_job_status module¶
kubernetes.test.test_v1beta1_local_subject_access_review module¶
kubernetes.test.test_v1beta1_network_policy module¶
kubernetes.test.test_v1beta1_network_policy_ingress_rule module¶
kubernetes.test.test_v1beta1_network_policy_list module¶
kubernetes.test.test_v1beta1_network_policy_peer module¶
kubernetes.test.test_v1beta1_network_policy_port module¶
kubernetes.test.test_v1beta1_network_policy_spec module¶
kubernetes.test.test_v1beta1_non_resource_attributes module¶
kubernetes.test.test_v1beta1_pod_disruption_budget module¶
kubernetes.test.test_v1beta1_pod_disruption_budget_list module¶
kubernetes.test.test_v1beta1_pod_disruption_budget_spec module¶
kubernetes.test.test_v1beta1_pod_disruption_budget_status module¶
kubernetes.test.test_v1beta1_replica_set module¶
kubernetes.test.test_v1beta1_replica_set_condition module¶
kubernetes.test.test_v1beta1_replica_set_list module¶
kubernetes.test.test_v1beta1_replica_set_spec module¶
kubernetes.test.test_v1beta1_replica_set_status module¶
kubernetes.test.test_v1beta1_resource_attributes module¶
kubernetes.test.test_v1beta1_rollback_config module¶
kubernetes.test.test_v1beta1_rolling_update_deployment module¶
kubernetes.test.test_v1beta1_scale module¶
kubernetes.test.test_v1beta1_scale_spec module¶
kubernetes.test.test_v1beta1_scale_status module¶
kubernetes.test.test_v1beta1_self_subject_access_review module¶
kubernetes.test.test_v1beta1_self_subject_access_review_spec module¶
kubernetes.test.test_v1beta1_stateful_set module¶
kubernetes.test.test_v1beta1_stateful_set_list module¶
kubernetes.test.test_v1beta1_stateful_set_spec module¶
kubernetes.test.test_v1beta1_stateful_set_status module¶
kubernetes.test.test_v1beta1_storage_class module¶
kubernetes.test.test_v1beta1_storage_class_list module¶
kubernetes.test.test_v1beta1_subject_access_review module¶
kubernetes.test.test_v1beta1_subject_access_review_spec module¶
kubernetes.test.test_v1beta1_subject_access_review_status module¶
kubernetes.test.test_v1beta1_subresource_reference module¶
kubernetes.test.test_v1beta1_third_party_resource module¶
kubernetes.test.test_v1beta1_third_party_resource_list module¶
kubernetes.test.test_v1beta1_token_review module¶
kubernetes.test.test_v1beta1_token_review_spec module¶
kubernetes.test.test_v1beta1_token_review_status module¶
kubernetes.test.test_v1beta1_user_info module¶
kubernetes.test.test_v2alpha1_cron_job module¶
kubernetes.test.test_v2alpha1_cron_job_list module¶
kubernetes.test.test_v2alpha1_cron_job_spec module¶
kubernetes.test.test_v2alpha1_cron_job_status module¶
kubernetes.test.test_v2alpha1_job module¶
kubernetes.test.test_v2alpha1_job_condition module¶
kubernetes.test.test_v2alpha1_job_list module¶
kubernetes.test.test_v2alpha1_job_spec module¶
kubernetes.test.test_v2alpha1_job_status module¶
kubernetes.test.test_v2alpha1_job_template_spec module¶
kubernetes.test.test_version_api module¶
kubernetes.test.test_version_info module¶
kubernetes.test.test_versioned_event module¶
Module contents¶
Module contents¶
Contributing Guidelines¶
How to become a contributor and submit your own code¶
Contributor License Agreements¶
We’d love to accept your patches! Before we can take them, we have to jump a couple of legal hurdles.
Please fill out either the individual or corporate Contributor License Agreement (CLA).
- If you are an individual writing original source code and you’re sure you own the intellectual property, then you’ll need to sign an individual CLA.
- If you work for a company that wants to allow you to contribute your work, then you’ll need to sign a corporate CLA.
Follow either of the two links above to access the appropriate CLA and instructions for how to sign and return it. Once we receive it, we’ll be able to accept your pull requests.
Contributing A Patch¶
- Submit an issue describing your proposed change to the repo in question.
- The repo owners will respond to your issue promptly.
- If your proposed change is accepted, and you haven’t already done so, sign a Contributor License Agreement (see details above).
- Fork the desired repo, develop and test your code changes.
- Submit a pull request.
Adding Dependencies¶
If your patch depends on new packages, add those packages to requirements.txt and setup.py.