1
0
mirror of https://github.com/rancher/rke.git synced 2025-09-16 15:10:12 +00:00

update user addon logic to delete job, not addons

don't delete all user resources, rerunning
job will make sure k8s apply and ensure user
config is redeployed after system addons
This commit is contained in:
Kinara Shah
2022-09-11 17:21:29 -07:00
parent 3f94d3905b
commit 92d9fc9c75
2 changed files with 17 additions and 21 deletions

View File

@@ -186,18 +186,7 @@ func (c *Cluster) deployK8sAddOns(ctx context.Context, data map[string]interface
func (c *Cluster) deployUserAddOns(ctx context.Context) error {
log.Infof(ctx, "[addons] Setting up user addons")
if c.Addons != "" {
addonJobExists, err := addons.AddonJobExists(UserAddonJobName, c.LocalKubeConfigPath, c.K8sWrapTransport)
if err != nil {
return err
}
if addonJobExists {
log.Infof(ctx, "[addons] Removing old user addons")
if err := c.doAddonDelete(ctx, UserAddonResourceName, false); err != nil {
return err
}
log.Infof(ctx, "[addons] Old user addons removed successfully")
}
// deletes existing job if resource name is rke-user-addon and redeploy user addons
if err := c.doAddonDeploy(ctx, c.Addons, UserAddonResourceName, false); err != nil {
return err
}
@@ -216,6 +205,7 @@ func (c *Cluster) deployUserAddOns(ctx context.Context) error {
}
}
if len(c.AddonsInclude) > 0 {
// deletes existing job if resource name is rke-user-includes-addons and redeploy user addons
if err := c.deployAddonsInclude(ctx); err != nil {
return err
}
@@ -512,7 +502,7 @@ func (c *Cluster) doAddonDeploy(ctx context.Context, addonYaml, resourceName str
return &addonError{fmt.Sprintf("Failed to generate addon execute job: %v", err), isCritical}
}
if err = c.ApplySystemAddonExecuteJob(addonJob, addonUpdated); err != nil {
if err = c.ApplySystemAddonExecuteJob(addonJob, resourceName, addonUpdated); err != nil {
return &addonError{fmt.Sprintf("%v", err), isCritical}
}
return nil
@@ -531,7 +521,7 @@ func (c *Cluster) doAddonDelete(ctx context.Context, resourceName string, isCrit
if err != nil {
return &addonError{fmt.Sprintf("Failed to generate addon delete job: %v", err), isCritical}
}
if err := k8s.ApplyK8sSystemJob(deleteJob, c.LocalKubeConfigPath, c.K8sWrapTransport, c.AddonJobTimeout*2, false); err != nil {
if err := k8s.ApplyK8sSystemJob(deleteJob, c.LocalKubeConfigPath, c.K8sWrapTransport, c.AddonJobTimeout*2, resourceName, false); err != nil {
return &addonError{fmt.Sprintf("%v", err), isCritical}
}
// At this point, the addon should be deleted. We need to clean up by deleting the deploy and delete jobs.
@@ -575,8 +565,8 @@ func (c *Cluster) StoreAddonConfigMap(ctx context.Context, addonYaml string, add
}
}
func (c *Cluster) ApplySystemAddonExecuteJob(addonJob string, addonUpdated bool) error {
return k8s.ApplyK8sSystemJob(addonJob, c.LocalKubeConfigPath, c.K8sWrapTransport, c.AddonJobTimeout, addonUpdated)
func (c *Cluster) ApplySystemAddonExecuteJob(addonJob, resourceName string, addonUpdated bool) error {
return k8s.ApplyK8sSystemJob(addonJob, c.LocalKubeConfigPath, c.K8sWrapTransport, c.AddonJobTimeout, resourceName, addonUpdated)
}
func (c *Cluster) deployIngress(ctx context.Context, data map[string]interface{}) error {