Commit a6af67ee authored by Adam Reese's avatar Adam Reese

Merge pull request #491 from adamreese/feat/helm-kubectlpath

feat(cli) add kubectl path option
parents 3539586c c6af1695
......@@ -70,10 +70,15 @@ func main() {
app.Flags = []cli.Flag{
cli.StringFlag{
Name: "host,u",
Usage: "The URL of the DM server.",
Usage: "The URL of the DM server",
EnvVar: "HELM_HOST",
Value: "https://localhost:8000/",
},
cli.StringFlag{
Name: "kubectl",
Usage: "The path to the kubectl binary",
EnvVar: "KUBECTL",
},
cli.IntFlag{
Name: "timeout",
Usage: "Time in seconds to wait for response",
......
......@@ -123,11 +123,13 @@ func dmCmd() cli.Command {
}
func installServer(c *cli.Context) error {
dryRun := c.Bool("dry-run")
resImg := c.String("resourcifier-image")
ebImg := c.String("expandybird-image")
manImg := c.String("manager-image")
runner := getKubectlRunner(dryRun)
dryRun := c.Bool("dry-run")
kubectlPath := c.GlobalString("kubectl")
runner := buildKubectlRunner(kubectlPath, dryRun)
i := client.NewInstaller()
i.Manager["Image"] = manImg
......@@ -144,7 +146,8 @@ func installServer(c *cli.Context) error {
func uninstallServer(c *cli.Context) error {
dryRun := c.Bool("dry-run")
runner := getKubectlRunner(dryRun)
kubectlPath := c.GlobalString("kubectl")
runner := buildKubectlRunner(kubectlPath, dryRun)
out, err := client.Uninstall(runner)
if err != nil {
......@@ -156,12 +159,10 @@ func uninstallServer(c *cli.Context) error {
func statusServer(c *cli.Context) error {
dryRun := c.Bool("dry-run")
client := kubectl.Client
if dryRun {
client = kubectl.PrintRunner{}
}
kubectlPath := c.GlobalString("kubectl")
runner := buildKubectlRunner(kubectlPath, dryRun)
out, err := client.GetByKind("pods", "", "dm")
out, err := runner.GetByKind("pods", "", "dm")
if err != nil {
return err
}
......@@ -169,23 +170,26 @@ func statusServer(c *cli.Context) error {
return nil
}
func getKubectlRunner(dryRun bool) kubectl.Runner {
if dryRun {
return &kubectl.PrintRunner{}
}
return &kubectl.RealRunner{}
}
func targetServer(c *cli.Context) error {
dryRun := c.Bool("dry-run")
client := kubectl.Client
if dryRun {
client = kubectl.PrintRunner{}
}
out, err := client.ClusterInfo()
kubectlPath := c.GlobalString("kubectl")
runner := buildKubectlRunner(kubectlPath, dryRun)
out, err := runner.ClusterInfo()
if err != nil {
return fmt.Errorf("%s (%s)", out, err)
}
format.Msg(string(out))
return nil
}
func buildKubectlRunner(kubectlPath string, dryRun bool) kubectl.Runner {
if dryRun {
return &kubectl.PrintRunner{}
}
// TODO: Refactor out kubectl.Path global
if kubectlPath != "" {
kubectl.Path = kubectlPath
}
return &kubectl.RealRunner{}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment