Skip to content

Commit

Permalink
chore(cmd/driver): retry logic for k8s configmap Update on conflict.
Browse files Browse the repository at this point in the history
Signed-off-by: Federico Di Pierro <[email protected]>
  • Loading branch information
FedeDP authored and poiana committed May 16, 2024
1 parent d3f4b8c commit 8ec7466
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions cmd/driver/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import (
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
"k8s.io/client-go/util/retry"

"github.com/falcosecurity/falcoctl/internal/config"
"github.com/falcosecurity/falcoctl/internal/utils"
Expand Down Expand Up @@ -235,10 +236,16 @@ func (o *driverConfigOptions) replaceDriverTypeInK8SConfigMap(ctx context.Contex
continue
}
configMap.Data["falco.yaml"] = string(falcoCfgBytes)
o.Printer.Logger.Info("Updating configmap",
o.Printer.Logger.Args("configMap", configMap.Name))
if _, err = cl.CoreV1().ConfigMaps(configMap.Namespace).Update(
ctx, configMap, metav1.UpdateOptions{}); err != nil {
attempt := 0
err = retry.RetryOnConflict(retry.DefaultRetry, func() error {
o.Printer.Logger.Info("Updating configmap",
o.Printer.Logger.Args("configMap", configMap.Name, "attempt", attempt))
_, err := cl.CoreV1().ConfigMaps(configMap.Namespace).Update(
ctx, configMap, metav1.UpdateOptions{})
attempt++
return err
})
if err != nil {
return err
}
}
Expand Down

0 comments on commit 8ec7466

Please sign in to comment.