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
4cdb2ac5
Commit
4cdb2ac5
authored
8 years ago
by
Adam Reese
Browse files
Options
Download
Patches
Plain Diff
feat(kube): support thirdpartyresources
parent
1b24cabc
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.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
No related merge requests found
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
glide.lock
+3
-2
glide.lock
pkg/kube/client.go
+29
-6
pkg/kube/client.go
pkg/tiller/environment/environment.go
+6
-0
pkg/tiller/environment/environment.go
pkg/tiller/environment/environment_test.go
+3
-0
pkg/tiller/environment/environment_test.go
pkg/tiller/release_server.go
+1
-1
pkg/tiller/release_server.go
with
42 additions
and
9 deletions
+42
-9
glide.lock
+
3
−
2
View file @
4cdb2ac5
hash: f59cd1f34ecf299aeb8ca9e16cfc181d8aeaf5a5762b89d76f18d08be35e4d67
updated: 201
6-12-21T11:19:14.731981344
-0
7
:00
updated: 201
7-02-09T11:27:34.6825226
-0
8
:00
imports:
- name: cloud.google.com/go
version: 3b1ae45394a234c385be014e9a488f2bb6eef821
...
...
@@ -290,7 +290,7 @@ imports:
- name: gopkg.in/yaml.v2
version: a83829b6f1293c91addabc89d0571c246397bbf4
- name: k8s.io/kubernetes
version:
5f332aab13e58173f85fd204a2c77731f7a2573f
version:
08e099554f3c31f6e6f07b448ab3ed78d0520507
subpackages:
- cmd/kubeadm/app/apis/kubeadm
- cmd/kubeadm/app/apis/kubeadm/install
...
...
@@ -482,6 +482,7 @@ imports:
- pkg/util/yaml
- pkg/version
- pkg/watch
- pkg/watch/json
- pkg/watch/versioned
- plugin/pkg/client/auth
- plugin/pkg/client/auth/gcp
...
...
This diff is collapsed.
Click to expand it.
pkg/kube/client.go
+
29
−
6
View file @
4cdb2ac5
...
...
@@ -78,7 +78,7 @@ func (c *Client) Create(namespace string, reader io.Reader, timeout int64, shoul
if
err
:=
ensureNamespace
(
client
,
namespace
);
err
!=
nil
{
return
err
}
infos
,
buildErr
:=
c
.
Build
(
namespace
,
reader
)
infos
,
buildErr
:=
c
.
Build
Unstructured
(
namespace
,
reader
)
if
buildErr
!=
nil
{
return
buildErr
}
...
...
@@ -107,6 +107,29 @@ func (c *Client) newBuilder(namespace string, reader io.Reader) *resource.Result
Do
()
}
// BuildUnstructured validates for Kubernetes objects and returns unstructured infos.
func
(
c
*
Client
)
BuildUnstructured
(
namespace
string
,
reader
io
.
Reader
)
(
Result
,
error
)
{
schema
,
err
:=
c
.
Validator
(
true
,
c
.
SchemaCacheDir
)
if
err
!=
nil
{
log
.
Printf
(
"warning: failed to load schema: %s"
,
err
)
}
mapper
,
typer
,
err
:=
c
.
UnstructuredObject
()
if
err
!=
nil
{
log
.
Printf
(
"warning: failed to load mapper: %s"
,
err
)
}
var
result
Result
result
,
err
=
resource
.
NewBuilder
(
mapper
,
typer
,
resource
.
ClientMapperFunc
(
c
.
UnstructuredClientForMapping
),
runtime
.
UnstructuredJSONScheme
)
.
ContinueOnError
()
.
Schema
(
schema
)
.
NamespaceParam
(
namespace
)
.
DefaultNamespace
()
.
Stream
(
reader
,
""
)
.
Flatten
()
.
Do
()
.
Infos
()
return
result
,
scrubValidationError
(
err
)
}
// Build validates for Kubernetes objects and returns resource Infos from a io.Reader.
func
(
c
*
Client
)
Build
(
namespace
string
,
reader
io
.
Reader
)
(
Result
,
error
)
{
var
result
Result
...
...
@@ -121,7 +144,7 @@ func (c *Client) Get(namespace string, reader io.Reader) (string, error) {
// Since we don't know what order the objects come in, let's group them by the types, so
// that when we print them, they come looking good (headers apply to subgroups, etc.)
objs
:=
make
(
map
[
string
][]
runtime
.
Object
)
infos
,
err
:=
c
.
Build
(
namespace
,
reader
)
infos
,
err
:=
c
.
Build
Unstructured
(
namespace
,
reader
)
if
err
!=
nil
{
return
""
,
err
}
...
...
@@ -178,12 +201,12 @@ func (c *Client) Get(namespace string, reader io.Reader) (string, error) {
//
// Namespace will set the namespaces
func
(
c
*
Client
)
Update
(
namespace
string
,
originalReader
,
targetReader
io
.
Reader
,
recreate
bool
,
timeout
int64
,
shouldWait
bool
)
error
{
original
,
err
:=
c
.
Build
(
namespace
,
originalReader
)
original
,
err
:=
c
.
Build
Unstructured
(
namespace
,
originalReader
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"failed decoding reader into objects: %s"
,
err
)
}
target
,
err
:=
c
.
Build
(
namespace
,
targetReader
)
target
,
err
:=
c
.
Build
Unstructured
(
namespace
,
targetReader
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"failed decoding reader into objects: %s"
,
err
)
}
...
...
@@ -255,7 +278,7 @@ func (c *Client) Update(namespace string, originalReader, targetReader io.Reader
//
// Namespace will set the namespace
func
(
c
*
Client
)
Delete
(
namespace
string
,
reader
io
.
Reader
)
error
{
infos
,
err
:=
c
.
Build
(
namespace
,
reader
)
infos
,
err
:=
c
.
Build
Unstructured
(
namespace
,
reader
)
if
err
!=
nil
{
return
err
}
...
...
@@ -585,7 +608,7 @@ func (c *Client) waitForResources(timeout time.Duration, created Result) error {
func
waitForJob
(
e
watch
.
Event
,
name
string
)
(
bool
,
error
)
{
o
,
ok
:=
e
.
Object
.
(
*
batch
.
Job
)
if
!
ok
{
return
true
,
fmt
.
Errorf
(
"Expected %s to be a *batch.Job, got %T"
,
name
,
o
)
return
true
,
fmt
.
Errorf
(
"Expected %s to be a *batch.Job, got %T"
,
name
,
e
.
Object
)
}
for
_
,
c
:=
range
o
.
Status
.
Conditions
{
...
...
This diff is collapsed.
Click to expand it.
pkg/tiller/environment/environment.go
+
6
−
0
View file @
4cdb2ac5
...
...
@@ -137,6 +137,7 @@ type KubeClient interface {
Update
(
namespace
string
,
originalReader
,
modifiedReader
io
.
Reader
,
recreate
bool
,
timeout
int64
,
shouldWait
bool
)
error
Build
(
namespace
string
,
reader
io
.
Reader
)
(
kube
.
Result
,
error
)
BuildUnstructured
(
namespace
string
,
reader
io
.
Reader
)
(
kube
.
Result
,
error
)
// WaitAndGetCompletedPodPhase waits up to a timeout until a pod enters a completed phase
// and returns said phase (PodSucceeded or PodFailed qualify)
...
...
@@ -186,6 +187,11 @@ func (p *PrintingKubeClient) Build(ns string, reader io.Reader) (kube.Result, er
return
[]
*
resource
.
Info
{},
nil
}
// BuildUnstructured implements KubeClient BuildUnstructured.
func
(
p
*
PrintingKubeClient
)
BuildUnstructured
(
ns
string
,
reader
io
.
Reader
)
(
kube
.
Result
,
error
)
{
return
[]
*
resource
.
Info
{},
nil
}
// WaitAndGetCompletedPodPhase implements KubeClient WaitAndGetCompletedPodPhase
func
(
p
*
PrintingKubeClient
)
WaitAndGetCompletedPodPhase
(
namespace
string
,
reader
io
.
Reader
,
timeout
time
.
Duration
)
(
api
.
PodPhase
,
error
)
{
_
,
err
:=
io
.
Copy
(
p
.
Out
,
reader
)
...
...
This diff is collapsed.
Click to expand it.
pkg/tiller/environment/environment_test.go
+
3
−
0
View file @
4cdb2ac5
...
...
@@ -57,6 +57,9 @@ func (k *mockKubeClient) WatchUntilReady(ns string, r io.Reader, timeout int64,
func
(
k
*
mockKubeClient
)
Build
(
ns
string
,
reader
io
.
Reader
)
(
kube
.
Result
,
error
)
{
return
[]
*
resource
.
Info
{},
nil
}
func
(
k
*
mockKubeClient
)
BuildUnstructured
(
ns
string
,
reader
io
.
Reader
)
(
kube
.
Result
,
error
)
{
return
[]
*
resource
.
Info
{},
nil
}
func
(
k
*
mockKubeClient
)
WaitAndGetCompletedPodPhase
(
namespace
string
,
reader
io
.
Reader
,
timeout
time
.
Duration
)
(
api
.
PodPhase
,
error
)
{
return
api
.
PodUnknown
,
nil
}
...
...
This diff is collapsed.
Click to expand it.
pkg/tiller/release_server.go
+
1
−
1
View file @
4cdb2ac5
...
...
@@ -1047,7 +1047,7 @@ func (s *ReleaseServer) UninstallRelease(c ctx.Context, req *services.UninstallR
func
validateManifest
(
c
environment
.
KubeClient
,
ns
string
,
manifest
[]
byte
)
error
{
r
:=
bytes
.
NewReader
(
manifest
)
_
,
err
:=
c
.
Build
(
ns
,
r
)
_
,
err
:=
c
.
Build
Unstructured
(
ns
,
r
)
return
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