diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d54f40bf19..f1f1b0c3878 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ - Added `Operator Version: X.Y.Z` information in the operator logs.([#1953](https://github.com/operator-framework/operator-sdk/pull/1953)) - Make Ansible verbosity configurable via the `ansible-verbosity` flag. ([#2087](https://github.com/operator-framework/operator-sdk/pull/2087)) +- Autogenerate CLI documentation via `make cli-doc` ([#2099](https://github.com/operator-framework/operator-sdk/pull/2099)) ### Changed diff --git a/Makefile b/Makefile index 5b231970ac2..32f87faeff4 100644 --- a/Makefile +++ b/Makefile @@ -43,7 +43,7 @@ help: ## Show this help screen all: format test build/operator-sdk ## Test and Build the Operator SDK # Code management. -.PHONY: test format tidy clean +.PHONY: format tidy clean cli-doc format: ## Format the source code $(Q)go fmt $(PKGS) @@ -54,6 +54,9 @@ tidy: ## Update dependencies clean: ## Clean up the build artifacts $(Q)rm -rf build +cli-doc: ## Generate CLI Documentation + ./hack/doc/gen_cli_doc.sh + # Build/install/release the SDK. .PHONY: install release_builds release diff --git a/cmd/operator-sdk/add/api.go b/cmd/operator-sdk/add/api.go index 4947496f6d7..fcbd8ce109e 100644 --- a/cmd/operator-sdk/add/api.go +++ b/cmd/operator-sdk/add/api.go @@ -55,6 +55,7 @@ is generated as a 'validation' object. Generation can be disabled with the --skip-generation flag. Example: + $ operator-sdk add api --api-version=app.example.com/v1alpha1 --kind=AppService $ tree pkg/apis pkg/apis/ diff --git a/cmd/operator-sdk/add/controller.go b/cmd/operator-sdk/add/controller.go index 071f4d0a634..e99cef980ba 100644 --- a/cmd/operator-sdk/add/controller.go +++ b/cmd/operator-sdk/add/controller.go @@ -39,6 +39,7 @@ This command must be run from the project root directory. If the controller pkg for that Kind already exists at pkg/controller/ then the command will not overwrite and return an error. Example: + $ operator-sdk add controller --api-version=app.example.com/v1alpha1 --kind=AppService $ tree pkg/controller pkg/controller/ diff --git a/cmd/operator-sdk/build/cmd.go b/cmd/operator-sdk/build/cmd.go index a95bee7f2e7..75dae0c2a17 100644 --- a/cmd/operator-sdk/build/cmd.go +++ b/cmd/operator-sdk/build/cmd.go @@ -48,6 +48,7 @@ This image will be automatically set in the deployment manifests. After build completes, the image would be built locally in docker. Then it needs to be pushed to remote registry. For example: + $ operator-sdk build quay.io/example/operator:v0.0.1 $ docker push quay.io/example/operator:v0.0.1 `, diff --git a/cmd/operator-sdk/cli/cli.go b/cmd/operator-sdk/cli/cli.go new file mode 100644 index 00000000000..523d03b7261 --- /dev/null +++ b/cmd/operator-sdk/cli/cli.go @@ -0,0 +1,126 @@ +// Copyright 2019 The Operator-SDK Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package cli + +import ( + + // Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.) + // to ensure that `run` and `up local` can make use of them. + _ "k8s.io/client-go/plugin/pkg/client/auth" + + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/add" + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/alpha" + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/build" + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/completion" + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/generate" + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/migrate" + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/new" + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/olmcatalog" + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/printdeps" + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/run" + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/scorecard" + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/test" + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/up" + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/version" + "github.com/operator-framework/operator-sdk/internal/flags" + "github.com/operator-framework/operator-sdk/internal/util/projutil" + + log "github.com/sirupsen/logrus" + "github.com/spf13/cobra" + "github.com/spf13/viper" +) + +// GetCLIRoot is intended to creeate the base command structure for the OSDK for use in CLI and documentation +func GetCLIRoot() *cobra.Command { + root := &cobra.Command{ + Use: "operator-sdk", + Short: "An SDK for building operators with ease", + PersistentPreRun: func(cmd *cobra.Command, args []string) { + if viper.GetBool(flags.VerboseOpt) { + if err := projutil.SetGoVerbose(); err != nil { + log.Fatalf("Could not set GOFLAGS: (%v)", err) + } + log.SetLevel(log.DebugLevel) + log.Debug("Debug logging is set") + } + if err := checkGoModulesForCmd(cmd); err != nil { + log.Fatal(err) + } + }, + } + + root.AddCommand(add.NewCmd()) + root.AddCommand(alpha.NewCmd()) + root.AddCommand(build.NewCmd()) + root.AddCommand(completion.NewCmd()) + root.AddCommand(generate.NewCmd()) + root.AddCommand(migrate.NewCmd()) + root.AddCommand(new.NewCmd()) + root.AddCommand(olmcatalog.NewCmd()) + root.AddCommand(printdeps.NewCmd()) + root.AddCommand(run.NewCmd()) + root.AddCommand(scorecard.NewCmd()) + root.AddCommand(test.NewCmd()) + root.AddCommand(up.NewCmd()) + root.AddCommand(version.NewCmd()) + + return root +} + +func checkGoModulesForCmd(cmd *cobra.Command) (err error) { + // Certain commands are able to be run anywhere or handle this check + // differently in their CLI code. + if skipCheckForCmd(cmd) { + return nil + } + // Do not perform this check if the project is non-Go, as they will not + // be using go modules. + if !projutil.IsOperatorGo() { + return nil + } + // Do not perform a go modules check if the working directory is not in + // the project root, as some sub-commands might not require project root. + // Individual subcommands will perform this check as needed. + if err := projutil.CheckProjectRoot(); err != nil { + return nil + } + + return projutil.CheckGoModules() +} + +var commandsToSkip = map[string]struct{}{ + "new": struct{}{}, // Handles this logic in cmd/operator-sdk/new + "migrate": struct{}{}, // Handles this logic in cmd/operator-sdk/migrate + "operator-sdk": struct{}{}, // Alias for "help" + "help": struct{}{}, + "completion": struct{}{}, + "version": struct{}{}, + "print-deps": struct{}{}, // Does not require this logic +} + +func skipCheckForCmd(cmd *cobra.Command) (skip bool) { + if _, ok := commandsToSkip[cmd.Name()]; ok { + return true + } + cmd.VisitParents(func(pc *cobra.Command) { + if _, ok := commandsToSkip[pc.Name()]; ok { + // The bare "operator-sdk" command will be checked above. + if pc.Name() != "operator-sdk" { + skip = true + } + } + }) + return skip +} diff --git a/cmd/operator-sdk/generate/k8s.go b/cmd/operator-sdk/generate/k8s.go index ace62a36f62..44f27efbd07 100644 --- a/cmd/operator-sdk/generate/k8s.go +++ b/cmd/operator-sdk/generate/k8s.go @@ -32,6 +32,7 @@ specs in pkg/apis// directories to comply with kube-API requirements. Go code is generated under pkg/apis///zz_generated.deepcopy.go. Example: + $ operator-sdk generate k8s $ tree pkg/apis pkg/apis/ diff --git a/cmd/operator-sdk/generate/openapi.go b/cmd/operator-sdk/generate/openapi.go index 5d935c25fbd..b6fe7b4f7bb 100644 --- a/cmd/operator-sdk/generate/openapi.go +++ b/cmd/operator-sdk/generate/openapi.go @@ -33,6 +33,7 @@ deploy/crds/__crd.yaml; OpenAPI V3 validation YAML is generated as a 'validation' object. Example: + $ operator-sdk generate openapi $ tree pkg/apis pkg/apis/ diff --git a/cmd/operator-sdk/main.go b/cmd/operator-sdk/main.go index a546544df34..7e08d96f60f 100644 --- a/cmd/operator-sdk/main.go +++ b/cmd/operator-sdk/main.go @@ -21,60 +21,15 @@ import ( // to ensure that `run` and `up local` can make use of them. _ "k8s.io/client-go/plugin/pkg/client/auth" - "github.com/operator-framework/operator-sdk/cmd/operator-sdk/add" - "github.com/operator-framework/operator-sdk/cmd/operator-sdk/alpha" - "github.com/operator-framework/operator-sdk/cmd/operator-sdk/build" - "github.com/operator-framework/operator-sdk/cmd/operator-sdk/completion" - "github.com/operator-framework/operator-sdk/cmd/operator-sdk/generate" - "github.com/operator-framework/operator-sdk/cmd/operator-sdk/migrate" - "github.com/operator-framework/operator-sdk/cmd/operator-sdk/new" - "github.com/operator-framework/operator-sdk/cmd/operator-sdk/olmcatalog" - "github.com/operator-framework/operator-sdk/cmd/operator-sdk/printdeps" - "github.com/operator-framework/operator-sdk/cmd/operator-sdk/run" - "github.com/operator-framework/operator-sdk/cmd/operator-sdk/scorecard" - "github.com/operator-framework/operator-sdk/cmd/operator-sdk/test" - "github.com/operator-framework/operator-sdk/cmd/operator-sdk/up" - "github.com/operator-framework/operator-sdk/cmd/operator-sdk/version" + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/cli" "github.com/operator-framework/operator-sdk/internal/flags" - "github.com/operator-framework/operator-sdk/internal/util/projutil" log "github.com/sirupsen/logrus" - "github.com/spf13/cobra" "github.com/spf13/viper" ) func main() { - root := &cobra.Command{ - Use: "operator-sdk", - Short: "An SDK for building operators with ease", - PersistentPreRun: func(cmd *cobra.Command, args []string) { - if viper.GetBool(flags.VerboseOpt) { - if err := projutil.SetGoVerbose(); err != nil { - log.Fatalf("Could not set GOFLAGS: (%v)", err) - } - log.SetLevel(log.DebugLevel) - log.Debug("Debug logging is set") - } - if err := checkGoModulesForCmd(cmd); err != nil { - log.Fatal(err) - } - }, - } - - root.AddCommand(add.NewCmd()) - root.AddCommand(alpha.NewCmd()) - root.AddCommand(build.NewCmd()) - root.AddCommand(completion.NewCmd()) - root.AddCommand(generate.NewCmd()) - root.AddCommand(migrate.NewCmd()) - root.AddCommand(new.NewCmd()) - root.AddCommand(olmcatalog.NewCmd()) - root.AddCommand(printdeps.NewCmd()) - root.AddCommand(run.NewCmd()) - root.AddCommand(scorecard.NewCmd()) - root.AddCommand(test.NewCmd()) - root.AddCommand(up.NewCmd()) - root.AddCommand(version.NewCmd()) + root := cli.GetCLIRoot() root.PersistentFlags().Bool(flags.VerboseOpt, false, "Enable verbose logging") if err := viper.BindPFlags(root.PersistentFlags()); err != nil { @@ -85,49 +40,3 @@ func main() { os.Exit(1) } } - -func checkGoModulesForCmd(cmd *cobra.Command) (err error) { - // Certain commands are able to be run anywhere or handle this check - // differently in their CLI code. - if skipCheckForCmd(cmd) { - return nil - } - // Do not perform this check if the project is non-Go, as they will not - // be using go modules. - if !projutil.IsOperatorGo() { - return nil - } - // Do not perform a go modules check if the working directory is not in - // the project root, as some sub-commands might not require project root. - // Individual subcommands will perform this check as needed. - if err := projutil.CheckProjectRoot(); err != nil { - return nil - } - - return projutil.CheckGoModules() -} - -var commandsToSkip = map[string]struct{}{ - "new": struct{}{}, // Handles this logic in cmd/operator-sdk/new - "migrate": struct{}{}, // Handles this logic in cmd/operator-sdk/migrate - "operator-sdk": struct{}{}, // Alias for "help" - "help": struct{}{}, - "completion": struct{}{}, - "version": struct{}{}, - "print-deps": struct{}{}, // Does not require this logic -} - -func skipCheckForCmd(cmd *cobra.Command) (skip bool) { - if _, ok := commandsToSkip[cmd.Name()]; ok { - return true - } - cmd.VisitParents(func(pc *cobra.Command) { - if _, ok := commandsToSkip[pc.Name()]; ok { - // The bare "operator-sdk" command will be checked above. - if pc.Name() != "operator-sdk" { - skip = true - } - } - }) - return skip -} diff --git a/cmd/operator-sdk/new/cmd.go b/cmd/operator-sdk/new/cmd.go index c95f252d144..d715f3cadb5 100644 --- a/cmd/operator-sdk/new/cmd.go +++ b/cmd/operator-sdk/new/cmd.go @@ -45,6 +45,7 @@ generates a default directory layout based on the input . is the project name of the new operator. (e.g app-operator) For example: + $ mkdir $HOME/projects/example.com/ $ cd $HOME/projects/example.com/ $ operator-sdk new app-operator diff --git a/doc/cli/operator-sdk.md b/doc/cli/operator-sdk.md new file mode 100644 index 00000000000..7b530af36df --- /dev/null +++ b/doc/cli/operator-sdk.md @@ -0,0 +1,32 @@ +## operator-sdk + +An SDK for building operators with ease + +### Synopsis + +An SDK for building operators with ease + +### Options + +``` + -h, --help help for operator-sdk +``` + +### SEE ALSO + +* [operator-sdk add](operator-sdk_add.md) - Adds a controller or resource to the project +* [operator-sdk alpha](operator-sdk_alpha.md) - Run an alpha subcommand +* [operator-sdk build](operator-sdk_build.md) - Compiles code and builds artifacts +* [operator-sdk completion](operator-sdk_completion.md) - Generators for shell completions +* [operator-sdk generate](operator-sdk_generate.md) - Invokes specific generator +* [operator-sdk migrate](operator-sdk_migrate.md) - Adds source code to an operator +* [operator-sdk new](operator-sdk_new.md) - Creates a new operator application +* [operator-sdk olm-catalog](operator-sdk_olm-catalog.md) - Invokes a olm-catalog command +* [operator-sdk print-deps](operator-sdk_print-deps.md) - Print Golang packages and versions required to run the operator +* [operator-sdk run](operator-sdk_run.md) - Runs a generic operator +* [operator-sdk scorecard](operator-sdk_scorecard.md) - Run scorecard tests +* [operator-sdk test](operator-sdk_test.md) - Tests the operator +* [operator-sdk up](operator-sdk_up.md) - Launches the operator +* [operator-sdk version](operator-sdk_version.md) - Prints the version of operator-sdk + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_add.md b/doc/cli/operator-sdk_add.md new file mode 100644 index 00000000000..ae6f53711d1 --- /dev/null +++ b/doc/cli/operator-sdk_add.md @@ -0,0 +1,22 @@ +## operator-sdk add + +Adds a controller or resource to the project + +### Synopsis + +Adds a controller or resource to the project + +### Options + +``` + -h, --help help for add +``` + +### SEE ALSO + +* [operator-sdk](operator-sdk.md) - An SDK for building operators with ease +* [operator-sdk add api](operator-sdk_add_api.md) - Adds a new api definition under pkg/apis +* [operator-sdk add controller](operator-sdk_add_controller.md) - Adds a new controller pkg +* [operator-sdk add crd](operator-sdk_add_crd.md) - Adds a Custom Resource Definition (CRD) and the Custom Resource (CR) files + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_add_api.md b/doc/cli/operator-sdk_add_api.md new file mode 100644 index 00000000000..47f250fb116 --- /dev/null +++ b/doc/cli/operator-sdk_add_api.md @@ -0,0 +1,57 @@ +## operator-sdk add api + +Adds a new api definition under pkg/apis + +### Synopsis + +operator-sdk add api --kind= --api-version= creates the +api definition for a new custom resource under pkg/apis. This command must be +run from the project root directory. If the api already exists at +pkg/apis// then the command will not overwrite and return an +error. + +By default, this command runs Kubernetes deepcopy and OpenAPI V3 generators on +tagged types in all paths under pkg/apis. Go code is generated under +pkg/apis///zz_generated.{deepcopy,openapi}.go. CRD's are +generated, or updated if they exist for a particular group + version + kind, +under deploy/crds/__crd.yaml; OpenAPI V3 validation YAML +is generated as a 'validation' object. Generation can be disabled with the +--skip-generation flag. + +Example: + + $ operator-sdk add api --api-version=app.example.com/v1alpha1 --kind=AppService + $ tree pkg/apis + pkg/apis/ + ├── addtoscheme_app_appservice.go + ├── apis.go + └── app + └── v1alpha1 + ├── doc.go + ├── register.go + ├── appservice_types.go + ├── zz_generated.deepcopy.go + ├── zz_generated.openapi.go + $ tree deploy/crds + ├── deploy/crds/app.example.com_v1alpha1_appservice_cr.yaml + ├── deploy/crds/app.example.com_appservices_crd.yaml + + +``` +operator-sdk add api [flags] +``` + +### Options + +``` + --api-version string Kubernetes APIVersion that has a format of $GROUP_NAME/$VERSION (e.g app.example.com/v1alpha1) + -h, --help help for api + --kind string Kubernetes resource Kind name. (e.g AppService) + --skip-generation Skip generation of deepcopy and OpenAPI code and OpenAPI CRD specs +``` + +### SEE ALSO + +* [operator-sdk add](operator-sdk_add.md) - Adds a controller or resource to the project + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_add_controller.md b/doc/cli/operator-sdk_add_controller.md new file mode 100644 index 00000000000..c0ac20643da --- /dev/null +++ b/doc/cli/operator-sdk_add_controller.md @@ -0,0 +1,43 @@ +## operator-sdk add controller + +Adds a new controller pkg + +### Synopsis + +operator-sdk add controller --kind= --api-version= creates a new +controller pkg under pkg/controller/ that, by default, reconciles on a custom resource for the specified apiversion and kind. +The controller will expect to use the custom resource type that should already be defined under pkg/apis// +via the "operator-sdk add api --kind= --api-version=" command. +This command must be run from the project root directory. +If the controller pkg for that Kind already exists at pkg/controller/ then the command will not overwrite and return an error. + +Example: + + $ operator-sdk add controller --api-version=app.example.com/v1alpha1 --kind=AppService + $ tree pkg/controller + pkg/controller/ + ├── add_appservice.go + ├── appservice + │   └── appservice_controller.go + └── controller.go + + + +``` +operator-sdk add controller [flags] +``` + +### Options + +``` + --api-version string Kubernetes APIVersion that has a format of $GROUP_NAME/$VERSION (e.g app.example.com/v1alpha1) + --custom-api-import string External Kubernetes resource import path of the form "host.com/repo/path[=import_identifier]". import_identifier is optional + -h, --help help for controller + --kind string Kubernetes resource Kind name. (e.g AppService) +``` + +### SEE ALSO + +* [operator-sdk add](operator-sdk_add.md) - Adds a controller or resource to the project + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_add_crd.md b/doc/cli/operator-sdk_add_crd.md new file mode 100644 index 00000000000..cbb4aefb752 --- /dev/null +++ b/doc/cli/operator-sdk_add_crd.md @@ -0,0 +1,32 @@ +## operator-sdk add crd + +Adds a Custom Resource Definition (CRD) and the Custom Resource (CR) files + +### Synopsis + +The operator-sdk add crd command will create a Custom Resource Definition (CRD) and the Custom Resource (CR) files for the specified api-version and kind. + +Generated CRD filename: /deploy/crds/__crd.yaml +Generated CR filename: /deploy/crds/___cr.yaml + + /deploy path must already exist + --api-version and --kind are required flags to generate the new operator application. + + +``` +operator-sdk add crd [flags] +``` + +### Options + +``` + --api-version string Kubernetes apiVersion and has a format of $GROUP_NAME/$VERSION (e.g app.example.com/v1alpha1) + -h, --help help for crd + --kind string Kubernetes CustomResourceDefintion kind. (e.g AppService) +``` + +### SEE ALSO + +* [operator-sdk add](operator-sdk_add.md) - Adds a controller or resource to the project + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_alpha.md b/doc/cli/operator-sdk_alpha.md new file mode 100644 index 00000000000..02670565cc0 --- /dev/null +++ b/doc/cli/operator-sdk_alpha.md @@ -0,0 +1,20 @@ +## operator-sdk alpha + +Run an alpha subcommand + +### Synopsis + +Run an alpha subcommand + +### Options + +``` + -h, --help help for alpha +``` + +### SEE ALSO + +* [operator-sdk](operator-sdk.md) - An SDK for building operators with ease +* [operator-sdk alpha olm](operator-sdk_alpha_olm.md) - Manage the Operator Lifecycle Manager installation in your cluster + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_alpha_olm.md b/doc/cli/operator-sdk_alpha_olm.md new file mode 100644 index 00000000000..9bce9d19fbe --- /dev/null +++ b/doc/cli/operator-sdk_alpha_olm.md @@ -0,0 +1,22 @@ +## operator-sdk alpha olm + +Manage the Operator Lifecycle Manager installation in your cluster + +### Synopsis + +Manage the Operator Lifecycle Manager installation in your cluster + +### Options + +``` + -h, --help help for olm +``` + +### SEE ALSO + +* [operator-sdk alpha](operator-sdk_alpha.md) - Run an alpha subcommand +* [operator-sdk alpha olm install](operator-sdk_alpha_olm_install.md) - Install Operator Lifecycle Manager in your cluster +* [operator-sdk alpha olm status](operator-sdk_alpha_olm_status.md) - Get the status of the Operator Lifecycle Manager installation in your cluster +* [operator-sdk alpha olm uninstall](operator-sdk_alpha_olm_uninstall.md) - Uninstall Operator Lifecycle Manager from your cluster + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_alpha_olm_install.md b/doc/cli/operator-sdk_alpha_olm_install.md new file mode 100644 index 00000000000..68cb5b1b541 --- /dev/null +++ b/doc/cli/operator-sdk_alpha_olm_install.md @@ -0,0 +1,25 @@ +## operator-sdk alpha olm install + +Install Operator Lifecycle Manager in your cluster + +### Synopsis + +Install Operator Lifecycle Manager in your cluster + +``` +operator-sdk alpha olm install [flags] +``` + +### Options + +``` + -h, --help help for install + --timeout duration time to wait for the command to complete before failing (default 2m0s) + --version string version of OLM resources to install (default "latest") +``` + +### SEE ALSO + +* [operator-sdk alpha olm](operator-sdk_alpha_olm.md) - Manage the Operator Lifecycle Manager installation in your cluster + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_alpha_olm_status.md b/doc/cli/operator-sdk_alpha_olm_status.md new file mode 100644 index 00000000000..11330b8e67d --- /dev/null +++ b/doc/cli/operator-sdk_alpha_olm_status.md @@ -0,0 +1,24 @@ +## operator-sdk alpha olm status + +Get the status of the Operator Lifecycle Manager installation in your cluster + +### Synopsis + +Get the status of the Operator Lifecycle Manager installation in your cluster + +``` +operator-sdk alpha olm status [flags] +``` + +### Options + +``` + -h, --help help for status + --timeout duration time to wait for the command to complete before failing (default 2m0s) +``` + +### SEE ALSO + +* [operator-sdk alpha olm](operator-sdk_alpha_olm.md) - Manage the Operator Lifecycle Manager installation in your cluster + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_alpha_olm_uninstall.md b/doc/cli/operator-sdk_alpha_olm_uninstall.md new file mode 100644 index 00000000000..45bd020c105 --- /dev/null +++ b/doc/cli/operator-sdk_alpha_olm_uninstall.md @@ -0,0 +1,24 @@ +## operator-sdk alpha olm uninstall + +Uninstall Operator Lifecycle Manager from your cluster + +### Synopsis + +Uninstall Operator Lifecycle Manager from your cluster + +``` +operator-sdk alpha olm uninstall [flags] +``` + +### Options + +``` + -h, --help help for uninstall + --timeout duration time to wait for the command to complete before failing (default 2m0s) +``` + +### SEE ALSO + +* [operator-sdk alpha olm](operator-sdk_alpha_olm.md) - Manage the Operator Lifecycle Manager installation in your cluster + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_build.md b/doc/cli/operator-sdk_build.md new file mode 100644 index 00000000000..60ce0b68b94 --- /dev/null +++ b/doc/cli/operator-sdk_build.md @@ -0,0 +1,38 @@ +## operator-sdk build + +Compiles code and builds artifacts + +### Synopsis + +The operator-sdk build command compiles the Operator code into an executable binary +and generates the Dockerfile manifest. + + is the container image to be built, e.g. "quay.io/example/operator:v0.0.1". +This image will be automatically set in the deployment manifests. + +After build completes, the image would be built locally in docker. Then it needs to +be pushed to remote registry. +For example: + + $ operator-sdk build quay.io/example/operator:v0.0.1 + $ docker push quay.io/example/operator:v0.0.1 + + +``` +operator-sdk build [flags] +``` + +### Options + +``` + --go-build-args string Extra Go build arguments as one string such as "-ldflags -X=main.xyz=abc" + -h, --help help for build + --image-build-args string Extra image build arguments as one string such as "--build-arg https_proxy=$https_proxy" + --image-builder string Tool to build OCI images. One of: [docker, podman, buildah] (default "docker") +``` + +### SEE ALSO + +* [operator-sdk](operator-sdk.md) - An SDK for building operators with ease + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_completion.md b/doc/cli/operator-sdk_completion.md new file mode 100644 index 00000000000..de1c8b12d12 --- /dev/null +++ b/doc/cli/operator-sdk_completion.md @@ -0,0 +1,21 @@ +## operator-sdk completion + +Generators for shell completions + +### Synopsis + +Generators for shell completions + +### Options + +``` + -h, --help help for completion +``` + +### SEE ALSO + +* [operator-sdk](operator-sdk.md) - An SDK for building operators with ease +* [operator-sdk completion bash](operator-sdk_completion_bash.md) - Generate bash completions +* [operator-sdk completion zsh](operator-sdk_completion_zsh.md) - Generate zsh completions + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_completion_bash.md b/doc/cli/operator-sdk_completion_bash.md new file mode 100644 index 00000000000..e091f13df7f --- /dev/null +++ b/doc/cli/operator-sdk_completion_bash.md @@ -0,0 +1,23 @@ +## operator-sdk completion bash + +Generate bash completions + +### Synopsis + +Generate bash completions + +``` +operator-sdk completion bash [flags] +``` + +### Options + +``` + -h, --help help for bash +``` + +### SEE ALSO + +* [operator-sdk completion](operator-sdk_completion.md) - Generators for shell completions + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_completion_zsh.md b/doc/cli/operator-sdk_completion_zsh.md new file mode 100644 index 00000000000..d0c393f401e --- /dev/null +++ b/doc/cli/operator-sdk_completion_zsh.md @@ -0,0 +1,23 @@ +## operator-sdk completion zsh + +Generate zsh completions + +### Synopsis + +Generate zsh completions + +``` +operator-sdk completion zsh [flags] +``` + +### Options + +``` + -h, --help help for zsh +``` + +### SEE ALSO + +* [operator-sdk completion](operator-sdk_completion.md) - Generators for shell completions + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_generate.md b/doc/cli/operator-sdk_generate.md new file mode 100644 index 00000000000..8a577d3927b --- /dev/null +++ b/doc/cli/operator-sdk_generate.md @@ -0,0 +1,21 @@ +## operator-sdk generate + +Invokes specific generator + +### Synopsis + +The operator-sdk generate command invokes specific generator to generate code as needed. + +### Options + +``` + -h, --help help for generate +``` + +### SEE ALSO + +* [operator-sdk](operator-sdk.md) - An SDK for building operators with ease +* [operator-sdk generate k8s](operator-sdk_generate_k8s.md) - Generates Kubernetes code for custom resource +* [operator-sdk generate openapi](operator-sdk_generate_openapi.md) - Generates OpenAPI specs for API's + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_generate_k8s.md b/doc/cli/operator-sdk_generate_k8s.md new file mode 100644 index 00000000000..4d79017cc13 --- /dev/null +++ b/doc/cli/operator-sdk_generate_k8s.md @@ -0,0 +1,35 @@ +## operator-sdk generate k8s + +Generates Kubernetes code for custom resource + +### Synopsis + +k8s generator generates code for custom resources given the API +specs in pkg/apis// directories to comply with kube-API +requirements. Go code is generated under +pkg/apis///zz_generated.deepcopy.go. +Example: + + $ operator-sdk generate k8s + $ tree pkg/apis + pkg/apis/ + └── app + └── v1alpha1 + ├── zz_generated.deepcopy.go + + +``` +operator-sdk generate k8s [flags] +``` + +### Options + +``` + -h, --help help for k8s +``` + +### SEE ALSO + +* [operator-sdk generate](operator-sdk_generate.md) - Invokes specific generator + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_generate_openapi.md b/doc/cli/operator-sdk_generate_openapi.md new file mode 100644 index 00000000000..1a5c50b889b --- /dev/null +++ b/doc/cli/operator-sdk_generate_openapi.md @@ -0,0 +1,41 @@ +## operator-sdk generate openapi + +Generates OpenAPI specs for API's + +### Synopsis + +generate openapi generates OpenAPI validation specs in Go from tagged types +in all pkg/apis// directories. Go code is generated under +pkg/apis///zz_generated.openapi.go. CRD's are generated, or +updated if they exist for a particular group + version + kind, under +deploy/crds/__crd.yaml; OpenAPI V3 validation YAML +is generated as a 'validation' object. + +Example: + + $ operator-sdk generate openapi + $ tree pkg/apis + pkg/apis/ + └── app + └── v1alpha1 + ├── zz_generated.openapi.go + $ tree deploy/crds + ├── deploy/crds/app.example.com_v1alpha1_appservice_cr.yaml + ├── deploy/crds/app.example.com_appservices_crd.yaml + + +``` +operator-sdk generate openapi [flags] +``` + +### Options + +``` + -h, --help help for openapi +``` + +### SEE ALSO + +* [operator-sdk generate](operator-sdk_generate.md) - Invokes specific generator + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_migrate.md b/doc/cli/operator-sdk_migrate.md new file mode 100644 index 00000000000..41af4146593 --- /dev/null +++ b/doc/cli/operator-sdk_migrate.md @@ -0,0 +1,25 @@ +## operator-sdk migrate + +Adds source code to an operator + +### Synopsis + +operator-sdk migrate adds a main.go source file and any associated source files for an operator that is not of the "go" type. + +``` +operator-sdk migrate [flags] +``` + +### Options + +``` + --header-file string Path to file containing headers for generated Go files. Copied to hack/boilerplate.go.txt + -h, --help help for migrate + --repo string Project repository path. Used as the project's Go import path. This must be set if outside of $GOPATH/src (e.g. github.com/example-inc/my-operator) +``` + +### SEE ALSO + +* [operator-sdk](operator-sdk.md) - An SDK for building operators with ease + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_new.md b/doc/cli/operator-sdk_new.md new file mode 100644 index 00000000000..d827441b061 --- /dev/null +++ b/doc/cli/operator-sdk_new.md @@ -0,0 +1,46 @@ +## operator-sdk new + +Creates a new operator application + +### Synopsis + +The operator-sdk new command creates a new operator application and +generates a default directory layout based on the input . + + is the project name of the new operator. (e.g app-operator) + +For example: + + $ mkdir $HOME/projects/example.com/ + $ cd $HOME/projects/example.com/ + $ operator-sdk new app-operator +generates a skeletal app-operator application in $HOME/projects/example.com/app-operator. + + +``` +operator-sdk new [flags] +``` + +### Options + +``` + --api-version string Kubernetes apiVersion and has a format of $GROUP_NAME/$VERSION (e.g app.example.com/v1alpha1) - used with "ansible" or "helm" types + --generate-playbook Generate a playbook skeleton. (Only used for --type ansible) + --git-init Initialize the project directory as a git repository (default false) + --header-file string Path to file containing headers for generated Go files. Copied to hack/boilerplate.go.txt + --helm-chart string Initialize helm operator with existing helm chart (, /, or local path) + --helm-chart-repo string Chart repository URL for the requested helm chart + --helm-chart-version string Specific version of the helm chart (default is latest version) + -h, --help help for new + --kind string Kubernetes CustomResourceDefintion kind. (e.g AppService) - used with "ansible" or "helm" types + --repo string Project repository path for Go operators. Used as the project's Go import path. This must be set if outside of $GOPATH/src (e.g. github.com/example-inc/my-operator) + --skip-validation Do not validate the resulting project's structure and dependencies. (Only used for --type go) + --type string Type of operator to initialize (choices: "go", "ansible" or "helm") (default "go") + --vendor Use a vendor directory for dependencies +``` + +### SEE ALSO + +* [operator-sdk](operator-sdk.md) - An SDK for building operators with ease + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_olm-catalog.md b/doc/cli/operator-sdk_olm-catalog.md new file mode 100644 index 00000000000..3db8057a869 --- /dev/null +++ b/doc/cli/operator-sdk_olm-catalog.md @@ -0,0 +1,21 @@ +## operator-sdk olm-catalog + +Invokes a olm-catalog command + +### Synopsis + +The operator-sdk olm-catalog command invokes a command to perform +Catalog related actions. + +### Options + +``` + -h, --help help for olm-catalog +``` + +### SEE ALSO + +* [operator-sdk](operator-sdk.md) - An SDK for building operators with ease +* [operator-sdk olm-catalog gen-csv](operator-sdk_olm-catalog_gen-csv.md) - Generates a Cluster Service Version yaml file for the operator + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_olm-catalog_gen-csv.md b/doc/cli/operator-sdk_olm-catalog_gen-csv.md new file mode 100644 index 00000000000..5425005b2ce --- /dev/null +++ b/doc/cli/operator-sdk_olm-catalog_gen-csv.md @@ -0,0 +1,37 @@ +## operator-sdk olm-catalog gen-csv + +Generates a Cluster Service Version yaml file for the operator + +### Synopsis + +The gen-csv command generates a Cluster Service Version (CSV) YAML manifest +for the operator. This file is used to publish the operator to the OLM Catalog. + +A CSV semantic version is supplied via the --csv-version flag. If your operator +has already generated a CSV manifest you want to use as a base, supply its +version to --from-version. Otherwise the SDK will scaffold a new CSV manifest. + +Configure CSV generation by writing a config file 'deploy/olm-catalog/csv-config.yaml + +``` +operator-sdk olm-catalog gen-csv [flags] +``` + +### Options + +``` + --csv-channel string Channel the CSV should be registered under in the package manifest + --csv-config string Path to CSV config file. Defaults to deploy/olm-catalog/csv-config.yaml + --csv-version string Semantic version of the CSV + --default-channel Use the channel passed to --csv-channel as the package manifests' default channel. Only valid when --csv-channel is set + --from-version string Semantic version of an existing CSV to use as a base + -h, --help help for gen-csv + --operator-name string Operator name to use while generating CSV + --update-crds Update CRD manifests in deploy/{operator-name}/{csv-version} the using latest API's +``` + +### SEE ALSO + +* [operator-sdk olm-catalog](operator-sdk_olm-catalog.md) - Invokes a olm-catalog command + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_print-deps.md b/doc/cli/operator-sdk_print-deps.md new file mode 100644 index 00000000000..d83ecd2d30e --- /dev/null +++ b/doc/cli/operator-sdk_print-deps.md @@ -0,0 +1,26 @@ +## operator-sdk print-deps + +Print Golang packages and versions required to run the operator + +### Synopsis + +The operator-sdk print-deps command prints all Golang packages and versions expected +by this version of the Operator SDK. Versions for these packages should match +those in an operator's go.mod file. + + +``` +operator-sdk print-deps [flags] +``` + +### Options + +``` + -h, --help help for print-deps +``` + +### SEE ALSO + +* [operator-sdk](operator-sdk.md) - An SDK for building operators with ease + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_run.md b/doc/cli/operator-sdk_run.md new file mode 100644 index 00000000000..3a2ef940d8d --- /dev/null +++ b/doc/cli/operator-sdk_run.md @@ -0,0 +1,23 @@ +## operator-sdk run + +Runs a generic operator + +### Synopsis + +Runs a generic operator. This is intended to be used when running +in a Pod inside a cluster. Developers wanting to run their operator locally +should use "up local" instead. + +### Options + +``` + -h, --help help for run +``` + +### SEE ALSO + +* [operator-sdk](operator-sdk.md) - An SDK for building operators with ease +* [operator-sdk run ansible](operator-sdk_run_ansible.md) - Runs as an ansible operator +* [operator-sdk run helm](operator-sdk_run_helm.md) - Runs as a helm operator + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_run_ansible.md b/doc/cli/operator-sdk_run_ansible.md new file mode 100644 index 00000000000..d32692105ff --- /dev/null +++ b/doc/cli/operator-sdk_run_ansible.md @@ -0,0 +1,35 @@ +## operator-sdk run ansible + +Runs as an ansible operator + +### Synopsis + +Runs as an ansible operator. This is intended to be used when running +in a Pod inside a cluster. Developers wanting to run their operator locally +should use "up local" instead. + +``` +operator-sdk run ansible [flags] +``` + +### Options + +``` + --ansible-verbosity int Ansible verbosity. Overridden by environment variable. (default 2) + -h, --help help for ansible + --inject-owner-ref The ansible operator will inject owner references unless this flag is false (default true) + --max-workers int Maximum number of workers to use. Overridden by environment variable. (default 1) + --reconcile-period duration Default reconcile period for controllers (default 1m0s) + --watches-file string Path to the watches file to use (default "./watches.yaml") + --zap-devel Enable zap development mode (changes defaults to console encoder, debug log level, and disables sampling) + --zap-encoder encoder Zap log encoding ('json' or 'console') + --zap-level level Zap log level (one of 'debug', 'info', 'error' or any integer value > 0) (default info) + --zap-sample sample Enable zap log sampling. Sampling will be disabled for integer log levels > 1 + --zap-time-encoding timeEncoding Sets the zap time format ('epoch', 'millis', 'nano', or 'iso8601') (default ) +``` + +### SEE ALSO + +* [operator-sdk run](operator-sdk_run.md) - Runs a generic operator + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_run_helm.md b/doc/cli/operator-sdk_run_helm.md new file mode 100644 index 00000000000..bf4fd858f52 --- /dev/null +++ b/doc/cli/operator-sdk_run_helm.md @@ -0,0 +1,32 @@ +## operator-sdk run helm + +Runs as a helm operator + +### Synopsis + +Runs as a helm operator. This is intended to be used when running +in a Pod inside a cluster. Developers wanting to run their operator locally +should use "up local" instead. + +``` +operator-sdk run helm [flags] +``` + +### Options + +``` + -h, --help help for helm + --reconcile-period duration Default reconcile period for controllers (default 1m0s) + --watches-file string Path to the watches file to use (default "./watches.yaml") + --zap-devel Enable zap development mode (changes defaults to console encoder, debug log level, and disables sampling) + --zap-encoder encoder Zap log encoding ('json' or 'console') + --zap-level level Zap log level (one of 'debug', 'info', 'error' or any integer value > 0) (default info) + --zap-sample sample Enable zap log sampling. Sampling will be disabled for integer log levels > 1 + --zap-time-encoding timeEncoding Sets the zap time format ('epoch', 'millis', 'nano', or 'iso8601') (default ) +``` + +### SEE ALSO + +* [operator-sdk run](operator-sdk_run.md) - Runs a generic operator + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_scorecard.md b/doc/cli/operator-sdk_scorecard.md new file mode 100644 index 00000000000..5d092c846a5 --- /dev/null +++ b/doc/cli/operator-sdk_scorecard.md @@ -0,0 +1,30 @@ +## operator-sdk scorecard + +Run scorecard tests + +### Synopsis + +Runs blackbox scorecard tests on an operator + + +``` +operator-sdk scorecard [flags] +``` + +### Options + +``` + --config string config file (default is '/.osdk-scorecard'; the config file's extension and format can be .yaml, .json, or .toml) + -h, --help help for scorecard + --kubeconfig string Path to kubeconfig of custom resource created in cluster + -L, --list If true, only print the test names that would be run based on selector filtering (only valid when version is v1alpha2) + -o, --output string Output format for results. Valid values: text, json (default "text") + -l, --selector string selector (label query) to filter tests on (only valid when version is v1alpha2) + --version string scorecard version. Valid values: v1alpha1, v1alpha2 (default "v1alpha2") +``` + +### SEE ALSO + +* [operator-sdk](operator-sdk.md) - An SDK for building operators with ease + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_test.md b/doc/cli/operator-sdk_test.md new file mode 100644 index 00000000000..16b12ba27d5 --- /dev/null +++ b/doc/cli/operator-sdk_test.md @@ -0,0 +1,21 @@ +## operator-sdk test + +Tests the operator + +### Synopsis + +The test command has subcommands that can test the operator. + + +### Options + +``` + -h, --help help for test +``` + +### SEE ALSO + +* [operator-sdk](operator-sdk.md) - An SDK for building operators with ease +* [operator-sdk test local](operator-sdk_test_local.md) - Run End-To-End tests locally + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_test_local.md b/doc/cli/operator-sdk_test_local.md new file mode 100644 index 00000000000..ae7cf09ecaa --- /dev/null +++ b/doc/cli/operator-sdk_test_local.md @@ -0,0 +1,34 @@ +## operator-sdk test local + +Run End-To-End tests locally + +### Synopsis + +Run End-To-End tests locally + +``` +operator-sdk test local [flags] +``` + +### Options + +``` + --debug Enable debug-level logging + --global-manifest string Path to manifest for Global resources (e.g. CRD manifests) + --go-test-flags string Additional flags to pass to go test + -h, --help help for local + --image string Use a different operator image from the one specified in the namespaced manifest + --kubeconfig string Kubeconfig path + --local-operator-flags string The flags that the operator needs (while using --up-local). Example: "--flag1 value1 --flag2=value2" + --molecule-test-flags string Additional flags to pass to molecule test + --namespace string If non-empty, single namespace to run tests in + --namespaced-manifest string Path to manifest for per-test, namespaced resources (e.g. RBAC and Operator manifest) + --no-setup Disable test resource creation + --up-local Enable running operator locally with go run instead of as an image in the cluster +``` + +### SEE ALSO + +* [operator-sdk test](operator-sdk_test.md) - Tests the operator + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_up.md b/doc/cli/operator-sdk_up.md new file mode 100644 index 00000000000..11e5926fa4c --- /dev/null +++ b/doc/cli/operator-sdk_up.md @@ -0,0 +1,21 @@ +## operator-sdk up + +Launches the operator + +### Synopsis + +The up command has subcommands that can launch the operator in various ways. + + +### Options + +``` + -h, --help help for up +``` + +### SEE ALSO + +* [operator-sdk](operator-sdk.md) - An SDK for building operators with ease +* [operator-sdk up local](operator-sdk_up_local.md) - Launches the operator locally + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_up_local.md b/doc/cli/operator-sdk_up_local.md new file mode 100644 index 00000000000..67943a2ce40 --- /dev/null +++ b/doc/cli/operator-sdk_up_local.md @@ -0,0 +1,31 @@ +## operator-sdk up local + +Launches the operator locally + +### Synopsis + +The operator-sdk up local command launches the operator on the local machine +by building the operator binary with the ability to access a +kubernetes cluster using a kubeconfig file. + + +``` +operator-sdk up local [flags] +``` + +### Options + +``` + --enable-delve Start the operator using the delve debugger + --go-ldflags string Set Go linker options + -h, --help help for local + --kubeconfig string The file path to kubernetes configuration file; defaults to location specified by $KUBECONFIG with a fallback to $HOME/.kube/config if not set + --namespace string The namespace where the operator watches for changes. + --operator-flags string The flags that the operator needs. Example: "--flag1 value1 --flag2=value2" +``` + +### SEE ALSO + +* [operator-sdk up](operator-sdk_up.md) - Launches the operator + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/doc/cli/operator-sdk_version.md b/doc/cli/operator-sdk_version.md new file mode 100644 index 00000000000..cb1a5cf02f4 --- /dev/null +++ b/doc/cli/operator-sdk_version.md @@ -0,0 +1,23 @@ +## operator-sdk version + +Prints the version of operator-sdk + +### Synopsis + +Prints the version of operator-sdk + +``` +operator-sdk version [flags] +``` + +### Options + +``` + -h, --help help for version +``` + +### SEE ALSO + +* [operator-sdk](operator-sdk.md) - An SDK for building operators with ease + +###### Auto generated by spf13/cobra on 6-Nov-2019 diff --git a/go.mod b/go.mod index fcbf3fa211e..59ffe57291c 100644 --- a/go.mod +++ b/go.mod @@ -10,6 +10,11 @@ require ( github.com/blang/semver v3.5.1+incompatible github.com/coreos/go-semver v0.2.0 github.com/coreos/prometheus-operator v0.29.0 + github.com/cyphar/filepath-securejoin v0.2.2 // indirect + github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c // indirect + github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f // indirect + github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f // indirect + github.com/fatih/camelcase v1.0.0 // indirect github.com/ghodss/yaml v1.0.1-0.20180820084758-c7ce16629ff4 github.com/go-logr/logr v0.1.0 github.com/go-logr/zapr v0.1.1 diff --git a/go.sum b/go.sum index 266f7e125ce..a83c1a5985b 100644 --- a/go.sum +++ b/go.sum @@ -93,9 +93,12 @@ github.com/coreos/prometheus-operator v0.29.0 h1:Moi4klbr1xUVaofWzlaM12mxwCL294G github.com/coreos/prometheus-operator v0.29.0/go.mod h1:SO+r5yZUacDFPKHfPoUjI3hMsH+ZUdiuNNhuSq3WoSg= github.com/coreos/rkt v1.30.0/go.mod h1:O634mlH6U7qk87poQifK6M2rsFNt+FyUTWNMnP1hF1U= github.com/cpuguy83/go-md2man v1.0.4/go.mod h1:N6JayAiVKtlHSnuTCeuLSQVs75hb8q+dYQLjr7cDsKY= +github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cyphar/filepath-securejoin v0.0.0-20170720062807-ae69057f2299 h1:2pOMM/RaFhI52FyCITl8aTf5HZ9LoHD8SkjbghAEG1E= github.com/cyphar/filepath-securejoin v0.0.0-20170720062807-ae69057f2299/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= +github.com/cyphar/filepath-securejoin v0.2.2 h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg= +github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= github.com/d2g/dhcp4client v0.0.0-20170829104524-6e570ed0a266/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -121,10 +124,16 @@ github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD github.com/docker/libnetwork v0.0.0-20180830151422-a9cd636e3789/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= +github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c h1:ZfSZ3P3BedhKGUhzj7BQlPSU4OvT6tfOKe3DVHzOA7s= +github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e h1:p1yVGRW3nmb85p1Sh1ZJSDm4A4iKLS5QNbvUHMgGu/M= github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= +github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f h1:8GDPb0tCY8LQ+OJ3dbHb5sA6YZWXFORQYZx5sdsTlMs= +github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= +github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f h1:AUj1VoZUfhPhOPHULCQQDnGhRelpFWHMLhQVWDsS0v4= +github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.8.0+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.8.1+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= @@ -141,6 +150,8 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwC github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= github.com/fatih/camelcase v0.0.0-20160318181535-f6a740d52f96 h1:5e8GDOdG6jKeeqNGbR+tlmqhf4vQVs3atTTMEWeEcAk= github.com/fatih/camelcase v0.0.0-20160318181535-f6a740d52f96/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= +github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8= +github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -485,6 +496,7 @@ github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uY github.com/robfig/cron v0.0.0-20170309132418-df38d32658d8/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/robfig/cron v0.0.0-20170526150127-736158dc09e1/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.5.0 h1:Usqs0/lDK/NqTkvrmKSwA/3XkZAs7ZAW/eLeQ2MVBTw= diff --git a/hack/doc/gen-cli-doc.go b/hack/doc/gen-cli-doc.go new file mode 100644 index 00000000000..a5cacc7cefa --- /dev/null +++ b/hack/doc/gen-cli-doc.go @@ -0,0 +1,37 @@ +// Copyright 2019 The Operator-SDK Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package main + +import ( + "os" + + "github.com/operator-framework/operator-sdk/cmd/operator-sdk/cli" + + log "github.com/sirupsen/logrus" + "github.com/spf13/cobra/doc" +) + +func main() { + root := cli.GetCLIRoot() + currentDir, err := os.Getwd() + if err != nil { + log.Fatalf("Failed to get current directory: %v", err) + } + + err = doc.GenMarkdownTree(root, currentDir+"/doc/cli") + if err != nil { + log.Fatalf("Failed to generate documenation: %v", err) + } +} diff --git a/hack/doc/gen_cli_doc.sh b/hack/doc/gen_cli_doc.sh new file mode 100755 index 00000000000..b12f5e1daaa --- /dev/null +++ b/hack/doc/gen_cli_doc.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +go run ./hack/doc/gen-cli-doc.go diff --git a/hack/tests/sanity-check.sh b/hack/tests/sanity-check.sh index d9334cc783c..680e61a0457 100755 --- a/hack/tests/sanity-check.sh +++ b/hack/tests/sanity-check.sh @@ -7,6 +7,7 @@ go fmt ./... ./hack/check_license.sh ./hack/check_error_log_msg_format.sh +./hack/doc/gen_cli_doc.sh # Make sure repo is still in a clean state. git diff --exit-code