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
87f66af0
Unverified
Commit
87f66af0
authored
7 years ago
by
Matthew Fisher
Committed by
GitHub
7 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #3652 from rajatjindal/history-format
add support for output format in json or yaml
parents
fbb69270
33334142
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
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.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
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
cmd/helm/history.go
+64
-13
cmd/helm/history.go
cmd/helm/history_test.go
+20
-0
cmd/helm/history_test.go
docs/helm/helm_history.md
+2
-1
docs/helm/helm_history.md
with
86 additions
and
14 deletions
+86
-14
cmd/helm/history.go
+
64
−
13
View file @
87f66af0
...
...
@@ -23,12 +23,24 @@ import (
"github.com/gosuri/uitable"
"github.com/spf13/cobra"
"encoding/json"
"github.com/ghodss/yaml"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/proto/hapi/chart"
"k8s.io/helm/pkg/proto/hapi/release"
"k8s.io/helm/pkg/timeconv"
)
type
releaseInfo
struct
{
Revision
int32
`json:"revision" yaml:"revision"`
Updated
string
`json:"updated" yaml:"updated"`
Status
string
`json:"status" yaml:"status"`
Chart
string
`json:"chart" yaml:"chart"`
Description
string
`json:"description" yaml:"description"`
}
type
releaseHistory
[]
releaseInfo
var
historyHelp
=
`
History prints historical revisions for a given release.
...
...
@@ -46,11 +58,12 @@ The historical release set is printed as a formatted table, e.g:
`
type
historyCmd
struct
{
max
int32
rls
string
out
io
.
Writer
helmc
helm
.
Interface
colWidth
uint
max
int32
rls
string
out
io
.
Writer
helmc
helm
.
Interface
colWidth
uint
outputFormat
string
}
func
newHistoryCmd
(
c
helm
.
Interface
,
w
io
.
Writer
)
*
cobra
.
Command
{
...
...
@@ -77,6 +90,7 @@ func newHistoryCmd(c helm.Interface, w io.Writer) *cobra.Command {
f
:=
cmd
.
Flags
()
f
.
Int32Var
(
&
his
.
max
,
"max"
,
256
,
"maximum number of revision to include in history"
)
f
.
UintVar
(
&
his
.
colWidth
,
"col-width"
,
60
,
"specifies the max column width of output"
)
f
.
StringVarP
(
&
his
.
outputFormat
,
"output"
,
"o"
,
"table"
,
"prints the output in the specified format (json|table|yaml)"
)
return
cmd
}
...
...
@@ -90,15 +104,31 @@ func (cmd *historyCmd) run() error {
return
nil
}
fmt
.
Fprintln
(
cmd
.
out
,
formatHistory
(
r
.
Releases
,
cmd
.
colWidth
))
releaseHistory
:=
getReleaseHistory
(
r
.
Releases
)
var
history
[]
byte
var
formattingError
error
switch
cmd
.
outputFormat
{
case
"yaml"
:
history
,
formattingError
=
yaml
.
Marshal
(
releaseHistory
)
case
"json"
:
history
,
formattingError
=
json
.
Marshal
(
releaseHistory
)
case
"table"
:
history
=
formatAsTable
(
releaseHistory
,
cmd
.
colWidth
)
default
:
return
fmt
.
Errorf
(
"unknown output format %q"
,
cmd
.
outputFormat
)
}
if
formattingError
!=
nil
{
return
prettyError
(
formattingError
)
}
fmt
.
Fprintln
(
cmd
.
out
,
string
(
history
))
return
nil
}
func
formatHistory
(
rls
[]
*
release
.
Release
,
colWidth
uint
)
string
{
tbl
:=
uitable
.
New
()
tbl
.
MaxColWidth
=
colWidth
tbl
.
AddRow
(
"REVISION"
,
"UPDATED"
,
"STATUS"
,
"CHART"
,
"DESCRIPTION"
)
func
getReleaseHistory
(
rls
[]
*
release
.
Release
)
(
history
releaseHistory
)
{
for
i
:=
len
(
rls
)
-
1
;
i
>=
0
;
i
--
{
r
:=
rls
[
i
]
c
:=
formatChartname
(
r
.
Chart
)
...
...
@@ -106,9 +136,30 @@ func formatHistory(rls []*release.Release, colWidth uint) string {
s
:=
r
.
Info
.
Status
.
Code
.
String
()
v
:=
r
.
Version
d
:=
r
.
Info
.
Description
tbl
.
AddRow
(
v
,
t
,
s
,
c
,
d
)
rInfo
:=
releaseInfo
{
Revision
:
v
,
Updated
:
t
,
Status
:
s
,
Chart
:
c
,
Description
:
d
,
}
history
=
append
(
history
,
rInfo
)
}
return
history
}
func
formatAsTable
(
releases
releaseHistory
,
colWidth
uint
)
[]
byte
{
tbl
:=
uitable
.
New
()
tbl
.
MaxColWidth
=
colWidth
tbl
.
AddRow
(
"REVISION"
,
"UPDATED"
,
"STATUS"
,
"CHART"
,
"DESCRIPTION"
)
for
i
:=
0
;
i
<=
len
(
releases
)
-
1
;
i
++
{
r
:=
releases
[
i
]
tbl
.
AddRow
(
r
.
Revision
,
r
.
Updated
,
r
.
Status
,
r
.
Chart
,
r
.
Description
)
}
return
tbl
.
String
()
return
tbl
.
Bytes
()
}
func
formatChartname
(
c
*
chart
.
Chart
)
string
{
...
...
This diff is collapsed.
Click to expand it.
cmd/helm/history_test.go
+
20
−
0
View file @
87f66af0
...
...
@@ -57,6 +57,26 @@ func TestHistoryCmd(t *testing.T) {
},
expected
:
"REVISION
\t
UPDATED
\t
STATUS
\t
CHART
\t
DESCRIPTION
\n
3
\t
(.*)
\t
SUPERSEDED
\t
foo-0.1.0-beta.1
\t
Release mock
\n
4
\t
(.*)
\t
DEPLOYED
\t
foo-0.1.0-beta.1
\t
Release mock
\n
"
,
},
{
cmds
:
"helm history --max=MAX RELEASE_NAME -o yaml"
,
desc
:
"get history with yaml output format"
,
args
:
[]
string
{
"--max=2"
,
"-o=yaml"
,
"angry-bird"
},
resp
:
[]
*
rpb
.
Release
{
mk
(
"angry-bird"
,
4
,
rpb
.
Status_DEPLOYED
),
mk
(
"angry-bird"
,
3
,
rpb
.
Status_SUPERSEDED
),
},
xout
:
"- chart: foo-0.1.0-beta.1
\n
description: Release mock
\n
revision: 3
\n
status: SUPERSEDED
\n
updated: (.*)
\n
- chart: foo-0.1.0-beta.1
\n
description: Release mock
\n
revision: 4
\n
status: DEPLOYED
\n
updated: (.*)
\n\n
"
,
},
{
cmds
:
"helm history --max=MAX RELEASE_NAME -o json"
,
desc
:
"get history with json output format"
,
args
:
[]
string
{
"--max=2"
,
"-o=json"
,
"angry-bird"
},
resp
:
[]
*
rpb
.
Release
{
mk
(
"angry-bird"
,
4
,
rpb
.
Status_DEPLOYED
),
mk
(
"angry-bird"
,
3
,
rpb
.
Status_SUPERSEDED
),
},
xout
:
`[{"revision":3,"updated":".*","status":"SUPERSEDED","chart":"foo\-0.1.0-beta.1","description":"Release mock"},{"revision":4,"updated":".*","status":"DEPLOYED","chart":"foo\-0.1.0-beta.1","description":"Release mock"}]\n`
,
},
}
runReleaseCases
(
t
,
tests
,
func
(
c
*
helm
.
FakeClient
,
out
io
.
Writer
)
*
cobra
.
Command
{
...
...
This diff is collapsed.
Click to expand it.
docs/helm/helm_history.md
+
2
−
1
View file @
87f66af0
...
...
@@ -30,6 +30,7 @@ helm history [flags] RELEASE_NAME
```
--col-width uint specifies the max column width of output (default 60)
--max int32 maximum number of revision to include in history (default 256)
-o, --output string prints the output in the specified format (json|table|yaml) (default "table")
--tls enable TLS for request
--tls-ca-cert string path to TLS CA certificate file (default "$HELM_HOME/ca.pem")
--tls-cert string path to TLS certificate file (default "$HELM_HOME/cert.pem")
...
...
@@ -51,4 +52,4 @@ helm history [flags] RELEASE_NAME
### SEE ALSO
*
[
helm
](
helm.md
)
- The Helm package manager for Kubernetes.
###### Auto generated by spf13/cobra on
8
-Mar-2018
###### Auto generated by spf13/cobra on
14
-Mar-2018
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