@ -118,20 +118,28 @@ func (ch *Chart) Dependencies() []*Chart { return ch.dependencies }
func ( ch * Chart ) StampModTimes ( t time . Time ) {
func ( ch * Chart ) StampModTimes ( t time . Time ) {
t = t . UTC ( ) . Truncate ( time . Second )
t = t . UTC ( ) . Truncate ( time . Second )
ch . ModTime = t
ch . ModTime = t
ch . SchemaModTime = t
if len ( ch . Schema ) > 0 {
ch . SchemaModTime = t
}
if ch . Lock != nil {
if ch . Lock != nil {
ch . Lock . Generated = t
ch . Lock . Generated = t
}
}
for _ , f := range ch . Raw {
for _ , f := range ch . Raw {
f . ModTime = t
if f != nil {
f . ModTime = t
}
}
}
for _ , f := range ch . Templates {
for _ , f := range ch . Templates {
f . ModTime = t
if f != nil {
f . ModTime = t
}
}
}
for _ , f := range ch . Files {
for _ , f := range ch . Files {
f . ModTime = t
if f != nil {
f . ModTime = t
}
}
}
for _ , dep := range ch . dependencies {
for _ , dep := range ch . Dependencies ( ) {
dep . StampModTimes ( t )
dep . StampModTimes ( t )
}
}
}
}
@ -208,37 +216,6 @@ func (ch *Chart) CRDObjects() []CRD {
return crds
return crds
}
}
// StampModTimes sets timestamps on the chart (and dependencies) to epoch.
// This is used for reproducible builds via SOURCE_DATE_EPOCH.
func ( ch * Chart ) StampModTimes ( epoch time . Time ) {
ch . ModTime = epoch
if len ( ch . Schema ) > 0 {
ch . SchemaModTime = epoch
}
if ch . Lock != nil {
ch . Lock . Generated = epoch
}
for _ , f := range ch . Raw {
if f != nil {
f . ModTime = epoch
}
}
for _ , f := range ch . Templates {
if f != nil {
f . ModTime = epoch
}
}
for _ , f := range ch . Files {
if f != nil {
f . ModTime = epoch
}
}
for _ , dep := range ch . Dependencies ( ) {
dep . StampModTimes ( epoch )
}
}
func hasManifestExtension ( fname string ) bool {
func hasManifestExtension ( fname string ) bool {
ext := filepath . Ext ( fname )
ext := filepath . Ext ( fname )
return strings . EqualFold ( ext , ".yaml" ) || strings . EqualFold ( ext , ".yml" ) || strings . EqualFold ( ext , ".json" )
return strings . EqualFold ( ext , ".yaml" ) || strings . EqualFold ( ext , ".yml" ) || strings . EqualFold ( ext , ".json" )