We’ve noticed that some users still include the URL scheme and full path
when logging into an OCI registry, for example:
```sh
helm registry login -u $OCI_REGISTRY_USER --password-stdin oci://ghcr.io/org/repo
```
This is no longer necessary and will not be supported in Helm v4.
To guide users toward the correct usage, we should show an example of
the ideal command.
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
- The newReference() function transforms version tags by replacing + with _ for OCI compatibility
- But the code was using the original ref (with +) for TagBytes()
- Then it tries to find the tagged reference using parsedRef.String() (with _)
- This mismatch causes the Resolve method to fail with "not found"
- By using parsedRef.String() consistently in both places, the references will match and the lookup will succeed.
I extracted the TagBytes function to improve testability.
Push() includes several external calls that are hard to mock,
so isolating this logic makes testing more manageable.
Close: #30881
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
This reverts #13533
This change has caused issues with numerous charts around things
unrelated to toml. This is because of functions like typeIs/typeOf
being used and acted upon.
The change caused a significant regression.
Note: This kind of change can be put into v3 charts, that are in
active development, without causing a regression.
Closes#30880
Signed-off-by: Matt Farina <matt@mattfarina.com>
There used to be two implemenations for concatenating the repo URL with
the chart URI / URL. In case the chart specified an absolute URI, one of
the implementations performed an incorrect concatenation between the
two, resulting in a URL which looks like <repo-URL><absolute-chart-URI>.
This commit removes the faulty implementation and uses the other correct
one instead.
Signed-off-by: Omri Steiner <omri@steiners.co.il>
imported values are stored in dependency objects, which breaks if a chart dependency is shared among multiple aliases.
By copying the dependency objects in the metadata values can be imported correctly.
Supersedes #10174
Signed-off-by: Daniel Strobusch <1847260+dastrobu@users.noreply.github.com>
Dependencies keep a reference on their parent chart, which breaks if a chart reference is shared among multiple aliases.
By copying the dependencies, parent information can be set correctly to render the templates as expected later on.
Note that this change will make ChartFullPath return a different path for sub-subcharts. It will contain the alias names instead of the path to the chart files which makes it consistent with paths to templates on the subchart level.
Closes#9150
Signed-off-by: Daniel Strobusch <1847260+dastrobu@users.noreply.github.com>
The `TestValidateChartIconPresence` test fails when run after
`TestValidateChartIconURL` as they both are using a global
variable `badChart.Icon`
```
: go test -v -test.shuffle 1 -run '^(TestValidateChartIconPresence|TestValidateChartIconURL)$' ./pkg/lint/rules/
-test.shuffle 1
=== RUN TestValidateChartIconURL
--- PASS: TestValidateChartIconURL (0.00s)
=== RUN TestValidateChartIconPresence
chartfile_test.go:171: validateChartIconPresence to return a linter error, got no error
--- FAIL: TestValidateChartIconPresence (0.00s)
FAIL
FAIL helm.sh/helm/v4/pkg/lint/rules 0.051s
FAIL
: go test -v -test.shuffle 2 -run '^(TestValidateChartIconPresence|TestValidateChartIconURL)$' ./pkg/lint/rules/
-test.shuffle 2
=== RUN TestValidateChartIconPresence
--- PASS: TestValidateChartIconPresence (0.00s)
=== RUN TestValidateChartIconURL
--- PASS: TestValidateChartIconURL (0.00s)
PASS
ok helm.sh/helm/v4/pkg/lint/rules 0.050s
```
This commit:
1. Remove dependency on global variable
2. Explicitly set the state of the test object.
Signed-off-by: Rostyslav Polishchuk <rostyslavp@google.com>