mirror of
https://github.com/rancher/rke.git
synced 2025-04-27 11:21:08 +00:00
Remove user addons when not present
This commit is contained in:
parent
591088c681
commit
d91e7efd2d
@ -7,6 +7,7 @@ import (
|
||||
|
||||
"github.com/rancher/rke/k8s"
|
||||
"github.com/rancher/rke/templates"
|
||||
"github.com/sirupsen/logrus"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
@ -25,7 +26,9 @@ func getAddonJob(addonName, nodeName, image string, isDelete bool) (string, erro
|
||||
"Image": image,
|
||||
"DeleteJob": strconv.FormatBool(isDelete),
|
||||
}
|
||||
return templates.CompileTemplateFromMap(templates.AddonJobTemplate, jobConfig)
|
||||
template, err := templates.CompileTemplateFromMap(templates.AddonJobTemplate, jobConfig)
|
||||
logrus.Tracef("template for [%s] is: [%s]", addonName, template)
|
||||
return template, err
|
||||
}
|
||||
|
||||
func AddonJobExists(addonJobName, kubeConfigPath string, k8sWrapTransport transport.WrapperFunc) (bool, error) {
|
||||
|
@ -33,6 +33,8 @@ const (
|
||||
|
||||
IngressAddonJobName = "rke-ingress-controller-deploy-job"
|
||||
MetricsServerAddonJobName = "rke-metrics-addon-deploy-job"
|
||||
UserAddonJobName = "rke-user-addon-deploy-job"
|
||||
UserAddonIncludeJobName = "rke-user-includes-addons-deploy-job"
|
||||
MetricsServerAddonResourceName = "rke-metrics-addon"
|
||||
NginxIngressAddonAppName = "ingress-nginx"
|
||||
KubeDNSAddonAppName = "kube-dns"
|
||||
@ -156,11 +158,35 @@ func (c *Cluster) deployUserAddOns(ctx context.Context) error {
|
||||
if err := c.doAddonDeploy(ctx, c.Addons, UserAddonResourceName, false); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
addonJobExists, err := addons.AddonJobExists(UserAddonJobName, c.LocalKubeConfigPath, c.K8sWrapTransport)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
if addonJobExists {
|
||||
log.Infof(ctx, "[addons] Removing user addons")
|
||||
if err := c.doAddonDelete(ctx, UserAddonResourceName, false); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
log.Infof(ctx, "[addons] User addons removed successfully")
|
||||
}
|
||||
}
|
||||
if len(c.AddonsInclude) > 0 {
|
||||
if err := c.deployAddonsInclude(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
addonJobExists, err := addons.AddonJobExists(UserAddonIncludeJobName, c.LocalKubeConfigPath, c.K8sWrapTransport)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
if addonJobExists {
|
||||
if err := c.doAddonDelete(ctx, UserAddonsIncludeResourceName, false); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
if c.Addons == "" && len(c.AddonsInclude) == 0 {
|
||||
log.Infof(ctx, "[addons] no user addons defined")
|
||||
@ -469,7 +495,6 @@ func (c *Cluster) doAddonDelete(ctx context.Context, resourceName string, isCrit
|
||||
if err := k8s.DeleteK8sSystemJob(deleteJob, k8sClient, c.AddonJobTimeout); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ spec:
|
||||
image: {{$image}}
|
||||
{{- if eq .DeleteJob "true" }}
|
||||
command: ["/bin/sh"]
|
||||
args: ["-c" ,"kubectl get --ignore-not-found=true -f /etc/config/{{$addonName}}.yaml -o name | xargs kubectl delete --ignore-not-found=true"]
|
||||
args: ["-c" ,"kubectl get --ignore-not-found=true -f /etc/config/{{$addonName}}.yaml -o custom-columns=NAME:.metadata.name,NAMESPACE:.metadata.namespace,KIND:.kind --no-headers | while read name namespace kind; do if [ "x${namespace}" = "x<none>" ]; then echo kubectl delete $kind $name; else echo kubectl -n $namespace delete $kind $name; fi; done"]
|
||||
{{- else }}
|
||||
command: [ "kubectl", "apply", "-f" , "/etc/config/{{$addonName}}.yaml"]
|
||||
{{- end }}
|
||||
|
Loading…
Reference in New Issue
Block a user