connect.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package cmd
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/porter-dev/porter/cli/cmd/connect"
  6. "github.com/spf13/cobra"
  7. )
  8. var (
  9. kubeconfigPath string
  10. print *bool
  11. contexts *[]string
  12. )
  13. var connectCmd = &cobra.Command{
  14. Use: "connect",
  15. Short: "Commands that connect to external clusters and providers",
  16. }
  17. var connectKubeconfigCmd = &cobra.Command{
  18. Use: "kubeconfig",
  19. Short: "Uses the local kubeconfig to connect to a cluster",
  20. Run: func(cmd *cobra.Command, args []string) {
  21. host := getHost()
  22. projectID := getProjectID()
  23. err := connect.Kubeconfig(
  24. kubeconfigPath,
  25. *contexts,
  26. host,
  27. projectID,
  28. )
  29. if err != nil {
  30. fmt.Printf("Error occurred: %v\n", err)
  31. os.Exit(1)
  32. }
  33. },
  34. }
  35. func init() {
  36. rootCmd.AddCommand(connectCmd)
  37. connectCmd.AddCommand(connectKubeconfigCmd)
  38. connectCmd.PersistentFlags().StringVar(
  39. &host,
  40. "host",
  41. getHost(),
  42. "host url of Porter instance",
  43. )
  44. projectID = *connectCmd.PersistentFlags().UintP(
  45. "project-id",
  46. "p",
  47. getProjectID(),
  48. "project id to use",
  49. )
  50. connectKubeconfigCmd.PersistentFlags().StringVarP(
  51. &kubeconfigPath,
  52. "kubeconfig",
  53. "k",
  54. "",
  55. "path to kubeconfig",
  56. )
  57. contexts = connectKubeconfigCmd.PersistentFlags().StringArray(
  58. "contexts",
  59. nil,
  60. "the list of contexts to connect (defaults to the current context)",
  61. )
  62. }