@@ -23,6 +23,7 @@ import (
2323 "github.com/easysoft/qcadmin/internal/pkg/util/log/survey"
2424
2525 qcexec "github.com/easysoft/qcadmin/internal/pkg/util/exec"
26+ kubeerr "k8s.io/apimachinery/pkg/api/errors"
2627 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2728)
2829
@@ -93,7 +94,7 @@ func local(f factory.Factory) *cobra.Command {
9394 logpkg .Errorf ("upgrade install local storage failed: %s" , string (output ))
9495 return err
9596 }
96- logpkg .Infof ("install local storage class %s (%s) success" , color .SGreen ("q-local" ), color .SGreen (path ))
97+ logpkg .Infof ("install local storage class %s (%s) success" , color .SGreen (common . DefaultLocalStorageClass ), color .SGreen (path ))
9798 return nil
9899 },
99100 }
@@ -102,13 +103,23 @@ func local(f factory.Factory) *cobra.Command {
102103}
103104
104105func nfs (f factory.Factory ) * cobra.Command {
105- var ip , path , name string
106+ var ip , path string
106107 logpkg := f .GetLog ()
107108 cmd := & cobra.Command {
108109 Use : "nfs" ,
109110 Short : "deploy nfs storage" ,
110111 Example : nfsExample ,
111112 PreRunE : func (cmd * cobra.Command , args []string ) error {
113+ kclient , _ := k8s .NewSimpleClient ()
114+ _ , err := kclient .GetNamespace (context .TODO (), common .DefaultStorageNamespace , metav1.GetOptions {})
115+ if err != nil {
116+ if ! kubeerr .IsNotFound (err ) {
117+ return err
118+ }
119+ if _ , err := kclient .CreateNamespace (context .TODO (), common .DefaultStorageNamespace , metav1.CreateOptions {}); err != nil && kubeerr .IsAlreadyExists (err ) {
120+ return err
121+ }
122+ }
112123 if len (ip ) == 0 && len (path ) == 0 {
113124 an , err := logpkg .Question (& survey.QuestionOptions {
114125 Question : "nfs server ip is empty, install local nfs" ,
@@ -139,23 +150,22 @@ func nfs(f factory.Factory) *cobra.Command {
139150 return errors .Errorf ("nfs server ip or path is empty" )
140151 },
141152 RunE : func (cmd * cobra.Command , args []string ) error {
142- // TODO check install repo exist
143- if err := qcexec .Command (os .Args [0 ], "experimental" , "helm" , "repo-init" ).Run (); err != nil {
144- logpkg .Warnf ("check helm repo failed: %v" , err )
153+ if err := qcexec .CommandRun ("bash" , "-c" , fmt .Sprintf ("%s %s %s" , common .GetCustomFile ("hack/manifests/storage/nfs.sh" ), ip , path )); err != nil {
154+ return errors .Errorf ("precheck nfs storage failed, reason: %v" , err )
145155 }
146- helmargs := []string {"experimental" , "helm" , "upgrade" , "--name" , name , "--repo" , common .DefaultHelmRepoName , "--chart" , "nfs-subdir-external-provisioner" , "--namespace" , common .DefaultStorageNamespace , "--set" , "nfs.server=" + ip , "--set" , "nfs.path=" + path , "--set" , "storageClass.name=" + name }
147- output , err := qcexec .Command (os .Args [0 ], helmargs ... ).CombinedOutput ()
156+ yamlfile := common .GetCustomFile ("hack/manifests/storage/nfs.deploy.yaml" )
157+ kubeargs := []string {"experimental" , "kubectl" , "apply" , "-f" , yamlfile , "--namespace" , common .DefaultStorageNamespace }
158+ output , err := qcexec .Command (os .Args [0 ], kubeargs ... ).CombinedOutput ()
148159 if err != nil {
149- logpkg .Errorf ("upgrade install nfs failed: %s" , string (output ))
160+ logpkg .Errorf ("upgrade install nfs storage failed: %s" , string (output ))
150161 return err
151162 }
152- logpkg .Infof ("install nfs storage class %s (%s:%s) success" , color .SGreen (name ), color .SGreen (ip ), color .SGreen (path ))
163+ logpkg .Infof ("install nfs storage class %s (%s:%s) success" , color .SGreen (common . DefaultNFSStorageClass ), color .SGreen (ip ), color .SGreen (path ))
153164 return nil
154165 },
155166 }
156167 cmd .Flags ().StringVar (& ip , "ip" , os .Getenv ("NFS_SERVER" ), "cloud cfs/nas ip" )
157168 cmd .Flags ().StringVar (& path , "path" , os .Getenv ("NFS_PATH" ), "cloud cfs/nas path" )
158- cmd .Flags ().StringVar (& name , "name" , "q-nfs" , "storage class name" )
159169 return cmd
160170}
161171
0 commit comments