External Tool to use in your IDE (say Cursor or Pycharm) to Copy Current Test File/Folder to Kubernetes container. Also, you can run:
- Run Tests directly on container from IDE using
pytestcommand. - Run
system-testusing/ansible/system_test.yamlfile - Run any ansible-playbook on container (E.g.
ansible-playbook sample-setup.yaml)
- Open the Command Palette in Cursor with
Cmd + Shift + P(macOS) orCtrl + Shift + P(Windows/Linux). - Search for and select "Tasks: Configure Task".
- Choose "Create tasks.json file from template".
- Select "Others" to create a custom task.
This will generate a tasks.json file in your project's .vscode directory.
Now, you need to add a task definition for your kubectl_tools script.
Replace the content of the file with the following:
(Change the << Full-Path-To-Kubectl_Tools-Project >> accordingly:
{
"version": "2.0.0",
"tasks": [
{
"label": "Kubectl Copy & Run",
"type": "process",
"command": "<< Full-Path-To-Kubectl_Tools-Project >>/Kubectl_Tools/kube_tools.py",
"args": [
"${file}",
"${workspaceFolderBasename}"
],
"group": "test",
"presentation": {
"reveal": "always",
"panel": "new"
},
"problemMatcher": []
}
]
}- You can create 3 entries by modifying
"command"filed in json:- For Kubectl Copy & Run enter
kube_tools.py - For Kubectl Copy Only enter
kube_tools_copy.py - For Kubectl Run Only enter
kube_tools_run_test.py
- For Kubectl Copy & Run enter
Or you can copy-paste the json content from tasks.json file.
- Open the Command Palette: Press
Ctrl + Shift + P(orCmd + Shift + Pon macOS). - Type "Run Task": Start typing
run taskin the search bar. This will filter the list of available commands. - Select a Task: You will see a list of available tasks, which includes the three tasks you defined in your
tasks.jsonfile:Kubectl Copy & RunKubectl Copy OnlyKubectl Run Only
- Press Enter: Select the task you want to run and press
Enter.
To make this solution easy to use, just like in PyCharm, you can create a custom keybinding to run the task with a single shortcut.
- Open the Command Palette again with
Cmd + Shift + PorCtrl + Shift + P. - Search for and select "Preferences: Open Keyboard Shortcuts (JSON)".
- Add the following JSON object to the array in the
keybindings.jsonfile.
[
{
"key": "cmd+shift+k",
"command": "workbench.action.tasks.runTask",
"args": "Kubectl Copy & Run"
}
]
Or you can copy-paste the json content from keybindings.json file.
AI Agent to run your tests on test container directly from cursor IDE.
Refer Pycharm Create/Edit/Copy Tool Dialog!
- Clone this Repository in your local machine.
- In Pycharm IDE, Go to Preferences (
⌘+,) - Go to
External Toolsunder Tools Section - Click on
+icon to create a new Tool - In
Namefield give any name (Say Kubectl CP) - In
Programfield select full path of thekube_tool*.pypython file as below:- For Kubectl Copy & Run select
kube_tools.py - For Kubectl Copy Only select
kube_tools_copy.py - For Kubectl Run Only select
kube_tools_run_test.py
- For Kubectl Copy & Run select
- In
Argumentsfield enter Two Arguments$FilePath$and$ModuleName$ - In
Working Directoryfield enter$ProjectFileDir$or Kubectl_Tools Project Dir (Optional) - Click OK and Apply then you are ready to go!
- Select the file or folder you want to copy or run tests on container.
- Right Click, Go to
External Toolsand Select yourKubectl Tool - That's all! Keep an eye on the Console/Run Tab :)
ktoolrc.inifile will be auto-generated when you run the script for the first time.- When you are running the tool for the first time or when you want to change the Pod Name,
Go to
ktoolrc.inifile at$ProjectFileDir$and add/change the value forpodnamefield. - This is one time task per Pod Name change.
- Delete the
ktoolrc.inifile from your$ProjectFileDir$, if you make any code changes in this repository as all the constants are picked up by theinifile. - Add
ktoolrc.inito your projects.gitignorefile if required. - Currently, this tool supports requires Python3+ (As Python2.7 is deprecated)
-
Cannot Run Program /path/kube_tools.py; [error=2] No such file or directory- The files are basically Python scripts. i.e., we use
#!/usr/bin/python3in the beginning of these script files. - Make sure you have Python3 set to
/usr/bin/python3. - Else Replace the line
#!/usr/bin/python3inkube_tools*.pyfiles, with whichever location you have Python3 configured.- For Eg:
/user/local/bin/python3
- For Eg:
- The files are basically Python scripts. i.e., we use
-
Unable to run kubectl commands?
- Before using this tool, make sure you have kubectl package installed in your system.
- Make sure basic kubectl commands are working on your namespace.

