Commit 70599c7d authored by Teodor MICU's avatar Teodor MICU
Browse files

test: deployment host aliases

parent 99083faa
Loading
Loading
Loading
Loading
+60 −0
Original line number Diff line number Diff line
@@ -422,6 +422,66 @@ func TestDeploymentTemplate(t *testing.T) {
		})
	}

	// deployment hostAliases
	for _, tc := range []struct {
		CaseName string
		Release  string
		Values   map[string]string

		ExpectedHostAliases []coreV1.HostAlias
	}{
		{
			CaseName:            "default hostAliases",
			Release:             "production",
			ExpectedHostAliases: nil,
		},
		{
			CaseName: "hostAliases for two IP addresses",
			Release:  "production",
			Values: map[string]string{
				"hostAliases[0].ip":           "1.2.3.4",
				"hostAliases[0].hostnames[0]": "host1.example1.com",
				"hostAliases[1].ip":           "5.6.7.8",
				"hostAliases[1].hostnames[0]": "host1.example2.com",
				"hostAliases[1].hostnames[1]": "host2.example2.com",
			},

			ExpectedHostAliases: []coreV1.HostAlias{
				{
					IP:        "1.2.3.4",
					Hostnames: []string{"host1.example1.com"},
				},
				{
					IP:        "5.6.7.8",
					Hostnames: []string{"host1.example2.com", "host2.example2.com"},
				},
			},
		},
	} {
		t.Run(tc.CaseName, func(t *testing.T) {
			namespaceName := "minimal-ruby-app-" + strings.ToLower(random.UniqueId())

			values := map[string]string{
				"gitlab.app": "auto-devops-examples/minimal-ruby-app",
				"gitlab.env": "prod",
			}

			mergeStringMap(values, tc.Values)

			options := &helm.Options{
				SetValues:      values,
				KubectlOptions: k8s.NewKubectlOptions("", "", namespaceName),
			}

			output := helm.RenderTemplate(t, options, helmChartPath, tc.Release, []string{"templates/deployment.yaml"})

			var deployment appsV1.Deployment
			helm.UnmarshalK8SYaml(t, output, &deployment)

			require.Equal(t, tc.ExpectedHostAliases, deployment.Spec.Template.Spec.HostAliases)
		})
	}

	// Test Deployment selector
	for _, tc := range []struct {
		CaseName string