|
1 | 1 | package v1alpha1_test
|
2 | 2 |
|
3 | 3 | import (
|
| 4 | + "reflect" |
4 | 5 | "testing"
|
5 | 6 |
|
6 | 7 | corev1 "k8s.io/api/core/v1"
|
@@ -1265,16 +1266,139 @@ func TestOverrideRunnerSpec(t *testing.T) {
|
1265 | 1266 | configv1alpha1.OverrideRunnerSpec{
|
1266 | 1267 | Env: []corev1.EnvVar{
|
1267 | 1268 | {
|
1268 |
| - Name: "ONLY_REPO", |
| 1269 | + Name: "ONLY_LAYER", |
1269 | 1270 | Value: "1",
|
1270 | 1271 | },
|
1271 | 1272 | {
|
1272 | 1273 | Name: "IN_BOTH",
|
1273 | 1274 | Value: "1",
|
1274 | 1275 | },
|
| 1276 | + }, |
| 1277 | + }, |
| 1278 | + }, |
| 1279 | + { |
| 1280 | + "EnvValueFromOnlyInRepo", |
| 1281 | + &configv1alpha1.TerraformRepository{ |
| 1282 | + Spec: configv1alpha1.TerraformRepositorySpec{ |
| 1283 | + OverrideRunnerSpec: configv1alpha1.OverrideRunnerSpec{ |
| 1284 | + Env: []corev1.EnvVar{ |
| 1285 | + { |
| 1286 | + Name: "NODE_NAME", |
| 1287 | + ValueFrom: &corev1.EnvVarSource{ |
| 1288 | + FieldRef: &corev1.ObjectFieldSelector{ |
| 1289 | + FieldPath: "spec.nodeName", |
| 1290 | + }, |
| 1291 | + }, |
| 1292 | + }, |
| 1293 | + }, |
| 1294 | + }, |
| 1295 | + }, |
| 1296 | + }, |
| 1297 | + &configv1alpha1.TerraformLayer{}, |
| 1298 | + configv1alpha1.OverrideRunnerSpec{ |
| 1299 | + Env: []corev1.EnvVar{ |
1275 | 1300 | {
|
1276 |
| - Name: "ONLY_LAYER", |
1277 |
| - Value: "1", |
| 1301 | + Name: "NODE_NAME", |
| 1302 | + ValueFrom: &corev1.EnvVarSource{ |
| 1303 | + FieldRef: &corev1.ObjectFieldSelector{ |
| 1304 | + FieldPath: "spec.nodeName", |
| 1305 | + }, |
| 1306 | + }, |
| 1307 | + }, |
| 1308 | + }, |
| 1309 | + }, |
| 1310 | + }, |
| 1311 | + { |
| 1312 | + "EnvValueFromOnlyInLayer", |
| 1313 | + &configv1alpha1.TerraformRepository{}, |
| 1314 | + &configv1alpha1.TerraformLayer{ |
| 1315 | + Spec: configv1alpha1.TerraformLayerSpec{ |
| 1316 | + OverrideRunnerSpec: configv1alpha1.OverrideRunnerSpec{ |
| 1317 | + Env: []corev1.EnvVar{ |
| 1318 | + { |
| 1319 | + Name: "NODE_NAME", |
| 1320 | + ValueFrom: &corev1.EnvVarSource{ |
| 1321 | + FieldRef: &corev1.ObjectFieldSelector{ |
| 1322 | + FieldPath: "spec.nodeName", |
| 1323 | + }, |
| 1324 | + }, |
| 1325 | + }, |
| 1326 | + }, |
| 1327 | + }, |
| 1328 | + }, |
| 1329 | + }, |
| 1330 | + configv1alpha1.OverrideRunnerSpec{ |
| 1331 | + Env: []corev1.EnvVar{ |
| 1332 | + { |
| 1333 | + Name: "NODE_NAME", |
| 1334 | + ValueFrom: &corev1.EnvVarSource{ |
| 1335 | + FieldRef: &corev1.ObjectFieldSelector{ |
| 1336 | + FieldPath: "spec.nodeName", |
| 1337 | + }, |
| 1338 | + }, |
| 1339 | + }, |
| 1340 | + }, |
| 1341 | + }, |
| 1342 | + }, |
| 1343 | + { |
| 1344 | + "EnvValueFromInBoth", |
| 1345 | + &configv1alpha1.TerraformRepository{ |
| 1346 | + Spec: configv1alpha1.TerraformRepositorySpec{ |
| 1347 | + OverrideRunnerSpec: configv1alpha1.OverrideRunnerSpec{ |
| 1348 | + Env: []corev1.EnvVar{ |
| 1349 | + { |
| 1350 | + Name: "NODE_NAME", |
| 1351 | + ValueFrom: &corev1.EnvVarSource{ |
| 1352 | + FieldRef: &corev1.ObjectFieldSelector{ |
| 1353 | + FieldPath: "spec.nodeName", |
| 1354 | + }, |
| 1355 | + }, |
| 1356 | + }, |
| 1357 | + }, |
| 1358 | + }, |
| 1359 | + }, |
| 1360 | + }, |
| 1361 | + &configv1alpha1.TerraformLayer{ |
| 1362 | + Spec: configv1alpha1.TerraformLayerSpec{ |
| 1363 | + OverrideRunnerSpec: configv1alpha1.OverrideRunnerSpec{ |
| 1364 | + Env: []corev1.EnvVar{ |
| 1365 | + { |
| 1366 | + Name: "POD_NAME", |
| 1367 | + ValueFrom: &corev1.EnvVarSource{ |
| 1368 | + FieldRef: &corev1.ObjectFieldSelector{ |
| 1369 | + FieldPath: "metadata.name", |
| 1370 | + }, |
| 1371 | + }, |
| 1372 | + }, |
| 1373 | + { |
| 1374 | + Name: "POD_IP", |
| 1375 | + ValueFrom: &corev1.EnvVarSource{ |
| 1376 | + FieldRef: &corev1.ObjectFieldSelector{ |
| 1377 | + FieldPath: "status.podIP", |
| 1378 | + }, |
| 1379 | + }, |
| 1380 | + }, |
| 1381 | + }, |
| 1382 | + }, |
| 1383 | + }, |
| 1384 | + }, |
| 1385 | + configv1alpha1.OverrideRunnerSpec{ |
| 1386 | + Env: []corev1.EnvVar{ |
| 1387 | + { |
| 1388 | + Name: "POD_NAME", |
| 1389 | + ValueFrom: &corev1.EnvVarSource{ |
| 1390 | + FieldRef: &corev1.ObjectFieldSelector{ |
| 1391 | + FieldPath: "metadata.name", |
| 1392 | + }, |
| 1393 | + }, |
| 1394 | + }, |
| 1395 | + { |
| 1396 | + Name: "POD_IP", |
| 1397 | + ValueFrom: &corev1.EnvVarSource{ |
| 1398 | + FieldRef: &corev1.ObjectFieldSelector{ |
| 1399 | + FieldPath: "status.podIP", |
| 1400 | + }, |
| 1401 | + }, |
1278 | 1402 | },
|
1279 | 1403 | },
|
1280 | 1404 | },
|
@@ -1785,15 +1909,22 @@ func TestOverrideRunnerSpec(t *testing.T) {
|
1785 | 1909 | if len(result.Env) != len(tc.expectedSpec.Env) {
|
1786 | 1910 | t.Errorf("differents env size: got %d expected %d", len(result.Env), len(tc.expectedSpec.Env))
|
1787 | 1911 | }
|
1788 |
| - for _, env := range result.Env { |
| 1912 | + for _, expectedEnv := range tc.expectedSpec.Env { |
1789 | 1913 | found := false
|
1790 |
| - for _, expected := range tc.expectedSpec.Env { |
1791 |
| - if env.Name == expected.Name && env.Value == expected.Value { |
1792 |
| - found = true |
| 1914 | + for _, givenEnv := range result.Env { |
| 1915 | + if givenEnv.Name == expectedEnv.Name { |
| 1916 | + if expectedEnv.ValueFrom != nil { |
| 1917 | + if reflect.DeepEqual(givenEnv.ValueFrom, expectedEnv.ValueFrom) { |
| 1918 | + found = true |
| 1919 | + } |
| 1920 | + } else if givenEnv.Value == expectedEnv.Value { |
| 1921 | + found = true |
| 1922 | + } |
| 1923 | + |
1793 | 1924 | }
|
1794 | 1925 | }
|
1795 | 1926 | if !found {
|
1796 |
| - t.Errorf("env %v not found in expected list %v", env, tc.expectedSpec.Env) |
| 1927 | + t.Errorf("env %v not found in given list %v", expectedEnv, result.Env) |
1797 | 1928 | }
|
1798 | 1929 | }
|
1799 | 1930 |
|
|
0 commit comments