@@ -39,6 +39,7 @@ type slugBuildCase struct {
3939 slugBuilderImage string
4040 slugBuilderImagePullPolicy api.PullPolicy
4141 storageType string
42+ builderPodNodeSelector map [string ]string
4243}
4344
4445type dockerBuildCase struct {
@@ -52,6 +53,7 @@ type dockerBuildCase struct {
5253 dockerBuilderImage string
5354 dockerBuilderImagePullPolicy api.PullPolicy
5455 storageType string
56+ builderPodNodeSelector map [string ]string
5557}
5658
5759func TestBuildPod (t * testing.T ) {
@@ -62,15 +64,24 @@ func TestBuildPod(t *testing.T) {
6264 envSecretName := "test-build-env"
6365 var pod * api.Pod
6466
67+ emptyNodeSelector := make (map [string ]string )
68+
69+ nodeSelector1 := make (map [string ]string )
70+ nodeSelector1 ["disk" ] = "ssd"
71+
72+ nodeSelector2 := make (map [string ]string )
73+ nodeSelector2 ["disk" ] = "magnetic"
74+ nodeSelector2 ["network" ] = "fast"
75+
6576 slugBuilds := []slugBuildCase {
66- {true , "test" , "default" , envSecretName , "tar" , "put-url" , "cache-url" , "deadbeef" , "" , "" , api .PullAlways , "" },
67- {true , "test" , "default" , envSecretName , "tar" , "put-url" , "cache-url" , "deadbeef" , "" , "" , api .PullAlways , "" },
68- {true , "test" , "default" , envSecretName , "tar" , "put-url" , "" , "deadbeef" , "" , "" , api .PullAlways , "" },
69- {true , "test" , "default" , envSecretName , "tar" , "put-url" , "cache-url" , "deadbeef" , "buildpack" , "" , api .PullAlways , "" },
70- {true , "test" , "default" , envSecretName , "tar" , "put-url" , "cache-url" , "deadbeef" , "buildpack" , "" , api .PullAlways , "" },
71- {true , "test" , "default" , envSecretName , "tar" , "put-url" , "cache-url" , "deadbeef" , "buildpack" , "customimage" , api .PullAlways , "" },
72- {true , "test" , "default" , envSecretName , "tar" , "put-url" , "cache-url" , "deadbeef" , "buildpack" , "customimage" , api .PullIfNotPresent , "" },
73- {true , "test" , "default" , envSecretName , "tar" , "put-url" , "cache-url" , "deadbeef" , "buildpack" , "customimage" , api .PullNever , "" },
77+ {true , "test" , "default" , envSecretName , "tar" , "put-url" , "cache-url" , "deadbeef" , "" , "" , api .PullAlways , "" , emptyNodeSelector },
78+ {true , "test" , "default" , envSecretName , "tar" , "put-url" , "cache-url" , "deadbeef" , "" , "" , api .PullAlways , "" , emptyNodeSelector },
79+ {true , "test" , "default" , envSecretName , "tar" , "put-url" , "" , "deadbeef" , "" , "" , api .PullAlways , "" , emptyNodeSelector },
80+ {true , "test" , "default" , envSecretName , "tar" , "put-url" , "cache-url" , "deadbeef" , "buildpack" , "" , api .PullAlways , "" , emptyNodeSelector },
81+ {true , "test" , "default" , envSecretName , "tar" , "put-url" , "cache-url" , "deadbeef" , "buildpack" , "" , api .PullAlways , "" , emptyNodeSelector },
82+ {true , "test" , "default" , envSecretName , "tar" , "put-url" , "cache-url" , "deadbeef" , "buildpack" , "customimage" , api .PullAlways , "" , nil },
83+ {true , "test" , "default" , envSecretName , "tar" , "put-url" , "cache-url" , "deadbeef" , "buildpack" , "customimage" , api .PullIfNotPresent , "" , nodeSelector1 },
84+ {true , "test" , "default" , envSecretName , "tar" , "put-url" , "cache-url" , "deadbeef" , "buildpack" , "customimage" , api .PullNever , "" , nodeSelector2 },
7485 }
7586
7687 for _ , build := range slugBuilds {
@@ -87,6 +98,7 @@ func TestBuildPod(t *testing.T) {
8798 build .storageType ,
8899 build .slugBuilderImage ,
89100 build .slugBuilderImagePullPolicy ,
101+ build .builderPodNodeSelector ,
90102 )
91103
92104 if pod .ObjectMeta .Name != build .name {
@@ -123,16 +135,20 @@ func TestBuildPod(t *testing.T) {
123135 t .Errorf ("expected %v but returned %v" , build .slugBuilderImagePullPolicy , pod .Spec .Containers [0 ].ImagePullPolicy )
124136 }
125137 }
138+
139+ if len (pod .Spec .NodeSelector ) > 0 || len (build .builderPodNodeSelector ) > 0 {
140+ assert .Equal (t , pod .Spec .NodeSelector , build .builderPodNodeSelector , "node selector" )
141+ }
126142 }
127143
128144 dockerBuilds := []dockerBuildCase {
129- {true , "test" , "default" , emptyEnv , "tar" , "deadbeef" , "" , "" , api .PullAlways , "" },
130- {true , "test" , "default" , env , "tar" , "deadbeef" , "" , "" , api .PullAlways , "" },
131- {true , "test" , "default" , emptyEnv , "tar" , "deadbeef" , "img" , "" , api .PullAlways , "" },
132- {true , "test" , "default" , env , "tar" , "deadbeef" , "img" , "" , api .PullAlways , "" },
133- {true , "test" , "default" , env , "tar" , "deadbeef" , "img" , "customimage" , api .PullAlways , "" },
134- {true , "test" , "default" , env , "tar" , "deadbeef" , "img" , "customimage" , api .PullIfNotPresent , "" },
135- {true , "test" , "default" , env , "tar" , "deadbeef" , "img" , "customimage" , api .PullNever , "" },
145+ {true , "test" , "default" , emptyEnv , "tar" , "deadbeef" , "" , "" , api .PullAlways , "" , nodeSelector1 },
146+ {true , "test" , "default" , env , "tar" , "deadbeef" , "" , "" , api .PullAlways , "" , nodeSelector2 },
147+ {true , "test" , "default" , emptyEnv , "tar" , "deadbeef" , "img" , "" , api .PullAlways , "" , emptyNodeSelector },
148+ {true , "test" , "default" , env , "tar" , "deadbeef" , "img" , "" , api .PullAlways , "" , emptyNodeSelector },
149+ {true , "test" , "default" , env , "tar" , "deadbeef" , "img" , "customimage" , api .PullAlways , "" , emptyNodeSelector },
150+ {true , "test" , "default" , env , "tar" , "deadbeef" , "img" , "customimage" , api .PullIfNotPresent , "" , emptyNodeSelector },
151+ {true , "test" , "default" , env , "tar" , "deadbeef" , "img" , "customimage" , api .PullNever , "" , nil },
136152 }
137153 regEnv := map [string ]string {"REG_LOC" : "on-cluster" }
138154 for _ , build := range dockerBuilds {
@@ -150,6 +166,7 @@ func TestBuildPod(t *testing.T) {
150166 "5555" ,
151167 regEnv ,
152168 build .dockerBuilderImagePullPolicy ,
169+ build .builderPodNodeSelector ,
153170 )
154171
155172 if pod .ObjectMeta .Name != build .name {
@@ -175,6 +192,10 @@ func TestBuildPod(t *testing.T) {
175192 }
176193 }
177194 }
195+
196+ if len (pod .Spec .NodeSelector ) > 0 || len (build .builderPodNodeSelector ) > 0 {
197+ assert .Equal (t , pod .Spec .NodeSelector , build .builderPodNodeSelector , "node selector" )
198+ }
178199 }
179200}
180201
0 commit comments