Enhances the template engine and action config to allow users to inject custom template functions via an action config when using Helm as a library.
Closes#30733
Signed-off-by: Stepan Paksashvili <stepan.paksashvili@flant.com>
Cache the signing key passphrase. When signing multiple charts
with the passphrase from stdin, this allows signing all charts
instead of all but the first failing with an error about stdin
already having been closed.
Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
A new library was introduced that provides JSON Schema checking for
newer versions of the schema. In Helm v4, there is no need to have
two packages doing the JSON schema validation. The message output
can have breaking changes.
This change moves everything to the newer library. It also uses a
wrapper error to enable a clean Helm only interface for the
public Go API validation functions. This would enable the replacement
of the Schema validation library, if needed, without breaking the
Go API contract.
Signed-off-by: Matt Farina <matt.farina@suse.com>
A .gitignore was previously setup to ignore this file. When pkg/cmd
was setup the .gitignore was not updated. The change adds the new
location to continue to ignore this file.
Note, the previous location is still included in the .gitignore
because developers will have a file there and we do not want that
accidently included in a commit.
Signed-off-by: Matt Farina <matt.farina@suse.com>
While the constructor is not used by Helm itself, it is used by SDK
users and there is currently no alternative way to expose this.
Signed-off-by: Matt Farina <matt.farina@suse.com>
This regex was already deprecated.
Validation happens inside the Metadata Validate function for the
name instead of using this regex.
Signed-off-by: Matt Farina <matt.farina@suse.com>
So we should use dynamic handler to set the log level after. With this
patch we can clearly see the output. Before we were always stuck in log
level "info" and not seeing debug log level
```
bin/helm upgrade --install --debug --wait frontend \
--namespace test \
--set replicaCount=2 \
--set backend=http://backend-podinfo:9898/echo \
podinfo/podinfo
level=DEBUG msg="getting history for release" release=frontend
level=DEBUG msg="preparing upgrade" name=frontend
level=DEBUG msg="performing update" name=frontend
level=DEBUG msg="creating upgraded release" name=frontend
level=DEBUG msg="checking resources for changes" resources=2
level=DEBUG msg="no changes detected" kind=Service name=frontend-podinfo
level=DEBUG msg="patching resource" kind=Deployment name=frontend-podinfo namespace=test
level=DEBUG msg="waiting for resources" count=2 timeout=5m0s
level=DEBUG msg="waiting for resource" name=frontend-podinfo kind=Deployment expectedStatus=Current actualStatus=Unknown
level=DEBUG msg="updating status for upgraded release" name=frontend
Release "frontend" has been upgraded. Happy Helming!
NAME: frontend
LAST DEPLOYED: Thu Apr 10 09:56:25 2025
NAMESPACE: test
STATUS: deployed
REVISION: 6
DESCRIPTION: Upgrade complete
```
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
TestInstallRelease_Atomic_Interrupted needs the same wait
as TestInstallRelease_Wait_Interrupted (see helm/helm#12088).
The installation goroutine started by
TestInstallRelease_Atomic_Interrupted proceeds in the background and
may interfere with other tests (see helm/helm#30610)
Also see helm/helm#12086 and helm/helm#12109 which are describe and address the root
cause.
Signed-off-by: Rostyslav Polishchuk <rostyslavp@google.com>
Place APIService before webhooks, with MutatingWebhookConfiguration
before ValidatingWebhookConfiguration to match standard admission control.
Signed-off-by: Mike Delucchi <git@zanuka.com>
If a resource exists in the cluster and is to be adopted by helm install
--take-ownership, it is left unchanged while helm reports the
installation to have succeeded.
This is due to CRs and CRDs being merged without three-way-merge, which
results in an empty patch.
By using a three-way-merge transparently when --take-ownership is used,
the helm behaves as expected without breaking previous behavior.
Fixes#30622
Signed-off-by: Patrick Seidensal <pseidensal@suse.com>
In Helm v3 we did not change exit codes for existing commands to
maintain compat. A flag was introduced so a failure would result
in a non-0 exit code. A note was left to make this the default
in Helm v4. That's what this change does.
Closes#10016
Signed-off-by: Matt Farina <matt.farina@suse.com>
This option was kept to avoid compile-time incompatibilities in Helm v3
when upgrading to ORAS v2. Let's remove it for Helm v4.
This allows Helm to drop the containerd dependency entirely.
Signed-off-by: Tom Wieczorek <twieczorek@mirantis.com>