index.yaml regenerating every request even without any package updated #152
Closed
Description
The index.yaml will regenerate every request to /index.yaml
even though there is no any package changed.
When we compare the LastModified
between objects from cache and storage:
https://github.com/helm/chartmuseum/blob/master/pkg/storage/storage.go#L64
The objects from cache is out of order due to map ranging....
https://github.com/helm/chartmuseum/blob/master/pkg/chartmuseum/server/multitenant/index.go#L107
func (server *MultiTenantServer) getRepoObjectSlice(entry *cacheEntry) []cm_storage.Object {
var objects []cm_storage.Object
for _, entry := range entry.RepoIndex.Entries {
for _, chartVersion := range entry {
object := cm_repo.StorageObjectFromChartVersion(chartVersion)
objects = append(objects, object)
}
}
return objects
}
And the LastModifed
timestamp of object from storage seems has higher precision (I only test it on s3 backend)
LastModifed from cache: 2018-06-11T03:31:52.000Z
LastModifed from storage: 2018-06-11T03:31:52.094Z
Those above would cause the regenerating of index.yaml every request.
Metadata
Assignees
Labels
No labels