github.com/docker/compose-on-kubernetes@v0.5.0/internal/convert/daemon-set_test.go (about) 1 package convert 2 3 import ( 4 "testing" 5 6 "github.com/docker/compose-on-kubernetes/internal/stackresources" 7 . "github.com/docker/compose-on-kubernetes/internal/test/builders" 8 "github.com/stretchr/testify/assert" 9 appsv1 "k8s.io/api/apps/v1" 10 apiv1 "k8s.io/api/core/v1" 11 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 12 ) 13 14 func TestToDaemonSet(t *testing.T) { 15 s := Stack("demo", WithNamespace("test"), 16 WithService("redis", 17 Image("redis:alpine"), 18 Deploy(ModeGlobal), 19 ), 20 ) 21 stack, err := StackToStack(*s, loadBalancerServiceStrategy{}, stackresources.EmptyStackState) 22 assert.NoError(t, err) 23 daemonSet := stack.Daemonsets["test/redis"] 24 25 expectedLabels := map[string]string{ 26 "com.docker.stack.namespace": "demo", 27 "com.docker.service.name": "redis", 28 "com.docker.service.id": "demo-redis", 29 } 30 31 expectedDaemonSet := appsv1.DaemonSet{ 32 ObjectMeta: metav1.ObjectMeta{ 33 Name: "redis", 34 Labels: expectedLabels, 35 Namespace: "test", 36 Annotations: expectedAnnotationsOnCreate, 37 }, 38 Spec: appsv1.DaemonSetSpec{ 39 Selector: &metav1.LabelSelector{ 40 MatchLabels: expectedLabels, 41 }, 42 Template: apiv1.PodTemplateSpec{ 43 ObjectMeta: metav1.ObjectMeta{ 44 Labels: expectedLabels, 45 }, 46 Spec: apiv1.PodSpec{ 47 Containers: []apiv1.Container{ 48 { 49 Name: "redis", 50 Image: "redis:alpine", 51 ImagePullPolicy: apiv1.PullIfNotPresent, 52 }, 53 }, 54 Affinity: makeExpectedAffinity( 55 kv(kubernetesOs, "linux"), 56 kv(kubernetesArch, "amd64"), 57 ), 58 }, 59 }, 60 }, 61 } 62 63 assert.Equal(t, expectedDaemonSet, daemonSet) 64 }