@@ -70,7 +70,11 @@ func (provisioner *KopsProvisioner) Teardown() {
7070 provisioner .logger .Debug ("Performing kops provisioner cleanup" )
7171 for name , kops := range provisioner .kopsCache {
7272 provisioner .logger .Debugf ("Cleaning up kops cache for %s" , name )
73- kops .Close ()
73+ defer func () {
74+ if err := kops .Close (); err != nil {
75+ log .WithError (err ).Error ("failed to close kops" )
76+ }
77+ }()
7478 }
7579}
7680
@@ -168,8 +172,11 @@ func (provisioner *KopsProvisioner) invalidateCachedKopsClient(name string, logg
168172 }
169173
170174 logger .Debugf ("Invalidating kops client cache for %s and cleaning up %s" , name , kopsClient .GetOutputDirectory ())
171- kopsClient .Close ()
172- delete (provisioner .kopsCache , name )
175+ defer func () {
176+ if err := kopsClient .Close (); err != nil {
177+ log .WithError (err ).Error ("failed to close kops client" )
178+ }
179+ }()
173180
174181 return nil
175182}
@@ -181,8 +188,11 @@ func (provisioner *KopsProvisioner) invalidateCachedKopsClientOnError(err error,
181188 if err == nil {
182189 return
183190 }
191+ err = provisioner .invalidateCachedKopsClient (name , logger )
192+ if err != nil {
193+ logger .WithError (err ).Errorf ("failed to invalidate cached kops client for %s" , name )
194+ }
184195
185- provisioner .invalidateCachedKopsClient (name , logger )
186196}
187197
188198func (provisioner * KopsProvisioner ) k8sClient (clusterName string , logger log.FieldLogger ) (* k8s.KubeClient , error ) {
@@ -255,7 +265,11 @@ func (provisioner *KopsProvisioner) CreateCluster(cluster *model.Cluster) error
255265 if err != nil {
256266 return err
257267 }
258- defer kops .Close ()
268+ defer func () {
269+ if err := kops .Close (); err != nil {
270+ log .WithError (err ).Error ("failed to close kops client" )
271+ }
272+ }()
259273
260274 var clusterResources aws.ClusterResources
261275 if kopsMetadata .ChangeRequest .VPC != "" && provisioner .params .UseExistingAWSResources {
@@ -294,7 +308,11 @@ func (provisioner *KopsProvisioner) CreateCluster(cluster *model.Cluster) error
294308 if err != nil {
295309 return err
296310 }
297- defer terraformClient .Close ()
311+ defer func () {
312+ if err := terraformClient .Close (); err != nil {
313+ log .WithError (err ).Error ("failed to close terraform client" )
314+ }
315+ }()
298316
299317 err = terraformClient .Init (kopsMetadata .Name )
300318 if err != nil {
@@ -422,7 +440,9 @@ func (provisioner *KopsProvisioner) CreateCluster(cluster *model.Cluster) error
422440 if err != nil {
423441 // Run non-silent validate one more time to log final cluster state
424442 // and return original timeout error.
425- kops .ValidateCluster (kopsMetadata .Name , false )
443+ if validateErr := kops .ValidateCluster (kopsMetadata .Name , false ); validateErr != nil {
444+ log .WithError (validateErr ).Error ("failed to validate kops cluster" )
445+ }
426446 return err
427447 }
428448
@@ -433,8 +453,11 @@ func (provisioner *KopsProvisioner) CreateCluster(cluster *model.Cluster) error
433453 return err
434454 }
435455
436- defer gitClient .Close (argocdRepoTempDir , provisioner .logger )
437-
456+ defer func () {
457+ if err := gitClient .Close (argocdRepoTempDir , provisioner .logger ); err != nil {
458+ log .WithError (err ).Error ("failed to close git client" )
459+ }
460+ }()
438461 ugh , err := utility .NewUtilityGroupHandle (provisioner .params .AllowCIDRRangeList , kops .GetKubeConfigPath (), argocdRepoTempDir , cluster , provisioner .awsClient , gitClient , argocdClient , logger )
439462 if err != nil {
440463 return err
@@ -480,7 +503,11 @@ func (provisioner *KopsProvisioner) ProvisionCluster(cluster *model.Cluster) err
480503 return err
481504 }
482505
483- defer gitClient .Close (argocdRepoTempDir , provisioner .logger )
506+ defer func () {
507+ if err := gitClient .Close (argocdRepoTempDir , provisioner .logger ); err != nil {
508+ log .WithError (err ).Error ("failed to close git client" )
509+ }
510+ }()
484511
485512 logger .Info ("Provisioning cluster" )
486513 kopsClient , err := provisioner .getCachedKopsClient (cluster .ProvisionerMetadataKops .Name , logger )
@@ -518,7 +545,11 @@ func (provisioner *KopsProvisioner) UpgradeCluster(cluster *model.Cluster) error
518545 if err != nil {
519546 return errors .Wrap (err , "failed to create kops wrapper" )
520547 }
521- defer kops .Close ()
548+ defer func () {
549+ if err := kops .Close (); err != nil {
550+ log .WithError (err ).Error ("failed to close kops client" )
551+ }
552+ }()
522553
523554 switch kopsMetadata .ChangeRequest .Version {
524555 case "" :
@@ -586,7 +617,11 @@ func (provisioner *KopsProvisioner) UpgradeCluster(cluster *model.Cluster) error
586617 if err != nil {
587618 return err
588619 }
589- defer terraformClient .Close ()
620+ defer func () {
621+ if err := terraformClient .Close (); err != nil {
622+ log .WithError (err ).Error ("failed to close terraform client" )
623+ }
624+ }()
590625
591626 err = terraformClient .Init (kopsMetadata .Name )
592627 if err != nil {
@@ -637,7 +672,9 @@ func (provisioner *KopsProvisioner) UpgradeCluster(cluster *model.Cluster) error
637672 if err != nil {
638673 // Run non-silent validate one more time to log final cluster state
639674 // and return original timeout error.
640- kops .ValidateCluster (kopsMetadata .Name , false )
675+ if validateErr := kops .ValidateCluster (kopsMetadata .Name , false ); validateErr != nil {
676+ log .WithError (validateErr ).Error ("failed to validate kops cluster" )
677+ }
641678 return err
642679 }
643680 }
@@ -707,7 +744,11 @@ func (provisioner *KopsProvisioner) ResizeCluster(cluster *model.Cluster) error
707744 if err != nil {
708745 return errors .Wrap (err , "failed to create kops wrapper" )
709746 }
710- defer kops .Close ()
747+ defer func () {
748+ if err := kops .Close (); err != nil {
749+ log .WithError (err ).Error ("failed to close kops client" )
750+ }
751+ }()
711752
712753 err = kops .UpdateCluster (kopsMetadata .Name , kops .GetOutputDirectory ())
713754 if err != nil {
@@ -723,8 +764,11 @@ func (provisioner *KopsProvisioner) ResizeCluster(cluster *model.Cluster) error
723764 if err != nil {
724765 return err
725766 }
726- defer terraformClient .Close ()
727-
767+ defer func () {
768+ if err := terraformClient .Close (); err != nil {
769+ log .WithError (err ).Error ("failed to close terraform client" )
770+ }
771+ }()
728772 err = terraformClient .Init (kopsMetadata .Name )
729773 if err != nil {
730774 return err
@@ -815,7 +859,9 @@ func (provisioner *KopsProvisioner) ResizeCluster(cluster *model.Cluster) error
815859 if err != nil {
816860 // Run non-silent validate one more time to log final cluster state
817861 // and return original timeout error.
818- kops .ValidateCluster (kopsMetadata .Name , false )
862+ if validateErr := kops .ValidateCluster (kopsMetadata .Name , false ); validateErr != nil {
863+ log .WithError (validateErr ).Error ("failed to validate kops cluster" )
864+ }
819865 return err
820866 }
821867 }
@@ -834,7 +880,11 @@ func (provisioner *KopsProvisioner) DeleteCluster(cluster *model.Cluster) (bool,
834880 return false , errors .Wrap (err , "failed to prepare argocd repo" )
835881 }
836882
837- defer gitClient .Close (argocdRepoTempDir , provisioner .logger )
883+ defer func () {
884+ if err := gitClient .Close (argocdRepoTempDir , provisioner .logger ); err != nil {
885+ log .WithError (err ).Error ("failed to close git client" )
886+ }
887+ }()
838888
839889 kopsMetadata := cluster .ProvisionerMetadataKops
840890
@@ -858,7 +908,10 @@ func (provisioner *KopsProvisioner) DeleteCluster(cluster *model.Cluster) (bool,
858908 return false , errors .Wrap (err , "failed to release cluster VPC" )
859909 }
860910
861- provisioner .invalidateCachedKopsClient (kopsMetadata .Name , logger )
911+ err = provisioner .invalidateCachedKopsClient (kopsMetadata .Name , logger )
912+ if err != nil {
913+ logger .WithError (err ).Errorf ("failed to invalidate cached kops client for %s" , kopsMetadata .Name )
914+ }
862915
863916 logger .Info ("Successfully deleted Kops cluster" )
864917
@@ -938,8 +991,11 @@ func (provisioner *KopsProvisioner) cleanupCluster(cluster *model.Cluster, tempD
938991 if err != nil {
939992 return errors .Wrap (err , "failed to create terraform wrapper" )
940993 }
941- defer terraformClient .Close ()
942-
994+ defer func () {
995+ if err := terraformClient .Close (); err != nil {
996+ log .WithError (err ).Error ("failed to close terraform client" )
997+ }
998+ }()
943999 err = terraformClient .Init (kopsMetadata .Name )
9441000 if err != nil {
9451001 return errors .Wrap (err , "failed to init terraform" )
0 commit comments