You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
These plugins require the python kubernetes SDK to be installed on the rundeck server.
14
-
For example, you can install it using `pip install kubernetes`.
13
+
### Python Dependencies
15
14
16
-
The Python Kubernetes API client requires version 11 of the library. You can confirm it with `python -m pip list | grep kubernetes`.
15
+
This plugin requires the following Python packages to be installed **on the server where Rundeck executes** (either your Rundeck server or your Runner nodes if using remote execution):
17
16
18
-
Further information here: [https://github.com/kubernetes-client/python](https://github.com/kubernetes-client/python).
17
+
-**kubernetes** >= 35.0.0 - The official Kubernetes Python client
18
+
-**urllib3** >= 2.6.3 - HTTP client library
19
+
-**pyyaml** - YAML parser and emitter
20
+
-**packaging** >= 20.0 - Version comparison utilities
19
21
20
-
### Authentication for Tectonic Environments.
21
-
There is a pull request [work](https://github.com/kubernetes-client/python-base/pull/48) for the kubernetes python SDK to support authenticating with the kubernetes API using OIDC (which is used by tectonic).
22
+
**Installation location:**
23
+
-**Rundeck server**: If running jobs locally on the Rundeck server
24
+
-**Runner nodes**: If using Rundeck Enterprise with remote execution
25
+
-**Both**: If you have a mixed environment
22
26
23
-
For now, you can install the kubernetes python SDK from this repo to have the OIDC support:
**Version 35.0.0+ is required** to address security vulnerabilities in transitive dependencies. This version removes the dependency on `google-auth`, which had a vulnerable `pyasn1` dependency (CVE-2026-23490).
42
+
43
+
You can verify your installation with:
44
+
45
+
```bash
46
+
python -m pip list | grep kubernetes
30
47
```
31
48
49
+
Further information: [https://github.com/kubernetes-client/python](https://github.com/kubernetes-client/python)
50
+
51
+
### Python Version Support
52
+
53
+
-**Python 3.9+** is required (urllib3 2.6.x requires Python 3.9+)
54
+
-**Python 3.10+** is recommended for best performance and security
55
+
56
+
### Kubernetes Cluster Compatibility
57
+
58
+
This plugin requires the Kubernetes Python client library version **35.0.0 or newer**.
59
+
60
+
The Kubernetes Python client is generally **backwards compatible** with older Kubernetes clusters. For the most accurate and up-to-date information about which Kubernetes API/server versions are supported by a given client version, refer to the upstream compatibility documentation:
In practice, upgrading the client library typically does not require upgrading your Kubernetes cluster, but you should verify compatibility against the upstream documentation and test in a non-production environment before making changes.
65
+
66
+
### Upgrading from Previous Plugin Versions
67
+
68
+
If you're upgrading from a previous version of this plugin (v2.0.16 or earlier), you **must** upgrade your Python dependencies to avoid security vulnerabilities.
69
+
70
+
**Run this command on each server where Rundeck executes jobs:**
71
+
72
+
```bash
73
+
pip install --upgrade 'kubernetes>=35.0.0'
74
+
# or if pip3 is your command:
75
+
pip3 install --upgrade 'kubernetes>=35.0.0'
76
+
```
77
+
78
+
**Where to run this command:**
79
+
-**Rundeck server**: If jobs run locally on your Rundeck server
80
+
-**Each Runner node**: If using Rundeck Enterprise with remote execution
81
+
-**Both**: If you have a mixed environment
82
+
83
+
**Why the upgrade is required:**
84
+
- Previous versions allowed any kubernetes client version, including older versions with security vulnerabilities
85
+
- Version 35.0.0+ eliminates CVE-2026-23490 (High severity DoS vulnerability) by removing the vulnerable dependency chain
86
+
- The upgrade is backwards compatible with your existing Kubernetes clusters
87
+
88
+
**What won't break:**
89
+
- Your existing Kubernetes cluster version (no cluster upgrade required)
90
+
- Your existing plugin configurations
91
+
- Your existing Rundeck jobs and workflows
92
+
- Communication with older Kubernetes API versions (v1.25, v1.28, v1.30, etc.)
93
+
94
+
**What happens if you don't upgrade:**
95
+
- Jobs will continue to work (no immediate breakage)
96
+
- A security warning will appear in job logs on every execution
97
+
- Your installation remains vulnerable to CVE-2026-23490
98
+
99
+
**What changes:**
100
+
- The Python kubernetes client library must be upgraded on all execution nodes
101
+
- Any custom scripts or automation that install dependencies will need to use the new version
102
+
32
103
## Build and Install
33
104
34
105
Run `gradle build` to build the zip file. Then, copy the zip file to the `$RDECK_BASE\libext` folder.
35
106
107
+
## Testing
108
+
109
+
To run the tests specified in the `tox.ini` file, follow these steps:
110
+
111
+
- Install Tox: Ensure you have Tox installed. You can install it using pip:
112
+
```sh
113
+
pip install tox
114
+
```
115
+
- Run Tox: Execute Tox in the directory containing the `tox.ini` file. This will run the tests in all specified environments (Python 3.9, 3.10, 3.11, 3.12):
116
+
```sh
117
+
tox
118
+
```
119
+
- Run Specific Environment: If you want to run tests for a specific Python version, you can specify the environment:
120
+
```sh
121
+
tox -e py39 # For Python 3.9
122
+
tox -e py310 # For Python 3.10
123
+
tox -e py311 # For Python 3.11
124
+
tox -e py312 # For Python 3.12
125
+
```
36
126
37
127
## Authentication
38
128
@@ -51,7 +141,7 @@ Otherwise, you can set the following parameters:
51
141
This plugin allows getting the container pods from kubernetes as rundeck nodes.
52
142
53
143
***Default attributes**: List of key=value pairs, example: username=root
54
-
***Custom Mapping**: Custom mapping adding on the rundeck nodes, for example: ```nodename.selector=default:Name,hostname.selector=default:pod_id```
144
+
***Custom Mapping**: Custom mapping adding on the rundeck nodes, for example: ```nodename.selector=default:name,hostname.selector=default:pod_id```
55
145
56
146
***Tags**: List of tags. You can add static and custom tags, for example:
0 commit comments