Quick Start
Get up and running with helm-sdkpy in minutes.
Install helm-sdkpy
pip install helm-sdkpy
Basic Usage
1. Install a Chart
import asyncio
from helm_sdkpy import Configuration, Install
async def install_chart():
# Create configuration
config = Configuration(namespace="default")
# Create install action
install = Install(config)
# Install nginx chart
result = await install.run(
release_name="my-nginx",
chart_path="oci://registry-1.docker.io/bitnamicharts/nginx",
version="18.2.5",
create_namespace=True,
wait=True
)
print(f"✅ Installed: {result['name']}")
asyncio.run(install_chart())
2. List Releases
import asyncio
from helm_sdkpy import Configuration
from helm_sdkpy.actions import List
async def list_releases():
config = Configuration(namespace="default")
list_action = List(config)
releases = await list_action.run(all=False)
for release in releases:
print(f"📦 {release['name']}: {release['status']}")
asyncio.run(list_releases())
3. Upgrade a Release
import asyncio
from helm_sdkpy import Configuration, Upgrade
async def upgrade_release():
config = Configuration(namespace="default")
upgrade = Upgrade(config)
result = await upgrade.run(
release_name="my-nginx",
chart_path="oci://registry-1.docker.io/bitnamicharts/nginx",
version="18.2.6",
values={"replicaCount": 3}
)
print(f"✅ Upgraded to version: {result['version']}")
asyncio.run(upgrade_release())
4. Check Release Status
import asyncio
from helm_sdkpy import Configuration
from helm_sdkpy.actions import Status
async def check_status():
config = Configuration(namespace="default")
status = Status(config)
result = await status.run(release_name="my-nginx")
print(f"Status: {result['info']['status']}")
print(f"Version: {result['version']}")
asyncio.run(check_status())
5. Uninstall a Release
import asyncio
from helm_sdkpy import Configuration, Uninstall
async def uninstall_release():
config = Configuration(namespace="default")
uninstall = Uninstall(config)
result = await uninstall.run(
release_name="my-nginx",
wait=True
)
print(f"✅ Uninstalled: {result['release']['name']}")
asyncio.run(uninstall_release())
Concurrent Operations
Run multiple operations in parallel using asyncio.gather:
import asyncio
from helm_sdkpy import Configuration, Install
async def install_multiple():
config = Configuration(namespace="default")
install = Install(config)
# Install multiple charts concurrently
results = await asyncio.gather(
install.run("nginx-1", "oci://registry-1.docker.io/bitnamicharts/nginx"),
install.run("nginx-2", "oci://registry-1.docker.io/bitnamicharts/nginx"),
install.run("nginx-3", "oci://registry-1.docker.io/bitnamicharts/nginx"),
)
for result in results:
print(f"✅ Installed: {result['name']}")
asyncio.run(install_multiple())
Working with Values
Passing Values
values = {
"replicaCount": 3,
"image": {
"tag": "1.25.0"
},
"service": {
"type": "LoadBalancer",
"port": 80
}
}
result = await install.run(
release_name="my-app",
chart_path="./mychart",
values=values
)
Getting Values
from helm_sdkpy.actions import GetValues
config = Configuration(namespace="default")
get_values = GetValues(config)
values = await get_values.run(
release_name="my-app",
all_values=True
)
print(values)
Repository Management
from helm_sdkpy.repo import RepoAdd, RepoUpdate, RepoList
async def manage_repos():
config = Configuration()
# Add a repository
repo_add = RepoAdd(config)
await repo_add.run(
name="bitnami",
url="https://charts.bitnami.com/bitnami"
)
# Update repositories
repo_update = RepoUpdate(config)
await repo_update.run()
# List repositories
repo_list = RepoList(config)
repos = await repo_list.run()
for repo in repos:
print(f"📚 {repo['name']}: {repo['url']}")
asyncio.run(manage_repos())