2017-11-18 12:51:28 +00:00
|
|
|
package addons
|
|
|
|
|
2018-07-13 21:48:15 +00:00
|
|
|
import (
|
|
|
|
"fmt"
|
2019-08-19 17:53:15 +00:00
|
|
|
"k8s.io/client-go/transport"
|
2018-07-13 21:48:15 +00:00
|
|
|
"strconv"
|
|
|
|
|
|
|
|
"github.com/rancher/rke/k8s"
|
|
|
|
"github.com/rancher/rke/templates"
|
2020-03-20 19:33:10 +00:00
|
|
|
"github.com/sirupsen/logrus"
|
2018-07-13 21:48:15 +00:00
|
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
|
|
)
|
2017-12-16 03:37:45 +00:00
|
|
|
|
2018-07-12 12:26:04 +00:00
|
|
|
func GetAddonsExecuteJob(addonName, nodeName, image string) (string, error) {
|
2018-07-13 21:48:15 +00:00
|
|
|
return getAddonJob(addonName, nodeName, image, false)
|
|
|
|
}
|
|
|
|
|
|
|
|
func GetAddonsDeleteJob(addonName, nodeName, image string) (string, error) {
|
|
|
|
return getAddonJob(addonName, nodeName, image, true)
|
|
|
|
}
|
|
|
|
|
|
|
|
func getAddonJob(addonName, nodeName, image string, isDelete bool) (string, error) {
|
2017-12-16 03:37:45 +00:00
|
|
|
jobConfig := map[string]string{
|
|
|
|
"AddonName": addonName,
|
|
|
|
"NodeName": nodeName,
|
|
|
|
"Image": image,
|
2018-07-13 21:48:15 +00:00
|
|
|
"DeleteJob": strconv.FormatBool(isDelete),
|
|
|
|
}
|
2020-03-20 19:33:10 +00:00
|
|
|
template, err := templates.CompileTemplateFromMap(templates.AddonJobTemplate, jobConfig)
|
|
|
|
logrus.Tracef("template for [%s] is: [%s]", addonName, template)
|
|
|
|
return template, err
|
2018-07-13 21:48:15 +00:00
|
|
|
}
|
|
|
|
|
2019-08-19 17:53:15 +00:00
|
|
|
func AddonJobExists(addonJobName, kubeConfigPath string, k8sWrapTransport transport.WrapperFunc) (bool, error) {
|
2018-07-13 21:48:15 +00:00
|
|
|
k8sClient, err := k8s.NewClient(kubeConfigPath, k8sWrapTransport)
|
|
|
|
if err != nil {
|
|
|
|
return false, err
|
|
|
|
}
|
|
|
|
addonJobStatus, err := k8s.GetK8sJobStatus(k8sClient, addonJobName, metav1.NamespaceSystem)
|
|
|
|
if err != nil {
|
|
|
|
return false, fmt.Errorf("Failed to get job [%s] status: %v", addonJobName, err)
|
2017-12-16 03:37:45 +00:00
|
|
|
}
|
2018-07-13 21:48:15 +00:00
|
|
|
return addonJobStatus.Created, nil
|
2017-11-18 12:51:28 +00:00
|
|
|
}
|