diff --git a/cmd/climc/shell/k8s/secret.go b/cmd/climc/shell/k8s/secret.go index a0d95e31fe..7f63e680f5 100644 --- a/cmd/climc/shell/k8s/secret.go +++ b/cmd/climc/shell/k8s/secret.go @@ -40,24 +40,23 @@ func initSecret() { }) secretCmd.AddR(listCmd) - registryCmd := initK8sNamespaceResource("registrysecret", k8s.RegistrySecrets) - createCmd := NewCommand( + registryCmd := NewCmdNameFactory("secret-registry") + registryCreateCmd := NewCommand( &o.RegistrySecretCreateOptions{}, - registryCmd.CommandNameFactory("create"), - "Create docker registry secret resource", + registryCmd.Do("create"), + "Create docker registry secret secret", func(s *mcclient.ClientSession, args *o.RegistrySecretCreateOptions) error { params, err := args.Params() if err != nil { return err } - ret, err := k8s.RegistrySecrets.Create(s, params) + ret, err := k8s.Secrets.Create(s, params) if err != nil { return err } printObject(ret) return nil }) - registryCmd.AddR(createCmd) cephCSICmd := NewCmdNameFactory("secret-ceph-csi") cephCSICreateCmd := NewCommand( @@ -76,5 +75,5 @@ func initSecret() { printObject(ret) return nil }) - secretCmd.AddR(cephCSICreateCmd) + secretCmd.AddR(cephCSICreateCmd, registryCreateCmd) } diff --git a/pkg/mcclient/modules/k8s/secret.go b/pkg/mcclient/modules/k8s/secret.go index 6353a53e5a..df491a194e 100644 --- a/pkg/mcclient/modules/k8s/secret.go +++ b/pkg/mcclient/modules/k8s/secret.go @@ -21,8 +21,7 @@ import ( ) var ( - Secrets *SecretManager - RegistrySecrets *RegistrySecretManager + Secrets *SecretManager ) type SecretManager struct { @@ -38,13 +37,7 @@ func init() { NewNamespaceResourceManager("secret", "secrets", NewNamespaceCols("Type"), NewColumns())} - RegistrySecrets = &RegistrySecretManager{ - SecretManager: &SecretManager{ - NewNamespaceResourceManager("registrysecret", "registrysecrets", NewNamespaceCols(), NewColumns())}, - } - modules.Register(Secrets) - modules.Register(RegistrySecrets) } func (m SecretManager) GetType(obj jsonutils.JSONObject) interface{} { diff --git a/pkg/mcclient/options/k8s/secret.go b/pkg/mcclient/options/k8s/secret.go index 378a834c28..1bed34a113 100644 --- a/pkg/mcclient/options/k8s/secret.go +++ b/pkg/mcclient/options/k8s/secret.go @@ -32,8 +32,7 @@ func (o SecretListOptions) Params() *jsonutils.JSONDict { } type RegistrySecretCreateOptions struct { - NamespaceWithClusterOptions - NAME string `help:"Name of secret"` + SecretCreateOptions Server string `help:"Docker registry server, e.g. 'https://index.docker.io/v1/'" required:"true"` User string `help:"Docker registry user" required:"true"` Password string `help:"Docker registry password" required:"true"` @@ -41,15 +40,19 @@ type RegistrySecretCreateOptions struct { } func (o RegistrySecretCreateOptions) Params() (*jsonutils.JSONDict, error) { - params := o.NamespaceWithClusterOptions.Params() - params.Add(jsonutils.NewString(o.NAME), "name") + input, err := o.SecretCreateOptions.Params("kubernetes.io/dockerconfigjson") + if err != nil { + return nil, err + } + params := jsonutils.NewDict() params.Add(jsonutils.NewString(o.Server), "server") params.Add(jsonutils.NewString(o.User), "user") params.Add(jsonutils.NewString(o.Password), "password") if o.Email != "" { params.Add(jsonutils.NewString(o.Email), "email") } - return params, nil + input.Add(params, "dockerConfigJson") + return input, nil } type SecretCreateOptions struct {