From 41a81f17264a7aee82de1cb5d73f416fe346952f Mon Sep 17 00:00:00 2001 From: root Date: Fri, 25 Aug 2017 15:40:25 +0800 Subject: [PATCH] fix(helm):Fix dependency aliaes not working The alias functionality only works when a hardcoded version is used. Any use of semver logic causes unexpected behavior. I use version.IsCompatibleRange to check the dependency version. Closes #2794 --- pkg/chartutil/requirements.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/chartutil/requirements.go b/pkg/chartutil/requirements.go index 606b5db88..d8535ca79 100644 --- a/pkg/chartutil/requirements.go +++ b/pkg/chartutil/requirements.go @@ -23,6 +23,8 @@ import ( "github.com/ghodss/yaml" "k8s.io/helm/pkg/proto/hapi/chart" + "k8s.io/helm/pkg/version" + ) const ( @@ -230,7 +232,7 @@ func getAliasDependency(charts []*chart.Chart, aliasChart *Dependency) *chart.Ch if existingChart.Metadata.Name != aliasChart.Name { continue } - if existingChart.Metadata.Version != aliasChart.Version { + if !version.IsCompatibleRange(aliasChart.Version, existingChart.Metadata.Version) { continue } chartFound = *existingChart @@ -266,7 +268,7 @@ func ProcessRequirementsEnabled(c *chart.Chart, v *chart.Config) error { for _, existingDependency := range c.Dependencies { var dependencyFound bool for _, req := range reqs.Dependencies { - if existingDependency.Metadata.Name == req.Name && existingDependency.Metadata.Version == req.Version { + if existingDependency.Metadata.Name == req.Name && version.IsCompatibleRange(req.Version, existingDependency.Metadata.Version) { dependencyFound = true break }