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
56c4b9b4
Unverified
Commit
56c4b9b4
authored
6 years ago
by
Adam Reese
Committed by
GitHub
6 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #4509 from adamreese/dev-v3-kube-v1.11
ref(*): kubernetes v1.11 support
parents
c6df3959
7423eddf
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
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
No related merge requests found
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
Gopkg.lock
+312
-181
Gopkg.lock
Gopkg.toml
+12
-4
Gopkg.toml
cmd/helm/helm.go
+4
-4
cmd/helm/helm.go
pkg/kube/client.go
+28
-43
pkg/kube/client.go
pkg/kube/client_test.go
+8
-39
pkg/kube/client_test.go
pkg/kube/config.go
+9
-11
pkg/kube/config.go
pkg/kube/result.go
+1
-1
pkg/kube/result.go
pkg/kube/result_test.go
+4
-5
pkg/kube/result_test.go
pkg/kube/wait.go
+11
-16
pkg/kube/wait.go
pkg/tiller/environment/environment.go
+1
-1
pkg/tiller/environment/environment.go
pkg/tiller/environment/environment_test.go
+1
-1
pkg/tiller/environment/environment_test.go
pkg/tiller/release_server_test.go
+1
-1
pkg/tiller/release_server_test.go
with
392 additions
and
307 deletions
+392
-307
Gopkg.lock
+
312
−
181
View file @
56c4b9b4
This diff is collapsed.
Click to expand it.
Gopkg.toml
+
12
−
4
View file @
56c4b9b4
...
...
@@ -33,19 +33,27 @@
[[constraint]]
name
=
"k8s.io/api"
branch
=
"release-1.1
0
"
branch
=
"release-1.1
1
"
[[constraint]]
name
=
"k8s.io/apimachinery"
branch
=
"release-1.1
0
"
branch
=
"release-1.1
1
"
[[constraint]]
version
=
"kubernetes-1.1
0.0
"
version
=
"kubernetes-1.1
1.2
"
name
=
"k8s.io/client-go"
[[constraint]]
name
=
"k8s.io/kubernetes"
branch
=
"release-1.10"
branch
=
"release-1.11"
[[override]]
name
=
"github.com/json-iterator/go"
revision
=
"f2b4162afba35581b6d4a50d3b8f34e33c144682"
[[override]]
name
=
"github.com/Azure/go-autorest"
revision
=
"1ff28809256a84bb6966640ff3d0371af82ccba4"
[prune]
go-tests
=
true
...
...
This diff is collapsed.
Click to expand it.
cmd/helm/helm.go
+
4
−
4
View file @
56c4b9b4
...
...
@@ -24,7 +24,7 @@ import (
// Import to initialize client auth plugins.
_
"k8s.io/client-go/plugin/pkg/client/auth"
"k8s.io/
client-go/tools/clientcmd
"
"k8s.io/
kubernetes/pkg/kubectl/genericclioptions
"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/helm/environment"
...
...
@@ -34,7 +34,7 @@ import (
var
(
settings
environment
.
EnvSettings
config
clientcmd
.
ClientConfig
config
genericclioptions
.
RESTClientGetter
configOnce
sync
.
Once
)
...
...
@@ -89,7 +89,7 @@ func newClient(allNamespaces bool) helm.Interface {
)
}
func
kubeConfig
()
clientcmd
.
ClientConfig
{
func
kubeConfig
()
genericclioptions
.
RESTClientGetter
{
configOnce
.
Do
(
func
()
{
config
=
kube
.
GetConfig
(
settings
.
KubeConfig
,
settings
.
KubeContext
,
settings
.
Namespace
)
})
...
...
@@ -97,7 +97,7 @@ func kubeConfig() clientcmd.ClientConfig {
}
func
getNamespace
()
string
{
if
ns
,
_
,
err
:=
kubeConfig
()
.
Namespace
();
err
==
nil
{
if
ns
,
_
,
err
:=
kubeConfig
()
.
ToRawKubeConfigLoader
()
.
Namespace
();
err
==
nil
{
return
ns
}
return
"default"
...
...
This diff is collapsed.
Click to expand it.
pkg/kube/client.go
+
28
−
43
View file @
56c4b9b4
...
...
@@ -43,14 +43,14 @@ import (
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/strategicpatch"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/
client-go/tools/clientcmd
"
"k8s.io/
kubernetes/pkg/api/legacyscheme
"
batchinternal
"k8s.io/kubernetes/pkg/apis/batch"
"k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/kubectl
/cmd/get
"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/validation"
"k8s.io/kubernetes/pkg/printers"
)
const
(
...
...
@@ -68,9 +68,12 @@ type Client struct {
}
// New creates a new Client.
func
New
(
config
clientcmd
.
ClientConfig
)
*
Client
{
func
New
(
getter
genericclioptions
.
RESTClientGetter
)
*
Client
{
if
getter
==
nil
{
getter
=
genericclioptions
.
NewConfigFlags
()
}
return
&
Client
{
Factory
:
cmdutil
.
NewFactory
(
config
),
Factory
:
cmdutil
.
NewFactory
(
getter
),
Log
:
nopLogger
,
}
}
...
...
@@ -100,7 +103,7 @@ func (c *Client) Create(namespace string, reader io.Reader, timeout int64, shoul
}
func
(
c
*
Client
)
namespace
()
string
{
if
ns
,
_
,
err
:=
c
.
Default
Namespace
();
err
==
nil
{
if
ns
,
_
,
err
:=
c
.
ToRawKubeConfigLoader
()
.
Namespace
();
err
==
nil
{
return
ns
}
return
v1
.
NamespaceDefault
...
...
@@ -108,8 +111,8 @@ func (c *Client) namespace() string {
func
(
c
*
Client
)
newBuilder
(
namespace
string
,
reader
io
.
Reader
)
*
resource
.
Result
{
return
c
.
NewBuilder
()
.
Internal
()
.
ContinueOnError
()
.
WithScheme
(
legacyscheme
.
Scheme
)
.
Schema
(
c
.
validator
())
.
NamespaceParam
(
c
.
namespace
())
.
DefaultNamespace
()
.
...
...
@@ -177,7 +180,7 @@ func (c *Client) Get(namespace string, reader io.Reader) (string, error) {
// versions per cluster, but this certainly won't hurt anything, so let's be safe.
gvk
:=
info
.
ResourceMapping
()
.
GroupVersionKind
vk
:=
gvk
.
Version
+
"/"
+
gvk
.
Kind
objs
[
vk
]
=
append
(
objs
[
vk
],
info
.
AsInternal
(
))
objs
[
vk
]
=
append
(
objs
[
vk
],
asVersioned
(
info
))
//Get the relation pods
objPods
,
err
=
c
.
getSelectRelationPod
(
info
,
objPods
)
...
...
@@ -203,10 +206,7 @@ func (c *Client) Get(namespace string, reader io.Reader) (string, error) {
// an object type changes, so we can just rely on that. Problem is it doesn't seem to keep
// track of tab widths.
buf
:=
new
(
bytes
.
Buffer
)
p
,
err
:=
cmdutil
.
PrinterForOptions
(
&
printers
.
PrintOptions
{})
if
err
!=
nil
{
return
""
,
err
}
p
,
_
:=
get
.
NewHumanPrintFlags
()
.
ToPrinter
(
""
)
for
t
,
ot
:=
range
objs
{
if
_
,
err
=
buf
.
WriteString
(
"==> "
+
t
+
"
\n
"
);
err
!=
nil
{
return
""
,
err
...
...
@@ -294,7 +294,7 @@ func (c *Client) Update(namespace string, originalReader, targetReader io.Reader
for
_
,
info
:=
range
original
.
Difference
(
target
)
{
c
.
Log
(
"Deleting %q in %s..."
,
info
.
Name
,
info
.
Namespace
)
if
err
:=
deleteResource
(
c
,
info
);
err
!=
nil
{
if
err
:=
deleteResource
(
info
);
err
!=
nil
{
c
.
Log
(
"Failed to delete %q, err: %s"
,
info
.
Name
,
err
)
}
}
...
...
@@ -314,7 +314,7 @@ func (c *Client) Delete(namespace string, reader io.Reader) error {
}
return
perform
(
infos
,
func
(
info
*
resource
.
Info
)
error
{
c
.
Log
(
"Starting delete for %q %s"
,
info
.
Name
,
info
.
Mapping
.
GroupVersionKind
.
Kind
)
err
:=
deleteResource
(
c
,
info
)
err
:=
deleteResource
(
info
)
return
c
.
skipIfNotFound
(
err
)
})
}
...
...
@@ -376,17 +376,11 @@ func createResource(info *resource.Info) error {
return
info
.
Refresh
(
obj
,
true
)
}
func
deleteResource
(
c
*
Client
,
info
*
resource
.
Info
)
error
{
reaper
,
err
:=
c
.
Reaper
(
info
.
Mapping
)
if
err
!=
nil
{
// If there is no reaper for this resources, delete it.
if
kubectl
.
IsNoSuchReaperError
(
err
)
{
return
resource
.
NewHelper
(
info
.
Client
,
info
.
Mapping
)
.
Delete
(
info
.
Namespace
,
info
.
Name
)
}
return
err
}
c
.
Log
(
"Using reaper for deleting %q"
,
info
.
Name
)
return
reaper
.
Stop
(
info
.
Namespace
,
info
.
Name
,
0
,
nil
)
func
deleteResource
(
info
*
resource
.
Info
)
error
{
policy
:=
metav1
.
DeletePropagationBackground
opts
:=
&
metav1
.
DeleteOptions
{
PropagationPolicy
:
&
policy
}
_
,
err
:=
resource
.
NewHelper
(
info
.
Client
,
info
.
Mapping
)
.
DeleteWithOptions
(
info
.
Namespace
,
info
.
Name
,
opts
)
return
err
}
func
createPatch
(
target
*
resource
.
Info
,
current
runtime
.
Object
)
([]
byte
,
types
.
PatchType
,
error
)
{
...
...
@@ -408,7 +402,7 @@ func createPatch(target *resource.Info, current runtime.Object) ([]byte, types.P
}
// Get a versioned object
versionedObject
,
err
:=
target
.
Versioned
()
versionedObject
:=
as
Versioned
(
target
)
// Unstructured objects, such as CRDs, may not have an not registered error
// returned from ConvertToVersion. Anything that's unstructured should
...
...
@@ -452,7 +446,7 @@ func updateResource(c *Client, target *resource.Info, currentObj runtime.Object,
if
force
{
// Attempt to delete...
if
err
:=
deleteResource
(
c
,
target
);
err
!=
nil
{
if
err
:=
deleteResource
(
target
);
err
!=
nil
{
return
err
}
log
.
Printf
(
"Deleted %s: %q"
,
kind
,
target
.
Name
)
...
...
@@ -480,14 +474,7 @@ func updateResource(c *Client, target *resource.Info, currentObj runtime.Object,
return
nil
}
versioned
,
err
:=
target
.
Versioned
()
if
runtime
.
IsNotRegisteredError
(
err
)
{
return
nil
}
if
err
!=
nil
{
return
err
}
versioned
:=
asVersioned
(
target
)
selector
,
err
:=
getSelectorFromObject
(
versioned
)
if
err
!=
nil
{
return
nil
...
...
@@ -695,13 +682,7 @@ func (c *Client) getSelectRelationPod(info *resource.Info, objPods map[string][]
c
.
Log
(
"get relation pod of object: %s/%s/%s"
,
info
.
Namespace
,
info
.
Mapping
.
GroupVersionKind
.
Kind
,
info
.
Name
)
versioned
,
err
:=
info
.
Versioned
()
if
runtime
.
IsNotRegisteredError
(
err
)
{
return
objPods
,
nil
}
if
err
!=
nil
{
return
objPods
,
err
}
versioned
:=
asVersioned
(
info
)
// We can ignore this error because it will only error if it isn't a type that doesn't
// have pods. In that case, we don't care
...
...
@@ -749,3 +730,7 @@ func isFoundPod(podItem []core.Pod, pod core.Pod) bool {
}
return
false
}
func
asVersioned
(
info
*
resource
.
Info
)
runtime
.
Object
{
return
cmdutil
.
AsDefaultVersionedOrOriginal
(
info
.
Object
,
info
.
Mapping
)
}
This diff is collapsed.
Click to expand it.
pkg/kube/client_test.go
+
8
−
39
View file @
56c4b9b4
...
...
@@ -23,25 +23,20 @@ import (
"net/http"
"strings"
"testing"
"time"
"k8s.io/apimachinery/pkg/api/meta"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/client-go/dynamic"
"k8s.io/client-go/rest/fake"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/kubectl"
cmdtesting
"k8s.io/kubernetes/pkg/kubectl/cmd/testing"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
)
var
unstructuredSerializer
=
dynamic
.
ContentConfig
()
.
NegotiatedSerializer
var
unstructuredSerializer
=
resource
.
UnstructuredPlusDefault
ContentConfig
()
.
NegotiatedSerializer
func
objBody
(
codec
runtime
.
Codec
,
obj
runtime
.
Object
)
io
.
ReadCloser
{
return
ioutil
.
NopCloser
(
bytes
.
NewReader
([]
byte
(
runtime
.
EncodeOrDie
(
codec
,
obj
))))
...
...
@@ -98,24 +93,6 @@ func newResponse(code int, obj runtime.Object) (*http.Response, error) {
return
&
http
.
Response
{
StatusCode
:
code
,
Header
:
header
,
Body
:
body
},
nil
}
type
fakeReaper
struct
{
name
string
}
func
(
r
*
fakeReaper
)
Stop
(
namespace
,
name
string
,
timeout
time
.
Duration
,
gracePeriod
*
metav1
.
DeleteOptions
)
error
{
r
.
name
=
name
return
nil
}
type
fakeReaperFactory
struct
{
cmdutil
.
Factory
reaper
kubectl
.
Reaper
}
func
(
f
*
fakeReaperFactory
)
Reaper
(
mapping
*
meta
.
RESTMapping
)
(
kubectl
.
Reaper
,
error
)
{
return
f
.
reaper
,
nil
}
type
testClient
struct
{
*
Client
*
cmdtesting
.
TestFactory
...
...
@@ -123,8 +100,6 @@ type testClient struct {
func
newTestClient
()
*
testClient
{
tf
:=
cmdtesting
.
NewTestFactory
()
tf
.
Namespace
=
core
.
NamespaceDefault
c
:=
&
Client
{
Factory
:
tf
,
Log
:
nopLogger
}
return
&
testClient
{
Client
:
c
,
TestFactory
:
tf
}
}
...
...
@@ -141,7 +116,6 @@ func TestUpdate(t *testing.T) {
tf
:=
cmdtesting
.
NewTestFactory
()
defer
tf
.
Cleanup
()
tf
.
UnstructuredClient
=
&
fake
.
RESTClient
{
GroupVersion
:
schema
.
GroupVersion
{
Version
:
"v1"
},
NegotiatedSerializer
:
unstructuredSerializer
,
Client
:
fake
.
CreateHTTPClient
(
func
(
req
*
http
.
Request
)
(
*
http
.
Response
,
error
)
{
p
,
m
:=
req
.
URL
.
Path
,
req
.
Method
...
...
@@ -176,12 +150,11 @@ func TestUpdate(t *testing.T) {
}),
}
c
:=
newTestClient
()
tf
.
Namespace
=
core
.
NamespaceDefault
reaper
:=
&
fakeReaper
{}
rf
:=
&
fakeReaperFactory
{
Factory
:
tf
,
reaper
:
reaper
}
c
.
Client
.
Factory
=
rf
codec
:=
legacyscheme
.
Codecs
.
LegacyCodec
(
scheme
.
Versions
...
)
c
:=
&
Client
{
Factory
:
tf
,
Log
:
nopLogger
,
}
codec
:=
legacyscheme
.
Codecs
.
LegacyCodec
(
scheme
.
Scheme
.
PrioritizedVersionsAllGroups
()
...
)
if
err
:=
c
.
Update
(
core
.
NamespaceDefault
,
objBody
(
codec
,
&
listA
),
objBody
(
codec
,
&
listB
),
false
,
false
,
0
,
false
);
err
!=
nil
{
t
.
Fatal
(
err
)
}
...
...
@@ -202,6 +175,7 @@ func TestUpdate(t *testing.T) {
"/namespaces/default/pods/otter:GET"
,
"/namespaces/default/pods/dolphin:GET"
,
"/namespaces/default/pods:POST"
,
"/namespaces/default/pods/squid:DELETE"
,
}
if
len
(
expectedActions
)
!=
len
(
actions
)
{
t
.
Errorf
(
"unexpected number of requests, expected %d, got %d"
,
len
(
expectedActions
),
len
(
actions
))
...
...
@@ -212,11 +186,6 @@ func TestUpdate(t *testing.T) {
t
.
Errorf
(
"expected %s request got %s"
,
v
,
actions
[
k
])
}
}
if
reaper
.
name
!=
"squid"
{
t
.
Errorf
(
"unexpected reaper: %#v"
,
reaper
)
}
}
func
TestBuild
(
t
*
testing
.
T
)
{
...
...
This diff is collapsed.
Click to expand it.
pkg/kube/config.go
+
9
−
11
View file @
56c4b9b4
...
...
@@ -16,17 +16,15 @@ limitations under the License.
package
kube
// import "k8s.io/helm/pkg/kube"
import
"k8s.io/client-go/tools/clientcmd"
import
(
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
)
// GetConfig returns a Kubernetes client config.
func
GetConfig
(
kubeconfig
,
context
,
namespace
string
)
clientcmd
.
ClientConfig
{
rules
:=
clientcmd
.
NewDefaultClientConfigLoadingRules
()
rules
.
DefaultClientConfig
=
&
clientcmd
.
DefaultClientConfig
rules
.
ExplicitPath
=
kubeconfig
overrides
:=
&
clientcmd
.
ConfigOverrides
{
ClusterDefaults
:
clientcmd
.
ClusterDefaults
}
overrides
.
CurrentContext
=
context
overrides
.
Context
.
Namespace
=
namespace
return
clientcmd
.
NewNonInteractiveDeferredLoadingClientConfig
(
rules
,
overrides
)
func
GetConfig
(
kubeconfig
,
context
,
namespace
string
)
*
genericclioptions
.
ConfigFlags
{
cf
:=
genericclioptions
.
NewConfigFlags
()
cf
.
Namespace
=
&
namespace
cf
.
Context
=
&
context
cf
.
KubeConfig
=
&
kubeconfig
return
cf
}
This diff is collapsed.
Click to expand it.
pkg/kube/result.go
+
1
−
1
View file @
56c4b9b4
...
...
@@ -16,7 +16,7 @@ limitations under the License.
package
kube
// import "k8s.io/helm/pkg/kube"
import
"k8s.io/kubernetes/pkg/kubectl/resource"
import
"k8s.io/kubernetes/pkg/kubectl/
genericclioptions/
resource"
// Result provides convenience methods for comparing collections of Infos.
type
Result
[]
*
resource
.
Info
...
...
This diff is collapsed.
Click to expand it.
pkg/kube/result_test.go
+
4
−
5
View file @
56c4b9b4
...
...
@@ -19,15 +19,14 @@ package kube // import "k8s.io/helm/pkg/kube"
import
(
"testing"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/kubectl/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
)
func
TestResult
(
t
*
testing
.
T
)
{
mapping
,
err
:=
testapi
.
Default
.
RESTMapper
()
.
RESTMapping
(
schema
.
GroupKind
{
Kind
:
"Pod"
})
if
err
!=
nil
{
t
.
Fatal
(
err
)
mapping
:=
&
meta
.
RESTMapping
{
Resource
:
schema
.
GroupVersionResource
{
Group
:
"group"
,
Version
:
"version"
,
Resource
:
"pod"
},
}
info
:=
func
(
name
string
)
*
resource
.
Info
{
...
...
This diff is collapsed.
Click to expand it.
pkg/kube/wait.go
+
11
−
16
View file @
56c4b9b4
...
...
@@ -27,7 +27,6 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/fields"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/kubernetes"
podutil
"k8s.io/kubernetes/pkg/api/v1/pod"
...
...
@@ -37,8 +36,8 @@ import (
// deployment holds associated replicaSets for a deployment
type
deployment
struct
{
replicaSets
*
extensions
.
ReplicaSet
deployment
*
extensions
.
Deployment
replicaSets
*
appsv1
.
ReplicaSet
deployment
*
appsv1
.
Deployment
}
// waitForResources polls to get the current status of all pods, PVCs, and Services
...
...
@@ -56,11 +55,7 @@ func (c *Client) waitForResources(timeout time.Duration, created Result) error {
pvc
:=
[]
v1
.
PersistentVolumeClaim
{}
deployments
:=
[]
deployment
{}
for
_
,
v
:=
range
created
{
obj
,
err
:=
v
.
Versioned
()
if
err
!=
nil
&&
!
runtime
.
IsNotRegisteredError
(
err
)
{
return
false
,
err
}
switch
value
:=
obj
.
(
type
)
{
switch
value
:=
asVersioned
(
v
)
.
(
type
)
{
case
*
v1
.
ReplicationController
:
list
,
err
:=
getPods
(
kcs
,
value
.
Namespace
,
value
.
Spec
.
Selector
)
if
err
!=
nil
{
...
...
@@ -74,12 +69,12 @@ func (c *Client) waitForResources(timeout time.Duration, created Result) error {
}
pods
=
append
(
pods
,
*
pod
)
case
*
appsv1
.
Deployment
:
currentDeployment
,
err
:=
kcs
.
ExtensionsV1beta
1
()
.
Deployments
(
value
.
Namespace
)
.
Get
(
value
.
Name
,
metav1
.
GetOptions
{})
currentDeployment
,
err
:=
kcs
.
AppsV
1
()
.
Deployments
(
value
.
Namespace
)
.
Get
(
value
.
Name
,
metav1
.
GetOptions
{})
if
err
!=
nil
{
return
false
,
err
}
// Find RS associated with deployment
newReplicaSet
,
err
:=
deploymentutil
.
GetNewReplicaSet
(
currentDeployment
,
kcs
.
ExtensionsV1beta
1
())
newReplicaSet
,
err
:=
deploymentutil
.
GetNewReplicaSet
(
currentDeployment
,
kcs
.
AppsV
1
())
if
err
!=
nil
||
newReplicaSet
==
nil
{
return
false
,
err
}
...
...
@@ -89,12 +84,12 @@ func (c *Client) waitForResources(timeout time.Duration, created Result) error {
}
deployments
=
append
(
deployments
,
newDeployment
)
case
*
appsv1beta1
.
Deployment
:
currentDeployment
,
err
:=
kcs
.
ExtensionsV1beta
1
()
.
Deployments
(
value
.
Namespace
)
.
Get
(
value
.
Name
,
metav1
.
GetOptions
{})
currentDeployment
,
err
:=
kcs
.
AppsV
1
()
.
Deployments
(
value
.
Namespace
)
.
Get
(
value
.
Name
,
metav1
.
GetOptions
{})
if
err
!=
nil
{
return
false
,
err
}
// Find RS associated with deployment
newReplicaSet
,
err
:=
deploymentutil
.
GetNewReplicaSet
(
currentDeployment
,
kcs
.
ExtensionsV1beta
1
())
newReplicaSet
,
err
:=
deploymentutil
.
GetNewReplicaSet
(
currentDeployment
,
kcs
.
AppsV
1
())
if
err
!=
nil
||
newReplicaSet
==
nil
{
return
false
,
err
}
...
...
@@ -104,12 +99,12 @@ func (c *Client) waitForResources(timeout time.Duration, created Result) error {
}
deployments
=
append
(
deployments
,
newDeployment
)
case
*
appsv1beta2
.
Deployment
:
currentDeployment
,
err
:=
kcs
.
ExtensionsV1beta
1
()
.
Deployments
(
value
.
Namespace
)
.
Get
(
value
.
Name
,
metav1
.
GetOptions
{})
currentDeployment
,
err
:=
kcs
.
AppsV
1
()
.
Deployments
(
value
.
Namespace
)
.
Get
(
value
.
Name
,
metav1
.
GetOptions
{})
if
err
!=
nil
{
return
false
,
err
}
// Find RS associated with deployment
newReplicaSet
,
err
:=
deploymentutil
.
GetNewReplicaSet
(
currentDeployment
,
kcs
.
ExtensionsV1beta
1
())
newReplicaSet
,
err
:=
deploymentutil
.
GetNewReplicaSet
(
currentDeployment
,
kcs
.
AppsV
1
())
if
err
!=
nil
||
newReplicaSet
==
nil
{
return
false
,
err
}
...
...
@@ -119,12 +114,12 @@ func (c *Client) waitForResources(timeout time.Duration, created Result) error {
}
deployments
=
append
(
deployments
,
newDeployment
)
case
*
extensions
.
Deployment
:
currentDeployment
,
err
:=
kcs
.
ExtensionsV1beta
1
()
.
Deployments
(
value
.
Namespace
)
.
Get
(
value
.
Name
,
metav1
.
GetOptions
{})
currentDeployment
,
err
:=
kcs
.
AppsV
1
()
.
Deployments
(
value
.
Namespace
)
.
Get
(
value
.
Name
,
metav1
.
GetOptions
{})
if
err
!=
nil
{
return
false
,
err
}
// Find RS associated with deployment
newReplicaSet
,
err
:=
deploymentutil
.
GetNewReplicaSet
(
currentDeployment
,
kcs
.
ExtensionsV1beta
1
())
newReplicaSet
,
err
:=
deploymentutil
.
GetNewReplicaSet
(
currentDeployment
,
kcs
.
AppsV
1
())
if
err
!=
nil
||
newReplicaSet
==
nil
{
return
false
,
err
}
...
...
This diff is collapsed.
Click to expand it.
pkg/tiller/environment/environment.go
+
1
−
1
View file @
56c4b9b4
...
...
@@ -27,7 +27,7 @@ import (
"time"
"k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/kubectl/resource"
"k8s.io/kubernetes/pkg/kubectl/
genericclioptions/
resource"
"k8s.io/helm/pkg/chartutil"
"k8s.io/helm/pkg/engine"
...
...
This diff is collapsed.
Click to expand it.
pkg/tiller/environment/environment_test.go
+
1
−
1
View file @
56c4b9b4
...
...
@@ -23,7 +23,7 @@ import (
"time"
"k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/kubectl/resource"
"k8s.io/kubernetes/pkg/kubectl/
genericclioptions/
resource"
"k8s.io/helm/pkg/chartutil"
"k8s.io/helm/pkg/hapi/chart"
...
...
This diff is collapsed.
Click to expand it.
pkg/tiller/release_server_test.go
+
1
−
1
View file @
56c4b9b4
...
...
@@ -30,7 +30,7 @@ import (
"github.com/pkg/errors"
"k8s.io/client-go/kubernetes/fake"
"k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/kubectl/resource"
"k8s.io/kubernetes/pkg/kubectl/
genericclioptions/
resource"
"k8s.io/helm/pkg/hapi"
"k8s.io/helm/pkg/hapi/chart"
...
...
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