{"id":26932,"library":"epik8s-tools","title":"Epik8s Tools","description":"A Python toolkit for generating Kubernetes Helm charts for EPICS (Experimental Physics and Industrial Control System) based control systems. Currently at version 0.16.4, with active development and monthly releases.","status":"active","version":"0.16.4","language":"python","source_language":"en","source_url":"https://github.com/infn-epics/epik8s-tools","tags":["EPICS","Helm","Kubernetes","control system","IOC"],"install":[{"cmd":"pip install epik8s-tools","lang":"bash","label":"Default install"}],"dependencies":[{"reason":"YAML parsing and generation for Helm chart files","package":"PyYAML","optional":true},{"reason":"Template rendering for Kubernetes manifests","package":"Jinja2","optional":true}],"imports":[{"note":"The package namespace is 'epik8s', not 'epik8s_tools'.","wrong":"from epik8s_tools import EpicsHelmGenerator","symbol":"EpicsHelmGenerator","correct":"from epik8s import EpicsHelmGenerator"},{"note":"generate_chart is a top-level function in the epik8s module.","wrong":"import epik8s_tools.generate_chart","symbol":"generate_chart","correct":"from epik8s import generate_chart"}],"quickstart":{"code":"from epik8s import generate_chart\nimport os\n\n# EPICS IOC configuration\nioc_config = {\n    'name': 'my-ioc',\n    'image': 'epics/ioc:latest',\n    'pv_prefix': 'MY:',\n    'port': 5064\n}\n\n# Generate Helm chart directory\ngenerate_chart(ioc_config, output_dir='./helm-chart')\nprint('Helm chart generated at ./helm-chart')","lang":"python","description":"Generate a basic Helm chart for an EPICS IOC."},"warnings":[{"fix":"Update calls: use 'pv_prefix' instead of 'prefix'.","message":"The generate_chart function signature changed in v0.15.0: parameter 'pv_prefix' replaced legacy 'prefix'. Old code will raise TypeError.","severity":"breaking","affected_versions":">=0.15.0"},{"fix":"Ensure output_dir does not exist or is empty, or remove it manually before regenerating.","message":"Output directory must be empty or non-existent; otherwise generate_chart will raise FileExistsError.","severity":"gotcha","affected_versions":"all"},{"fix":"Upgrade to Python 3.10+.","message":"Python 3.9 support is deprecated; future versions will require Python >=3.10.","severity":"deprecated","affected_versions":"current (0.16.4)"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Install with 'pip install epik8s-tools', then import as 'from epik8s import ...'.","cause":"Using wrong import path (package name with underscore instead of actual module name).","error":"ModuleNotFoundError: No module named 'epik8s_tools'"},{"fix":"Use 'pv_prefix' instead of 'prefix' in the function call.","cause":"Old parameter name 'prefix' renamed to 'pv_prefix' in v0.15.0.","error":"TypeError: generate_chart() got an unexpected keyword argument 'prefix'"},{"fix":"Remove the existing directory or set a new output_dir path.","cause":"Output directory already exists and is not empty.","error":"FileExistsError: [Errno 17] File exists: '/path/to/output'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}