Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion go/shim/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,7 @@ func getConfig(handle C.helm_sdkpy_handle) (*configState, error) {
// Install action

//export helm_sdkpy_install
func helm_sdkpy_install(handle C.helm_sdkpy_handle, release_name *C.char, chart_path *C.char, values_json *C.char, version *C.char, create_namespace C.int, wait C.int, timeout_seconds C.int, result_json **C.char) C.int {
func helm_sdkpy_install(handle C.helm_sdkpy_handle, release_name *C.char, chart_path *C.char, values_json *C.char, version *C.char, create_namespace C.int, wait C.int, timeout_seconds C.int, skip_schema_validation C.int, result_json **C.char) C.int {
state, err := getConfig(handle)
if err != nil {
return setError(err)
Expand Down Expand Up @@ -469,6 +469,11 @@ func helm_sdkpy_install(handle C.helm_sdkpy_handle, release_name *C.char, chart_
// Disable OpenAPI validation as well
client.DisableOpenAPIValidation = true

// Skip JSON schema validation if requested (useful for charts with buggy schemas)
if skip_schema_validation != 0 {
client.SkipSchemaValidation = true
}

// Set version if provided
if chartVersion != "" {
client.Version = chartVersion
Expand Down
4 changes: 2 additions & 2 deletions helm_sdkpy/_ffi.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@
void helm_sdkpy_config_destroy(helm_sdkpy_handle handle);

// Install action
int helm_sdkpy_install(helm_sdkpy_handle handle, const char *release_name, const char *chart_path, const char *values_json, const char *version, int create_namespace, int wait, int timeout_seconds, char **result_json);
int helm_sdkpy_install(helm_sdkpy_handle handle, const char *release_name, const char *chart_path, const char *values_json, const char *version, int create_namespace, int wait, int timeout_seconds, int skip_schema_validation, char **result_json);

// Upgrade action
int helm_sdkpy_upgrade(helm_sdkpy_handle handle, const char *release_name, const char *chart_path, const char *values_json, const char *version, char **result_json);

// Uninstall action
int helm_sdkpy_uninstall(helm_sdkpy_handle handle, const char *release_name, int wait, int timeout_seconds, char **result_json);
int helm_sdkpy_uninstall(helm_sdkpy_handle handle, const char *release_name, int wait, int timeout_seconds, int skip_schema_validation, char **result_json);

// List action
int helm_sdkpy_list(helm_sdkpy_handle handle, int all, char **result_json);
Expand Down
4 changes: 4 additions & 0 deletions helm_sdkpy/actions.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ async def run(
create_namespace: bool = False,
wait: bool = True,
timeout: int = 300,
skip_schema_validation: bool = False,
) -> dict[str, Any]:
"""Install a chart asynchronously.

Expand All @@ -206,6 +207,8 @@ async def run(
create_namespace: Create the release namespace if not present
wait: Wait for all resources to be ready (default: True)
timeout: Timeout in seconds for wait (default: 300)
skip_schema_validation: Skip JSON schema validation for chart values (default: False).
Useful for charts with strict/buggy schemas (e.g., Istio gateway chart).

Returns:
Dictionary containing release information
Expand Down Expand Up @@ -235,6 +238,7 @@ def _install():
1 if create_namespace else 0,
1 if wait else 0,
timeout,
1 if skip_schema_validation else 0,
result_json,
)

Expand Down
Loading