Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
1105 Внедрение механизмов обеспечения безопасности цепочки поставки программных проектов
Legacy
scanned-projects
helm
Commits
ebd81152
Commit
ebd81152
authored
8 years ago
by
Matt Butcher
Browse files
Options
Download
Patches
Plain Diff
fix(helm): update 'helm create' to use YAML.
parent
9ca8c27e
main
Release
add-codeql
dependabot/go_modules/github.com/docker/distribution-2.8.2incompatible
dependabot/go_modules/github.com/lib/pq-1.10.9
dependabot/go_modules/github.com/rubenv/sql-migrate-1.4.0
dependabot/go_modules/golang.org/x/crypto-0.9.0
dependabot/go_modules/golang.org/x/term-0.8.0
dependabot/go_modules/k8s.io/klog/v2-2.100.1
dev-v2
feat-v3/event-emitter-lua
kube-update-test
release-2.0
release-2.1
release-2.10
release-2.11
release-2.12
release-2.13
release-2.14
release-2.15
release-2.16
release-2.17
release-2.2
release-2.3
release-2.4
release-2.5
release-2.6
release-2.7
release-2.8
release-2.9
release-3.0
release-3.1
release-3.10
release-3.11
release-3.12
release-3.2
release-3.3
release-3.4
release-3.5
release-3.6
release-3.6.1
release-3.6.2
release-3.7
release-3.8
release-3.9
release-v3.0.0-beta.4
v3.12.0
v3.12.0-rc.1
v3.12.0-dev.1
v3.11.3
v3.11.2
v3.11.1
v3.11.0
v3.11.0-rc.2
v3.11.0-rc.1
v3.10.3
v3.10.2
v3.10.1
v3.10.0
v3.10.0-rc.1
v3.9.4
v3.9.3
v3.9.2
v3.9.1
v3.9.0
v3.9.0-rc.1
v3.8.2
v3.8.1
v3.8.0
v3.8.0-rc.2
v3.8.0-rc.1
v3.7.2
v3.7.1
v3.7.0
v3.7.0-rc.3
v3.7.0-rc.2
v3.7.0-rc.1
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.6.0-rc.1
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.5.0-rc.2
v3.5.0-rc.1
v3.4.2
v3.4.1
v3.4.0
v3.4.0-rc.1
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.3.0-rc.2
v3.3.0-rc.1
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.2.0-rc.1
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.1.0-rc.3
v3.1.0-rc.2
v3.1.0-rc.1
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v3.0.0-rc.4
v3.0.0-rc.3
v3.0.0-rc.2
v3.0.0-rc.1
v3.0.0-beta.5
v3.0.0-beta.4
v3.0.0-beta.3
v3.0.0-beta.2
v3.0.0-beta.1
v3.0.0-alpha.2
v3.0.0-alpha.1
v2.17.0
v2.17.0-rc.1
v2.16.12
v2.16.11
v2.16.10
v2.16.9
v2.16.8
v2.16.7
v2.16.6
v2.16.5
v2.16.4
v2.16.3
v2.16.2
v2.16.1
v2.16.0
v2.16.0-rc.2
v2.16.0-rc.1
v2.15.2
v2.15.1
v2.15.0
v2.15.0-rc.2
v2.15.0-rc.1
v2.14.3
v2.14.2
v2.14.1
v2.14.0
v2.14.0-rc.2
v2.14.0-rc.1
v2.13.1
v2.13.1-rc.1
v2.13.0
v2.13.0-rc.2
v2.13.0-rc.1
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.12.0-rc.2
v2.12.0-rc.1
v2.11.0
v2.11.0-rc.4
v2.11.0-rc.3
v2.11.0-rc.2
v2.11.0-rc.1
v2.10.0
v2.10.0-rc.3
v2.10.0-rc.2
v2.10.0-rc.1
v2.9.1
v2.9.0
v2.9.0-rc5
v2.9.0-rc4
v2.9.0-rc3
v2.9.0-rc2
v2.9.0-rc1
v2.8.2
v2.8.2-rc1
v2.8.1
v2.8.0
v2.8.0-rc.1
v2.7.2
v2.7.1
v2.7.0
v2.7.0-rc1
v2.6.2
v2.6.1
v2.6.0
v2.5.1
v2.5.0
v2.4.2
v2.4.1
v2.4.0
v2.3.1
v2.3.0
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.2
v2.0.1
v2.0.0
v2.0.0-rc.2
v2.0.0-rc.1
v2.0.0-beta.2
v2.0.0-beta.1
v2.0.0-alpha.5
v2.0.0-alpha.4
v2.0.0-alpha.3
v2.0.0-alpha.2
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
cmd/helm/create.go
+6
-6
cmd/helm/create.go
pkg/chartutil/chartfile.go
+11
-0
pkg/chartutil/chartfile.go
pkg/chartutil/create.go
+78
-0
pkg/chartutil/create.go
pkg/chartutil/create_test.go
+53
-0
pkg/chartutil/create_test.go
with
148 additions
and
6 deletions
+148
-6
cmd/helm/create.go
+
6
−
6
View file @
ebd81152
...
...
@@ -5,8 +5,8 @@ import (
"path/filepath"
"github.com/spf13/cobra"
"k8s.io/helm/pkg/chart"
"k8s.io/helm/pkg/chartutil"
"k8s.io/helm/pkg/
proto/hapi/
chart"
)
const
createDesc
=
`
...
...
@@ -36,8 +36,8 @@ func init() {
}
var
createCmd
=
&
cobra
.
Command
{
Use
:
"create
[PATH]
"
,
Short
:
"Create a new chart
at
the
location specified
."
,
Use
:
"create
NAME
"
,
Short
:
"Create a new chart
with
the
given name
."
,
Long
:
createDesc
,
RunE
:
runCreate
,
}
...
...
@@ -50,12 +50,12 @@ func runCreate(cmd *cobra.Command, args []string) error {
cmd
.
Printf
(
"Creating %s
\n
"
,
cname
)
chartname
:=
filepath
.
Base
(
cname
)
cfile
:=
chart
.
Chartfile
{
cfile
:=
&
chart
.
Metadata
{
Name
:
chartname
,
Description
:
"A Helm chart for Kubernetes"
,
Version
:
"0.1.0"
,
}
_
,
err
:=
chart
.
Create
(
&
cfile
,
filepath
.
Dir
(
cname
))
_
,
err
:=
chart
util
.
Create
(
cfile
,
filepath
.
Dir
(
cname
))
return
err
}
This diff is collapsed.
Click to expand it.
pkg/chartutil/chartfile.go
+
11
−
0
View file @
ebd81152
...
...
@@ -26,3 +26,14 @@ func LoadChartfile(filename string) (*chart.Metadata, error) {
}
return
UnmarshalChartfile
(
b
)
}
// SaveChartfile saves the given metadata as a Chart.yaml file at the given path.
//
// 'filename' should be the complete path and filename ('foo/Chart.yaml')
func
SaveChartfile
(
filename
string
,
cf
*
chart
.
Metadata
)
error
{
out
,
err
:=
yaml
.
Marshal
(
cf
)
if
err
!=
nil
{
return
err
}
return
ioutil
.
WriteFile
(
filename
,
out
,
0755
)
}
This diff is collapsed.
Click to expand it.
pkg/chartutil/create.go
0 → 100644
+
78
−
0
View file @
ebd81152
package
chartutil
import
(
"fmt"
"io/ioutil"
"os"
"path/filepath"
"github.com/kubernetes/helm/pkg/proto/hapi/chart"
)
const
(
// ChartfileName is the default Chart file name.
ChartfileName
=
"Chart.yaml"
// ValuesfileName is the default values file name.
ValuesfileName
=
"values.yaml"
// TemplatesDir is the relative directory name for templates.
TemplatesDir
=
"templates"
// ChartsDir is the relative directory name for charts dependencies.
ChartsDir
=
"charts"
)
const
defaultValues
=
`# Default values for %s.
# This is a YAML-formatted file.
# Declare name/value pairs to be passed into your templates.
# name: value
`
// Create creates a new chart in a directory.
//
// Inside of dir, this will create a directory based on the name of
// chartfile.Name. It will then write the Chart.yaml into this directory and
// create the (empty) appropriate directories.
//
// The returned string will point to the newly created directory. It will be
// an absolute path, even if the provided base directory was relative.
//
// If dir does not exist, this will return an error.
// If Chart.yaml or any directories cannot be created, this will return an
// error. In such a case, this will attempt to clean up by removing the
// new chart directory.
func
Create
(
chartfile
*
chart
.
Metadata
,
dir
string
)
(
string
,
error
)
{
path
,
err
:=
filepath
.
Abs
(
dir
)
if
err
!=
nil
{
return
path
,
err
}
if
fi
,
err
:=
os
.
Stat
(
path
);
err
!=
nil
{
return
path
,
err
}
else
if
!
fi
.
IsDir
()
{
return
path
,
fmt
.
Errorf
(
"no such directory %s"
,
path
)
}
n
:=
chartfile
.
Name
cdir
:=
filepath
.
Join
(
path
,
n
)
if
fi
,
err
:=
os
.
Stat
(
cdir
);
err
==
nil
&&
!
fi
.
IsDir
()
{
return
cdir
,
fmt
.
Errorf
(
"file %s already exists and is not a directory"
,
cdir
)
}
if
err
:=
os
.
MkdirAll
(
cdir
,
0755
);
err
!=
nil
{
return
cdir
,
err
}
if
err
:=
SaveChartfile
(
filepath
.
Join
(
cdir
,
ChartfileName
),
chartfile
);
err
!=
nil
{
return
cdir
,
err
}
val
:=
[]
byte
(
fmt
.
Sprintf
(
defaultValues
,
chartfile
.
Name
))
if
err
:=
ioutil
.
WriteFile
(
filepath
.
Join
(
cdir
,
ValuesfileName
),
val
,
0644
);
err
!=
nil
{
return
cdir
,
err
}
for
_
,
d
:=
range
[]
string
{
TemplatesDir
,
ChartsDir
}
{
if
err
:=
os
.
MkdirAll
(
filepath
.
Join
(
cdir
,
d
),
0755
);
err
!=
nil
{
return
cdir
,
err
}
}
return
cdir
,
nil
}
This diff is collapsed.
Click to expand it.
pkg/chartutil/create_test.go
0 → 100644
+
53
−
0
View file @
ebd81152
package
chartutil
import
(
"io/ioutil"
"os"
"path/filepath"
"testing"
"github.com/kubernetes/helm/pkg/proto/hapi/chart"
)
func
TestCreate
(
t
*
testing
.
T
)
{
tdir
,
err
:=
ioutil
.
TempDir
(
""
,
"helm-"
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
defer
os
.
RemoveAll
(
tdir
)
cf
:=
&
chart
.
Metadata
{
Name
:
"foo"
}
c
,
err
:=
Create
(
cf
,
tdir
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
dir
:=
filepath
.
Join
(
tdir
,
"foo"
)
mychart
,
err
:=
LoadDir
(
c
)
if
err
!=
nil
{
t
.
Fatalf
(
"Failed to load newly created chart %q: %s"
,
c
,
err
)
}
if
mychart
.
Metadata
.
Name
!=
"foo"
{
t
.
Errorf
(
"Expected name to be 'foo', got %q"
,
mychart
.
Metadata
.
Name
)
}
for
_
,
d
:=
range
[]
string
{
TemplatesDir
,
ChartsDir
}
{
if
fi
,
err
:=
os
.
Stat
(
filepath
.
Join
(
dir
,
d
));
err
!=
nil
{
t
.
Errorf
(
"Expected %s dir: %s"
,
d
,
err
)
}
else
if
!
fi
.
IsDir
()
{
t
.
Errorf
(
"Expected %s to be a directory."
,
d
)
}
}
for
_
,
f
:=
range
[]
string
{
ChartfileName
,
ValuesfileName
}
{
if
fi
,
err
:=
os
.
Stat
(
filepath
.
Join
(
dir
,
f
));
err
!=
nil
{
t
.
Errorf
(
"Expected %s file: %s"
,
f
,
err
)
}
else
if
fi
.
IsDir
()
{
t
.
Errorf
(
"Expected %s to be a fle."
,
f
)
}
}
}
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets