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
e6d27423
Unverified
Commit
e6d27423
authored
Mar 29, 2019
by
Kubernetes Prow Robot
Committed by
GitHub
Mar 29, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #75646 from bart0sh/PR0066-kubeadm-token-delete-multiple
kubeadm: implement deletion of multiple tokens
parents
f8cd676f
405a9715
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
26 additions
and
24 deletions
+26
-24
token.go
cmd/kubeadm/app/cmd/token.go
+23
-21
token_test.go
cmd/kubeadm/app/cmd/token_test.go
+3
-3
No files found.
cmd/kubeadm/app/cmd/token.go
View file @
e6d27423
...
@@ -158,11 +158,11 @@ func NewCmdToken(out io.Writer, errW io.Writer) *cobra.Command {
...
@@ -158,11 +158,11 @@ func NewCmdToken(out io.Writer, errW io.Writer) *cobra.Command {
tokenCmd
.
AddCommand
(
listCmd
)
tokenCmd
.
AddCommand
(
listCmd
)
deleteCmd
:=
&
cobra
.
Command
{
deleteCmd
:=
&
cobra
.
Command
{
Use
:
"delete [token-value]"
,
Use
:
"delete [token-value]
...
"
,
DisableFlagsInUseLine
:
true
,
DisableFlagsInUseLine
:
true
,
Short
:
"Delete bootstrap tokens on the server."
,
Short
:
"Delete bootstrap tokens on the server."
,
Long
:
dedent
.
Dedent
(
`
Long
:
dedent
.
Dedent
(
`
This command will delete a
given bootstrap token
for you.
This command will delete a
list of bootstrap tokens
for you.
The [token-value] is the full Token of the form "[a-z0-9]{6}.[a-z0-9]{16}" or the
The [token-value] is the full Token of the form "[a-z0-9]{6}.[a-z0-9]{16}" or the
Token ID of the form "[a-z0-9]{6}" to delete.
Token ID of the form "[a-z0-9]{6}" to delete.
...
@@ -175,7 +175,7 @@ func NewCmdToken(out io.Writer, errW io.Writer) *cobra.Command {
...
@@ -175,7 +175,7 @@ func NewCmdToken(out io.Writer, errW io.Writer) *cobra.Command {
client
,
err
:=
getClientset
(
kubeConfigFile
,
dryRun
)
client
,
err
:=
getClientset
(
kubeConfigFile
,
dryRun
)
kubeadmutil
.
CheckErr
(
err
)
kubeadmutil
.
CheckErr
(
err
)
err
=
RunDeleteToken
(
out
,
client
,
args
[
0
]
)
err
=
RunDeleteToken
s
(
out
,
client
,
args
)
kubeadmutil
.
CheckErr
(
err
)
kubeadmutil
.
CheckErr
(
err
)
},
},
}
}
...
@@ -296,27 +296,29 @@ func RunListTokens(out io.Writer, errW io.Writer, client clientset.Interface) er
...
@@ -296,27 +296,29 @@ func RunListTokens(out io.Writer, errW io.Writer, client clientset.Interface) er
return
nil
return
nil
}
}
// RunDeleteToken removes a bootstrap token from the server.
// RunDeleteTokens removes a bootstrap tokens from the server.
func
RunDeleteToken
(
out
io
.
Writer
,
client
clientset
.
Interface
,
tokenIDOrToken
string
)
error
{
func
RunDeleteTokens
(
out
io
.
Writer
,
client
clientset
.
Interface
,
tokenIDsOrTokens
[]
string
)
error
{
// Assume the given first argument is a token id and try to parse it
for
_
,
tokenIDOrToken
:=
range
tokenIDsOrTokens
{
tokenID
:=
tokenIDOrToken
// Assume this is a token id and try to parse it
klog
.
V
(
1
)
.
Infoln
(
"[token] parsing token ID"
)
tokenID
:=
tokenIDOrToken
if
!
bootstraputil
.
IsValidBootstrapTokenID
(
tokenIDOrToken
)
{
klog
.
V
(
1
)
.
Infof
(
"[token] parsing token %q"
,
tokenIDOrToken
)
// Okay, the full token with both id and secret was probably passed. Parse it and extract the ID only
if
!
bootstraputil
.
IsValidBootstrapTokenID
(
tokenIDOrToken
)
{
bts
,
err
:=
kubeadmapiv1beta1
.
NewBootstrapTokenString
(
tokenIDOrToken
)
// Okay, the full token with both id and secret was probably passed. Parse it and extract the ID only
if
err
!=
nil
{
bts
,
err
:=
kubeadmapiv1beta1
.
NewBootstrapTokenString
(
tokenIDOrToken
)
return
errors
.
Errorf
(
"given token or token id %q didn't match pattern %q or %q"
,
if
err
!=
nil
{
tokenIDOrToken
,
bootstrapapi
.
BootstrapTokenIDPattern
,
bootstrapapi
.
BootstrapTokenIDPattern
)
return
errors
.
Errorf
(
"given token %q didn't match pattern %q or %q"
,
tokenIDOrToken
,
bootstrapapi
.
BootstrapTokenIDPattern
,
bootstrapapi
.
BootstrapTokenIDPattern
)
}
tokenID
=
bts
.
ID
}
}
tokenID
=
bts
.
ID
}
tokenSecretName
:=
bootstraputil
.
BootstrapTokenSecretName
(
tokenID
)
tokenSecretName
:=
bootstraputil
.
BootstrapTokenSecretName
(
tokenID
)
klog
.
V
(
1
)
.
Infoln
(
"[token] deleting token"
)
klog
.
V
(
1
)
.
Infof
(
"[token] deleting token %q"
,
tokenID
)
if
err
:=
client
.
CoreV1
()
.
Secrets
(
metav1
.
NamespaceSystem
)
.
Delete
(
tokenSecretName
,
nil
);
err
!=
nil
{
if
err
:=
client
.
CoreV1
()
.
Secrets
(
metav1
.
NamespaceSystem
)
.
Delete
(
tokenSecretName
,
nil
);
err
!=
nil
{
return
errors
.
Wrap
(
err
,
"failed to delete bootstrap token"
)
return
errors
.
Wrapf
(
err
,
"failed to delete bootstrap token %q"
,
tokenID
)
}
fmt
.
Fprintf
(
out
,
"bootstrap token %q deleted
\n
"
,
tokenID
)
}
}
fmt
.
Fprintf
(
out
,
"bootstrap token with id %q deleted
\n
"
,
tokenID
)
return
nil
return
nil
}
}
...
...
cmd/kubeadm/app/cmd/token_test.go
View file @
e6d27423
...
@@ -300,7 +300,7 @@ func TestGetClientset(t *testing.T) {
...
@@ -300,7 +300,7 @@ func TestGetClientset(t *testing.T) {
}
}
}
}
func
TestRunDeleteToken
(
t
*
testing
.
T
)
{
func
TestRunDeleteToken
s
(
t
*
testing
.
T
)
{
var
buf
bytes
.
Buffer
var
buf
bytes
.
Buffer
tmpDir
,
err
:=
ioutil
.
TempDir
(
""
,
"kubeadm-token-test"
)
tmpDir
,
err
:=
ioutil
.
TempDir
(
""
,
"kubeadm-token-test"
)
...
@@ -327,12 +327,12 @@ func TestRunDeleteToken(t *testing.T) {
...
@@ -327,12 +327,12 @@ func TestRunDeleteToken(t *testing.T) {
// test valid; should not fail
// test valid; should not fail
// for some reason Secrets().Delete() does not fail even for this dummy config
// for some reason Secrets().Delete() does not fail even for this dummy config
if
err
=
RunDeleteToken
(
&
buf
,
client
,
"abcdef.1234567890123456"
);
err
!=
nil
{
if
err
=
RunDeleteToken
s
(
&
buf
,
client
,
[]
string
{
"abcdef.1234567890123456"
,
"abcdef.2345678901234567"
}
);
err
!=
nil
{
t
.
Errorf
(
"RunDeleteToken() failed for a valid token: %v"
,
err
)
t
.
Errorf
(
"RunDeleteToken() failed for a valid token: %v"
,
err
)
}
}
// test invalid token; should fail
// test invalid token; should fail
if
err
=
RunDeleteToken
(
&
buf
,
client
,
"invalid-token"
);
err
==
nil
{
if
err
=
RunDeleteToken
s
(
&
buf
,
client
,
[]
string
{
"invalid-token"
}
);
err
==
nil
{
t
.
Errorf
(
"RunDeleteToken() succeeded for an invalid token: %v"
,
err
)
t
.
Errorf
(
"RunDeleteToken() succeeded for an invalid token: %v"
,
err
)
}
}
}
}
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