mirror of
https://github.com/fluxcd/flux2.git
synced 2026-02-09 17:27:28 +00:00
Merge pull request #16 from fluxcd/bash-completion
Add bash completion command
This commit is contained in:
commit
58c096e7c0
39 changed files with 140 additions and 50 deletions
3
Makefile
3
Makefile
|
|
@ -23,3 +23,6 @@ install:
|
|||
.PHONY: docs
|
||||
docs:
|
||||
mkdir -p ./docs/cmd && go run ./cmd/tk/ docgen
|
||||
|
||||
install-dev:
|
||||
CGO_ENABLED=0 go build -o /usr/local/bin ./cmd/tk
|
||||
|
|
|
|||
28
cmd/tk/completion.go
Normal file
28
cmd/tk/completion.go
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var completionCmd = &cobra.Command{
|
||||
Use: "completion",
|
||||
Short: "Generates bash completion scripts",
|
||||
Example: `To load completion run
|
||||
|
||||
. <(tk completion)
|
||||
|
||||
To configure your bash shell to load completions for each session add to your bashrc
|
||||
|
||||
# ~/.bashrc or ~/.profile
|
||||
. <(tk completion)
|
||||
`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
rootCmd.GenBashCompletion(os.Stdout)
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
rootCmd.AddCommand(completionCmd)
|
||||
}
|
||||
|
|
@ -14,7 +14,7 @@ var (
|
|||
)
|
||||
|
||||
func init() {
|
||||
deleteCmd.PersistentFlags().BoolVarP(&deleteSilent, "silent", "", false,
|
||||
deleteCmd.PersistentFlags().BoolVarP(&deleteSilent, "silent", "s", false,
|
||||
"delete resource without asking for confirmation")
|
||||
|
||||
rootCmd.AddCommand(deleteCmd)
|
||||
|
|
|
|||
|
|
@ -47,15 +47,11 @@ func deleteKsCmdRun(cmd *cobra.Command, args []string) error {
|
|||
}
|
||||
|
||||
if !deleteSilent {
|
||||
warning := "This action will remove the Kubernetes objects previously applied by this kustomization. "
|
||||
if kustomization.Spec.Suspend {
|
||||
warning = ""
|
||||
if !kustomization.Spec.Suspend {
|
||||
logWaiting("This action will remove the Kubernetes objects previously applied by the %s kustomization!", name)
|
||||
}
|
||||
prompt := promptui.Prompt{
|
||||
Label: fmt.Sprintf(
|
||||
"%sAre you sure you want to delete the %s kustomization from the %s namespace",
|
||||
warning, name, namespace,
|
||||
),
|
||||
Label: "Are you sure you want to delete this kustomization",
|
||||
IsConfirm: true,
|
||||
}
|
||||
if _, err := prompt.Run(); err != nil {
|
||||
|
|
|
|||
|
|
@ -47,9 +47,7 @@ func deleteSourceGitCmdRun(cmd *cobra.Command, args []string) error {
|
|||
|
||||
if !deleteSilent {
|
||||
prompt := promptui.Prompt{
|
||||
Label: fmt.Sprintf(
|
||||
"Are you sure you want to delete the %s source from the %s namespace", name, namespace,
|
||||
),
|
||||
Label: "Are you sure you want to delete this source",
|
||||
IsConfirm: true,
|
||||
}
|
||||
if _, err := prompt.Run(); err != nil {
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ func getKsCmdRun(cmd *cobra.Command, args []string) error {
|
|||
for _, kustomization := range list.Items {
|
||||
if kustomization.Spec.Suspend {
|
||||
logSuccess("%s is suspended", kustomization.GetName())
|
||||
break
|
||||
continue
|
||||
}
|
||||
isInitialized := false
|
||||
for _, condition := range kustomization.Status.Conditions {
|
||||
|
|
|
|||
|
|
@ -3,9 +3,11 @@ package main
|
|||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1alpha1"
|
||||
"github.com/spf13/cobra"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
)
|
||||
|
||||
var resumeKsCmd = &cobra.Command{
|
||||
|
|
@ -51,9 +53,24 @@ func resumeKsCmdRun(cmd *cobra.Command, args []string) error {
|
|||
}
|
||||
logSuccess("kustomization resumed")
|
||||
|
||||
if err := syncKsCmdRun(nil, []string{name}); err != nil {
|
||||
logWaiting("waiting for kustomization sync")
|
||||
if err := wait.PollImmediate(pollInterval, timeout,
|
||||
isKustomizationReady(ctx, kubeClient, name, namespace)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
logSuccess("kustomization sync completed")
|
||||
|
||||
err = kubeClient.Get(ctx, namespacedName, &kustomization)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if kustomization.Status.LastAppliedRevision != "" {
|
||||
logSuccess("applied revision %s", kustomization.Status.LastAppliedRevision)
|
||||
} else {
|
||||
return fmt.Errorf("kustomization sync failed")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ func init() {
|
|||
"removes all CRDs previously installed")
|
||||
uninstallCmd.Flags().BoolVarP(&uninstallDryRun, "dry-run", "", false,
|
||||
"only print the object that would be deleted")
|
||||
uninstallCmd.Flags().BoolVarP(&uninstallSilent, "silent", "", false,
|
||||
uninstallCmd.Flags().BoolVarP(&uninstallSilent, "silent", "s", false,
|
||||
"delete components without asking for confirmation")
|
||||
|
||||
rootCmd.AddCommand(uninstallCmd)
|
||||
|
|
|
|||
|
|
@ -79,6 +79,7 @@ Command line utility for assembling Kubernetes CD pipelines the GitOps way.
|
|||
### SEE ALSO
|
||||
|
||||
* [tk check](tk_check.md) - Check requirements and installation
|
||||
* [tk completion](tk_completion.md) - Generates bash completion scripts
|
||||
* [tk create](tk_create.md) - Create commands
|
||||
* [tk delete](tk_delete.md) - Delete commands
|
||||
* [tk export](tk_export.md) - Export commands
|
||||
|
|
@ -89,4 +90,4 @@ Command line utility for assembling Kubernetes CD pipelines the GitOps way.
|
|||
* [tk sync](tk_sync.md) - Synchronize commands
|
||||
* [tk uninstall](tk_uninstall.md) - Uninstall the toolkit components
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -44,4 +44,4 @@ tk check [flags]
|
|||
|
||||
* [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
47
docs/cmd/tk_completion.md
Normal file
47
docs/cmd/tk_completion.md
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
## tk completion
|
||||
|
||||
Generates bash completion scripts
|
||||
|
||||
### Synopsis
|
||||
|
||||
Generates bash completion scripts
|
||||
|
||||
```
|
||||
tk completion [flags]
|
||||
```
|
||||
|
||||
### Examples
|
||||
|
||||
```
|
||||
To load completion run
|
||||
|
||||
. <(tk completion)
|
||||
|
||||
To configure your bash shell to load completions for each session add to your bashrc
|
||||
|
||||
# ~/.bashrc or ~/.profile
|
||||
. <(tk completion)
|
||||
|
||||
```
|
||||
|
||||
### Options
|
||||
|
||||
```
|
||||
-h, --help help for completion
|
||||
```
|
||||
|
||||
### Options inherited from parent commands
|
||||
|
||||
```
|
||||
--components strings list of components, accepts comma-separated values (default [source-controller,kustomize-controller])
|
||||
--kubeconfig string path to the kubeconfig file (default "~/.kube/config")
|
||||
--namespace string the namespace scope for this operation (default "gitops-system")
|
||||
--timeout duration timeout for this operation (default 5m0s)
|
||||
--verbose print generated objects
|
||||
```
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines
|
||||
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
@ -29,4 +29,4 @@ Create commands
|
|||
* [tk create kustomization](tk_create_kustomization.md) - Create or update a kustomization resource
|
||||
* [tk create source](tk_create_source.md) - Create source commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -67,4 +67,4 @@ tk create kustomization [name] [flags]
|
|||
|
||||
* [tk create](tk_create.md) - Create commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -28,4 +28,4 @@ Create source commands
|
|||
* [tk create](tk_create.md) - Create commands
|
||||
* [tk create source git](tk_create_source_git.md) - Create or update a git source
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -71,4 +71,4 @@ tk create source git [name] [flags]
|
|||
|
||||
* [tk create source](tk_create_source.md) - Create source commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ Delete commands
|
|||
|
||||
```
|
||||
-h, --help help for delete
|
||||
--silent delete resource without asking for confirmation
|
||||
-s, --silent delete resource without asking for confirmation
|
||||
```
|
||||
|
||||
### Options inherited from parent commands
|
||||
|
|
@ -29,4 +29,4 @@ Delete commands
|
|||
* [tk delete kustomization](tk_delete_kustomization.md) - Delete kustomization
|
||||
* [tk delete source](tk_delete_source.md) - Delete sources commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ tk delete kustomization [name] [flags]
|
|||
--components strings list of components, accepts comma-separated values (default [source-controller,kustomize-controller])
|
||||
--kubeconfig string path to the kubeconfig file (default "~/.kube/config")
|
||||
--namespace string the namespace scope for this operation (default "gitops-system")
|
||||
--silent delete resource without asking for confirmation
|
||||
-s, --silent delete resource without asking for confirmation
|
||||
--timeout duration timeout for this operation (default 5m0s)
|
||||
--verbose print generated objects
|
||||
```
|
||||
|
|
@ -31,4 +31,4 @@ tk delete kustomization [name] [flags]
|
|||
|
||||
* [tk delete](tk_delete.md) - Delete commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ Delete sources commands
|
|||
--components strings list of components, accepts comma-separated values (default [source-controller,kustomize-controller])
|
||||
--kubeconfig string path to the kubeconfig file (default "~/.kube/config")
|
||||
--namespace string the namespace scope for this operation (default "gitops-system")
|
||||
--silent delete resource without asking for confirmation
|
||||
-s, --silent delete resource without asking for confirmation
|
||||
--timeout duration timeout for this operation (default 5m0s)
|
||||
--verbose print generated objects
|
||||
```
|
||||
|
|
@ -28,4 +28,4 @@ Delete sources commands
|
|||
* [tk delete](tk_delete.md) - Delete commands
|
||||
* [tk delete source git](tk_delete_source_git.md) - Delete git source
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ tk delete source git [name] [flags]
|
|||
--components strings list of components, accepts comma-separated values (default [source-controller,kustomize-controller])
|
||||
--kubeconfig string path to the kubeconfig file (default "~/.kube/config")
|
||||
--namespace string the namespace scope for this operation (default "gitops-system")
|
||||
--silent delete resource without asking for confirmation
|
||||
-s, --silent delete resource without asking for confirmation
|
||||
--timeout duration timeout for this operation (default 5m0s)
|
||||
--verbose print generated objects
|
||||
```
|
||||
|
|
@ -31,4 +31,4 @@ tk delete source git [name] [flags]
|
|||
|
||||
* [tk delete source](tk_delete_source.md) - Delete sources commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -29,4 +29,4 @@ Export commands
|
|||
* [tk export kustomization](tk_export_kustomization.md) - Export kustomization in YAML format
|
||||
* [tk export source](tk_export_source.md) - Export source commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -42,4 +42,4 @@ tk export kustomization [name] [flags]
|
|||
|
||||
* [tk export](tk_export.md) - Export commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -29,4 +29,4 @@ Export source commands
|
|||
* [tk export](tk_export.md) - Export commands
|
||||
* [tk export source git](tk_export_source_git.md) - Export git sources in YAML format
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -43,4 +43,4 @@ tk export source git [name] [flags]
|
|||
|
||||
* [tk export source](tk_export_source.md) - Export source commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -28,4 +28,4 @@ Get commands
|
|||
* [tk get kustomizations](tk_get_kustomizations.md) - Get kustomizations status
|
||||
* [tk get sources](tk_get_sources.md) - Get sources commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -31,4 +31,4 @@ tk get kustomizations [flags]
|
|||
|
||||
* [tk get](tk_get.md) - Get commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -27,4 +27,4 @@ Get sources commands
|
|||
* [tk get](tk_get.md) - Get commands
|
||||
* [tk get sources git](tk_get_sources_git.md) - Get git sources status
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -31,4 +31,4 @@ tk get sources git [flags]
|
|||
|
||||
* [tk get sources](tk_get_sources.md) - Get sources commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -49,4 +49,4 @@ tk install [flags]
|
|||
|
||||
* [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -27,4 +27,4 @@ Resume commands
|
|||
* [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines
|
||||
* [tk resume kustomization](tk_resume_kustomization.md) - Resume kustomization
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -30,4 +30,4 @@ tk resume kustomization [name] [flags]
|
|||
|
||||
* [tk resume](tk_resume.md) - Resume commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -27,4 +27,4 @@ Suspend commands
|
|||
* [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines
|
||||
* [tk suspend kustomization](tk_suspend_kustomization.md) - Suspend kustomization
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -30,4 +30,4 @@ tk suspend kustomization [name] [flags]
|
|||
|
||||
* [tk suspend](tk_suspend.md) - Suspend commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -28,4 +28,4 @@ Synchronize commands
|
|||
* [tk sync kustomization](tk_sync_kustomization.md) - Synchronize kustomization
|
||||
* [tk sync source](tk_sync_source.md) - Synchronize source commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -43,4 +43,4 @@ tk sync kustomization [name] [flags]
|
|||
|
||||
* [tk sync](tk_sync.md) - Synchronize commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -27,4 +27,4 @@ Synchronize source commands
|
|||
* [tk sync](tk_sync.md) - Synchronize commands
|
||||
* [tk sync source git](tk_sync_source_git.md) - Synchronize git source
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -39,4 +39,4 @@ tk sync source git [name] [flags]
|
|||
|
||||
* [tk sync source](tk_sync_source.md) - Synchronize source commands
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ tk uninstall [flags]
|
|||
--crds removes all CRDs previously installed
|
||||
--dry-run only print the object that would be deleted
|
||||
-h, --help help for uninstall
|
||||
--silent delete components without asking for confirmation
|
||||
-s, --silent delete components without asking for confirmation
|
||||
```
|
||||
|
||||
### Options inherited from parent commands
|
||||
|
|
@ -46,4 +46,4 @@ tk uninstall [flags]
|
|||
|
||||
* [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines
|
||||
|
||||
###### Auto generated by spf13/cobra on 30-Apr-2020
|
||||
###### Auto generated by spf13/cobra on 1-May-2020
|
||||
|
|
|
|||
2
go.mod
2
go.mod
|
|
@ -7,7 +7,7 @@ require (
|
|||
github.com/fluxcd/kustomize-controller v0.0.1-alpha.4
|
||||
github.com/fluxcd/source-controller v0.0.1-alpha.2
|
||||
github.com/manifoldco/promptui v0.7.0
|
||||
github.com/spf13/cobra v0.0.6
|
||||
github.com/spf13/cobra v1.0.0
|
||||
k8s.io/api v0.18.2
|
||||
k8s.io/apimachinery v0.18.2
|
||||
k8s.io/client-go v0.18.2
|
||||
|
|
|
|||
4
go.sum
4
go.sum
|
|
@ -475,8 +475,8 @@ github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU
|
|||
github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
||||
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
||||
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
|
||||
github.com/spf13/cobra v0.0.6 h1:breEStsVwemnKh2/s6gMvSdMEkwW0sK8vGStnlVBMCs=
|
||||
github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
|
||||
github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8=
|
||||
github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
|
||||
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
||||
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||
github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||
|
|
|
|||
Loading…
Reference in a new issue