diff --git a/cmd/kndp/registry/delete.go b/cmd/kndp/registry/delete.go new file mode 100644 index 0000000..a92bd2e --- /dev/null +++ b/cmd/kndp/registry/delete.go @@ -0,0 +1,24 @@ +package registry + +import ( + "context" + + "github.com/charmbracelet/log" + "github.com/kndpio/kndp/internal/registry" + "k8s.io/client-go/kubernetes" +) + +type deleteCmd struct { + Name string `required:"" help:"Registry name."` +} + +func (c deleteCmd) Run(ctx context.Context, client *kubernetes.Clientset, logger *log.Logger) error { + reg := registry.Registry{Name: c.Name} + err := reg.Delete(ctx, client) + if err != nil { + logger.Error(err) + } else { + logger.Info("Registry was removed successfully.") + } + return nil +} diff --git a/cmd/kndp/registry/registry.go b/cmd/kndp/registry/registry.go index 9ec4b75..a95f423 100644 --- a/cmd/kndp/registry/registry.go +++ b/cmd/kndp/registry/registry.go @@ -3,4 +3,5 @@ package registry type Cmd struct { Create createCmd `cmd:"" help:"Create registry"` List listCmd `cmd:"" help:"List registries"` + Delete deleteCmd `cmd:"" help:"Delete registry"` } diff --git a/internal/registry/registry.go b/internal/registry/registry.go index 1afe3fc..cfeb80f 100644 --- a/internal/registry/registry.go +++ b/internal/registry/registry.go @@ -27,6 +27,7 @@ type RegistryConfig struct { } type Registry struct { + Name string Config RegistryConfig } @@ -107,6 +108,10 @@ func (r *Registry) Create(ctx context.Context, client *kubernetes.Clientset, con return installer.Upgrade("", release.Config) } +func (r *Registry) Delete(ctx context.Context, client *kubernetes.Clientset) error { + return secretClient(client).Delete(ctx, r.Name, v1.DeleteOptions{}) +} + func secretClient(client *kubernetes.Clientset) kv1.SecretInterface { return client.CoreV1().Secrets("default") }