Skip to content

Commit af755fd

Browse files
authored
Add delete and list command (#101)
Signed-off-by: Greg Haynes <[email protected]>
1 parent 632490d commit af755fd

File tree

6 files changed

+103
-7
lines changed

6 files changed

+103
-7
lines changed

go.mod

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@ require (
1111
github.com/go-logr/logr v1.4.1
1212
github.com/google/go-cmp v0.6.0
1313
github.com/google/go-github/v61 v61.0.0
14+
github.com/pkg/errors v0.9.1
1415
github.com/spf13/cobra v1.8.0
1516
github.com/stretchr/testify v1.9.0
17+
gotest.tools/v3 v3.5.1
1618
k8s.io/api v0.29.1
1719
k8s.io/apiextensions-apiserver v0.29.1
1820
k8s.io/apimachinery v0.29.1
@@ -47,6 +49,7 @@ require (
4749
github.com/go-errors/errors v1.4.2 // indirect
4850
github.com/go-fed/httpsig v1.1.0 // indirect
4951
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
52+
github.com/go-logr/zapr v1.3.0 // indirect
5053
github.com/go-openapi/jsonpointer v0.21.0 // indirect
5154
github.com/go-openapi/jsonreference v0.21.0 // indirect
5255
github.com/go-openapi/swag v0.23.0 // indirect
@@ -81,7 +84,6 @@ require (
8184
github.com/opencontainers/image-spec v1.1.0 // indirect
8285
github.com/pelletier/go-toml v1.9.5 // indirect
8386
github.com/pjbgf/sha1cd v0.3.0 // indirect
84-
github.com/pkg/errors v0.9.1 // indirect
8587
github.com/pmezard/go-difflib v1.0.0 // indirect
8688
github.com/prometheus/client_golang v1.18.0 // indirect
8789
github.com/prometheus/client_model v0.5.0 // indirect
@@ -94,6 +96,8 @@ require (
9496
github.com/stretchr/objx v0.5.2 // indirect
9597
github.com/xanzy/ssh-agent v0.3.3 // indirect
9698
github.com/xlab/treeprint v1.2.0 // indirect
99+
go.uber.org/multierr v1.11.0 // indirect
100+
go.uber.org/zap v1.26.0 // indirect
97101
golang.org/x/crypto v0.21.0 // indirect
98102
golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect
99103
golang.org/x/mod v0.14.0 // indirect
@@ -113,7 +117,6 @@ require (
113117
gopkg.in/warnings.v0 v0.1.2 // indirect
114118
gopkg.in/yaml.v2 v2.4.0 // indirect
115119
gopkg.in/yaml.v3 v3.0.1 // indirect
116-
gotest.tools/v3 v3.5.1 // indirect
117120
k8s.io/component-base v0.29.1 // indirect
118121
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
119122
k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect

pkg/build/build.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -225,11 +225,6 @@ func (b *Build) Run(ctx context.Context, recreateCluster bool) error {
225225
return fmt.Errorf("creating localbuild resource: %w", err)
226226
}
227227

228-
if err != nil {
229-
setupLog.Error(err, "Error creating localbuild resource")
230-
return err
231-
}
232-
233228
err = <-managerExit
234229
close(managerExit)
235230
return err

pkg/cmd/delete/root.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package delete
2+
3+
import (
4+
"flag"
5+
6+
"github.com/cnoe-io/idpbuilder/pkg/cmd/helpers"
7+
"github.com/pkg/errors"
8+
"github.com/spf13/cobra"
9+
"sigs.k8s.io/controller-runtime/pkg/log/zap"
10+
"sigs.k8s.io/kind/pkg/cluster"
11+
)
12+
13+
var (
14+
// Flags
15+
buildName string
16+
)
17+
18+
var DeleteCmd = &cobra.Command{
19+
Use: "delete",
20+
Short: "Delete an IDP cluster",
21+
Long: ``,
22+
RunE: delete,
23+
PreRunE: preDeleteE,
24+
}
25+
26+
func init() {
27+
DeleteCmd.PersistentFlags().StringVar(&buildName, "build-name", "localdev", "Name of the kind cluster to be deleted.")
28+
29+
zapfs := flag.NewFlagSet("zap", flag.ExitOnError)
30+
opts := zap.Options{
31+
Development: true,
32+
}
33+
opts.BindFlags(zapfs)
34+
DeleteCmd.Flags().AddGoFlagSet(zapfs)
35+
}
36+
37+
func preDeleteE(cmd *cobra.Command, args []string) error {
38+
return helpers.SetLogger()
39+
}
40+
41+
func delete(cmd *cobra.Command, args []string) error {
42+
detectOpt, err := cluster.DetectNodeProvider()
43+
if err != nil {
44+
return err
45+
}
46+
provider := cluster.NewProvider(detectOpt)
47+
if err := provider.Delete(buildName, ""); err != nil {
48+
return errors.Wrapf(err, "failed to delete cluster %q", buildName)
49+
}
50+
return nil
51+
}

pkg/cmd/get/clusters/clusters.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package clusters
2+
3+
import (
4+
"flag"
5+
"fmt"
6+
7+
"github.com/pkg/errors"
8+
"github.com/spf13/cobra"
9+
ctrl "sigs.k8s.io/controller-runtime"
10+
"sigs.k8s.io/controller-runtime/pkg/log/zap"
11+
"sigs.k8s.io/kind/pkg/cluster"
12+
)
13+
14+
var ClustersCmd = &cobra.Command{
15+
Use: "clusters",
16+
Short: "Get idp clusters",
17+
Long: ``,
18+
RunE: list,
19+
}
20+
21+
func init() {
22+
zapfs := flag.NewFlagSet("zap", flag.ExitOnError)
23+
opts := zap.Options{
24+
Development: true,
25+
}
26+
opts.BindFlags(zapfs)
27+
ClustersCmd.Flags().AddGoFlagSet(zapfs)
28+
29+
ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts)))
30+
}
31+
32+
func list(cmd *cobra.Command, args []string) error {
33+
provider := cluster.NewProvider(cluster.ProviderWithDocker())
34+
clusters, err := provider.List()
35+
if err != nil {
36+
return errors.Wrapf(err, "failed to list clusters")
37+
}
38+
39+
for _, cluster := range clusters {
40+
fmt.Println(cluster)
41+
}
42+
return nil
43+
}

pkg/cmd/get/root.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package get
33
import (
44
"fmt"
55

6+
"github.com/cnoe-io/idpbuilder/pkg/cmd/get/clusters"
67
"github.com/spf13/cobra"
78
)
89

@@ -19,6 +20,7 @@ var (
1920
)
2021

2122
func init() {
23+
GetCmd.AddCommand(clusters.ClustersCmd)
2224
GetCmd.AddCommand(SecretsCmd)
2325
GetCmd.PersistentFlags().StringSliceVarP(&packages, "packages", "p", []string{}, "names of packages.")
2426
GetCmd.PersistentFlags().StringVarP(&outputFormat, "output", "o", "", "Output format. json or yaml.")

pkg/cmd/root.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"os"
66

77
"github.com/cnoe-io/idpbuilder/pkg/cmd/create"
8+
"github.com/cnoe-io/idpbuilder/pkg/cmd/delete"
89
"github.com/cnoe-io/idpbuilder/pkg/cmd/get"
910
"github.com/cnoe-io/idpbuilder/pkg/cmd/helpers"
1011
"github.com/cnoe-io/idpbuilder/pkg/cmd/version"
@@ -21,6 +22,7 @@ func init() {
2122
rootCmd.PersistentFlags().StringVarP(&helpers.LogLevel, "log-level", "l", "info", helpers.LogLevelMsg)
2223
rootCmd.AddCommand(create.CreateCmd)
2324
rootCmd.AddCommand(get.GetCmd)
25+
rootCmd.AddCommand(delete.DeleteCmd)
2426
rootCmd.AddCommand(version.VersionCmd)
2527
}
2628

0 commit comments

Comments
 (0)