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
5262e1e8
Commit
5262e1e8
authored
8 years ago
by
fibonacci1729
Browse files
Options
Download
Patches
Plain Diff
feat(998): append to history on install --replace
parent
a34472d1
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.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
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
cmd/tiller/release_server.go
+56
-15
cmd/tiller/release_server.go
cmd/tiller/release_server_test.go
+1
-1
cmd/tiller/release_server_test.go
with
57 additions
and
16 deletions
+57
-16
cmd/tiller/release_server.go
+
56
−
15
View file @
5262e1e8
...
@@ -213,13 +213,21 @@ func (s *releaseServer) GetReleaseStatus(c ctx.Context, req *services.GetRelease
...
@@ -213,13 +213,21 @@ func (s *releaseServer) GetReleaseStatus(c ctx.Context, req *services.GetRelease
}
}
var
rel
*
release
.
Release
var
rel
*
release
.
Release
var
err
error
if
req
.
Version
<=
0
{
if
req
.
Version
<=
0
{
if
rel
,
err
=
s
.
env
.
Releases
.
Deployed
(
req
.
Name
);
err
!=
nil
{
h
,
err
:=
s
.
env
.
Releases
.
History
(
req
.
Name
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"getting deployed release '%s': %s"
,
req
.
Name
,
err
)
return
nil
,
fmt
.
Errorf
(
"getting deployed release '%s': %s"
,
req
.
Name
,
err
)
}
}
if
len
(
h
)
<
1
{
return
nil
,
errMissingRelease
}
relutil
.
Reverse
(
h
,
relutil
.
SortByRevision
)
rel
=
h
[
0
]
}
else
{
}
else
{
var
err
error
if
rel
,
err
=
s
.
env
.
Releases
.
Get
(
req
.
Name
,
req
.
Version
);
err
!=
nil
{
if
rel
,
err
=
s
.
env
.
Releases
.
Get
(
req
.
Name
,
req
.
Version
);
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"getting release '%s' (v%d): %s"
,
req
.
Name
,
req
.
Version
,
err
)
return
nil
,
fmt
.
Errorf
(
"getting release '%s' (v%d): %s"
,
req
.
Name
,
req
.
Version
,
err
)
}
}
...
@@ -502,7 +510,6 @@ func (s *releaseServer) prepareRollback(req *services.RollbackReleaseRequest) (*
...
@@ -502,7 +510,6 @@ func (s *releaseServer) prepareRollback(req *services.RollbackReleaseRequest) (*
return
nil
,
nil
,
err
return
nil
,
nil
,
err
}
}
// Store a new release object with previous release's configuration
// Store a new release object with previous release's configuration
// Store a new release object with previous release's configuration
target
:=
&
release
.
Release
{
target
:=
&
release
.
Release
{
Name
:
req
.
Name
,
Name
:
req
.
Name
,
...
@@ -536,9 +543,14 @@ func (s *releaseServer) uniqName(start string, reuse bool) (string, error) {
...
@@ -536,9 +543,14 @@ func (s *releaseServer) uniqName(start string, reuse bool) (string, error) {
return
""
,
fmt
.
Errorf
(
"release name %q exceeds max length of %d"
,
start
,
releaseNameMaxLen
)
return
""
,
fmt
.
Errorf
(
"release name %q exceeds max length of %d"
,
start
,
releaseNameMaxLen
)
}
}
if
rel
,
err
:=
s
.
env
.
Releases
.
Get
(
start
,
1
);
err
==
driver
.
ErrReleaseNotFound
{
h
,
err
:=
s
.
env
.
Releases
.
History
(
start
)
if
err
!=
nil
||
len
(
h
)
<
1
{
return
start
,
nil
return
start
,
nil
}
else
if
st
:=
rel
.
Info
.
Status
.
Code
;
reuse
&&
(
st
==
release
.
Status_DELETED
||
st
==
release
.
Status_FAILED
)
{
}
relutil
.
Reverse
(
h
,
relutil
.
SortByRevision
)
rel
:=
h
[
0
]
if
st
:=
rel
.
Info
.
Status
.
Code
;
reuse
&&
(
st
==
release
.
Status_DELETED
||
st
==
release
.
Status_FAILED
)
{
// Allowe re-use of names if the previous release is marked deleted.
// Allowe re-use of names if the previous release is marked deleted.
log
.
Printf
(
"reusing name %q"
,
start
)
log
.
Printf
(
"reusing name %q"
,
start
)
return
start
,
nil
return
start
,
nil
...
@@ -737,14 +749,42 @@ func (s *releaseServer) performRelease(r *release.Release, req *services.Install
...
@@ -737,14 +749,42 @@ func (s *releaseServer) performRelease(r *release.Release, req *services.Install
}
}
}
}
// regular manifests
switch
h
,
err
:=
s
.
env
.
Releases
.
History
(
req
.
Name
);
{
kubeCli
:=
s
.
env
.
KubeClient
// if this is a replace operation, append to the release history
b
:=
bytes
.
NewBufferString
(
r
.
Manifest
)
case
req
.
ReuseName
&&
err
==
nil
&&
len
(
h
)
>=
1
:
if
err
:=
kubeCli
.
Create
(
r
.
Namespace
,
b
);
err
!=
nil
{
// get latest release revision
log
.
Printf
(
"warning: Release %q failed: %s"
,
r
.
Name
,
err
)
relutil
.
Reverse
(
h
,
relutil
.
SortByRevision
)
r
.
Info
.
Status
.
Code
=
release
.
Status_FAILED
s
.
recordRelease
(
r
,
req
.
ReuseName
)
// old release
return
res
,
fmt
.
Errorf
(
"release %s failed: %s"
,
r
.
Name
,
err
)
old
:=
h
[
0
]
// update old release status
old
.
Info
.
Status
.
Code
=
release
.
Status_SUPERSEDED
s
.
recordRelease
(
old
,
true
)
// update new release with next revision number
// so as to append to the old release's history
r
.
Version
=
old
.
Version
+
1
if
err
:=
s
.
performKubeUpdate
(
old
,
r
);
err
!=
nil
{
log
.
Printf
(
"warning: Release replace %q failed: %s"
,
r
.
Name
,
err
)
old
.
Info
.
Status
.
Code
=
release
.
Status_SUPERSEDED
r
.
Info
.
Status
.
Code
=
release
.
Status_FAILED
s
.
recordRelease
(
old
,
true
)
s
.
recordRelease
(
r
,
false
)
return
res
,
err
}
default
:
// nothing to replace, create as normal
// regular manifests
b
:=
bytes
.
NewBufferString
(
r
.
Manifest
)
if
err
:=
s
.
env
.
KubeClient
.
Create
(
r
.
Namespace
,
b
);
err
!=
nil
{
log
.
Printf
(
"warning: Release %q failed: %s"
,
r
.
Name
,
err
)
r
.
Info
.
Status
.
Code
=
release
.
Status_FAILED
s
.
recordRelease
(
r
,
false
)
return
res
,
fmt
.
Errorf
(
"release %s failed: %s"
,
r
.
Name
,
err
)
}
}
}
// post-install hooks
// post-install hooks
...
@@ -752,7 +792,7 @@ func (s *releaseServer) performRelease(r *release.Release, req *services.Install
...
@@ -752,7 +792,7 @@ func (s *releaseServer) performRelease(r *release.Release, req *services.Install
if
err
:=
s
.
execHook
(
r
.
Hooks
,
r
.
Name
,
r
.
Namespace
,
postInstall
);
err
!=
nil
{
if
err
:=
s
.
execHook
(
r
.
Hooks
,
r
.
Name
,
r
.
Namespace
,
postInstall
);
err
!=
nil
{
log
.
Printf
(
"warning: Release %q failed post-install: %s"
,
r
.
Name
,
err
)
log
.
Printf
(
"warning: Release %q failed post-install: %s"
,
r
.
Name
,
err
)
r
.
Info
.
Status
.
Code
=
release
.
Status_FAILED
r
.
Info
.
Status
.
Code
=
release
.
Status_FAILED
s
.
recordRelease
(
r
,
req
.
ReuseNam
e
)
s
.
recordRelease
(
r
,
fals
e
)
return
res
,
err
return
res
,
err
}
}
}
}
...
@@ -765,7 +805,8 @@ func (s *releaseServer) performRelease(r *release.Release, req *services.Install
...
@@ -765,7 +805,8 @@ func (s *releaseServer) performRelease(r *release.Release, req *services.Install
// One possible strategy would be to do a timed retry to see if we can get
// One possible strategy would be to do a timed retry to see if we can get
// this stored in the future.
// this stored in the future.
r
.
Info
.
Status
.
Code
=
release
.
Status_DEPLOYED
r
.
Info
.
Status
.
Code
=
release
.
Status_DEPLOYED
s
.
recordRelease
(
r
,
req
.
ReuseName
)
s
.
recordRelease
(
r
,
false
)
return
res
,
nil
return
res
,
nil
}
}
...
...
This diff is collapsed.
Click to expand it.
cmd/tiller/release_server_test.go
+
1
−
1
View file @
5262e1e8
...
@@ -548,7 +548,7 @@ func TestInstallReleaseReuseName(t *testing.T) {
...
@@ -548,7 +548,7 @@ func TestInstallReleaseReuseName(t *testing.T) {
t
.
Errorf
(
"expected %q, got %q"
,
rel
.
Name
,
res
.
Release
.
Name
)
t
.
Errorf
(
"expected %q, got %q"
,
rel
.
Name
,
res
.
Release
.
Name
)
}
}
getreq
:=
&
services
.
GetReleaseStatusRequest
{
Name
:
rel
.
Name
,
Version
:
1
}
getreq
:=
&
services
.
GetReleaseStatusRequest
{
Name
:
rel
.
Name
,
Version
:
0
}
getres
,
err
:=
rs
.
GetReleaseStatus
(
c
,
getreq
)
getres
,
err
:=
rs
.
GetReleaseStatus
(
c
,
getreq
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Errorf
(
"Failed to retrieve release: %s"
,
err
)
t
.
Errorf
(
"Failed to retrieve release: %s"
,
err
)
...
...
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