github.com/telepresenceio/telepresence/v2@v2.20.0-pro.6.0.20240517030216-236ea954e789/pkg/client/cli/cmd/current_cluster_id.go (about) 1 package cmd 2 3 import ( 4 "fmt" 5 6 "github.com/spf13/cobra" 7 "github.com/spf13/pflag" 8 "k8s.io/cli-runtime/pkg/genericclioptions" 9 "k8s.io/client-go/kubernetes" 10 11 "github.com/datawire/k8sapi/pkg/k8sapi" 12 ) 13 14 // currentClusterId is a simple command that makes it easier for users to 15 // figure out what their cluster ID is. For now this is just used when 16 // people are making licenses for air-gapped environments. 17 func currentClusterId() *cobra.Command { 18 kubeConfig := genericclioptions.NewConfigFlags(false) 19 cmd := &cobra.Command{ 20 Use: "current-cluster-id", 21 Args: cobra.NoArgs, 22 23 Short: "Get cluster ID for your kubernetes cluster", 24 Long: "Get cluster ID for your kubernetes cluster, mostly used for licenses in air-gapped environments", 25 RunE: func(cmd *cobra.Command, _ []string) error { 26 restConfig, err := kubeConfig.ToRESTConfig() 27 if err != nil { 28 return err 29 } 30 ki, err := kubernetes.NewForConfig(restConfig) 31 if err != nil { 32 return err 33 } 34 clusterID, err := k8sapi.GetClusterID(k8sapi.WithK8sInterface(cmd.Context(), ki)) 35 if err != nil { 36 return err 37 } 38 fmt.Fprintf(cmd.OutOrStdout(), "Cluster ID: %s\n", clusterID) 39 return nil 40 }, 41 } 42 kubeFlags := pflag.NewFlagSet("Kubernetes flags", 0) 43 kubeConfig.AddFlags(kubeFlags) 44 cmd.Flags().AddFlagSet(kubeFlags) 45 return cmd 46 }