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
f9922877
Commit
f9922877
authored
8 years ago
by
Michelle Noorali
Browse files
Options
Download
Patches
Plain Diff
feat(*): integrate support for upgrade hooks
parent
70b9f11a
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
No related merge requests found
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
cmd/helm/upgrade.go
+2
-1
cmd/helm/upgrade.go
cmd/helm/upgrade_test.go
+6
-2
cmd/helm/upgrade_test.go
cmd/tiller/release_server.go
+10
-10
cmd/tiller/release_server.go
cmd/tiller/release_server_test.go
+56
-0
cmd/tiller/release_server_test.go
pkg/helm/option.go
+0
-1
pkg/helm/option.go
with
74 additions
and
14 deletions
+74
-14
cmd/helm/upgrade.go
+
2
−
1
View file @
f9922877
...
...
@@ -95,7 +95,8 @@ func (u *upgradeCmd) run() error {
return
prettyError
(
err
)
}
fmt
.
Fprintf
(
u
.
out
,
"It's not you. It's me
\n
Your upgrade looks valid but this command is still under active development.
\n
Hang tight.
\n
"
)
success
:=
u
.
release
+
" has been upgraded. Happy Helming!
\n
"
fmt
.
Fprintf
(
u
.
out
,
success
)
return
nil
...
...
This diff is collapsed.
Click to expand it.
cmd/helm/upgrade_test.go
+
6
−
2
View file @
f9922877
...
...
@@ -52,18 +52,22 @@ func TestUpgradeCmd(t *testing.T) {
Description
:
"A Helm chart for Kubernetes"
,
Version
:
"0.1.2"
,
}
chartPath
,
err
=
chartutil
.
Create
(
cfile
,
tmpChart
)
if
err
!=
nil
{
t
.
Errorf
(
"Error creating chart: %v"
,
err
)
}
ch
,
_
=
chartutil
.
Load
(
chartPath
)
ch
,
err
=
chartutil
.
Load
(
chartPath
)
if
err
!=
nil
{
t
.
Errorf
(
"Error loading updated chart: %v"
,
err
)
}
tests
:=
[]
releaseCase
{
{
name
:
"upgrade a release"
,
args
:
[]
string
{
"funny-bunny"
,
chartPath
},
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"funny-bunny"
,
version
:
2
,
chart
:
ch
}),
expected
:
"
It's not you. It's me
\n
Your upgrade looks valid but this command is still under active development.
\n
Hang tight.
\n
"
,
expected
:
"
funny-bunny has been upgraded. Happy Helming!
\n
"
,
},
}
...
...
This diff is collapsed.
Click to expand it.
cmd/tiller/release_server.go
+
10
−
10
View file @
f9922877
...
...
@@ -196,11 +196,11 @@ func (s *releaseServer) performUpdate(originalRelease, updatedRelease *release.R
}
// pre-ugrade hooks
//
if !req.DisableHooks {
//
if err := s.execHook(updatedRelease.Hooks, updatedRelease.Name, updatedRelease.Namespace, preUpgrade); err != nil {
//
return res, err
//
}
//
}
if
!
req
.
DisableHooks
{
if
err
:=
s
.
execHook
(
updatedRelease
.
Hooks
,
updatedRelease
.
Name
,
updatedRelease
.
Namespace
,
preUpgrade
);
err
!=
nil
{
return
res
,
err
}
}
kubeCli
:=
s
.
env
.
KubeClient
original
:=
bytes
.
NewBufferString
(
originalRelease
.
Manifest
)
...
...
@@ -210,11 +210,11 @@ func (s *releaseServer) performUpdate(originalRelease, updatedRelease *release.R
}
// post-upgrade hooks
//
if !req.DisableHooks {
//
if err := s.execHook(updatedRelease.Hooks, updatedRelease.Name, updatedRelease.Namespace, postUpgrade); err != nil {
//
return res, err
//
}
//
}
if
!
req
.
DisableHooks
{
if
err
:=
s
.
execHook
(
updatedRelease
.
Hooks
,
updatedRelease
.
Name
,
updatedRelease
.
Namespace
,
postUpgrade
);
err
!=
nil
{
return
res
,
err
}
}
updatedRelease
.
Info
.
Status
.
Code
=
release
.
Status_DEPLOYED
...
...
This diff is collapsed.
Click to expand it.
cmd/tiller/release_server_test.go
+
56
−
0
View file @
f9922877
...
...
@@ -44,6 +44,16 @@ data:
name: value
`
var
manifestWithUpgradeHooks
=
`apiVersion: v1
kind: ConfigMap
metadata:
name: test-cm
annotations:
"helm.sh/hook": post-upgrade,pre-upgrade
data:
name: value
`
func
rsFixture
()
*
releaseServer
{
return
&
releaseServer
{
env
:
mockEnvironment
(),
...
...
@@ -302,6 +312,7 @@ func TestUpdateRelease(t *testing.T) {
Metadata
:
&
chart
.
Metadata
{
Name
:
"hello"
},
Templates
:
[]
*
chart
.
Template
{
{
Name
:
"hello"
,
Data
:
[]
byte
(
"hello: world"
)},
{
Name
:
"hooks"
,
Data
:
[]
byte
(
manifestWithUpgradeHooks
)},
},
},
}
...
...
@@ -309,6 +320,7 @@ func TestUpdateRelease(t *testing.T) {
if
err
!=
nil
{
t
.
Errorf
(
"Failed updated: %s"
,
err
)
}
if
res
.
Release
.
Name
==
""
{
t
.
Errorf
(
"Expected release name."
)
}
...
...
@@ -326,6 +338,21 @@ func TestUpdateRelease(t *testing.T) {
t
.
Errorf
(
"Expected release for %s (%v)."
,
res
.
Release
.
Name
,
rs
.
env
.
Releases
)
}
if
len
(
updated
.
Hooks
)
!=
1
{
t
.
Fatalf
(
"Expected 1 hook, got %d"
,
len
(
updated
.
Hooks
))
}
if
updated
.
Hooks
[
0
]
.
Manifest
!=
manifestWithUpgradeHooks
{
t
.
Errorf
(
"Unexpected manifest: %v"
,
updated
.
Hooks
[
0
]
.
Manifest
)
}
if
updated
.
Hooks
[
0
]
.
Events
[
0
]
!=
release
.
Hook_POST_UPGRADE
{
t
.
Errorf
(
"Expected event 0 to be post upgrade"
)
}
if
updated
.
Hooks
[
0
]
.
Events
[
1
]
!=
release
.
Hook_PRE_UPGRADE
{
t
.
Errorf
(
"Expected event 0 to be pre upgrade"
)
}
if
len
(
res
.
Release
.
Manifest
)
==
0
{
t
.
Errorf
(
"No manifest returned: %v"
,
res
.
Release
)
}
...
...
@@ -343,6 +370,35 @@ func TestUpdateRelease(t *testing.T) {
}
}
func
TestUpdateReleaseNoHooks
(
t
*
testing
.
T
)
{
c
:=
context
.
Background
()
rs
:=
rsFixture
()
rel
:=
releaseStub
()
rs
.
env
.
Releases
.
Create
(
rel
)
req
:=
&
services
.
UpdateReleaseRequest
{
Name
:
rel
.
Name
,
DisableHooks
:
true
,
Chart
:
&
chart
.
Chart
{
Metadata
:
&
chart
.
Metadata
{
Name
:
"hello"
},
Templates
:
[]
*
chart
.
Template
{
{
Name
:
"hello"
,
Data
:
[]
byte
(
"hello: world"
)},
{
Name
:
"hooks"
,
Data
:
[]
byte
(
manifestWithUpgradeHooks
)},
},
},
}
res
,
err
:=
rs
.
UpdateRelease
(
c
,
req
)
if
err
!=
nil
{
t
.
Errorf
(
"Failed updated: %s"
,
err
)
}
if
hl
:=
res
.
Release
.
Hooks
[
0
]
.
LastRun
;
hl
!=
nil
{
t
.
Errorf
(
"Expected that no hooks were run. Got %d"
,
hl
)
}
}
func
TestUninstallRelease
(
t
*
testing
.
T
)
{
c
:=
context
.
Background
()
rs
:=
rsFixture
()
...
...
This diff is collapsed.
Click to expand it.
pkg/helm/option.go
+
0
−
1
View file @
f9922877
...
...
@@ -244,7 +244,6 @@ func (o *options) rpcDeleteRelease(rlsName string, rlc rls.ReleaseServiceClient,
// Executes tiller.UpdateRelease RPC.
func
(
o
*
options
)
rpcUpdateRelease
(
rlsName
string
,
chr
*
cpb
.
Chart
,
rlc
rls
.
ReleaseServiceClient
,
opts
...
UpdateOption
)
(
*
rls
.
UpdateReleaseResponse
,
error
)
{
//TODO: handle dryRun
for
_
,
opt
:=
range
opts
{
opt
(
o
)
}
...
...
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