1
0
mirror of https://github.com/rancher/rke.git synced 2025-04-27 03:11:03 +00:00
rke/addons/addons_test.go
2018-07-17 09:49:49 -07:00

47 lines
1.2 KiB
Go

package addons
import (
"bytes"
"fmt"
"testing"
"k8s.io/api/batch/v1"
yamlutil "k8s.io/apimachinery/pkg/util/yaml"
)
const (
AddonSuffix = "-deploy-job"
FakeAddonName = "example-addon"
FakeNodeName = "node1"
FakeAddonImage = "example/example:latest"
)
func TestJobManifest(t *testing.T) {
jobYaml, err := GetAddonsExecuteJob(FakeAddonName, FakeNodeName, FakeAddonImage)
if err != nil {
t.Fatalf("Failed to get addon execute job: %v", err)
}
job := v1.Job{}
decoder := yamlutil.NewYAMLToJSONDecoder(bytes.NewReader([]byte(jobYaml)))
err = decoder.Decode(&job)
if err != nil {
t.Fatalf("Failed To decode Job yaml: %v", err)
}
assertEqual(t, job.Name, FakeAddonName+AddonSuffix,
fmt.Sprintf("Failed to verify job name [%s]", FakeAddonName+AddonSuffix))
assertEqual(t, job.Spec.Template.Spec.NodeName, FakeNodeName,
fmt.Sprintf("Failed to verify node name [%s] in the job", FakeNodeName))
assertEqual(t, job.Spec.Template.Spec.Containers[0].Image, FakeAddonImage,
fmt.Sprintf("Failed to verify container image [%s] in the job", FakeAddonImage))
}
func assertEqual(t *testing.T, a interface{}, b interface{}, message string) {
if a == b {
return
}
if len(message) == 0 {
message = fmt.Sprintf("%v != %v", a, b)
}
t.Fatal(message)
}