-
Notifications
You must be signed in to change notification settings - Fork 0
/
sf.go
73 lines (59 loc) · 2.09 KB
/
sf.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*
Copyright © 2023 Red Hat
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 cmd
/*
"sf" subcommand relates to managing a Software Factory resource.
*/
import (
"errors"
"os"
bootstraptenantconfigrepo "github.com/softwarefactory-project/sf-operator/cli/cmd/bootstrap-tenant-config-repo"
"github.com/spf13/cobra"
ctrl "sigs.k8s.io/controller-runtime"
)
func sfConfigureCmd(kmd *cobra.Command, args []string) {
if args[0] == "TLS" {
TLSConfigureCmd(kmd, args)
} else {
ctrl.Log.Error(errors.New("unknown argument"), args[0]+" is not a supported target")
os.Exit(1)
}
}
func MkSFCmd() *cobra.Command {
var (
CAPath string
CertificatePath string
KeyPath string
sfCmd = &cobra.Command{
Use: "SF",
Short: "subcommands related to managing a Software Factory resource",
Long: `Use these subcommands to perform management tasks at the resource level.`,
}
configureCmd = &cobra.Command{
Use: "configure {TLS}",
Short: "configure {TLS}",
Long: "Configure a SF resource. The resource can be the TLS certificates",
ValidArgs: []string{"TLS"},
Run: sfConfigureCmd,
}
)
configureCmd.Flags().StringVar(&CAPath, "CA", "", "path to the PEM-encoded Certificate Authority file")
configureCmd.Flags().StringVar(&CertificatePath, "cert", "", "path to the domain certificate file")
configureCmd.Flags().StringVar(&KeyPath, "key", "", "path to the private key file")
sfCmd.AddCommand(MkBackupCmd())
sfCmd.AddCommand(MkRestoreCmd())
sfCmd.AddCommand(configureCmd)
sfCmd.AddCommand(MkWipeCmd())
sfCmd.AddCommand(bootstraptenantconfigrepo.MkBootstrapCmd())
return sfCmd
}