Fix dep build to be compatiable with Helm 2 when requirements use repo alias

Signed-off-by: Song Shukun <song.shukun@fujitsu.com>
pull/7651/head
Song Shukun 5 years ago
parent d6fad6b3c6
commit 13e2dcfde5

@ -82,6 +82,19 @@ func (m *Manager) Build() error {
// Check that all of the repos we're dependent on actually exist. // Check that all of the repos we're dependent on actually exist.
req := c.Metadata.Dependencies req := c.Metadata.Dependencies
// If using apiVersion v1, calculate the hash before resolve repo names
// because resolveRepoNames will change req if req uses repo alias
// and Helm 2 calculate the digest from the original req
// Fix for: https://github.com/helm/helm/issues/7619
var v2Sum string
if c.Metadata.APIVersion == chart.APIVersionV1 {
v2Sum, err = resolver.HashV2Req(req)
if err != nil {
return errors.New("the lock file (requirements.lock) is out of sync with the dependencies file (requirements.yaml). Please update the dependencies")
}
}
if _, err := m.resolveRepoNames(req); err != nil { if _, err := m.resolveRepoNames(req); err != nil {
return err return err
} }
@ -92,7 +105,7 @@ func (m *Manager) Build() error {
// Fix for: https://github.com/helm/helm/issues/7233 // Fix for: https://github.com/helm/helm/issues/7233
if c.Metadata.APIVersion == chart.APIVersionV1 { if c.Metadata.APIVersion == chart.APIVersionV1 {
log.Println("warning: a valid Helm v3 hash was not found. Checking against Helm v2 hash...") log.Println("warning: a valid Helm v3 hash was not found. Checking against Helm v2 hash...")
if sum, err := resolver.HashV2Req(req); err != nil || sum != lock.Digest { if v2Sum != lock.Digest {
return errors.New("the lock file (requirements.lock) is out of sync with the dependencies file (requirements.yaml). Please update the dependencies") return errors.New("the lock file (requirements.lock) is out of sync with the dependencies file (requirements.yaml). Please update the dependencies")
} }
} else { } else {

Loading…
Cancel
Save