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
d340dc53
Commit
d340dc53
authored
Jan 29, 2019
by
Andrew Kim
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update vendor k8s.io/utils to ed37f7428a91fc2a81070808937195dcd46d320e
parent
819dcaaa
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
219 additions
and
194 deletions
+219
-194
Godeps.json
Godeps/Godeps.json
+13
-9
LICENSES
Godeps/LICENSES
+0
-0
Godeps.json
...ing/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json
+3
-3
Godeps.json
staging/src/k8s.io/apiserver/Godeps/Godeps.json
+4
-4
Godeps.json
staging/src/k8s.io/cli-runtime/Godeps/Godeps.json
+1
-1
Godeps.json
staging/src/k8s.io/client-go/Godeps/Godeps.json
+3
-3
Godeps.json
staging/src/k8s.io/cloud-provider/Godeps/Godeps.json
+3
-3
Godeps.json
staging/src/k8s.io/component-base/Godeps/Godeps.json
+1
-1
Godeps.json
staging/src/k8s.io/csi-api/Godeps/Godeps.json
+3
-3
Godeps.json
staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json
+3
-3
Godeps.json
...ing/src/k8s.io/kube-controller-manager/Godeps/Godeps.json
+1
-1
Godeps.json
staging/src/k8s.io/kube-proxy/Godeps/Godeps.json
+1
-1
Godeps.json
staging/src/k8s.io/kube-scheduler/Godeps/Godeps.json
+1
-1
Godeps.json
staging/src/k8s.io/metrics/Godeps/Godeps.json
+1
-1
Godeps.json
staging/src/k8s.io/node-api/Godeps/Godeps.json
+3
-3
Godeps.json
staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json
+3
-3
Godeps.json
staging/src/k8s.io/sample-cli-plugin/Godeps/Godeps.json
+1
-1
Godeps.json
staging/src/k8s.io/sample-controller/Godeps/Godeps.json
+3
-3
BUILD
vendor/BUILD
+1
-0
BUILD
vendor/k8s.io/utils/nsenter/BUILD
+0
-2
exec.go
vendor/k8s.io/utils/nsenter/exec.go
+0
-67
exec_unsupported.go
vendor/k8s.io/utils/nsenter/exec_unsupported.go
+0
-58
nsenter.go
vendor/k8s.io/utils/nsenter/nsenter.go
+40
-17
nsenter_unsupported.go
vendor/k8s.io/utils/nsenter/nsenter_unsupported.go
+29
-6
BUILD
vendor/k8s.io/utils/path/BUILD
+23
-0
file.go
vendor/k8s.io/utils/path/file.go
+78
-0
No files found.
Godeps/Godeps.json
View file @
d340dc53
...
@@ -4090,39 +4090,43 @@
...
@@ -4090,39 +4090,43 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/buffer"
,
"ImportPath"
:
"k8s.io/utils/buffer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/clock"
,
"ImportPath"
:
"k8s.io/utils/clock"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/exec"
,
"ImportPath"
:
"k8s.io/utils/exec"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/exec/testing"
,
"ImportPath"
:
"k8s.io/utils/exec/testing"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/integer"
,
"ImportPath"
:
"k8s.io/utils/integer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/io"
,
"ImportPath"
:
"k8s.io/utils/io"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/nsenter"
,
"ImportPath"
:
"k8s.io/utils/nsenter"
,
"Rev"
:
"8a87304934321b4b0ad72a7cb3cbc715d67d38c7"
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
},
{
"ImportPath"
:
"k8s.io/utils/path"
,
"Rev"
:
"ed37f7428a91fc2a81070808937195dcd46d320e"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/pointer"
,
"ImportPath"
:
"k8s.io/utils/pointer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/trace"
,
"ImportPath"
:
"k8s.io/utils/trace"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
...
...
Godeps/LICENSES
View file @
d340dc53
This diff is collapsed.
Click to expand it.
staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json
View file @
d340dc53
...
@@ -2556,15 +2556,15 @@
...
@@ -2556,15 +2556,15 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/buffer"
,
"ImportPath"
:
"k8s.io/utils/buffer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/integer"
,
"ImportPath"
:
"k8s.io/utils/integer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/trace"
,
"ImportPath"
:
"k8s.io/utils/trace"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
...
...
staging/src/k8s.io/apiserver/Godeps/Godeps.json
View file @
d340dc53
...
@@ -2052,19 +2052,19 @@
...
@@ -2052,19 +2052,19 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/buffer"
,
"ImportPath"
:
"k8s.io/utils/buffer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/integer"
,
"ImportPath"
:
"k8s.io/utils/integer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/pointer"
,
"ImportPath"
:
"k8s.io/utils/pointer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/trace"
,
"ImportPath"
:
"k8s.io/utils/trace"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
...
...
staging/src/k8s.io/cli-runtime/Godeps/Godeps.json
View file @
d340dc53
...
@@ -612,7 +612,7 @@
...
@@ -612,7 +612,7 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/integer"
,
"ImportPath"
:
"k8s.io/utils/integer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
...
...
staging/src/k8s.io/client-go/Godeps/Godeps.json
View file @
d340dc53
...
@@ -616,15 +616,15 @@
...
@@ -616,15 +616,15 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/buffer"
,
"ImportPath"
:
"k8s.io/utils/buffer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/integer"
,
"ImportPath"
:
"k8s.io/utils/integer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/trace"
,
"ImportPath"
:
"k8s.io/utils/trace"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
...
...
staging/src/k8s.io/cloud-provider/Godeps/Godeps.json
View file @
d340dc53
...
@@ -952,15 +952,15 @@
...
@@ -952,15 +952,15 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/buffer"
,
"ImportPath"
:
"k8s.io/utils/buffer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/integer"
,
"ImportPath"
:
"k8s.io/utils/integer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/trace"
,
"ImportPath"
:
"k8s.io/utils/trace"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
...
...
staging/src/k8s.io/component-base/Godeps/Godeps.json
View file @
d340dc53
...
@@ -152,7 +152,7 @@
...
@@ -152,7 +152,7 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/pointer"
,
"ImportPath"
:
"k8s.io/utils/pointer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
}
}
]
]
}
}
staging/src/k8s.io/csi-api/Godeps/Godeps.json
View file @
d340dc53
...
@@ -548,15 +548,15 @@
...
@@ -548,15 +548,15 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/buffer"
,
"ImportPath"
:
"k8s.io/utils/buffer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/integer"
,
"ImportPath"
:
"k8s.io/utils/integer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/trace"
,
"ImportPath"
:
"k8s.io/utils/trace"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
...
...
staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json
View file @
d340dc53
...
@@ -1832,15 +1832,15 @@
...
@@ -1832,15 +1832,15 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/buffer"
,
"ImportPath"
:
"k8s.io/utils/buffer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/integer"
,
"ImportPath"
:
"k8s.io/utils/integer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/trace"
,
"ImportPath"
:
"k8s.io/utils/trace"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
...
...
staging/src/k8s.io/kube-controller-manager/Godeps/Godeps.json
View file @
d340dc53
...
@@ -152,7 +152,7 @@
...
@@ -152,7 +152,7 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/pointer"
,
"ImportPath"
:
"k8s.io/utils/pointer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
}
}
]
]
}
}
staging/src/k8s.io/kube-proxy/Godeps/Godeps.json
View file @
d340dc53
...
@@ -152,7 +152,7 @@
...
@@ -152,7 +152,7 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/pointer"
,
"ImportPath"
:
"k8s.io/utils/pointer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
}
}
]
]
}
}
staging/src/k8s.io/kube-scheduler/Godeps/Godeps.json
View file @
d340dc53
...
@@ -152,7 +152,7 @@
...
@@ -152,7 +152,7 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/pointer"
,
"ImportPath"
:
"k8s.io/utils/pointer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
}
}
]
]
}
}
staging/src/k8s.io/metrics/Godeps/Godeps.json
View file @
d340dc53
...
@@ -524,7 +524,7 @@
...
@@ -524,7 +524,7 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/integer"
,
"ImportPath"
:
"k8s.io/utils/integer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
...
...
staging/src/k8s.io/node-api/Godeps/Godeps.json
View file @
d340dc53
...
@@ -548,15 +548,15 @@
...
@@ -548,15 +548,15 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/buffer"
,
"ImportPath"
:
"k8s.io/utils/buffer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/integer"
,
"ImportPath"
:
"k8s.io/utils/integer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/trace"
,
"ImportPath"
:
"k8s.io/utils/trace"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
...
...
staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json
View file @
d340dc53
...
@@ -1784,15 +1784,15 @@
...
@@ -1784,15 +1784,15 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/buffer"
,
"ImportPath"
:
"k8s.io/utils/buffer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/integer"
,
"ImportPath"
:
"k8s.io/utils/integer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/trace"
,
"ImportPath"
:
"k8s.io/utils/trace"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
...
...
staging/src/k8s.io/sample-cli-plugin/Godeps/Godeps.json
View file @
d340dc53
...
@@ -576,7 +576,7 @@
...
@@ -576,7 +576,7 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/integer"
,
"ImportPath"
:
"k8s.io/utils/integer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
...
...
staging/src/k8s.io/sample-controller/Godeps/Godeps.json
View file @
d340dc53
...
@@ -1156,15 +1156,15 @@
...
@@ -1156,15 +1156,15 @@
},
},
{
{
"ImportPath"
:
"k8s.io/utils/buffer"
,
"ImportPath"
:
"k8s.io/utils/buffer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/integer"
,
"ImportPath"
:
"k8s.io/utils/integer"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"k8s.io/utils/trace"
,
"ImportPath"
:
"k8s.io/utils/trace"
,
"Rev"
:
"
8a87304934321b4b0ad72a7cb3cbc715d67d38c7
"
"Rev"
:
"
ed37f7428a91fc2a81070808937195dcd46d320e
"
},
},
{
{
"ImportPath"
:
"sigs.k8s.io/yaml"
,
"ImportPath"
:
"sigs.k8s.io/yaml"
,
...
...
vendor/BUILD
View file @
d340dc53
...
@@ -473,6 +473,7 @@ filegroup(
...
@@ -473,6 +473,7 @@ filegroup(
"//vendor/k8s.io/utils/integer:all-srcs",
"//vendor/k8s.io/utils/integer:all-srcs",
"//vendor/k8s.io/utils/io:all-srcs",
"//vendor/k8s.io/utils/io:all-srcs",
"//vendor/k8s.io/utils/nsenter:all-srcs",
"//vendor/k8s.io/utils/nsenter:all-srcs",
"//vendor/k8s.io/utils/path:all-srcs",
"//vendor/k8s.io/utils/pointer:all-srcs",
"//vendor/k8s.io/utils/pointer:all-srcs",
"//vendor/k8s.io/utils/trace:all-srcs",
"//vendor/k8s.io/utils/trace:all-srcs",
"//vendor/sigs.k8s.io/yaml:all-srcs",
"//vendor/sigs.k8s.io/yaml:all-srcs",
...
...
vendor/k8s.io/utils/nsenter/BUILD
View file @
d340dc53
...
@@ -3,8 +3,6 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
...
@@ -3,8 +3,6 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
go_library(
name = "go_default_library",
name = "go_default_library",
srcs = [
srcs = [
"exec.go",
"exec_unsupported.go",
"nsenter.go",
"nsenter.go",
"nsenter_unsupported.go",
"nsenter_unsupported.go",
],
],
...
...
vendor/k8s.io/utils/nsenter/exec.go
deleted
100644 → 0
View file @
819dcaaa
// +build linux
/*
Copyright 2018 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
nsenter
import
(
"context"
"fmt"
"path/filepath"
"k8s.io/klog"
"k8s.io/utils/exec"
)
// Executor wraps executor interface to be executed via nsenter
type
Executor
struct
{
// Exec implementation
executor
exec
.
Interface
// Path to the host's root proc path
hostProcMountNsPath
string
}
// NewNsenterExecutor returns new nsenter based executor
func
NewNsenterExecutor
(
hostRootFsPath
string
,
executor
exec
.
Interface
)
*
Executor
{
hostProcMountNsPath
:=
filepath
.
Join
(
hostRootFsPath
,
mountNsPath
)
nsExecutor
:=
&
Executor
{
hostProcMountNsPath
:
hostProcMountNsPath
,
executor
:
executor
,
}
return
nsExecutor
}
// Command returns a command wrapped with nenter
func
(
nsExecutor
*
Executor
)
Command
(
cmd
string
,
args
...
string
)
exec
.
Cmd
{
fullArgs
:=
append
([]
string
{
fmt
.
Sprintf
(
"--mount=%s"
,
nsExecutor
.
hostProcMountNsPath
),
"--"
},
append
([]
string
{
cmd
},
args
...
)
...
)
klog
.
V
(
5
)
.
Infof
(
"Running nsenter command: %v %v"
,
nsenterPath
,
fullArgs
)
return
nsExecutor
.
executor
.
Command
(
nsenterPath
,
fullArgs
...
)
}
// CommandContext returns a CommandContext wrapped with nsenter
func
(
nsExecutor
*
Executor
)
CommandContext
(
ctx
context
.
Context
,
cmd
string
,
args
...
string
)
exec
.
Cmd
{
fullArgs
:=
append
([]
string
{
fmt
.
Sprintf
(
"--mount=%s"
,
nsExecutor
.
hostProcMountNsPath
),
"--"
},
append
([]
string
{
cmd
},
args
...
)
...
)
klog
.
V
(
5
)
.
Infof
(
"Running nsenter command: %v %v"
,
nsenterPath
,
fullArgs
)
return
nsExecutor
.
executor
.
CommandContext
(
ctx
,
nsenterPath
,
fullArgs
...
)
}
// LookPath returns a LookPath wrapped with nsenter
func
(
nsExecutor
*
Executor
)
LookPath
(
file
string
)
(
string
,
error
)
{
return
""
,
fmt
.
Errorf
(
"not implemented, error looking up : %s"
,
file
)
}
vendor/k8s.io/utils/nsenter/exec_unsupported.go
deleted
100644 → 0
View file @
819dcaaa
// +build !linux
/*
Copyright 2017 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
nsenter
import
(
"context"
"fmt"
"k8s.io/utils/exec"
)
// Executor wraps executor interface to be executed via nsenter
type
Executor
struct
{
// Exec implementation
executor
exec
.
Interface
// Path to the host's root proc path
hostProcMountNsPath
string
}
// NewNsenterExecutor returns new nsenter based executor
func
NewNsenterExecutor
(
hostRootFsPath
string
,
executor
exec
.
Interface
)
*
Executor
{
nsExecutor
:=
&
Executor
{
hostProcMountNsPath
:
hostRootFsPath
,
executor
:
executor
,
}
return
nsExecutor
}
// Command returns a command wrapped with nenter
func
(
nsExecutor
*
Executor
)
Command
(
cmd
string
,
args
...
string
)
exec
.
Cmd
{
return
nil
}
// CommandContext returns a CommandContext wrapped with nsenter
func
(
nsExecutor
*
Executor
)
CommandContext
(
ctx
context
.
Context
,
cmd
string
,
args
...
string
)
exec
.
Cmd
{
return
nil
}
// LookPath returns a LookPath wrapped with nsenter
func
(
nsExecutor
*
Executor
)
LookPath
(
file
string
)
(
string
,
error
)
{
return
""
,
fmt
.
Errorf
(
"not implemented, error looking up : %s"
,
file
)
}
vendor/k8s.io/utils/nsenter/nsenter.go
View file @
d340dc53
...
@@ -40,10 +40,13 @@ const (
...
@@ -40,10 +40,13 @@ const (
nsenterPath
=
"nsenter"
nsenterPath
=
"nsenter"
)
)
// Nsenter is part of experimental support for running the kubelet
// Nsenter is a type alias for backward compatibility
type
Nsenter
=
NSEnter
// NSEnter is part of experimental support for running the kubelet
// in a container.
// in a container.
//
//
// N
se
nter requires:
// N
SE
nter requires:
//
//
// 1. Docker >= 1.6 due to the dependency on the slave propagation mode
// 1. Docker >= 1.6 due to the dependency on the slave propagation mode
// of the bind-mount of the kubelet root directory in the container.
// of the bind-mount of the kubelet root directory in the container.
...
@@ -65,20 +68,20 @@ const (
...
@@ -65,20 +68,20 @@ const (
// systemd is installed/enabled in the operating system.
// systemd is installed/enabled in the operating system.
// For more information about mount propagation modes, see:
// For more information about mount propagation modes, see:
// https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt
// https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt
type
N
se
nter
struct
{
type
N
SE
nter
struct
{
// a map of commands to their paths on the host filesystem
// a map of commands to their paths on the host filesystem
paths
map
[
string
]
string
paths
map
[
string
]
string
// Path to the host filesystem, typically "/rootfs". Used only for testing.
// Path to the host filesystem, typically "/rootfs". Used only for testing.
hostRootFsPath
string
hostRootFsPath
string
// Exec implementation
, used only for testing
// Exec implementation
executor
exec
.
Interface
executor
exec
.
Interface
}
}
// NewNsenter constructs a new instance of N
se
nter
// NewNsenter constructs a new instance of N
SE
nter
func
NewNsenter
(
hostRootFsPath
string
,
executor
exec
.
Interface
)
(
*
N
se
nter
,
error
)
{
func
NewNsenter
(
hostRootFsPath
string
,
executor
exec
.
Interface
)
(
*
N
SE
nter
,
error
)
{
ne
:=
&
N
se
nter
{
ne
:=
&
N
SE
nter
{
hostRootFsPath
:
hostRootFsPath
,
hostRootFsPath
:
hostRootFsPath
,
executor
:
executor
,
executor
:
executor
,
}
}
...
@@ -88,7 +91,7 @@ func NewNsenter(hostRootFsPath string, executor exec.Interface) (*Nsenter, error
...
@@ -88,7 +91,7 @@ func NewNsenter(hostRootFsPath string, executor exec.Interface) (*Nsenter, error
return
ne
,
nil
return
ne
,
nil
}
}
func
(
ne
*
N
se
nter
)
initPaths
()
error
{
func
(
ne
*
N
SE
nter
)
initPaths
()
error
{
ne
.
paths
=
map
[
string
]
string
{}
ne
.
paths
=
map
[
string
]
string
{}
binaries
:=
[]
string
{
binaries
:=
[]
string
{
"mount"
,
"mount"
,
...
@@ -122,7 +125,7 @@ func (ne *Nsenter) initPaths() error {
...
@@ -122,7 +125,7 @@ func (ne *Nsenter) initPaths() error {
}
}
// Exec executes nsenter commands in hostProcMountNsPath mount namespace
// Exec executes nsenter commands in hostProcMountNsPath mount namespace
func
(
ne
*
N
se
nter
)
Exec
(
cmd
string
,
args
[]
string
)
exec
.
Cmd
{
func
(
ne
*
N
SE
nter
)
Exec
(
cmd
string
,
args
[]
string
)
exec
.
Cmd
{
hostProcMountNsPath
:=
filepath
.
Join
(
ne
.
hostRootFsPath
,
mountNsPath
)
hostProcMountNsPath
:=
filepath
.
Join
(
ne
.
hostRootFsPath
,
mountNsPath
)
fullArgs
:=
append
([]
string
{
fmt
.
Sprintf
(
"--mount=%s"
,
hostProcMountNsPath
),
"--"
},
fullArgs
:=
append
([]
string
{
fmt
.
Sprintf
(
"--mount=%s"
,
hostProcMountNsPath
),
"--"
},
append
([]
string
{
ne
.
AbsHostPath
(
cmd
)},
args
...
)
...
)
append
([]
string
{
ne
.
AbsHostPath
(
cmd
)},
args
...
)
...
)
...
@@ -130,8 +133,27 @@ func (ne *Nsenter) Exec(cmd string, args []string) exec.Cmd {
...
@@ -130,8 +133,27 @@ func (ne *Nsenter) Exec(cmd string, args []string) exec.Cmd {
return
ne
.
executor
.
Command
(
nsenterPath
,
fullArgs
...
)
return
ne
.
executor
.
Command
(
nsenterPath
,
fullArgs
...
)
}
}
// Command returns a command wrapped with nsenter
func
(
ne
*
NSEnter
)
Command
(
cmd
string
,
args
...
string
)
exec
.
Cmd
{
return
ne
.
Exec
(
cmd
,
args
)
}
// CommandContext returns a CommandContext wrapped with nsenter
func
(
ne
*
NSEnter
)
CommandContext
(
ctx
context
.
Context
,
cmd
string
,
args
...
string
)
exec
.
Cmd
{
hostProcMountNsPath
:=
filepath
.
Join
(
ne
.
hostRootFsPath
,
mountNsPath
)
fullArgs
:=
append
([]
string
{
fmt
.
Sprintf
(
"--mount=%s"
,
hostProcMountNsPath
),
"--"
},
append
([]
string
{
ne
.
AbsHostPath
(
cmd
)},
args
...
)
...
)
klog
.
V
(
5
)
.
Infof
(
"Running nsenter command: %v %v"
,
nsenterPath
,
fullArgs
)
return
ne
.
executor
.
CommandContext
(
ctx
,
nsenterPath
,
fullArgs
...
)
}
// LookPath returns a LookPath wrapped with nsenter
func
(
ne
*
NSEnter
)
LookPath
(
file
string
)
(
string
,
error
)
{
return
""
,
fmt
.
Errorf
(
"not implemented, error looking up : %s"
,
file
)
}
// AbsHostPath returns the absolute runnable path for a specified command
// AbsHostPath returns the absolute runnable path for a specified command
func
(
ne
*
N
se
nter
)
AbsHostPath
(
command
string
)
string
{
func
(
ne
*
N
SE
nter
)
AbsHostPath
(
command
string
)
string
{
path
,
ok
:=
ne
.
paths
[
command
]
path
,
ok
:=
ne
.
paths
[
command
]
if
!
ok
{
if
!
ok
{
return
command
return
command
...
@@ -140,7 +162,7 @@ func (ne *Nsenter) AbsHostPath(command string) string {
...
@@ -140,7 +162,7 @@ func (ne *Nsenter) AbsHostPath(command string) string {
}
}
// SupportsSystemd checks whether command systemd-run exists
// SupportsSystemd checks whether command systemd-run exists
func
(
ne
*
N
se
nter
)
SupportsSystemd
()
(
string
,
bool
)
{
func
(
ne
*
N
SE
nter
)
SupportsSystemd
()
(
string
,
bool
)
{
systemdRunPath
,
ok
:=
ne
.
paths
[
"systemd-run"
]
systemdRunPath
,
ok
:=
ne
.
paths
[
"systemd-run"
]
return
systemdRunPath
,
ok
&&
systemdRunPath
!=
""
return
systemdRunPath
,
ok
&&
systemdRunPath
!=
""
}
}
...
@@ -158,7 +180,7 @@ func (ne *Nsenter) SupportsSystemd() (string, bool) {
...
@@ -158,7 +180,7 @@ func (ne *Nsenter) SupportsSystemd() (string, bool) {
//
//
// BEWARE! EvalSymlinks is not able to detect symlink looks with mustExist=false!
// BEWARE! EvalSymlinks is not able to detect symlink looks with mustExist=false!
// If /tmp/link is symlink to /tmp/link, EvalSymlinks(/tmp/link/foo) returns /tmp/link/foo.
// If /tmp/link is symlink to /tmp/link, EvalSymlinks(/tmp/link/foo) returns /tmp/link/foo.
func
(
ne
*
N
se
nter
)
EvalSymlinks
(
pathname
string
,
mustExist
bool
)
(
string
,
error
)
{
func
(
ne
*
N
SE
nter
)
EvalSymlinks
(
pathname
string
,
mustExist
bool
)
(
string
,
error
)
{
var
args
[]
string
var
args
[]
string
if
mustExist
{
if
mustExist
{
// "realpath -e: all components of the path must exist"
// "realpath -e: all components of the path must exist"
...
@@ -178,16 +200,16 @@ func (ne *Nsenter) EvalSymlinks(pathname string, mustExist bool) (string, error)
...
@@ -178,16 +200,16 @@ func (ne *Nsenter) EvalSymlinks(pathname string, mustExist bool) (string, error)
// KubeletPath returns the path name that can be accessed by containerized
// KubeletPath returns the path name that can be accessed by containerized
// kubelet. It is recommended to resolve symlinks on the host by EvalSymlinks
// kubelet. It is recommended to resolve symlinks on the host by EvalSymlinks
// before calling this function
// before calling this function
func
(
ne
*
N
se
nter
)
KubeletPath
(
pathname
string
)
string
{
func
(
ne
*
N
SE
nter
)
KubeletPath
(
pathname
string
)
string
{
return
filepath
.
Join
(
ne
.
hostRootFsPath
,
pathname
)
return
filepath
.
Join
(
ne
.
hostRootFsPath
,
pathname
)
}
}
// NewFakeNsenter returns a N
se
nter that does not run "nsenter --mount=... --",
// NewFakeNsenter returns a N
SE
nter that does not run "nsenter --mount=... --",
// but runs everything in the same mount namespace as the unit test binary.
// but runs everything in the same mount namespace as the unit test binary.
// rootfsPath is supposed to be a symlink, e.g. /tmp/xyz/rootfs -> /.
// rootfsPath is supposed to be a symlink, e.g. /tmp/xyz/rootfs -> /.
// This fake N
se
nter is enough for most operations, e.g. to resolve symlinks,
// This fake N
SE
nter is enough for most operations, e.g. to resolve symlinks,
// but it's not enough to call /bin/mount - unit tests don't run as root.
// but it's not enough to call /bin/mount - unit tests don't run as root.
func
NewFakeNsenter
(
rootfsPath
string
)
(
*
N
se
nter
,
error
)
{
func
NewFakeNsenter
(
rootfsPath
string
)
(
*
N
SE
nter
,
error
)
{
executor
:=
&
fakeExec
{
executor
:=
&
fakeExec
{
rootfsPath
:
rootfsPath
,
rootfsPath
:
rootfsPath
,
}
}
...
@@ -218,7 +240,7 @@ type fakeExec struct {
...
@@ -218,7 +240,7 @@ type fakeExec struct {
}
}
func
(
f
fakeExec
)
Command
(
cmd
string
,
args
...
string
)
exec
.
Cmd
{
func
(
f
fakeExec
)
Command
(
cmd
string
,
args
...
string
)
exec
.
Cmd
{
// This will intentionaly panic if N
se
nter does not provide enough arguments.
// This will intentionaly panic if N
SE
nter does not provide enough arguments.
realCmd
:=
args
[
2
]
realCmd
:=
args
[
2
]
realArgs
:=
args
[
3
:
]
realArgs
:=
args
[
3
:
]
return
exec
.
New
()
.
Command
(
realCmd
,
realArgs
...
)
return
exec
.
New
()
.
Command
(
realCmd
,
realArgs
...
)
...
@@ -233,3 +255,4 @@ func (fakeExec) CommandContext(ctx context.Context, cmd string, args ...string)
...
@@ -233,3 +255,4 @@ func (fakeExec) CommandContext(ctx context.Context, cmd string, args ...string)
}
}
var
_
exec
.
Interface
=
fakeExec
{}
var
_
exec
.
Interface
=
fakeExec
{}
var
_
exec
.
Interface
=
&
NSEnter
{}
vendor/k8s.io/utils/nsenter/nsenter_unsupported.go
View file @
d340dc53
...
@@ -19,6 +19,9 @@ limitations under the License.
...
@@ -19,6 +19,9 @@ limitations under the License.
package
nsenter
package
nsenter
import
(
import
(
"context"
"fmt"
"k8s.io/utils/exec"
"k8s.io/utils/exec"
)
)
...
@@ -28,29 +31,49 @@ const (
...
@@ -28,29 +31,49 @@ const (
DefaultHostRootFsPath
=
"/rootfs"
DefaultHostRootFsPath
=
"/rootfs"
)
)
// Nsenter is part of experimental support for running the kubelet
// Nsenter is a type alias for backward compatibility
type
Nsenter
=
NSEnter
// NSEnter is part of experimental support for running the kubelet
// in a container.
// in a container.
type
N
se
nter
struct
{
type
N
SE
nter
struct
{
// a map of commands to their paths on the host filesystem
// a map of commands to their paths on the host filesystem
Paths
map
[
string
]
string
Paths
map
[
string
]
string
}
}
// NewNsenter constructs a new instance of N
se
nter
// NewNsenter constructs a new instance of N
SE
nter
func
NewNsenter
(
hostRootFsPath
string
,
executor
exec
.
Interface
)
(
*
Nsenter
,
error
)
{
func
NewNsenter
(
hostRootFsPath
string
,
executor
exec
.
Interface
)
(
*
Nsenter
,
error
)
{
return
&
Nsenter
{},
nil
return
&
Nsenter
{},
nil
}
}
// Exec executes nsenter commands in hostProcMountNsPath mount namespace
// Exec executes nsenter commands in hostProcMountNsPath mount namespace
func
(
ne
*
N
se
nter
)
Exec
(
cmd
string
,
args
[]
string
)
exec
.
Cmd
{
func
(
ne
*
N
SE
nter
)
Exec
(
cmd
string
,
args
[]
string
)
exec
.
Cmd
{
return
nil
return
nil
}
}
// AbsHostPath returns the absolute runnable path for a specified command
// AbsHostPath returns the absolute runnable path for a specified command
func
(
ne
*
N
se
nter
)
AbsHostPath
(
command
string
)
string
{
func
(
ne
*
N
SE
nter
)
AbsHostPath
(
command
string
)
string
{
return
""
return
""
}
}
// SupportsSystemd checks whether command systemd-run exists
// SupportsSystemd checks whether command systemd-run exists
func
(
ne
*
N
se
nter
)
SupportsSystemd
()
(
string
,
bool
)
{
func
(
ne
*
N
SE
nter
)
SupportsSystemd
()
(
string
,
bool
)
{
return
""
,
false
return
""
,
false
}
}
// Command returns a command wrapped with nenter
func
(
ne
*
NSEnter
)
Command
(
cmd
string
,
args
...
string
)
exec
.
Cmd
{
return
nil
}
// CommandContext returns a CommandContext wrapped with nsenter
func
(
ne
*
NSEnter
)
CommandContext
(
ctx
context
.
Context
,
cmd
string
,
args
...
string
)
exec
.
Cmd
{
return
nil
}
// LookPath returns a LookPath wrapped with nsenter
func
(
ne
*
NSEnter
)
LookPath
(
file
string
)
(
string
,
error
)
{
return
""
,
fmt
.
Errorf
(
"not implemented, error looking up : %s"
,
file
)
}
var
_
exec
.
Interface
=
&
NSEnter
{}
vendor/k8s.io/utils/path/BUILD
0 → 100644
View file @
d340dc53
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["file.go"],
importmap = "k8s.io/kubernetes/vendor/k8s.io/utils/path",
importpath = "k8s.io/utils/path",
visibility = ["//visibility:public"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
vendor/k8s.io/utils/path/file.go
0 → 100644
View file @
d340dc53
/*
Copyright 2017 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
path
import
(
"errors"
"os"
)
// LinkTreatment is the base type for constants used by Exists that indicate
// how symlinks are treated for existence checks.
type
LinkTreatment
int
const
(
// CheckFollowSymlink follows the symlink and verifies that the target of
// the symlink exists.
CheckFollowSymlink
LinkTreatment
=
iota
// CheckSymlinkOnly does not follow the symlink and verfies only that they
// symlink itself exists.
CheckSymlinkOnly
)
// ErrInvalidLinkTreatment indicates that the link treatment behavior requested
// is not a valid behavior.
var
ErrInvalidLinkTreatment
=
errors
.
New
(
"unknown link behavior"
)
// Exists checks if specified file, directory, or symlink exists. The behavior
// of the test depends on the linkBehaviour argument. See LinkTreatment for
// more details.
func
Exists
(
linkBehavior
LinkTreatment
,
filename
string
)
(
bool
,
error
)
{
var
err
error
if
linkBehavior
==
CheckFollowSymlink
{
_
,
err
=
os
.
Stat
(
filename
)
}
else
if
linkBehavior
==
CheckSymlinkOnly
{
_
,
err
=
os
.
Lstat
(
filename
)
}
else
{
return
false
,
ErrInvalidLinkTreatment
}
if
os
.
IsNotExist
(
err
)
{
return
false
,
nil
}
else
if
err
!=
nil
{
return
false
,
err
}
return
true
,
nil
}
// ReadDirNoStat returns a string of files/directories contained
// in dirname without calling lstat on them.
func
ReadDirNoStat
(
dirname
string
)
([]
string
,
error
)
{
if
dirname
==
""
{
dirname
=
"."
}
f
,
err
:=
os
.
Open
(
dirname
)
if
err
!=
nil
{
return
nil
,
err
}
defer
f
.
Close
()
return
f
.
Readdirnames
(
-
1
)
}
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