// NewCmdCreateSecretDockerRegistry is a macro command for creating secrets to work with Docker registries func NewCmdCreateSecretDockerRegistry(f cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "docker-registry NAME --docker-username=user --docker-password=password --docker-email=email [--docker-server=string] [--from-literal=key1=value1] [--dry-run]", Short: "Create a secret for use with a Docker registry", Long: secretForDockerRegistryLong, Example: secretForDockerRegistryExample, Run: func(cmd *cobra.Command, args []string) { err := CreateSecretDockerRegistry(f, cmdOut, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddPrinterFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.SecretForDockerRegistryV1GeneratorName) cmd.Flags().String("docker-username", "", "Username for Docker registry authentication") cmd.MarkFlagRequired("docker-username") cmd.Flags().String("docker-password", "", "Password for Docker registry authentication") cmd.MarkFlagRequired("docker-password") cmd.Flags().String("docker-email", "", "Email for Docker registry") cmd.MarkFlagRequired("docker-email") cmd.Flags().String("docker-server", "https://index.docker.io/v1/", "Server location for Docker registry") cmdutil.AddInclude3rdPartyFlags(cmd) return cmd }
// NewCmdCreateNamespace is a macro command to create a new namespace func NewCmdCreateNamespace(f *cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "namespace NAME [--dry-run]", Aliases: []string{"ns"}, Short: "Create a namespace with the specified name.", Long: namespaceLong, Example: namespaceExample, Run: func(cmd *cobra.Command, args []string) { err := CreateNamespace(f, cmdOut, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.NamespaceV1GeneratorName) return cmd }
// NewCmdCreateServiceLoadBalancer is a macro command for creating secrets to work with Docker registries func NewCmdCreateServiceLoadBalancer(f *cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "loadbalancer NAME [--tcp=port:targetPort] [--dry-run]", Short: "Create a LoadBalancer service.", Long: serviceLoadBalancerLong, Example: serviceLoadBalancerExample, Run: func(cmd *cobra.Command, args []string) { err := CreateServiceLoadBalancer(f, cmdOut, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddPrinterFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.ServiceLoadBalancerGeneratorV1Name) addPortFlags(cmd) return cmd }
// NewCmdCreateServiceAccount is a macro command to create a new service account func NewCmdCreateServiceAccount(f *cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "serviceaccount NAME [--dry-run]", Aliases: []string{"sa"}, Short: "Create a service account with the specified name.", Long: serviceAccountLong, Example: serviceAccountExample, Run: func(cmd *cobra.Command, args []string) { err := CreateServiceAccount(f, cmdOut, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddPrinterFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.ServiceAccountV1GeneratorName) return cmd }
// NewCmdCreateServiceClusterIP is a command to create generic secrets from files, directories, or literal values func NewCmdCreateServiceClusterIP(f *cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "clusterip NAME [--tcp=<port>:<targetPort>] [--dry-run]", Short: "Create a clusterIP service.", Long: serviceClusterIPLong, Example: serviceClusterIPExample, Run: func(cmd *cobra.Command, args []string) { err := CreateServiceClusterIP(f, cmdOut, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddPrinterFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.ServiceClusterIPGeneratorV1Name) addPortFlags(cmd) cmd.Flags().String("clusterip", "", "Assign your own ClusterIP or set to 'None' for a 'headless' service (no loadbalancing).") return cmd }
// NewCmdCreateServiceNodePort is a macro command for creating secrets to work with Docker registries func NewCmdCreateServiceNodePort(f *cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "nodeport NAME [--tcp=port:targetPort] [--dry-run]", Short: "Create a NodePort service.", Long: serviceNodePortLong, Example: serviceNodePortExample, Run: func(cmd *cobra.Command, args []string) { err := CreateServiceNodePort(f, cmdOut, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddPrinterFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.ServiceNodePortGeneratorV1Name) cmd.Flags().Int("node-port", 0, "Port used to expose the service on each node in a cluster.") addPortFlags(cmd) return cmd }
// NewCmdCreateSecretTLS is a macro command for creating secrets to work with Docker registries func NewCmdCreateSecretTLS(f cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "tls NAME --cert=path/to/cert/file --key=path/to/key/file [--dry-run]", Short: "Create a TLS secret", Long: secretForTLSLong, Example: secretForTLSExample, Run: func(cmd *cobra.Command, args []string) { err := CreateSecretTLS(f, cmdOut, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddPrinterFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.SecretForTLSV1GeneratorName) cmd.Flags().String("cert", "", "Path to PEM encoded public key certificate.") cmd.Flags().String("key", "", "Path to private key associated with given certificate.") return cmd }
// ConfigMap is a command to ease creating ConfigMaps. func NewCmdCreateConfigMap(f *cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "configmap NAME [--from-file=[key=]source] [--from-literal=key1=value1] [--dry-run]", Short: "Create a configMap from a local file, directory or literal value.", Long: configMapLong, Example: configMapExample, Run: func(cmd *cobra.Command, args []string) { err := CreateConfigMap(f, cmdOut, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddPrinterFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.ConfigMapV1GeneratorName) cmd.Flags().StringSlice("from-file", []string{}, "Key files can be specified using their file path, in which case a default name will be given to them, or optionally with a name and file path, in which case the given name will be used. Specifying a directory will iterate each named file in the directory that is a valid configmap key.") cmd.Flags().StringSlice("from-literal", []string{}, "Specify a key and literal value to insert in configmap (i.e. mykey=somevalue)") return cmd }
// NewCmdJoin defines the `join` command that joins a cluster to a // federation. func NewCmdJoin(f cmdutil.Factory, cmdOut io.Writer, config util.AdminConfig) *cobra.Command { cmd := &cobra.Command{ Use: "join CLUSTER_CONTEXT --host-cluster-context=HOST_CONTEXT", Short: "Join a cluster to a federation", Long: join_long, Example: join_example, Run: func(cmd *cobra.Command, args []string) { err := joinFederation(f, cmdOut, config, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddPrinterFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.ClusterV1Beta1GeneratorName) util.AddSubcommandFlags(cmd) return cmd }
// NewCmdCreateQuota is a macro command to create a new quota func NewCmdCreateQuota(f *cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "quota NAME [--hard=key1=value1,key2=value2] [--dry-run=bool]", Aliases: []string{"q"}, Short: "Create a quota with the specified name.", Long: quotaLong, Example: quotaExample, Run: func(cmd *cobra.Command, args []string) { err := CreateQuota(f, cmdOut, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.ResourceQuotaV1GeneratorName) cmd.Flags().String("hard", "", "Specify multiple key/value pair to insert in resourcequota (i.e. --hard=cpu=1,memory=1G,pods=2,services=3,replicationcontrollers=2,resourcequotas=1,secrets=5,persistentvolumeclaims=10)") cmd.MarkFlagRequired("hard") return cmd }
// ClusterRoleBinding is a command to ease creating ClusterRoleBindings. func NewCmdCreateClusterRoleBinding(f cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "clusterrolebinding NAME --clusterrole=NAME [--user=username] [--group=groupname] [--dry-run]", Short: "Create a ClusterRoleBinding for a particular ClusterRole", Long: clusterRoleBindingLong, Example: clusterRoleBindingExample, Run: func(cmd *cobra.Command, args []string) { err := CreateClusterRoleBinding(f, cmdOut, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddPrinterFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.ClusterRoleBindingV1GeneratorName) cmd.Flags().String("clusterrole", "", "ClusterRole this ClusterRoleBinding should reference") cmd.Flags().StringSlice("user", []string{}, "usernames to bind to the role") cmd.Flags().StringSlice("group", []string{}, "groups to bind to the role") return cmd }
// NewCmdCreateDeployment is a macro command to create a new deployment func NewCmdCreateDeployment(f *cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "deployment NAME --image=image [--dry-run]", Aliases: []string{"dep"}, Short: "Create a deployment with the specified name.", Long: deploymentLong, Example: deploymentExample, Run: func(cmd *cobra.Command, args []string) { err := CreateDeployment(f, cmdOut, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddPrinterFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.DeploymentBasicV1Beta1GeneratorName) cmd.Flags().StringSlice("image", []string{}, "Image name to run.") cmd.MarkFlagRequired("image") return cmd }
// NewCmdCreateServiceExternalName is a macro command for creating a ExternalName service func NewCmdCreateServiceExternalName(f cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "externalname NAME --external-name external.name [--dry-run]", Short: "Create an ExternalName service.", Long: serviceExternalNameLong, Example: serviceExternalNameExample, Run: func(cmd *cobra.Command, args []string) { err := CreateExternalNameService(f, cmdOut, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddPrinterFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.ServiceExternalNameGeneratorV1Name) addPortFlags(cmd) cmd.Flags().String("external-name", "", "external name of service") cmd.MarkFlagRequired("external-name") return cmd }
// NewCmdJoin defines the `join` command that joins a cluster to a // federation. func NewCmdJoin(f cmdutil.Factory, cmdOut io.Writer, config util.AdminConfig) *cobra.Command { cmd := &cobra.Command{ Use: "join CLUSTER_NAME --host-cluster-context=HOST_CONTEXT", Short: "Join a cluster to a federation", Long: join_long, Example: join_example, Run: func(cmd *cobra.Command, args []string) { err := joinFederation(f, cmdOut, config, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddPrinterFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.ClusterV1Beta1GeneratorName) util.AddSubcommandFlags(cmd) cmd.Flags().String("cluster-context", "", "Name of the cluster's context in the local kubeconfig. Defaults to cluster name if unspecified.") cmd.Flags().String("secret-name", "", "Name of the secret where the cluster's credentials will be stored in the host cluster. This name should be a valid RFC 1035 label. Defaults to cluster name if unspecified.") return cmd }
// NewCmdCreatePodDisruptionBudget is a macro command to create a new pod disruption budget. func NewCmdCreatePodDisruptionBudget(f cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "poddisruptionbudget NAME --selector=SELECTOR --min-available=N [--dry-run]", Aliases: []string{"pdb"}, Short: "Create a pod disruption budget with the specified name.", Long: pdbLong, Example: pdbExample, Run: func(cmd *cobra.Command, args []string) { err := CreatePodDisruptionBudget(f, cmdOut, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddPrinterFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.PodDisruptionBudgetV1GeneratorName) cmd.Flags().String("min-available", "1", "The minimum number or percentage of available pods this budget requires.") cmd.Flags().String("selector", "", "A label selector to use for this budget. Only equality-based selector requirements are supported.") return cmd }
// NewCmdCreateQuota is a macro command to create a new quota func NewCmdCreateQuota(f *cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "quota NAME [--hard=key1=value1,key2=value2] [--scopes=Scope1,Scope2] [--dry-run=bool]", Aliases: []string{"resourcequota"}, Short: "Create a quota with the specified name.", Long: quotaLong, Example: quotaExample, Run: func(cmd *cobra.Command, args []string) { err := CreateQuota(f, cmdOut, cmd, args) cmdutil.CheckErr(err) }, } cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) cmdutil.AddPrinterFlags(cmd) cmdutil.AddGeneratorFlags(cmd, cmdutil.ResourceQuotaV1GeneratorName) cmd.Flags().String("hard", "", "A comma-delimited set of resource=quantity pairs that define a hard limit.") cmd.Flags().String("scopes", "", "A comma-delimited set of quota scopes that must all match each object tracked by the quota.") return cmd }