@@ -120,6 +120,11 @@ func (u *venonaPlugin) Upgrade(opt *UpgradeOptions, v Values) (Values, error) {
120120 // avoid it till patch fully implemented
121121 var skipUpgradeFor = map [string ]interface {}{
122122 "service-account.venona.yaml" : nil ,
123+ "deployment.venona.yaml" : nil ,
124+ }
125+
126+ var deletePriorUpgrade = map [string ]interface {}{
127+ "deployment.venona.yaml" : nil ,
123128 }
124129
125130 var err error
@@ -147,6 +152,37 @@ func (u *venonaPlugin) Upgrade(opt *UpgradeOptions, v Values) (Values, error) {
147152 }
148153
149154 for fileName , local := range kubeObjects {
155+ if _ , ok := deletePriorUpgrade [fileName ]; ok {
156+ u .logger .Debug (fmt .Sprintf ("Deleting previous deplopyment of %s" , fileName ))
157+ delOpt := & deleteOptions {
158+ logger : u .logger ,
159+ templates : templates .TemplatesMap (),
160+ templateValues : v ,
161+ kubeClientSet : kubeClientset ,
162+ namespace : opt .ClusterNamespace ,
163+ matchPattern : fileName ,
164+ operatorType : VenonaPluginType ,
165+ }
166+ err := delete (delOpt )
167+ if err != nil {
168+ return nil , err
169+ }
170+ installOpt := & installOptions {
171+ logger : u .logger ,
172+ templates : templates .TemplatesMap (),
173+ templateValues : v ,
174+ kubeClientSet : kubeClientset ,
175+ namespace : opt .ClusterNamespace ,
176+ matchPattern : fileName ,
177+ dryRun : opt .DryRun ,
178+ operatorType : VenonaPluginType ,
179+ }
180+ err = install (installOpt )
181+ if err != nil {
182+ return nil , err
183+ }
184+ }
185+
150186 if _ , ok := skipUpgradeFor [fileName ]; ok {
151187 u .logger .Debug (fmt .Sprintf ("Skipping upgrade of %s: should be ignored" , fileName ))
152188 continue
0 commit comments