Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
62734d36
Unverified
Commit
62734d36
authored
Feb 14, 2019
by
Kubernetes Prow Robot
Committed by
GitHub
Feb 14, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #73976 from jennybuckley/apply-errors
Make server-side apply's conflict errors more human readable
parents
c2a326fd
7dba6fe9
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
199 additions
and
196 deletions
+199
-196
Godeps.json
staging/src/k8s.io/apimachinery/Godeps/Godeps.json
+0
-20
BUILD
staging/src/k8s.io/apimachinery/pkg/api/errors/BUILD
+0
-1
errors.go
staging/src/k8s.io/apimachinery/pkg/api/errors/errors.go
+2
-12
types.go
staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types.go
+3
-0
BUILD
...8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/BUILD
+0
-1
fieldmanager.go
...erver/pkg/endpoints/handlers/fieldmanager/fieldmanager.go
+1
-2
BUILD
...server/pkg/endpoints/handlers/fieldmanager/internal/BUILD
+5
-0
conflict.go
.../pkg/endpoints/handlers/fieldmanager/internal/conflict.go
+82
-0
conflict_test.go
...endpoints/handlers/fieldmanager/internal/conflict_test.go
+106
-0
Godeps.json
staging/src/k8s.io/cli-runtime/Godeps/Godeps.json
+0
-20
Godeps.json
staging/src/k8s.io/client-go/Godeps/Godeps.json
+0
-20
Godeps.json
staging/src/k8s.io/cloud-provider/Godeps/Godeps.json
+0
-20
Godeps.json
staging/src/k8s.io/csi-api/Godeps/Godeps.json
+0
-20
Godeps.json
staging/src/k8s.io/metrics/Godeps/Godeps.json
+0
-20
Godeps.json
staging/src/k8s.io/node-api/Godeps/Godeps.json
+0
-20
Godeps.json
staging/src/k8s.io/sample-cli-plugin/Godeps/Godeps.json
+0
-20
Godeps.json
staging/src/k8s.io/sample-controller/Godeps/Godeps.json
+0
-20
No files found.
staging/src/k8s.io/apimachinery/Godeps/Godeps.json
View file @
62734d36
...
@@ -179,26 +179,6 @@
...
@@ -179,26 +179,6 @@
"Rev"
:
"d7c86cdc46e3a4fcf892b32dd7bc3aa775e0870e"
"Rev"
:
"d7c86cdc46e3a4fcf892b32dd7bc3aa775e0870e"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/fieldpath"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/merge"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/schema"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/typed"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/value"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
}
}
...
...
staging/src/k8s.io/apimachinery/pkg/api/errors/BUILD
View file @
62734d36
...
@@ -31,7 +31,6 @@ go_library(
...
@@ -31,7 +31,6 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/validation/field:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/validation/field:go_default_library",
"//vendor/sigs.k8s.io/structured-merge-diff/merge:go_default_library",
],
],
)
)
...
...
staging/src/k8s.io/apimachinery/pkg/api/errors/errors.go
View file @
62734d36
...
@@ -27,7 +27,6 @@ import (
...
@@ -27,7 +27,6 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/util/validation/field"
"k8s.io/apimachinery/pkg/util/validation/field"
"sigs.k8s.io/structured-merge-diff/merge"
)
)
const
(
const
(
...
@@ -186,16 +185,7 @@ func NewConflict(qualifiedResource schema.GroupResource, name string, err error)
...
@@ -186,16 +185,7 @@ func NewConflict(qualifiedResource schema.GroupResource, name string, err error)
}
}
// NewApplyConflict returns an error including details on the requests apply conflicts
// NewApplyConflict returns an error including details on the requests apply conflicts
func
NewApplyConflict
(
conflicts
merge
.
Conflicts
)
*
StatusError
{
func
NewApplyConflict
(
causes
[]
metav1
.
StatusCause
,
message
string
)
*
StatusError
{
causes
:=
make
([]
metav1
.
StatusCause
,
0
,
len
(
conflicts
))
for
_
,
conflict
:=
range
conflicts
{
causes
=
append
(
causes
,
metav1
.
StatusCause
{
Type
:
metav1
.
CauseType
(
"conflict"
),
Message
:
conflict
.
Error
(),
Field
:
conflict
.
Path
.
String
(),
})
}
return
&
StatusError
{
ErrStatus
:
metav1
.
Status
{
return
&
StatusError
{
ErrStatus
:
metav1
.
Status
{
Status
:
metav1
.
StatusFailure
,
Status
:
metav1
.
StatusFailure
,
Code
:
http
.
StatusConflict
,
Code
:
http
.
StatusConflict
,
...
@@ -204,7 +194,7 @@ func NewApplyConflict(conflicts merge.Conflicts) *StatusError {
...
@@ -204,7 +194,7 @@ func NewApplyConflict(conflicts merge.Conflicts) *StatusError {
// TODO: Get obj details here?
// TODO: Get obj details here?
Causes
:
causes
,
Causes
:
causes
,
},
},
Message
:
fmt
.
Sprintf
(
"Apply failed with %d conflicts: %s"
,
len
(
conflicts
),
conflicts
.
Error
())
,
Message
:
message
,
}}
}}
}
}
...
...
staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types.go
View file @
62734d36
...
@@ -825,6 +825,9 @@ const (
...
@@ -825,6 +825,9 @@ const (
// without the expected return type. The presence of this cause indicates the error may be
// without the expected return type. The presence of this cause indicates the error may be
// due to an intervening proxy or the server software malfunctioning.
// due to an intervening proxy or the server software malfunctioning.
CauseTypeUnexpectedServerResponse
CauseType
=
"UnexpectedServerResponse"
CauseTypeUnexpectedServerResponse
CauseType
=
"UnexpectedServerResponse"
// FieldManagerConflict is used to report when another client claims to manage this field,
// It should only be returned for a request using server-side apply.
CauseTypeFieldManagerConflict
CauseType
=
"FieldManagerConflict"
)
)
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
...
...
staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/BUILD
View file @
62734d36
...
@@ -7,7 +7,6 @@ go_library(
...
@@ -7,7 +7,6 @@ go_library(
importpath = "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager",
importpath = "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager",
visibility = ["//visibility:public"],
visibility = ["//visibility:public"],
deps = [
deps = [
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
...
...
staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/fieldmanager.go
View file @
62734d36
...
@@ -20,7 +20,6 @@ import (
...
@@ -20,7 +20,6 @@ import (
"fmt"
"fmt"
"time"
"time"
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/api/meta"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
...
@@ -178,7 +177,7 @@ func (f *FieldManager) Apply(liveObj runtime.Object, patch []byte, force bool) (
...
@@ -178,7 +177,7 @@ func (f *FieldManager) Apply(liveObj runtime.Object, patch []byte, force bool) (
newObjTyped
,
managed
,
err
:=
f
.
updater
.
Apply
(
liveObjTyped
,
patchObjTyped
,
apiVersion
,
managed
,
manager
,
force
)
newObjTyped
,
managed
,
err
:=
f
.
updater
.
Apply
(
liveObjTyped
,
patchObjTyped
,
apiVersion
,
managed
,
manager
,
force
)
if
err
!=
nil
{
if
err
!=
nil
{
if
conflicts
,
ok
:=
err
.
(
merge
.
Conflicts
);
ok
{
if
conflicts
,
ok
:=
err
.
(
merge
.
Conflicts
);
ok
{
return
nil
,
errors
.
NewApplyConflict
(
conflicts
)
return
nil
,
internal
.
NewConflictError
(
conflicts
)
}
}
return
nil
,
err
return
nil
,
err
}
}
...
...
staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal/BUILD
View file @
62734d36
...
@@ -3,6 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
...
@@ -3,6 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
go_library(
go_library(
name = "go_default_library",
name = "go_default_library",
srcs = [
srcs = [
"conflict.go",
"fields.go",
"fields.go",
"gvkparser.go",
"gvkparser.go",
"managedfields.go",
"managedfields.go",
...
@@ -14,6 +15,7 @@ go_library(
...
@@ -14,6 +15,7 @@ go_library(
importpath = "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal",
importpath = "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal",
visibility = ["//visibility:public"],
visibility = ["//visibility:public"],
deps = [
deps = [
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library",
...
@@ -32,6 +34,7 @@ go_library(
...
@@ -32,6 +34,7 @@ go_library(
go_test(
go_test(
name = "go_default_test",
name = "go_default_test",
srcs = [
srcs = [
"conflict_test.go",
"fields_test.go",
"fields_test.go",
"managedfields_test.go",
"managedfields_test.go",
"pathelement_test.go",
"pathelement_test.go",
...
@@ -41,6 +44,7 @@ go_test(
...
@@ -41,6 +44,7 @@ go_test(
data = ["//api/openapi-spec"],
data = ["//api/openapi-spec"],
embed = [":go_default_library"],
embed = [":go_default_library"],
deps = [
deps = [
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
...
@@ -49,6 +53,7 @@ go_test(
...
@@ -49,6 +53,7 @@ go_test(
"//vendor/k8s.io/kube-openapi/pkg/util/proto:go_default_library",
"//vendor/k8s.io/kube-openapi/pkg/util/proto:go_default_library",
"//vendor/k8s.io/kube-openapi/pkg/util/proto/testing:go_default_library",
"//vendor/k8s.io/kube-openapi/pkg/util/proto/testing:go_default_library",
"//vendor/sigs.k8s.io/structured-merge-diff/fieldpath:go_default_library",
"//vendor/sigs.k8s.io/structured-merge-diff/fieldpath:go_default_library",
"//vendor/sigs.k8s.io/structured-merge-diff/merge:go_default_library",
"//vendor/sigs.k8s.io/yaml:go_default_library",
"//vendor/sigs.k8s.io/yaml:go_default_library",
],
],
)
)
...
...
staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal/conflict.go
0 → 100644
View file @
62734d36
/*
Copyright 2019 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
internal
import
(
"encoding/json"
"fmt"
"sort"
"strings"
"time"
"k8s.io/apimachinery/pkg/api/errors"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/structured-merge-diff/fieldpath"
"sigs.k8s.io/structured-merge-diff/merge"
)
// NewConflictError returns an error including details on the requests apply conflicts
func
NewConflictError
(
conflicts
merge
.
Conflicts
)
*
errors
.
StatusError
{
causes
:=
[]
metav1
.
StatusCause
{}
for
_
,
conflict
:=
range
conflicts
{
causes
=
append
(
causes
,
metav1
.
StatusCause
{
Type
:
metav1
.
CauseTypeFieldManagerConflict
,
Message
:
fmt
.
Sprintf
(
"conflict with %v"
,
printManager
(
conflict
.
Manager
)),
Field
:
conflict
.
Path
.
String
(),
})
}
return
errors
.
NewApplyConflict
(
causes
,
getConflictMessage
(
conflicts
))
}
func
getConflictMessage
(
conflicts
merge
.
Conflicts
)
string
{
if
len
(
conflicts
)
==
1
{
return
fmt
.
Sprintf
(
"Apply failed with 1 conflict: conflict with %v: %v"
,
printManager
(
conflicts
[
0
]
.
Manager
),
conflicts
[
0
]
.
Path
)
}
m
:=
map
[
string
][]
fieldpath
.
Path
{}
for
_
,
conflict
:=
range
conflicts
{
m
[
conflict
.
Manager
]
=
append
(
m
[
conflict
.
Manager
],
conflict
.
Path
)
}
uniqueManagers
:=
[]
string
{}
for
manager
:=
range
m
{
uniqueManagers
=
append
(
uniqueManagers
,
manager
)
}
// Print conflicts by sorted managers.
sort
.
Strings
(
uniqueManagers
)
messages
:=
[]
string
{}
for
_
,
manager
:=
range
uniqueManagers
{
messages
=
append
(
messages
,
fmt
.
Sprintf
(
"conflicts with %v:"
,
printManager
(
manager
)))
for
_
,
path
:=
range
m
[
manager
]
{
messages
=
append
(
messages
,
fmt
.
Sprintf
(
"- %v"
,
path
))
}
}
return
fmt
.
Sprintf
(
"Apply failed with %d conflicts: %s"
,
len
(
conflicts
),
strings
.
Join
(
messages
,
"
\n
"
))
}
func
printManager
(
manager
string
)
string
{
encodedManager
:=
&
metav1
.
ManagedFieldsEntry
{}
if
err
:=
json
.
Unmarshal
([]
byte
(
manager
),
encodedManager
);
err
!=
nil
{
return
fmt
.
Sprintf
(
"%q"
,
manager
)
}
if
encodedManager
.
Operation
==
metav1
.
ManagedFieldsOperationUpdate
{
return
fmt
.
Sprintf
(
"%q using %v at %v"
,
encodedManager
.
Manager
,
encodedManager
.
APIVersion
,
encodedManager
.
Time
.
UTC
()
.
Format
(
time
.
RFC3339
))
}
return
fmt
.
Sprintf
(
"%q"
,
encodedManager
.
Manager
)
}
staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal/conflict_test.go
0 → 100644
View file @
62734d36
/*
Copyright 2019 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
internal_test
import
(
"net/http"
"reflect"
"testing"
"k8s.io/apimachinery/pkg/api/errors"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal"
"sigs.k8s.io/structured-merge-diff/fieldpath"
"sigs.k8s.io/structured-merge-diff/merge"
)
// TestNewConflictError tests that NewConflictError creates the correct StatusError for a given smd Conflicts
func
TestNewConflictError
(
t
*
testing
.
T
)
{
testCases
:=
[]
struct
{
conflict
merge
.
Conflicts
expected
*
errors
.
StatusError
}{
{
conflict
:
merge
.
Conflicts
{
merge
.
Conflict
{
Manager
:
`{"manager":"foo","operation":"Update","apiVersion":"v1","time":"2001-02-03T04:05:06Z"}`
,
Path
:
fieldpath
.
MakePathOrDie
(
"spec"
,
"replicas"
),
},
},
expected
:
&
errors
.
StatusError
{
ErrStatus
:
metav1
.
Status
{
Status
:
metav1
.
StatusFailure
,
Code
:
http
.
StatusConflict
,
Reason
:
metav1
.
StatusReasonConflict
,
Details
:
&
metav1
.
StatusDetails
{
Causes
:
[]
metav1
.
StatusCause
{
{
Type
:
metav1
.
CauseTypeFieldManagerConflict
,
Message
:
`conflict with "foo" using v1 at 2001-02-03T04:05:06Z`
,
Field
:
".spec.replicas"
,
},
},
},
Message
:
`Apply failed with 1 conflict: conflict with "foo" using v1 at 2001-02-03T04:05:06Z: .spec.replicas`
,
},
},
},
{
conflict
:
merge
.
Conflicts
{
merge
.
Conflict
{
Manager
:
`{"manager":"foo","operation":"Update","apiVersion":"v1","time":"2001-02-03T04:05:06Z"}`
,
Path
:
fieldpath
.
MakePathOrDie
(
"spec"
,
"replicas"
),
},
merge
.
Conflict
{
Manager
:
`{"manager":"bar","operation":"Apply"}`
,
Path
:
fieldpath
.
MakePathOrDie
(
"metadata"
,
"labels"
,
"app"
),
},
},
expected
:
&
errors
.
StatusError
{
ErrStatus
:
metav1
.
Status
{
Status
:
metav1
.
StatusFailure
,
Code
:
http
.
StatusConflict
,
Reason
:
metav1
.
StatusReasonConflict
,
Details
:
&
metav1
.
StatusDetails
{
Causes
:
[]
metav1
.
StatusCause
{
{
Type
:
metav1
.
CauseTypeFieldManagerConflict
,
Message
:
`conflict with "foo" using v1 at 2001-02-03T04:05:06Z`
,
Field
:
".spec.replicas"
,
},
{
Type
:
metav1
.
CauseTypeFieldManagerConflict
,
Message
:
`conflict with "bar"`
,
Field
:
".metadata.labels.app"
,
},
},
},
Message
:
`Apply failed with 2 conflicts: conflicts with "bar":
- .metadata.labels.app
conflicts with "foo" using v1 at 2001-02-03T04:05:06Z:
- .spec.replicas`
,
},
},
},
}
for
_
,
tc
:=
range
testCases
{
actual
:=
internal
.
NewConflictError
(
tc
.
conflict
)
if
!
reflect
.
DeepEqual
(
tc
.
expected
,
actual
)
{
t
.
Errorf
(
"Expected to get
\n
%+v
\n
but got
\n
%+v"
,
tc
.
expected
.
ErrStatus
,
actual
.
ErrStatus
)
}
}
}
staging/src/k8s.io/cli-runtime/Godeps/Godeps.json
View file @
62734d36
...
@@ -791,26 +791,6 @@
...
@@ -791,26 +791,6 @@
"Rev"
:
"ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3"
"Rev"
:
"ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/fieldpath"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/merge"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/schema"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/typed"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/value"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
}
}
...
...
staging/src/k8s.io/client-go/Godeps/Godeps.json
View file @
62734d36
...
@@ -627,26 +627,6 @@
...
@@ -627,26 +627,6 @@
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/fieldpath"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/merge"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/schema"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/typed"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/value"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
}
}
...
...
staging/src/k8s.io/cloud-provider/Godeps/Godeps.json
View file @
62734d36
...
@@ -979,26 +979,6 @@
...
@@ -979,26 +979,6 @@
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/fieldpath"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/merge"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/schema"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/typed"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/value"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
}
}
...
...
staging/src/k8s.io/csi-api/Godeps/Godeps.json
View file @
62734d36
...
@@ -543,26 +543,6 @@
...
@@ -543,26 +543,6 @@
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/fieldpath"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/merge"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/schema"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/typed"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/value"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
}
}
...
...
staging/src/k8s.io/metrics/Godeps/Godeps.json
View file @
62734d36
...
@@ -511,26 +511,6 @@
...
@@ -511,26 +511,6 @@
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/fieldpath"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/merge"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/schema"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/typed"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/value"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
}
}
...
...
staging/src/k8s.io/node-api/Godeps/Godeps.json
View file @
62734d36
...
@@ -543,26 +543,6 @@
...
@@ -543,26 +543,6 @@
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/fieldpath"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/merge"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/schema"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/typed"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/value"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
}
}
...
...
staging/src/k8s.io/sample-cli-plugin/Godeps/Godeps.json
View file @
62734d36
...
@@ -583,26 +583,6 @@
...
@@ -583,26 +583,6 @@
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/fieldpath"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/merge"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/schema"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/typed"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/value"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
}
}
...
...
staging/src/k8s.io/sample-controller/Godeps/Godeps.json
View file @
62734d36
...
@@ -1151,26 +1151,6 @@
...
@@ -1151,26 +1151,6 @@
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/fieldpath"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/merge"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/schema"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/typed"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/structured-merge-diff/value"
,
"Rev"
:
"e5e029740eb81ee0217ecf9d950c25a0eeb9688a"
},
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
"Rev"
:
"fd68e9863619f6ec2fdd8625fe1f02e7c877e480"
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment