mirror of
https://github.com/k3s-io/k3s.git
synced 2024-06-07 19:41:36 +00:00
Add --token-file support
This commit is contained in:
parent
f90cbed408
commit
e28e497168
@ -3,7 +3,10 @@ package agent
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/rancher/k3s/pkg/agent"
|
||||
"github.com/rancher/k3s/pkg/cli/cmds"
|
||||
@ -13,11 +16,37 @@ import (
|
||||
"github.com/urfave/cli"
|
||||
)
|
||||
|
||||
func readToken(path string) (string, error) {
|
||||
if path == "" {
|
||||
return "", nil
|
||||
}
|
||||
|
||||
for {
|
||||
tokenBytes, err := ioutil.ReadFile(path)
|
||||
if err == nil {
|
||||
return strings.TrimSpace(string(tokenBytes)), nil
|
||||
} else if os.IsNotExist(err) {
|
||||
logrus.Infof("Waiting for %s to be available\n", path)
|
||||
time.Sleep(2 * time.Second)
|
||||
} else {
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func Run(ctx *cli.Context) error {
|
||||
if os.Getuid() != 0 {
|
||||
return fmt.Errorf("agent must be ran as root")
|
||||
}
|
||||
|
||||
if cmds.AgentConfig.TokenFile != "" {
|
||||
token, err := readToken(cmds.AgentConfig.TokenFile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
cmds.AgentConfig.Token = token
|
||||
}
|
||||
|
||||
if cmds.AgentConfig.Token == "" && cmds.AgentConfig.ClusterSecret == "" {
|
||||
return fmt.Errorf("--token is required")
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ import (
|
||||
|
||||
type Agent struct {
|
||||
Token string
|
||||
TokenFile string
|
||||
ServerURL string
|
||||
DataDir string
|
||||
NodeIP string
|
||||
@ -53,6 +54,12 @@ func NewAgentCommand(action func(ctx *cli.Context) error) cli.Command {
|
||||
EnvVar: "K3S_TOKEN",
|
||||
Destination: &AgentConfig.Token,
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "token-file",
|
||||
Usage: "Token file to use for authentication",
|
||||
EnvVar: "K3S_TOKEN_FILE",
|
||||
Destination: &AgentConfig.TokenFile,
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "server,s",
|
||||
Usage: "Server to connect to",
|
||||
|
Loading…
Reference in New Issue
Block a user