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
13ec13af
Commit
13ec13af
authored
8 years ago
by
Adam Reese
Committed by
GitHub
8 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #1487 from adamreese/ref/kube-builder-update
ref(kube): add info match helper functions
parents
eb3624a5
ab12c462
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
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
pkg/kube/client.go
+24
-27
pkg/kube/client.go
with
24 additions
and
27 deletions
+24
-27
pkg/kube/client.go
+
24
−
27
View file @
13ec13af
...
...
@@ -180,11 +180,9 @@ func (c *Client) Update(namespace string, currentReader, targetReader io.Reader)
if
err
!=
nil
{
return
err
}
resourceName
:=
info
.
Name
resourceKind
:=
info
.
Mapping
.
GroupVersionKind
.
Kind
helper
:=
resource
.
NewHelper
(
info
.
Client
,
info
.
Mapping
)
if
_
,
err
:=
helper
.
Get
(
info
.
Namespace
,
resource
Name
,
info
.
Export
);
err
!=
nil
{
if
_
,
err
:=
helper
.
Get
(
info
.
Namespace
,
info
.
Name
,
info
.
Export
);
err
!=
nil
{
if
!
errors
.
IsNotFound
(
err
)
{
return
fmt
.
Errorf
(
"Could not get information about the resource: err: %s"
,
err
)
}
...
...
@@ -195,11 +193,11 @@ func (c *Client) Update(namespace string, currentReader, targetReader io.Reader)
}
kind
:=
info
.
Mapping
.
GroupVersionKind
.
Kind
log
.
Printf
(
"Created a new %s called %s
\n
"
,
kind
,
resource
Name
)
log
.
Printf
(
"Created a new %s called %s
\n
"
,
kind
,
info
.
Name
)
return
nil
}
currentObj
,
err
:=
getCurrentObject
(
resourceName
,
resourceKind
,
currentInfos
)
currentObj
,
err
:=
getCurrentObject
(
info
,
currentInfos
)
if
err
!=
nil
{
return
err
}
...
...
@@ -208,7 +206,7 @@ func (c *Client) Update(namespace string, currentReader, targetReader io.Reader)
if
alreadyExistErr
,
ok
:=
err
.
(
ErrAlreadyExists
);
ok
{
log
.
Printf
(
alreadyExistErr
.
errorMsg
)
}
else
{
log
.
Printf
(
"error updating the resource %s:
\n\t
%v"
,
resource
Name
,
err
)
log
.
Printf
(
"error updating the resource %s:
\n\t
%v"
,
info
.
Name
,
err
)
updateErrors
=
append
(
updateErrors
,
err
.
Error
())
}
}
...
...
@@ -220,7 +218,6 @@ func (c *Client) Update(namespace string, currentReader, targetReader io.Reader)
return
err
}
else
if
len
(
updateErrors
)
!=
0
{
return
fmt
.
Errorf
(
strings
.
Join
(
updateErrors
,
" && "
))
}
deleteUnwantedResources
(
currentInfos
,
targetInfos
)
return
nil
...
...
@@ -419,13 +416,7 @@ func (c *Client) ensureNamespace(namespace string) error {
func
deleteUnwantedResources
(
currentInfos
,
targetInfos
[]
*
resource
.
Info
)
{
for
_
,
cInfo
:=
range
currentInfos
{
found
:=
false
for
_
,
m
:=
range
targetInfos
{
if
m
.
Name
==
cInfo
.
Name
{
found
=
true
}
}
if
!
found
{
if
_
,
ok
:=
findMatchingInfo
(
cInfo
,
targetInfos
);
!
ok
{
log
.
Printf
(
"Deleting %s..."
,
cInfo
.
Name
)
if
err
:=
deleteResource
(
cInfo
);
err
!=
nil
{
log
.
Printf
(
"Failed to delete %s, err: %s"
,
cInfo
.
Name
,
err
)
...
...
@@ -434,20 +425,26 @@ func deleteUnwantedResources(currentInfos, targetInfos []*resource.Info) {
}
}
func
getCurrentObject
(
targetName
,
targetKind
string
,
infos
[]
*
resource
.
Info
)
(
runtime
.
Object
,
error
)
{
var
curr
*
resource
.
Info
for
_
,
currInfo
:=
range
infos
{
currKind
:=
currInfo
.
Mapping
.
GroupVersionKind
.
Kind
if
currInfo
.
Name
==
targetName
&&
currKind
==
targetKind
{
curr
=
currInfo
}
func
getCurrentObject
(
target
*
resource
.
Info
,
infos
[]
*
resource
.
Info
)
(
runtime
.
Object
,
error
)
{
if
found
,
ok
:=
findMatchingInfo
(
target
,
infos
);
ok
{
encoder
:=
api
.
Codecs
.
LegacyCodec
(
registered
.
EnabledVersions
()
...
)
defaultVersion
:=
unversioned
.
GroupVersion
{}
return
resource
.
AsVersionedObject
([]
*
resource
.
Info
{
found
},
false
,
defaultVersion
,
encoder
)
}
return
nil
,
fmt
.
Errorf
(
"No resource with the name %s found."
,
target
.
Name
)
}
if
curr
==
nil
{
return
nil
,
fmt
.
Errorf
(
"No resource with the name %s found."
,
targetName
)
}
// isMatchingInfo returns true if infos match on Name and Kind.
func
isMatchingInfo
(
a
,
b
*
resource
.
Info
)
bool
{
return
a
.
Name
==
b
.
Name
&&
a
.
Mapping
.
GroupVersionKind
.
Kind
==
b
.
Mapping
.
GroupVersionKind
.
Kind
}
encoder
:=
api
.
Codecs
.
LegacyCodec
(
registered
.
EnabledVersions
()
...
)
defaultVersion
:=
unversioned
.
GroupVersion
{}
return
resource
.
AsVersionedObject
([]
*
resource
.
Info
{
curr
},
false
,
defaultVersion
,
encoder
)
// findMatchingInfo returns the first object that matches target.
func
findMatchingInfo
(
target
*
resource
.
Info
,
infos
[]
*
resource
.
Info
)
(
*
resource
.
Info
,
bool
)
{
for
_
,
info
:=
range
infos
{
if
isMatchingInfo
(
target
,
info
)
{
return
info
,
true
}
}
return
nil
,
false
}
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