Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
H
helm3
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
go
helm3
Commits
af9190f9
Commit
af9190f9
authored
Nov 22, 2017
by
Christoph Hösler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feature: let FindChartInRepoURL return absolute chart URLs
parent
2106766a
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
47 additions
and
21 deletions
+47
-21
install.go
cmd/helm/install.go
+3
-18
helm_install.md
docs/helm/helm_install.md
+1
-1
chartrepo.go
pkg/repo/chartrepo.go
+25
-2
chartrepo_test.go
pkg/repo/chartrepo_test.go
+18
-0
No files found.
cmd/helm/install.go
View file @
af9190f9
...
@@ -85,7 +85,7 @@ There are five different ways you can express the chart you want to install:
...
@@ -85,7 +85,7 @@ There are five different ways you can express the chart you want to install:
2. By path to a packaged chart: helm install ./nginx-1.2.3.tgz
2. By path to a packaged chart: helm install ./nginx-1.2.3.tgz
3. By path to an unpacked chart directory: helm install ./nginx
3. By path to an unpacked chart directory: helm install ./nginx
4. By absolute URL: helm install https://example.com/charts/nginx-1.2.3.tgz
4. By absolute URL: helm install https://example.com/charts/nginx-1.2.3.tgz
5. By chart reference and repo url: helm install --repo https://example.com/charts nginx
5. By chart reference and repo url: helm install --repo https://example.com/charts
/
nginx
CHART REFERENCES
CHART REFERENCES
...
@@ -425,22 +425,7 @@ func locateChartPath(repoURL, name, version string, verify bool, keyring,
...
@@ -425,22 +425,7 @@ func locateChartPath(repoURL, name, version string, verify bool, keyring,
if
err
!=
nil
{
if
err
!=
nil
{
return
""
,
err
return
""
,
err
}
}
name
=
chartURL
parsedChartURL
,
err
:=
url
.
Parse
(
chartURL
)
if
err
!=
nil
{
return
""
,
err
}
if
parsedChartURL
.
IsAbs
()
{
name
=
chartURL
}
else
{
parsedRepoURL
,
err
:=
url
.
Parse
(
repoURL
)
if
err
!=
nil
{
return
""
,
err
}
name
=
parsedRepoURL
.
ResolveReference
(
parsedChartURL
)
.
String
()
}
}
}
if
_
,
err
:=
os
.
Stat
(
settings
.
Home
.
Archive
());
os
.
IsNotExist
(
err
)
{
if
_
,
err
:=
os
.
Stat
(
settings
.
Home
.
Archive
());
os
.
IsNotExist
(
err
)
{
...
@@ -459,7 +444,7 @@ func locateChartPath(repoURL, name, version string, verify bool, keyring,
...
@@ -459,7 +444,7 @@ func locateChartPath(repoURL, name, version string, verify bool, keyring,
return
filename
,
err
return
filename
,
err
}
}
return
filename
,
fmt
.
Errorf
(
"f
ile %q not found
"
,
name
)
return
filename
,
fmt
.
Errorf
(
"f
ailed to download %q
"
,
name
)
}
}
func
generateName
(
nameTemplate
string
)
(
string
,
error
)
{
func
generateName
(
nameTemplate
string
)
(
string
,
error
)
{
...
...
docs/helm/helm_install.md
View file @
af9190f9
...
@@ -46,7 +46,7 @@ There are five different ways you can express the chart you want to install:
...
@@ -46,7 +46,7 @@ There are five different ways you can express the chart you want to install:
2.
By path to a packaged chart: helm install ./nginx-1.2.3.tgz
2.
By path to a packaged chart: helm install ./nginx-1.2.3.tgz
3.
By path to an unpacked chart directory: helm install ./nginx
3.
By path to an unpacked chart directory: helm install ./nginx
4.
By absolute URL: helm install https://example.com/charts/nginx-1.2.3.tgz
4.
By absolute URL: helm install https://example.com/charts/nginx-1.2.3.tgz
5.
By chart reference and repo url: helm install --repo https://example.com/charts nginx
5.
By chart reference and repo url: helm install --repo https://example.com/charts
/
nginx
CHART REFERENCES
CHART REFERENCES
...
...
pkg/repo/chartrepo.go
View file @
af9190f9
...
@@ -184,7 +184,7 @@ func (r *ChartRepository) generateIndex() error {
...
@@ -184,7 +184,7 @@ func (r *ChartRepository) generateIndex() error {
}
}
// FindChartInRepoURL finds chart in chart repository pointed by repoURL
// FindChartInRepoURL finds chart in chart repository pointed by repoURL
// without adding repo to repos
ti
ories
// without adding repo to repos
it
ories
func
FindChartInRepoURL
(
repoURL
,
chartName
,
chartVersion
,
certFile
,
keyFile
,
caFile
string
,
getters
getter
.
Providers
)
(
string
,
error
)
{
func
FindChartInRepoURL
(
repoURL
,
chartName
,
chartVersion
,
certFile
,
keyFile
,
caFile
string
,
getters
getter
.
Providers
)
(
string
,
error
)
{
// Download and write the index file to a temporary location
// Download and write the index file to a temporary location
...
@@ -227,5 +227,28 @@ func FindChartInRepoURL(repoURL, chartName, chartVersion, certFile, keyFile, caF
...
@@ -227,5 +227,28 @@ func FindChartInRepoURL(repoURL, chartName, chartVersion, certFile, keyFile, caF
return
""
,
fmt
.
Errorf
(
"%s has no downloadable URLs"
,
errMsg
)
return
""
,
fmt
.
Errorf
(
"%s has no downloadable URLs"
,
errMsg
)
}
}
return
cv
.
URLs
[
0
],
nil
chartURL
:=
cv
.
URLs
[
0
]
absoluteChartURL
,
err
:=
MakeAbsoluteChartURL
(
repoURL
,
chartURL
)
if
err
!=
nil
{
return
""
,
err
}
return
absoluteChartURL
,
nil
}
// MakeAbsoluteChartURL resolves chartURL relative to repoURL.
// If chartURL is absolute, it returns chartURL.
func
MakeAbsoluteChartURL
(
repoURL
,
chartURL
string
)
(
string
,
error
)
{
parsedRepoURL
,
err
:=
url
.
Parse
(
repoURL
)
if
err
!=
nil
{
return
""
,
err
}
parsedChartURL
,
err
:=
url
.
Parse
(
chartURL
)
if
err
!=
nil
{
return
""
,
err
}
return
parsedRepoURL
.
ResolveReference
(
parsedChartURL
)
.
String
(),
nil
}
}
pkg/repo/chartrepo_test.go
View file @
af9190f9
...
@@ -277,3 +277,21 @@ func TestErrorFindChartInRepoURL(t *testing.T) {
...
@@ -277,3 +277,21 @@ func TestErrorFindChartInRepoURL(t *testing.T) {
t
.
Errorf
(
"Expected error for chart not found, but got a different error (%v)"
,
err
)
t
.
Errorf
(
"Expected error for chart not found, but got a different error (%v)"
,
err
)
}
}
}
}
func
TestMakeAbsoluteChartURL
(
t
*
testing
.
T
)
{
chartURL
,
err
:=
MakeAbsoluteChartURL
(
"http://localhost:8123/charts/"
,
"nginx-0.2.0.tgz"
)
if
err
!=
nil
{
t
.
Errorf
(
"%s"
,
err
)
}
if
chartURL
!=
"http://localhost:8123/charts/nginx-0.2.0.tgz"
{
t
.
Errorf
(
"%s"
,
chartURL
)
}
chartURL
,
err
=
MakeAbsoluteChartURL
(
"http://localhost:8123"
,
"https://kubernetes-charts.storage.googleapis.com/nginx-0.2.0.tgz"
)
if
err
!=
nil
{
t
.
Errorf
(
"%s"
,
err
)
}
if
chartURL
!=
"https://kubernetes-charts.storage.googleapis.com/nginx-0.2.0.tgz"
{
t
.
Errorf
(
"%s"
,
chartURL
)
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment