Commit graph

12 commits

Author SHA1 Message Date
Mads Jensen
a490bb3c20 Use errors.Is to check for io.EOF and gzip.ErrHeader
In GoLang, using the == operator to check for a certain error will not
unwrap the error chain, and therefore may hide the problem.

Signed-off-by: Mads Jensen <atombrella@users.noreply.github.com>
2025-12-14 08:54:11 +01:00
Mads Jensen
a18e59e465 Enable the sloglint linter
Signed-off-by: Mads Jensen <atombrella@users.noreply.github.com>
2025-12-09 08:24:36 +01:00
Scott Rigby
b740071279
Merge pull request #31342 from TerryHowe/chore-remove-mitchellh-dependency-3
chore: replace github.com/mitchellh/copystructure
2025-11-14 15:26:10 -05:00
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>
2025-10-29 15:11:20 -04:00
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>
2025-10-29 11:49:22 -04:00
Fábio Carneiro
1477d3793f
Clarify the intent of the resource instructions
Signed-off-by: Fábio Carneiro <fahecs@gmail.com>
2025-10-07 17:17:07 +02:00
Terry Howe
bee9c1a108
chore: replace github.com/mitchellh/copystructure
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
2025-09-29 10:30:08 -06:00
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>
2025-09-17 15:19:02 -04:00
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>
2025-09-02 12:14:37 -04:00
joemicky
fab70472af refactor: replace []byte(fmt.Sprintf) with fmt.Appendf
Signed-off-by: joemicky <joemickychang@outlook.com>
2025-08-14 19:21:52 +08:00
Matt Farina
0c64ad1c97
fix Chart.yaml handling
Signed-off-by: Matt Farina <matt.farina@suse.com>
2025-07-29 13:18:29 -04:00
Matt Farina
70257f5cd6
Initial addition of v3 charts
This change adds v3 charts. The code for the chart, including a
loader, is present. It is based on v2 charts as a starting point.

Note, this change does not make the charts available for use with
Helm CLI commands or the action package. That will be in follow-up
changes.

Signed-off-by: Matt Farina <matt.farina@suse.com>
2025-07-25 12:57:47 -04:00