func services()

in appconfigmgrv2/controllers/services.go [126:161]


func services(t *appconfig.AppEnvConfigTemplateV2) []*corev1.Service {
	var list []*corev1.Service

	for i := range t.Spec.Services {
		typ := corev1.ServiceTypeClusterIP
		if t.Spec.Services[i].Ingress != nil {
			typ = corev1.ServiceTypeNodePort
		}
		s := &corev1.Service{
			ObjectMeta: metav1.ObjectMeta{
				Name:      serviceName(t, i),
				Namespace: t.Namespace,
			},
			Spec: corev1.ServiceSpec{
				Type: typ,
				Selector: map[string]string{
					"app": t.Spec.Services[i].DeploymentApp,
				},
				Ports: []corev1.ServicePort{
					{
						// NOTE: Istio requires prefixed port names such as `http-___`.
						Name:     "http-default",
						Protocol: t.Spec.Services[i].DeploymentPortProtocol,
						Port:     t.Spec.Services[i].ServicePort,
						TargetPort: intstr.IntOrString{
							IntVal: t.Spec.Services[i].DeploymentPort,
						},
					},
				},
			},
		}
		list = append(list, s)
	}

	return list
}