laervn
36aaa9aab9
Merge branch 'helm:main' into feat/add-no-headers-option
3 months ago
George Jenkins
bdc459d73c
Merge pull request #31389 from TerryHowe/chore-more-registry-clean-up
...
chore: fix pkg/registry warnings to reduce noise
3 months ago
Paul Van Laer
6ef79bb8d5
feat(repo): add --no-headers option to 'helm repo list'
...
This adds a --no-headers flag to the 'helm repo list' command,
allowing users to suppress table headers in the output.
Useful for scripting and automation.
Signed-off-by: Paul Van Laer <paul.van.laer1@gmail.com>
3 months ago
Benoit Tigeot
97b7a1c9ae
Merge branch 'main' into fix-31170-URN
...
Signed-off-by: Benoit Tigeot <benoittgt@users.noreply.github.com>
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
3 months ago
Matt Farina
15300549f0
When time not available, using time.Now
...
Note, when time is not available, the builds are not reproducible.
This problem would only happen when an SDK user is using parts of
the API to build their own tooling. Helm will consistently inject
the dates through the higher level APIs.
Signed-off-by: Matt Farina <matt.farina@suse.com>
3 months ago
Matt Farina
ca8eae9361
Reproducible chart archive builds
...
Building the same chart into an archive multiple times will have
the same sha256 hash.
Perviously, the time in the headers for a file was time.Now() which
changed each time. The time is now collected from the operating
system when the file is loaded and this time is used.
Fixes : #3612
Signed-off-by: Matt Farina <matt.farina@suse.com>
3 months ago
Scott Rigby
f4c5220d99
Merge pull request #31411 from banjoh/em/reinstate-logger-param
...
feat: reinstate logger parameter to actions package
3 months ago
tison
0d6de28bf4
chore: fix typo of public field
...
Signed-off-by: tison <wander4096@gmail.com>
3 months ago
Evans Mungai
2ddeb50fa6
Set default logger in Configuration constructor
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
3 months ago
Evans Mungai
a112bf5aa6
Remove non-reachable code
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
3 months ago
Matt Farina
1da2b0a6d4
Merge pull request #31204 from benoittgt/fix-31202
...
Avoid panic in helm.sh/helm/v3/pkg/chartutil.ValidateAgainstSchema
3 months ago
Robert Sirchia
25ad74f5a7
Merge pull request #31337 from rachelvweber/rawo/fixingWaitStrategy
...
Fixing rollback and uninstall client WaitStrategy
3 months ago
Evans Mungai
aed687eaa1
Add config options to NewConfiguration()
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
3 months ago
Evans Mungai
b6eca1c0f1
Refactor logging functionality to use slog.Handler
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
3 months ago
Evans Mungai
5ab4ca5490
Embed logging functionality to DRY code
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
3 months ago
Evans Mungai
9c32e34d60
Add logger to sql driver and ensure storage has logger
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
3 months ago
Evans Mungai
50e43f4017
nil logger should be handled by discard handler
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
3 months ago
Evans Mungai
7a5816b106
Self review changes
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
3 months ago
Evans Mungai
0f90c83118
Merge remote-tracking branch 'upstream/main' into em/reinstate-logger-param
3 months ago
Evans Mungai
b1d4dc680d
feat: reinstate logger parameter to actions package
...
Fixes : #31399
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
3 months ago
Matt Farina
76e6b7a6fe
Merge pull request #31390 from TerryHowe/chore-increase-helm-list-test-coverage
...
fix: improve pkg/cmd/list test coverage
3 months ago
Matt Farina
2cfd41ec28
Merge pull request #31351 from gjenkins8/gjenkins/helm_version_kubeversion
...
feat: `helm version` print Kubernetes (client-go) version
3 months ago
Matt Farina
752354074c
Merge pull request #31393 from benoittgt/12299
...
Return errors during upgrade when the deletion of resources fails
3 months ago
Matt Farina
37de51428c
Merge pull request #31376 from benoittgt/accept-yaml-yml
...
Do not ignore *.yml file on linting while accepting *.yaml
3 months ago
Matt Farina
b0247ce8bf
Merge pull request #31395 from wyrapeseed/main
...
chore: fix some comment format
3 months ago
Terry Howe
0f6e14dfd3
chore: fix various warnings to reduce noise
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
3 months ago
Jesse Simpson
3f860e83fb
fix: use empty results instead of nil
...
Signed-off-by: Jesse Simpson <jesse.simpson36@gmail.com>
3 months ago
Jesse Simpson
96b4c363c8
fix: Update returns nil on error, test should reflect this
...
Signed-off-by: Jesse Simpson <jesse.simpson36@gmail.com>
3 months ago
Terry Howe
917822cfca
refactor: remove unused err from pkg/registry/client.go
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
3 months ago
wyrapeseed
b9eadd3186
chore: fix some comment format
...
Signed-off-by: wyrapeseed <wyrapeseed@outlook.com>
3 months ago
Benoit Tigeot
7097c8e2e5
Replicate as unit test case where we fail once a resource deletion
...
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
3 months ago
Benoit Tigeot
054eabddd7
Return errors on upgrade when deletion fails
...
This is a rebase of https://github.com/helm/helm/pull/12299
as the pull request was tagged for Helm v4.
Closes: https://github.com/helm/helm/issues/11375
Related: https://github.com/helm/helm/pull/7929
It was a pain to reproduce, here is a script:
```
set -u
NS=default
RELEASE=test-release
CHART=./test-chart
SA=limited-helm-sa
HELM=${HELM:-./bin/helm}
echo "Helm: $($HELM version)"
echo "Cleaning…"
$HELM uninstall "$RELEASE" -n "$NS" >/dev/null 2>&1 || true
kubectl -n "$NS" delete sa "$SA" role "${SA}-role" rolebinding "${SA}-rb" >/dev/null 2>&1 || true
kubectl -n "$NS" delete cronjob "$RELEASE-test-chart-cronjob" >/dev/null 2>&1 || true
rm -rf "$CHART" /tmp/limited-helm-kubeconfig
echo "Create minimal chart with only a CronJob"
$HELM create "$CHART" >/dev/null
rm -f "$CHART"/templates/{deployment.yaml,service.yaml,hpa.yaml,tests/test-connection.yaml,serviceaccount.yaml}
cat > "$CHART/templates/cronjob.yaml" <<'YAML'
apiVersion: batch/v1
kind: CronJob
metadata:
name: {{ include "test-chart.fullname" . }}-cronjob
spec:
schedule: "*/5 * * * *"
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: hello
image: busybox
command: ["/bin/sh","-c","date; echo Hello from CronJob"]
YAML
echo "RBAC: allow Helm storage, basic reads/creates, but NO delete on cronjobs"
kubectl -n "$NS" apply -f - >/dev/null <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
name: $SA
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: ${SA}-role
rules:
- apiGroups: [""]
resources: ["secrets","configmaps"]
verbs: ["get","list","watch","create","patch","update","delete"]
- apiGroups: [""]
resources: ["pods","events"]
verbs: ["get","list","watch"]
- apiGroups: ["batch"]
resources: ["cronjobs"]
verbs: ["get","list","watch","create","patch","update"]
EOF
kubectl -n "$NS" apply -f - >/dev/null <<EOF
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: ${SA}-rb
subjects:
- kind: ServiceAccount
name: $SA
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: ${SA}-role
EOF
echo "Create kubeconfig for that SA"
TOKEN=$(kubectl -n "$NS" create token "$SA")
SERVER=$(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}')
CA_DATA=$(kubectl config view --minify --raw -o jsonpath='{.clusters[0].cluster.certificate-authority-data}')
KCFG=/tmp/limited-helm-kubeconfig
cat > "$KCFG" <<EOF
apiVersion: v1
kind: Config
clusters:
- name: local
cluster:
server: $SERVER
certificate-authority-data: $CA_DATA
contexts:
- name: limited
context:
cluster: local
namespace: $NS
user: $SA
current-context: limited
users:
- name: $SA
user:
token: $TOKEN
EOF
set +e
echo "Install (as limited SA)"
KUBECONFIG="$KCFG" $HELM upgrade --install "$RELEASE" "$CHART" -n "$NS" --wait
echo "CronJob after install:"
kubectl -n "$NS" get cronjob "$RELEASE-test-chart-cronjob" || true
echo "Remove CronJob from chart and add a small ConfigMap to force an upgrade"
rm -f "$CHART/templates/cronjob.yaml"
cat > "$CHART/templates/configmap.yaml" <<'YAML'
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "test-chart.fullname" . }}-config
data:
hello: world
YAML
echo "Upgrade without CronJob (as limited SA)"
KUBECONFIG="$KCFG" $HELM upgrade --install "$RELEASE" "$CHART" -n "$NS"
RC=$?
echo "Post-upgrade verification"
if kubectl -n "$NS" get cronjob "$RELEASE-test-chart-cronjob" >/dev/null 2>&1; then
echo "OK: Stale CronJob still present: $RELEASE-test-chart-cronjob"
else
echo "NO_OK: CronJob deleted"
fi
echo "Helm exit code: $RC"
exit 0
```
With the current build:
```sh
./reproduce-helm-issue.sh
Helm: version.BuildInfo{Version:"v4.0+unreleased", GitCommit:"f19bb9cd4c99943f7a4980d6670de44affe3e472", GitTreeState:"dirty", GoVersion:"go1.24.0"}
Cleaning…
Create minimal chart with CronJob + ConfigMap (we will remove both in v2)
RBAC: allow Helm storage + delete for configmaps, but NO delete on cronjobs
Create kubeconfig for that SA
Install v1 (as limited SA)
Release "test-release" does not exist. Installing it now.
NAME: test-release
LAST DEPLOYED: Tue Oct 14 18:55:57 2025
NAMESPACE: default
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
TEST SUITE: None
NOTES:
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=test-chart,app.kubernetes.io/instance=test-release" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT
Verify v1 objects exist
NAME SCHEDULE TIMEZONE SUSPEND ACTIVE LAST SCHEDULE AGE
test-release-test-chart-cronjob */5 * * * * <none> False 0 <none> 0s
NAME DATA AGE
test-release-test-chart-config 1 0s
Prepare v2: remove BOTH CronJob and ConfigMap from the chart
Upgrade to v2 (as limited SA) — expecting CronJob delete first, then ConfigMap
- CronJob delete should FAIL (no delete permission)
- ConfigMap delete should SUCCEED (delete allowed) — proves 'continue on error' and inverted order
level=DEBUG msg="getting history for release" release=test-release
level=DEBUG msg="getting release history" name=test-release
level=DEBUG msg="preparing upgrade" name=test-release
level=DEBUG msg="getting last revision" name=test-release
level=DEBUG msg="getting release history" name=test-release
level=DEBUG msg="number of dependencies in the chart" dependencies=0
level=DEBUG msg="determined release apply method" server_side_apply=true previous_release_apply_method=ssa
level=DEBUG msg="performing update" name=test-release
level=DEBUG msg="creating upgraded release" name=test-release
level=DEBUG msg="creating release" key=sh.helm.release.v1.test-release.v2
level=DEBUG msg="getting release history" name=test-release
level=DEBUG msg="using server-side apply for resource update" forceConflicts=false dryRun=false fieldValidationDirective=Strict upgradeClientSideFieldManager=false
level=DEBUG msg="checking resources for changes" resources=0
level=DEBUG msg="deleting resource" namespace=default name=test-release-test-chart-config kind=ConfigMap
level=DEBUG msg="deleting resource" namespace=default name=test-release-test-chart-cronjob kind=CronJob
level=DEBUG msg="failed to delete resource" namespace=default name=test-release-test-chart-cronjob kind=CronJob error="cronjobs.batch \"test-release-test-chart-cronjob\" is forbidden: User \"system:serviceaccount:default:limited-helm-sa\" cannot delete resource \"cronjobs\" in API group \"batch\" in the namespace \"default\""
level=INFO msg="update completed" created=0 updated=0 deleted=1
level=WARN msg="update completed with errors" errors=1
level=DEBUG msg="updating release" key=sh.helm.release.v1.test-release.v1
level=WARN msg="upgrade failed" name=test-release error="failed to delete resource test-release-test-chart-cronjob: cronjobs.batch \"test-release-test-chart-cronjob\" is forbidden: User \"system:serviceaccount:default:limited-helm-sa\" cannot delete resource \"cronjobs\" in API group \"batch\" in the namespace \"default\""
level=DEBUG msg="updating release" key=sh.helm.release.v1.test-release.v2
Error: UPGRADE FAILED: failed to delete resource test-release-test-chart-cronjob: cronjobs.batch "test-release-test-chart-cronjob" is forbidden: User "system:serviceaccount:default:limited-helm-sa" cannot delete resource "cronjobs" in API group "batch" in the namespace "default"
Post-upgrade verification
Stale CronJob still present: test-release-test-chart-cronjob (expected if delete is forbidden)
ConfigMap deleted as expected: test-release-test-chart-config (and after CronJob attempt)
Helm exit code: 1
```
With last version v3.19:
```
HELM=/usr/local/bin/helm ./reproduce-helm-issue.sh
Helm: version.BuildInfo{Version:"v3.19.0", GitCommit:"3d8990f0836691f0229297773f3524598f46bda6", GitTreeState:"clean", GoVersion:"go1.24.7"}
Cleaning…
Create minimal chart with only a CronJob
RBAC: allow Helm storage, basic reads/creates, but NO delete on cronjobs
Create kubeconfig for that SA
Install (as limited SA)
Release "test-release" does not exist. Installing it now.
NAME: test-release
LAST DEPLOYED: Tue Oct 14 19:07:01 2025
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=test-chart,app.kubernetes.io/instance=test-release" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT
CronJob after install:
NAME SCHEDULE TIMEZONE SUSPEND ACTIVE LAST SCHEDULE AGE
test-release-test-chart-cronjob */5 * * * * <none> False 0 <none> 0s
Remove CronJob from chart and add a small ConfigMap to force an upgrade
Upgrade without CronJob (as limited SA)
Release "test-release" has been upgraded. Happy Helming!
NAME: test-release
LAST DEPLOYED: Tue Oct 14 19:07:01 2025
NAMESPACE: default
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=test-chart,app.kubernetes.io/instance=test-release" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT
Post-upgrade verification
OK: Stale CronJob still present: test-release-test-chart-cronjob
Helm exit code: 0
```
Co-authored-by: dayeguilaiye <979014041@qq.com>
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
3 months ago
Terry Howe
3b2fd17799
chore: rename test registry
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
3 months ago
Terry Howe
379b0899b3
fix: increase helm list test coverage
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
3 months ago
George Jenkins
7dd2484aed
Merge pull request #31295 from TerryHowe/fix-make-helm-list-show-all-by-default
...
Fix make helm list show all by default
3 months ago
Scott Rigby
f0530309f0
Merge pull request #31302 from TerryHowe/fix-helm-verify-signature
...
fix: helm verify Run signature
3 months ago
Scott Rigby
f9d4373ea4
Merge pull request #31270 from TerryHowe/chore-registry-clean-up
...
chore: registry utils clean up
3 months ago
Terry Howe
abdf6603c0
fix test for rebase
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
3 months ago
Matt Farina
a03e8c9541
Merge pull request #31375 from TerryHowe/fix-release-info-time
...
fix: release info time parsing
3 months ago
Terry Howe
f6e60138e8
Update pkg/cmd/list.go
...
Co-authored-by: George Jenkins <gvjenkins@gmail.com>
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
3 months ago
Terry Howe
c3aa5c51e6
chore: clean up for comments
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
3 months ago
copilot-swe-agent[bot]
b4f932a715
Fix test by making date sorting stable and updating golden files
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
3 months ago
Terry Howe
8a73d97984
fix: make helm list show all by default
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
3 months ago
Marcin Owsiany
269a32a6d2
test: protect unknown hook delete policies
...
Signed-off-by: Marcin Owsiany <porridge@redhat.com>
3 months ago
Dirk Müller
9cd40c612a
Avoid accessing .Items on nil object
...
When listing fails for whatever reason, the return value is nil, err.
so handle err explicitly.
Signed-off-by: Dirk Müller <dirk@dmllr.de>
3 months ago
Benoit Tigeot
06188f9dfe
Add test for isYamlFileExtension functions
...
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
4 months ago
Terry Howe
20eb6e9b04
fix: empty time values
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
4 months ago
Matt Farina
fbf02e494e
Merge pull request #30980 from gjenkins8/gjenkins/cleanup_kubeclient_interfaces
...
cleanup: Remove/consolidate redundant kube client Interfaces
4 months ago
Matt Farina
78cd44bd75
Merge pull request #30712 from gjenkins8/gjenkins/cleanup_lint_template
...
cleanup: Remove extra lint/rules.Template functions
4 months ago
Matt Farina
24159ec8b6
Moving new default accessor functions to internal per feedback
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
4 months ago
Matt Farina
fb20e96a56
Adding a test/example for the release accessor
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
4 months ago
Matt Farina
ab6e7fa58b
Removing debug statement
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
4 months ago
Matt Farina
a229bf6529
Ensure the release interface is used in actions instead of the type
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
4 months ago
Matt Farina
9c958dec76
Making uninstall response generic
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
4 months ago
Matt Farina
f80cbe43d0
Moved release objects to enable versioning
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
4 months ago
Matt Farina
2247a0074b
Move all the get commands to the new release interface
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
4 months ago
Matt Farina
94bfe9ba12
Move action get metadata to chart interfaces
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
4 months ago
Benoit Tigeot
4a944230ea
Do not ignore *.yml file on linting while accepting *.yaml
...
From : https://github.com/helm/helm/pull/30712/files#r2417446037
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
4 months ago
George Jenkins
4877e2d7e9
Merge pull request #30833 from gjenkins8/gjenkins/refactor_dry_run_flag
...
refactor/cleanup: Replace action 'DryRun' string with DryRunStrategy type + deprecations
4 months ago
George Jenkins
c75026c318
doc string
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
4 months ago
George Jenkins
1581eaa034
Apply suggestions from code review
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
4 months ago
George Jenkins
b861de5696
Update pkg/kube/interface.go
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
4 months ago
Robert Sirchia
600eb487f1
Merge pull request #31349 from TerryHowe/fix-shuffle-lint-test
...
fix: flakey lint test on shuffle
4 months ago
Robert Sirchia
788087a821
Merge pull request #31326 from TerryHowe/sign-31181
...
Update sign tests to use testify
4 months ago
Robert Sirchia
acb1b2c651
Merge pull request #31354 from TerryHowe/fix-flake-upgrade-test
...
fix: flake upgrade test
4 months ago
George Jenkins
0adfe83ff8
Merge pull request #31227 from evankanderson/windows-filepath
...
Use filepath.Path when handling directory names
4 months ago
Joe Julian
9590d4214a
Merge pull request #31307 from TerryHowe/fix-ignore-local-path-when-repo-provided
...
fix: Ignore absolute path when RepoUrl is provided
4 months ago
Terry Howe
a24318c7f1
fix: flake upgrade test
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
4 months ago
George Jenkins
7761d937ca
testfix
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
4 months ago
George Jenkins
a7a6a5e3b0
Merge pull request #31312 from gjenkins8/gjenkins/rm_plugin_schema_settings
...
Remove unused 'Settings' from plugin schema
4 months ago
Terry Howe
ee322a9671
fix: flakey lint test on shuffle
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
4 months ago
Terry Howe
bee9c1a108
chore: replace github.com/mitchellh/copystructure
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
4 months ago
Rachel Weber
472f8b2628
Fixing rollback and uninstall client WaitStrategy.
...
Signed-off-by: Rachel Weber <rawo@microsoft.com>
4 months ago
George Jenkins
61e3d95a94
Merge pull request #31143 from TerryHowe/fix-remove-redundant-error-check
...
fix: remove redundant error check
4 months ago
Terry Howe
f9152dc048
chore: update sign tests to use testify
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
4 months ago
George Jenkins
900cf2a93d
Merge pull request #31320 from kosiew/sign-31181
...
provenance: allow RSA signing when ed25519 keys are present (switch to ProtonMail/go-crypto)
4 months ago
Terry Howe
9c7bf37c6f
fix: Ignore absolute path when RepoUrl is provided
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
Co-authored-by: Mohammad Forutan <mforutan@users.noreply.github.com>
4 months ago
Terry Howe
cf811bb11f
chore: registry utils clean up
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
4 months ago
juejinyuxitu
69dbd6115e
chore: fix some typos in comment
...
Signed-off-by: juejinyuxitu <juejinyuxitu@outlook.com>
4 months ago
Siew Kam Onn
1c8d5804e2
Refactor SQL tests to use recentUnixTimestamp for time arguments
...
Signed-off-by: Siew Kam Onn <kosiew@gmail.com>
4 months ago
Siew Kam Onn
0b5d8033b9
Add Ed25519 key presence check in mixed keyring signing test
...
Signed-off-by: Siew Kam Onn <kosiew@gmail.com>
4 months ago
Siew Kam Onn
7c9176ae35
Update dependencies and refactor crypto imports to use ProtonMail's go-crypto package
...
Signed-off-by: Siew Kam Onn <kosiew@gmail.com>
4 months ago
George Jenkins
23c5662019
Merge pull request #31254 from benoittgt/fix-31253-closest-version
...
Warn when we fallback to a different version on `helm pull`
4 months ago
George Jenkins
561a7da61c
Merge pull request #31297 from TerryHowe/fix-hide-notes-in-helm-test
...
fix: hide notes in helm test command
4 months ago
George Jenkins
efcb5735e5
cleanup: Remove extra lint/rules.Template functions
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
4 months ago
George Jenkins
b5de5b1591
chore: Cleanup additional/redundant kube client Interfaces
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
4 months ago
George Jenkins
f21b143bef
refactor: Replace action 'DryRun' string with DryRunStrategy type + deprecations
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
4 months ago
George Jenkins
6bc6231bcc
Remove unused 'Settings' from plugin schema
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
4 months ago
Robert Sirchia
5b43b744b8
Merge pull request #31294 from TerryHowe/feature-remove-implicit-directory-from-helm-lint
...
Remove implicit support for helm lint current directory
4 months ago
Robert Sirchia
fdb5e1a97a
Merge pull request #31301 from TerryHowe/chore-remove-helm-version-client
...
chore: remove helm version `--client` option
4 months ago
Matt Farina
d2236e95ed
Merge pull request #31303 from mattfarina/unified-loader
...
Update the action interfaces for chart apiversions
4 months ago
Matt Farina
8dc7c57f50
Update the action interfaces for chart apiversions
...
This change is about handling the interfaces to public functions for
different chart apiVersions. The internals are still focused on v2.
This enables v3 to be layered in layer.
Signed-off-by: Matt Farina <matt.farina@suse.com>
4 months ago
Terry Howe
020a8eccfd
fix: helm verify run signature
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
4 months ago
zyfy29
b24bfe4168
Merge branch 'main' into delete-unused-var
...
Signed-off-by: zyfy29 <wasuremono127@gmail.com>
4 months ago
Terry Howe
469f4b457c
chore: remove helm version client option
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
4 months ago
Matt Farina
90a91e097f
Merge pull request #31198 from TerryHowe/fix-pkg-engine-error-parsing
...
fix: replace pkg/engine regular expressions with parser
4 months ago
Matt Farina
da595e0e71
Merge pull request #31293 from TerryHowe/copilot/fix-8
...
chore: remove pkg/time which is no longer needed
4 months ago
Terry Howe
dab4fd2909
fix: hide notes in helm test command
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
4 months ago
copilot-swe-agent[bot]
838c36a0f6
Remove implicit support for helm lint current directory
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
4 months ago
Terry Howe
3e1dd9a5dc
chore: remove pkg/time which is no longer needed
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
4 months ago
reddaisyy
1c67fbf108
refactor: use strings.builder
...
Signed-off-by: reddaisyy <reddaisy@outlook.jp>
4 months ago
Artem Vdovin
ae4af69b9d
fix test
...
Signed-off-by: Artem Vdovin <arte.vdovin@gmail.com>
4 months ago
Artem Vdovin
aaaa457f04
Merge branch 'main' into bug/index-concurrency
4 months ago
Terry Howe
b2870379c8
Update pkg/engine/engine.go
...
Co-authored-by: George Jenkins <gvjenkins@gmail.com>
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
4 months ago
Terry Howe
91a65234ac
Update pkg/engine/engine.go
...
Co-authored-by: George Jenkins <gvjenkins@gmail.com>
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
4 months ago
Terry Howe
9112687a7e
Update pkg/engine/engine.go
...
Co-authored-by: George Jenkins <gvjenkins@gmail.com>
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
4 months ago
Tom Wieczorek
6181e0a873
Make test scripts run without /bin/bash
...
The test scripts hardcoded #!/bin/bash while they are not really
requiring bash. Use the more portable #!/usr/bin/env sh instead, so that
they use the default shell.
Signed-off-by: Tom Wieczorek <twieczorek@mirantis.com>
4 months ago
bennsimon
db50c37eda
remove metadata output on helm template
...
Signed-off-by: bennsimon <bennsimonotieno@gmail.com>
4 months ago
Robert Sirchia
5534c01cdb
Merge pull request #31277 from benoittgt/31234-fix
...
Fix deprecation warning for spf13/pflag from 1.0.7 to 1.0.10
5 months ago
Evan Anderson
20f4e1f12d
Use filepath.Path when handling directory names
...
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
5 months ago
Benoit Tigeot
99e5fce71a
Fix deprecation warning for spf13/pflag from 1.0.7 to 1.0.10
...
Close : #31231
```
Error: cmd/helm/root.go:165:2: SA1019: flags.ParseErrorsWhitelist is deprecated: use [FlagSet.ParseErrorsAllowlist] instead. This field will be removed in a future release. (staticcheck)
```
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
5 months ago
Matt Farina
1a06fe9901
Merge pull request #31275 from benoittgt/13414-v2
...
Extend --skip-schema-validation for lint command
5 months ago
Benoit Tigeot
072e2a689a
Extend --skip-schema-validation for lint command
...
When --skip-schema-validation is enabled, the lint command will now skip
JSON schema validation for values.yaml files, allowing charts with schema
validation errors to pass linting when the flag is used.
This addresses the gap where --skip-schema-validation only applied to
templates but not to values files, providing complete schema validation
bypass when needed.
Fixes : #13413
Signed-off-by: Suleiman Dibirov <idsulik@gmail.com>
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
5 months ago
Scott Rigby
315b13334c
Merge pull request #31258 from StephanieHhnbrg/test-unreachable-client
...
Refactor unreachableKubeClient for testing into failingKubeClient
5 months ago
Stephanie Hohenberg
e19d9fb6ee
Refactor unreachableKubeClient for testing into failingKubeClient
...
Signed-off-by: Stephanie Hohenberg <stephanie.hohenberg@gmail.com>
5 months ago
Benoit Tigeot
939fff9cb9
Avoid "panic: interface conversion: interface {} is nil"
...
Closes : #31202
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
5 months ago
Jesse Simpson
712cde4624
test: passes now
...
Signed-off-by: Jesse Simpson <jesse.simpson36@gmail.com>
5 months ago
Jesse Simpson
b060911075
refactor: break out into functions and draft tests
...
Signed-off-by: Jesse Simpson <jesse.simpson36@gmail.com>
5 months ago
Benoit Tigeot
9e2d4680e1
Warn when we fallback to a different version on `helm pull`
...
Close: https://github.com/helm/helm/issues/31253
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
5 months ago
Kamil Swiechowski
a645dfb7f8
fix:semverv2 lint test error message
...
Signed-off-by: Kamil Swiechowski <kamil.swiechowski@iprally.com>
5 months ago
Scott Rigby
78cf5470d1
Merge pull request #31199 from TerryHowe/fix-flaky-registry-data-race
...
fix: flaky registry data race on mockdns close
5 months ago
Scott Rigby
8602422b7a
Merge pull request #31064 from kamilswiec/main
...
lint: throw warning when chart version is not semverv2
5 months ago
Scott Rigby
50358d7ffd
Merge pull request #31200 from TerryHowe/fix-install-tests
...
fix: installer action goroutine count
5 months ago
Benoit Tigeot
8025a397e6
Ignore duplicated URN in logs
...
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
5 months ago
Benoit Tigeot
03bb62f63d
jsonschema: warn and ignore unresolved URN $ref to match v3.18.4
...
- v3.18.5 switched jsonschema and began resolving external $ref
at compile-time, exposing missing urn handling
(“no URLLoader registered for urn:…”).
- Add urn scheme loader and pluggable URNResolver. If unresolved, log
a warning and return a permissive true schema (back-compat).
- Apply to pkg/chart/v2 and internal/chart/v3 validators. Not sure about
that
Note: external URNs need AddResource/Resolver (the CLI uses --map for
this). Warning may appear twice since both validators run.
Another strategy could be to add the option to import more "external
schema" explicitly but it is another PR. Something similar to `--map`
from jsonschema package
(santhosh-tekuri/jsonschema@ed65924).
Close : #31170
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
5 months ago
Matt Farina
fc22b6df31
Merge pull request #31222 from benoittgt/30987-ghcr-io
...
Prevent failing `helm push` on ghcr.io using standard GET auth token flow
5 months ago
Robert Sirchia
191154640f
Merge pull request #31197 from tzchenxixi/main
...
chore: fix function name
5 months ago
Kamil Swiechowski
38d1a7376f
fix: throw warning when chart version is not semverv2
...
Signed-off-by: Kamil Swiechowski <kamil.swiechowski@iprally.com>
5 months ago
Matt Farina
618b14a772
Merge pull request #31225 from mattfarina/move-lint-to-chart
...
Move lint pkg to be part of each chart version
5 months ago
George Jenkins
a8151ef4fe
Cleanup plugin config
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
5 months ago
Scott Rigby
ed6cab39c6
Merge pull request #31219 from gjenkins8/gjenkins/plugin-integration/rm_setup_plugin_env
5 months ago
Matt Farina
9dcc49cbd5
Move lint pkg to be part of each chart version
...
Linting is specific to the chart versions. A v2 and v3 chart will
lint differently.
To accomplish this, packages like engine need to be able to handle
different chart versions. This was accomplished by some changes:
1. The introduction of a Charter interface for charts
2. The ChartAccessor which is able to accept a chart and then
provide access to its data via an interface. There is an
interface, factory, and implementation for each version of
chart.
3. Common packages were moved to a common and util packages.
Due to some package loops, there are 2 packages which may
get some consolidation in the future.
The new interfaces provide the foundation to move the actions
and cmd packages to be able to handle multiple apiVersions of
charts.
Signed-off-by: Matt Farina <matt.farina@suse.com>
5 months ago
Matt Farina
52267ee74b
Move repo package to versioned directory
...
The repo package is internally versioned at v1. Repos were designed
to be versioned. This change moves it to a versioned directory the
same way other packages are now being handled.
Signed-off-by: Matt Farina <matt.farina@suse.com>
5 months ago
Matt Farina
6f957f4922
Move the release util to the versioned directory
...
The release util package is directly related to the v1 of
releases and uses the v1 of releases.
Signed-off-by: Matt Farina <matt.farina@suse.com>
5 months ago
George Jenkins
5926ec83dd
Remove SetupPluginEnv
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
5 months ago
George Jenkins
665c5a1fc9
Merge pull request #31224 from gjenkins8/gjenkins/postrenderer_plugin_message_value
...
fix: Adjust PostRenderer plugin output to value
5 months ago
George Jenkins
d99d732542
fix: Adjust PostRenderer plugin output to value
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
5 months ago
Benoit Tigeot
5595c0d005
Prevent failing helm push on ghcr.io using standard GET auth token flow
...
Fix GHCR auth by not forcing OAuth2 POST but also reset
ForceAttemptOAuth2 after login.
- Remove ForceAttemptOAuth2 in NewClient and only enable during Login
ping and always restore to false.
- Aligns with OCI Distribution auth (token via GET), avoiding GHCR 405
on POST /token.
- Some tests
Failures logs:
```sh
~/p/lifen/test/helm-f/quicktest ❯ ../../../helm/bin/helm push quicktest-0.1.0.tgz oci://ghcr.io/benoittgt/helm-charts --debug
level=DEBUG msg=HEAD id=0 url=https://ghcr.io/v2/benoittgt/helm-charts/quicktest/manifests/sha256:af359fd8fb968ec1097afbd6e8e1dac9ee130861082e54dc2340d0c019407873 header=" \"Accept\": \"application/vnd.docker.distribution.manifest.v2+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.oci.image.manifest.v1+json, application/vnd.oci.image.index.v1+json, application/vnd.oci.artifact.manifest.v1+json\"\n \"User-Agent\": \"Helm/4.0+unreleased\""
level=DEBUG msg=Resp id=0 status="401 Unauthorized" header=" \"Www-Authenticate\": \"Bearer realm=\\\"https://ghcr.io/token \\\",service=\\\"ghcr.io\\\",scope=\\\"repository:benoittgt/helm-charts/quicktest:pull\\\"\"\n \"Date\": \"Mon, 01 Sep 2025 13:56:35 GMT\"\n \"Content-Length\": \"73\"\n \"X-Github-Request-Id\": \"DC73:115F:2B40F2C:2BAB567:68B5A613\"\n \"Content-Type\": \"application/json\"" body=" Response body is empty"
level=DEBUG msg=POST id=1 url=https://ghcr.io/token header=" \"Content-Type\": \"application/x-www-form-urlencoded\"\n \"User-Agent\": \"Helm/4.0+unreleased\""
level=DEBUG msg=Resp id=1 status="405 Method Not Allowed" header=" \"Docker-Distribution-Api-Version\": \"registry/2.0\"\n \"Strict-Transport-Security\": \"max-age=63072000; includeSubDomains; preload\"\n \"Date\": \"Mon, 01 Sep 2025 13:56:35 GMT\"\n \"Content-Length\": \"78\"\n \"X-Github-Request-Id\": \"DC73:115F:2B40F75:2BAB5C2:68B5A613\"\n \"Content-Type\": \"application/json\"" body="{\"errors\":[{\"code\":\"UNSUPPORTED\",\"message\":\"The operation is unsupported.\"}]}\n"
Error: failed to perform "Exists" on destination: HEAD "https://ghcr.io/v2/benoittgt/helm-charts/quicktest/manifests/sha256:af359fd8fb968ec1097afbd6e8e1dac9ee130861082e54dc2340d0c019407873 ": POST "https://ghcr.io/token ": response status code 405: unsupported: The operation is unsupported.
```
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
5 months ago
tzchenxixi
89aca09e5e
chore: fix function name
...
Signed-off-by: tzchenxixi <tzchenxixi@icloud.com>
5 months ago
George Jenkins
c35755a197
Remove legacy Command/Hooks from v1 Subprocess ( #23 )
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
5 months ago
Scott Rigby
591d863df5
Move Postrenderer to a plugin type
...
Fix/add back postrenderer args unit tests
Signed-off-by: Scott Rigby <scott@r6by.com>
5 months ago
Scott Rigby
e814ff3c38
Remove unnecessary file i/o operations from signing and verifying
...
Signed-off-by: Scott Rigby <scott@r6by.com>
5 months ago
Scott Rigby
9ea35da0d0
[HIP-0026] Plugin packaging, signing, and verification ( #31176 )
...
* Plugin packaging, signing and verification
Signed-off-by: Scott Rigby <scott@r6by.com>
* wrap keyring read error with more explicit message
Co-authored-by: Jesse Simpson <jesse.simpson36@gmail.com>
Signed-off-by: Scott Rigby <scott@r6by.com>
* skip unnecessary check
Co-authored-by: Evans Mungai <mbuevans@gmail.com>
Signed-off-by: Scott Rigby <scott@r6by.com>
* Change behavior for installing plugin with missing .prov file (now warns and continues instead of failing)
Signed-off-by: Scott Rigby <scott@r6by.com>
* Add comprehensive plugin verification tests
- Test missing .prov files (warns but continues)
- Test invalid .prov file formats (fails verification)
- Test hash mismatches in .prov files (fails verification)
- Test .prov file access errors (fails appropriately)
- Test directory plugins don't support verification
- Test installation without verification enabled (succeeds)
- Test with valid .prov files (fails on empty keyring as expected)
---------
Signed-off-by: Scott Rigby <scott@r6by.com>
Co-authored-by: Jesse Simpson <jesse.simpson36@gmail.com>
Co-authored-by: Evans Mungai <mbuevans@gmail.com>
5 months ago
Terry Howe
b12cd28503
fix: installer action goroutine count
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
5 months ago
George Jenkins
892e86182f
Merge pull request #31194 from gjenkins8/gjenkins/plugin-integration/wasm_runtime
...
[HIP-0026] Plugin extism/v1 runtime
5 months ago
George Jenkins
80f659ce8b
Merge pull request #31178 from mattfarina/env-content-cache
...
Add content cache to helm env
5 months ago
zyfy29
8068578266
chore: delete unused var in installer.go
...
Signed-off-by: zyfy29 <wasuremono127@gmail.com>
5 months ago
George Jenkins
2658a00863
fix output message value
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
5 months ago
Terry Howe
ce97a2449e
fix: move mockdns to packge level
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
5 months ago
Terry Howe
6273f9b38e
fix: flaky registry data race on mockdns close
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
5 months ago