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  }