prefect_kubernetes.credentials
Module for defining Kubernetes credential handling and client generation.
Classes
KubernetesCredentials
Bases: Block
Credentials block for generating configured Kubernetes API clients.
Attributes:
Name | Type | Description |
---|---|---|
cluster_config |
Optional[KubernetesClusterConfig]
|
A |
Example
Load stored Kubernetes credentials:
from prefect_kubernetes.credentials import KubernetesCredentials
kubernetes_credentials = KubernetesCredentials.load("BLOCK_NAME")
Source code in prefect_kubernetes/credentials.py
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
|
Functions
get_client
Convenience method for retrieving a Kubernetes API client for deployment resources.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
client_type |
Literal['apps', 'batch', 'core', 'custom_objects']
|
The resource-specific type of Kubernetes client to retrieve. |
required |
Yields:
Type | Description |
---|---|
KubernetesClient
|
An authenticated, resource-specific Kubernetes API client. |
Example
from prefect_kubernetes.credentials import KubernetesCredentials
with KubernetesCredentials.get_client("core") as core_v1_client:
for pod in core_v1_client.list_namespaced_pod():
print(pod.metadata.name)
Source code in prefect_kubernetes/credentials.py
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
|
get_resource_specific_client
Utility function for configuring a generic Kubernetes client. It will attempt to connect to a Kubernetes cluster in three steps with the first successful connection attempt becoming the mode of communication with a cluster:
-
It will first attempt to use a
KubernetesCredentials
block'scluster_config
to configure a client usingKubernetesClusterConfig.configure_client
. -
Attempt in-cluster connection (will only work when running on a pod).
-
Attempt out-of-cluster connection using the default location for a kube config file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
client_type |
str
|
The Kubernetes API client type for interacting with specific Kubernetes resources. |
required |
Returns:
Name | Type | Description |
---|---|---|
KubernetesClient |
Union[AppsV1Api, BatchV1Api, CoreV1Api]
|
An authenticated, resource-specific Kubernetes Client. |
Raises:
Type | Description |
---|---|
ValueError
|
If |
Source code in prefect_kubernetes/credentials.py
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
|