diff --git a/LICENSES b/LICENSES index 4ff5649ea..a1b1729d7 100644 --- a/LICENSES +++ b/LICENSES @@ -2824,6 +2824,35 @@ SOFTWARE. ================================================================================ +================================================================================ += vendor/github.com/cpuguy83/go-md2man licensed under: = + +The MIT License (MIT) + +Copyright (c) 2014 Brian Goff + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + += vendor/github.com/cpuguy83/go-md2man/LICENSE.md 80794f9009df723bbc6fe19234c9f517 +================================================================================ + + ================================================================================ = vendor/github.com/davecgh/go-spew licensed under: = diff --git a/cmd/cainjector/BUILD.bazel b/cmd/cainjector/BUILD.bazel index 529a61515..711fc0849 100644 --- a/cmd/cainjector/BUILD.bazel +++ b/cmd/cainjector/BUILD.bazel @@ -4,21 +4,13 @@ load("//build:go_binary.bzl", "go_binary") go_library( name = "go_default_library", - srcs = [ - "main.go", - "start.go", - ], + srcs = ["main.go"], importpath = "github.com/jetstack/cert-manager/cmd/cainjector", visibility = ["//visibility:private"], deps = [ - "//pkg/api:go_default_library", - "//pkg/controller/cainjector:go_default_library", + "//cmd/cainjector/cmd:go_default_library", "//pkg/logs:go_default_library", - "//pkg/util:go_default_library", "//pkg/util/cmd:go_default_library", - "@com_github_spf13_cobra//:go_default_library", - "@com_github_spf13_pflag//:go_default_library", - "@io_k8s_client_go//plugin/pkg/client/auth:go_default_library", "@io_k8s_klog//:go_default_library", "@io_k8s_sigs_controller_runtime//:go_default_library", ], @@ -40,7 +32,10 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//cmd/cainjector/cmd:all-srcs", + ], tags = ["automanaged"], visibility = ["//visibility:public"], ) diff --git a/cmd/cainjector/cmd/BUILD.bazel b/cmd/cainjector/cmd/BUILD.bazel new file mode 100644 index 000000000..3bd871da8 --- /dev/null +++ b/cmd/cainjector/cmd/BUILD.bazel @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["start.go"], + importpath = "github.com/jetstack/cert-manager/cmd/cainjector/cmd", + visibility = ["//visibility:public"], + deps = [ + "//pkg/api:go_default_library", + "//pkg/controller/cainjector:go_default_library", + "//pkg/util:go_default_library", + "@com_github_spf13_cobra//:go_default_library", + "@com_github_spf13_pflag//:go_default_library", + "@io_k8s_client_go//plugin/pkg/client/auth:go_default_library", + "@io_k8s_klog//:go_default_library", + "@io_k8s_sigs_controller_runtime//:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/cmd/cainjector/start.go b/cmd/cainjector/cmd/start.go similarity index 99% rename from cmd/cainjector/start.go rename to cmd/cainjector/cmd/start.go index 22213ff36..c478fde27 100644 --- a/cmd/cainjector/start.go +++ b/cmd/cainjector/cmd/start.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package main +package cmd import ( "fmt" diff --git a/cmd/cainjector/main.go b/cmd/cainjector/main.go index 8da5cde94..4bd371add 100644 --- a/cmd/cainjector/main.go +++ b/cmd/cainjector/main.go @@ -23,8 +23,9 @@ import ( "k8s.io/klog" ctrl "sigs.k8s.io/controller-runtime" + cainjcmd "github.com/jetstack/cert-manager/cmd/cainjector/cmd" "github.com/jetstack/cert-manager/pkg/logs" - "github.com/jetstack/cert-manager/pkg/util/cmd" + utilcmd "github.com/jetstack/cert-manager/pkg/util/cmd" ) func main() { @@ -32,8 +33,8 @@ func main() { defer logs.FlushLogs() ctrl.SetLogger(logs.Log) - stopCh := cmd.SetupSignalHandler() - cmd := NewCommandStartInjectorController(os.Stdout, os.Stderr, stopCh) + stopCh := utilcmd.SetupSignalHandler() + cmd := cainjcmd.NewCommandStartInjectorController(os.Stdout, os.Stderr, stopCh) cmd.Flags().AddGoFlagSet(flag.CommandLine) flag.CommandLine.Parse([]string{}) diff --git a/cmd/controller/BUILD.bazel b/cmd/controller/BUILD.bazel index 964ba3650..67081f122 100644 --- a/cmd/controller/BUILD.bazel +++ b/cmd/controller/BUILD.bazel @@ -4,34 +4,13 @@ load("//build:go_binary.bzl", "go_binary") go_library( name = "go_default_library", - srcs = [ - "main.go", - "start.go", - ], + srcs = ["main.go"], importpath = "github.com/jetstack/cert-manager/cmd/controller", visibility = ["//visibility:private"], deps = [ - "//cmd/controller/app:go_default_library", - "//cmd/controller/app/options:go_default_library", - "//pkg/controller/acmechallenges:go_default_library", - "//pkg/controller/acmeorders:go_default_library", - "//pkg/controller/certificates:go_default_library", - "//pkg/controller/clusterissuers:go_default_library", - "//pkg/controller/expcertificates/trigger:go_default_library", - "//pkg/controller/ingress-shim:go_default_library", - "//pkg/controller/issuers:go_default_library", - "//pkg/issuer/acme:go_default_library", - "//pkg/issuer/ca:go_default_library", - "//pkg/issuer/selfsigned:go_default_library", - "//pkg/issuer/vault:go_default_library", - "//pkg/issuer/venafi:go_default_library", + "//cmd/controller/cmd:go_default_library", "//pkg/logs:go_default_library", - "//pkg/util:go_default_library", "//pkg/util/cmd:go_default_library", - "//pkg/util/feature:go_default_library", - "@com_github_spf13_cobra//:go_default_library", - "@io_k8s_apimachinery//pkg/util/errors:go_default_library", - "@io_k8s_client_go//plugin/pkg/client/auth:go_default_library", "@io_k8s_klog//:go_default_library", ], ) @@ -55,6 +34,7 @@ filegroup( srcs = [ ":package-srcs", "//cmd/controller/app:all-srcs", + "//cmd/controller/cmd:all-srcs", ], tags = ["automanaged"], visibility = ["//visibility:public"], diff --git a/cmd/controller/cmd/BUILD.bazel b/cmd/controller/cmd/BUILD.bazel new file mode 100644 index 000000000..dc452ba59 --- /dev/null +++ b/cmd/controller/cmd/BUILD.bazel @@ -0,0 +1,44 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["start.go"], + importpath = "github.com/jetstack/cert-manager/cmd/controller/cmd", + visibility = ["//visibility:public"], + deps = [ + "//cmd/controller/app:go_default_library", + "//cmd/controller/app/options:go_default_library", + "//pkg/controller/acmechallenges:go_default_library", + "//pkg/controller/acmeorders:go_default_library", + "//pkg/controller/certificates:go_default_library", + "//pkg/controller/clusterissuers:go_default_library", + "//pkg/controller/expcertificates/trigger:go_default_library", + "//pkg/controller/ingress-shim:go_default_library", + "//pkg/controller/issuers:go_default_library", + "//pkg/issuer/acme:go_default_library", + "//pkg/issuer/ca:go_default_library", + "//pkg/issuer/selfsigned:go_default_library", + "//pkg/issuer/vault:go_default_library", + "//pkg/issuer/venafi:go_default_library", + "//pkg/logs:go_default_library", + "//pkg/util:go_default_library", + "//pkg/util/feature:go_default_library", + "@com_github_spf13_cobra//:go_default_library", + "@io_k8s_apimachinery//pkg/util/errors:go_default_library", + "@io_k8s_client_go//plugin/pkg/client/auth:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/cmd/controller/start.go b/cmd/controller/cmd/start.go similarity index 99% rename from cmd/controller/start.go rename to cmd/controller/cmd/start.go index d349df5ac..20ed23828 100644 --- a/cmd/controller/start.go +++ b/cmd/controller/cmd/start.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package main +package cmd import ( "fmt" diff --git a/cmd/controller/main.go b/cmd/controller/main.go index 8c0958155..31d4aa13d 100644 --- a/cmd/controller/main.go +++ b/cmd/controller/main.go @@ -21,16 +21,17 @@ import ( "k8s.io/klog" + ctrlcmd "github.com/jetstack/cert-manager/cmd/controller/cmd" logf "github.com/jetstack/cert-manager/pkg/logs" - "github.com/jetstack/cert-manager/pkg/util/cmd" + utilcmd "github.com/jetstack/cert-manager/pkg/util/cmd" ) func main() { logf.InitLogs(flag.CommandLine) defer logf.FlushLogs() - stopCh := cmd.SetupSignalHandler() - cmd := NewCommandStartCertManagerController(stopCh) + stopCh := utilcmd.SetupSignalHandler() + cmd := ctrlcmd.NewCommandStartCertManagerController(stopCh) cmd.Flags().AddGoFlagSet(flag.CommandLine) flag.CommandLine.Parse([]string{}) diff --git a/cmd/ctl/BUILD.bazel b/cmd/ctl/BUILD.bazel index 2f78a8863..542f266cb 100644 --- a/cmd/ctl/BUILD.bazel +++ b/cmd/ctl/BUILD.bazel @@ -2,24 +2,17 @@ load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") go_library( name = "go_default_library", - srcs = [ - "cmd.go", - "main.go", - ], + srcs = ["main.go"], importpath = "github.com/jetstack/cert-manager/cmd/ctl", visibility = ["//visibility:private"], deps = [ - "//cmd/ctl/pkg/convert:go_default_library", - "//cmd/ctl/pkg/version:go_default_library", + "//cmd/ctl/cmd:go_default_library", "//pkg/util/cmd:go_default_library", - "@com_github_spf13_cobra//:go_default_library", - "@io_k8s_cli_runtime//pkg/genericclioptions:go_default_library", ], ) go_binary( name = "ctl", - out = "cert-manager-ctl", embed = [":go_default_library"], visibility = ["//visibility:public"], ) @@ -35,6 +28,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//cmd/ctl/cmd:all-srcs", "//cmd/ctl/pkg/convert:all-srcs", "//cmd/ctl/pkg/version:all-srcs", ], diff --git a/cmd/ctl/cmd/BUILD.bazel b/cmd/ctl/cmd/BUILD.bazel new file mode 100644 index 000000000..a66be9b82 --- /dev/null +++ b/cmd/ctl/cmd/BUILD.bazel @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["cmd.go"], + importpath = "github.com/jetstack/cert-manager/cmd/ctl/cmd", + visibility = ["//visibility:public"], + deps = [ + "//cmd/ctl/pkg/convert:go_default_library", + "//cmd/ctl/pkg/version:go_default_library", + "@com_github_spf13_cobra//:go_default_library", + "@io_k8s_cli_runtime//pkg/genericclioptions:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/cmd/ctl/cmd.go b/cmd/ctl/cmd/cmd.go similarity index 99% rename from cmd/ctl/cmd.go rename to cmd/ctl/cmd/cmd.go index 061de772a..3995ad12f 100644 --- a/cmd/ctl/cmd.go +++ b/cmd/ctl/cmd/cmd.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package main +package cmd import ( "io" diff --git a/cmd/ctl/main.go b/cmd/ctl/main.go index 9c43fc508..922c6d9f7 100644 --- a/cmd/ctl/main.go +++ b/cmd/ctl/main.go @@ -21,12 +21,13 @@ import ( "fmt" "os" - "github.com/jetstack/cert-manager/pkg/util/cmd" + ctlcmd "github.com/jetstack/cert-manager/cmd/ctl/cmd" + utilcmd "github.com/jetstack/cert-manager/pkg/util/cmd" ) func main() { - stopCh := cmd.SetupSignalHandler() - cmd := NewCertManagerCtlCommand(os.Stdin, os.Stdout, os.Stderr, stopCh) + stopCh := utilcmd.SetupSignalHandler() + cmd := ctlcmd.NewCertManagerCtlCommand(os.Stdin, os.Stdout, os.Stderr, stopCh) cmd.Flags().AddGoFlagSet(flag.CommandLine) flag.CommandLine.Parse([]string{}) diff --git a/go.mod b/go.mod index 4dbe94832..8ef77e337 100644 --- a/go.mod +++ b/go.mod @@ -27,6 +27,7 @@ require ( github.com/kr/pretty v0.1.0 github.com/mattbaird/jsonpatch v0.0.0-20171005235357-81af80346b1a github.com/miekg/dns v0.0.0-20170721150254-0f3adef2e220 + github.com/mitchellh/go-homedir v1.1.0 github.com/munnerz/crd-schema-fuzz v1.0.0 github.com/onsi/ginkgo v1.11.0 github.com/onsi/gomega v1.8.1 diff --git a/go.sum b/go.sum index 01da610dd..bca80e8c9 100644 --- a/go.sum +++ b/go.sum @@ -77,6 +77,7 @@ github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea h1:n2Ltr3SrfQlf/9nOna1D github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpu/goacmedns v0.0.0-20180701200144-565ecf2a84df h1:jgozwE/yDKNdM4QjlS1OOp4QEWKof/9xeWrEVo2iQCg= github.com/cpu/goacmedns v0.0.0-20180701200144-565ecf2a84df/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMElOWxok= +github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= diff --git a/hack/BUILD.bazel b/hack/BUILD.bazel index 56a859796..f599e8424 100644 --- a/hack/BUILD.bazel +++ b/hack/BUILD.bazel @@ -276,6 +276,7 @@ filegroup( "//hack/bin:all-srcs", "//hack/boilerplate:all-srcs", "//hack/build:all-srcs", + "//hack/cobra:all-srcs", "//hack/filter-crd:all-srcs", ], tags = ["automanaged"], diff --git a/hack/cobra/BUILD.bazel b/hack/cobra/BUILD.bazel new file mode 100644 index 000000000..d1756df40 --- /dev/null +++ b/hack/cobra/BUILD.bazel @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +go_library( + name = "go_default_library", + srcs = ["main.go"], + importpath = "github.com/jetstack/cert-manager/hack/cobra", + visibility = ["//visibility:private"], + deps = [ + "//cmd/cainjector/cmd:go_default_library", + "//cmd/controller/cmd:go_default_library", + "//cmd/ctl/cmd:go_default_library", + "@com_github_mitchellh_go_homedir//:go_default_library", + "@com_github_spf13_cobra//:go_default_library", + "@com_github_spf13_cobra//doc:go_default_library", + "@com_github_spf13_pflag//:go_default_library", + ], +) + +go_binary( + name = "cobra", + embed = [":go_default_library"], + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/hack/cobra/main.go b/hack/cobra/main.go new file mode 100644 index 000000000..2b7b6bc1c --- /dev/null +++ b/hack/cobra/main.go @@ -0,0 +1,81 @@ +/* +Copyright 2020 The Jetstack cert-manager contributors. + +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 ( + "errors" + "fmt" + "os" + "path/filepath" + + "github.com/mitchellh/go-homedir" + "github.com/spf13/cobra" + "github.com/spf13/cobra/doc" + "github.com/spf13/pflag" + + cainjcmd "github.com/jetstack/cert-manager/cmd/cainjector/cmd" + controllercmd "github.com/jetstack/cert-manager/cmd/controller/cmd" + ctlcmd "github.com/jetstack/cert-manager/cmd/ctl/cmd" +) + +func main() { + args := os.Args + if len(args) != 2 { + must(errors.New("expecting single output directory argument")) + } + + // remove all global flags that are imported in + pflag.CommandLine = nil + + root, err := homedir.Expand(args[1]) + must(err) + + must(ensureDirectory(root)) + + for _, c := range []*cobra.Command{ + cainjcmd.NewCommandStartInjectorController(nil, nil, nil), + controllercmd.NewCommandStartCertManagerController(nil), + ctlcmd.NewCertManagerCtlCommand(nil, nil, nil, nil), + } { + dir := filepath.Join(root, c.Use) + must(ensureDirectory(dir)) + must(doc.GenMarkdownTree(c, dir)) + } +} + +func ensureDirectory(dir string) error { + s, err := os.Stat(dir) + if err != nil { + if os.IsNotExist(err) { + return os.Mkdir(dir, os.FileMode(0755)) + } + return err + } + + if !s.IsDir() { + return fmt.Errorf("path it not directory: %s", dir) + } + + return nil +} + +func must(err error) { + if err != nil { + fmt.Fprintf(os.Stderr, "error: %s\n", err) + os.Exit(1) + } +}