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
01114341
Commit
01114341
authored
8 years ago
by
Adam Reese
Committed by
GitHub
8 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #2016 from adamreese/fix/2006-wait
fix(kube): fix wait and recreate
parents
80b93846
12db1f94
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.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
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
pkg/kube/client.go
+32
-10
pkg/kube/client.go
with
32 additions
and
10 deletions
+32
-10
pkg/kube/client.go
+
32
−
10
View file @
01114341
...
@@ -34,7 +34,6 @@ import (
...
@@ -34,7 +34,6 @@ import (
apps
"k8s.io/kubernetes/pkg/apis/apps/v1beta1"
apps
"k8s.io/kubernetes/pkg/apis/apps/v1beta1"
batchinternal
"k8s.io/kubernetes/pkg/apis/batch"
batchinternal
"k8s.io/kubernetes/pkg/apis/batch"
batch
"k8s.io/kubernetes/pkg/apis/batch/v1"
batch
"k8s.io/kubernetes/pkg/apis/batch/v1"
extensionsinternal
"k8s.io/kubernetes/pkg/apis/extensions"
extensions
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
extensions
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
conditions
"k8s.io/kubernetes/pkg/client/unversioned"
conditions
"k8s.io/kubernetes/pkg/client/unversioned"
...
@@ -408,7 +407,15 @@ func updateResource(c *Client, target *resource.Info, currentObj runtime.Object,
...
@@ -408,7 +407,15 @@ func updateResource(c *Client, target *resource.Info, currentObj runtime.Object,
return
nil
return
nil
}
}
selector
,
err
:=
getSelectorFromObject
(
currentObj
)
versioned
,
err
:=
c
.
AsVersionedObject
(
target
.
Object
)
if
runtime
.
IsNotRegisteredError
(
err
)
{
return
nil
}
if
err
!=
nil
{
return
err
}
selector
,
err
:=
getSelectorFromObject
(
versioned
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
return
nil
}
}
...
@@ -536,6 +543,17 @@ func getPods(client *internalclientset.Clientset, namespace string, selector map
...
@@ -536,6 +543,17 @@ func getPods(client *internalclientset.Clientset, namespace string, selector map
return
list
.
Items
,
err
return
list
.
Items
,
err
}
}
// AsVersionedObject converts a runtime.object to a versioned object.
func
(
c
*
Client
)
AsVersionedObject
(
obj
runtime
.
Object
)
(
runtime
.
Object
,
error
)
{
json
,
err
:=
runtime
.
Encode
(
runtime
.
UnstructuredJSONScheme
,
obj
)
if
err
!=
nil
{
return
nil
,
err
}
versions
:=
&
runtime
.
VersionedObjects
{}
err
=
runtime
.
DecodeInto
(
c
.
Decoder
(
true
),
json
,
versions
)
return
versions
.
First
(),
err
}
// waitForResources polls to get the current status of all pods, PVCs, and Services
// waitForResources polls to get the current status of all pods, PVCs, and Services
// until all are ready or a timeout is reached
// until all are ready or a timeout is reached
func
(
c
*
Client
)
waitForResources
(
timeout
time
.
Duration
,
created
Result
)
error
{
func
(
c
*
Client
)
waitForResources
(
timeout
time
.
Duration
,
created
Result
)
error
{
...
@@ -546,20 +564,24 @@ func (c *Client) waitForResources(timeout time.Duration, created Result) error {
...
@@ -546,20 +564,24 @@ func (c *Client) waitForResources(timeout time.Duration, created Result) error {
services
:=
[]
api
.
Service
{}
services
:=
[]
api
.
Service
{}
pvc
:=
[]
api
.
PersistentVolumeClaim
{}
pvc
:=
[]
api
.
PersistentVolumeClaim
{}
for
_
,
v
:=
range
created
{
for
_
,
v
:=
range
created
{
switch
value
:=
v
.
Object
.
(
type
)
{
obj
,
err
:=
c
.
AsVersionedObject
(
v
.
Object
)
case
(
*
api
.
ReplicationController
)
:
if
err
!=
nil
&&
!
runtime
.
IsNotRegisteredError
(
err
)
{
return
false
,
err
}
switch
value
:=
obj
.
(
type
)
{
case
(
*
v1
.
ReplicationController
)
:
list
,
err
:=
getPods
(
client
,
value
.
Namespace
,
value
.
Spec
.
Selector
)
list
,
err
:=
getPods
(
client
,
value
.
Namespace
,
value
.
Spec
.
Selector
)
if
err
!=
nil
{
if
err
!=
nil
{
return
false
,
err
return
false
,
err
}
}
pods
=
append
(
pods
,
list
...
)
pods
=
append
(
pods
,
list
...
)
case
(
*
api
.
Pod
)
:
case
(
*
v1
.
Pod
)
:
pod
,
err
:=
client
.
Pods
(
value
.
Namespace
)
.
Get
(
value
.
Name
)
pod
,
err
:=
client
.
Pods
(
value
.
Namespace
)
.
Get
(
value
.
Name
)
if
err
!=
nil
{
if
err
!=
nil
{
return
false
,
err
return
false
,
err
}
}
pods
=
append
(
pods
,
*
pod
)
pods
=
append
(
pods
,
*
pod
)
case
(
*
extensions
internal
.
Deployment
)
:
case
(
*
extensions
.
Deployment
)
:
// Get the RS children first
// Get the RS children first
rs
,
err
:=
client
.
ReplicaSets
(
value
.
Namespace
)
.
List
(
api
.
ListOptions
{
rs
,
err
:=
client
.
ReplicaSets
(
value
.
Namespace
)
.
List
(
api
.
ListOptions
{
FieldSelector
:
fields
.
Everything
(),
FieldSelector
:
fields
.
Everything
(),
...
@@ -575,7 +597,7 @@ func (c *Client) waitForResources(timeout time.Duration, created Result) error {
...
@@ -575,7 +597,7 @@ func (c *Client) waitForResources(timeout time.Duration, created Result) error {
}
}
pods
=
append
(
pods
,
list
...
)
pods
=
append
(
pods
,
list
...
)
}
}
case
(
*
extensions
internal
.
DaemonSet
)
:
case
(
*
extensions
.
DaemonSet
)
:
list
,
err
:=
getPods
(
client
,
value
.
Namespace
,
value
.
Spec
.
Selector
.
MatchLabels
)
list
,
err
:=
getPods
(
client
,
value
.
Namespace
,
value
.
Spec
.
Selector
.
MatchLabels
)
if
err
!=
nil
{
if
err
!=
nil
{
return
false
,
err
return
false
,
err
...
@@ -587,19 +609,19 @@ func (c *Client) waitForResources(timeout time.Duration, created Result) error {
...
@@ -587,19 +609,19 @@ func (c *Client) waitForResources(timeout time.Duration, created Result) error {
return
false
,
err
return
false
,
err
}
}
pods
=
append
(
pods
,
list
...
)
pods
=
append
(
pods
,
list
...
)
case
(
*
extensions
internal
.
ReplicaSet
)
:
case
(
*
extensions
.
ReplicaSet
)
:
list
,
err
:=
getPods
(
client
,
value
.
Namespace
,
value
.
Spec
.
Selector
.
MatchLabels
)
list
,
err
:=
getPods
(
client
,
value
.
Namespace
,
value
.
Spec
.
Selector
.
MatchLabels
)
if
err
!=
nil
{
if
err
!=
nil
{
return
false
,
err
return
false
,
err
}
}
pods
=
append
(
pods
,
list
...
)
pods
=
append
(
pods
,
list
...
)
case
(
*
api
.
PersistentVolumeClaim
)
:
case
(
*
v1
.
PersistentVolumeClaim
)
:
claim
,
err
:=
client
.
PersistentVolumeClaims
(
value
.
Namespace
)
.
Get
(
value
.
Name
)
claim
,
err
:=
client
.
PersistentVolumeClaims
(
value
.
Namespace
)
.
Get
(
value
.
Name
)
if
err
!=
nil
{
if
err
!=
nil
{
return
false
,
err
return
false
,
err
}
}
pvc
=
append
(
pvc
,
*
claim
)
pvc
=
append
(
pvc
,
*
claim
)
case
(
*
api
.
Service
)
:
case
(
*
v1
.
Service
)
:
svc
,
err
:=
client
.
Services
(
value
.
Namespace
)
.
Get
(
value
.
Name
)
svc
,
err
:=
client
.
Services
(
value
.
Namespace
)
.
Get
(
value
.
Name
)
if
err
!=
nil
{
if
err
!=
nil
{
return
false
,
err
return
false
,
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