func newNginxIngressControllerService()

in pkg/manifests/nginx.go [305:349]


func newNginxIngressControllerService(conf *config.Config, ingressConfig *NginxIngressConfig) *corev1.Service {
	annotations := make(map[string]string)
	if ingressConfig != nil && ingressConfig.ServiceConfig != nil {
		for k, v := range ingressConfig.ServiceConfig.Annotations {
			annotations[k] = v
		}
	}

	ret := &corev1.Service{
		TypeMeta: metav1.TypeMeta{
			Kind:       "Service",
			APIVersion: "v1",
		},
		ObjectMeta: metav1.ObjectMeta{
			Name:        ingressConfig.ResourceName,
			Namespace:   conf.NS,
			Labels:      AddComponentLabel(GetTopLevelLabels(), "ingress-controller"),
			Annotations: annotations,
		},
		Spec: corev1.ServiceSpec{
			ExternalTrafficPolicy: corev1.ServiceExternalTrafficPolicyTypeLocal,
			Type:                  corev1.ServiceTypeLoadBalancer,
			Selector:              ingressConfig.PodLabels(),
			Ports: []corev1.ServicePort{
				{
					Name:       "https",
					Port:       443,
					TargetPort: intstr.FromString("https"),
				},
			},
		},
	}

	if !ingressConfig.HTTPDisabled {
		ret.Spec.Ports = append([]corev1.ServicePort{
			{
				Name:       "http",
				Port:       80,
				TargetPort: intstr.FromString("http"),
			},
		}, ret.Spec.Ports...)
	}

	return ret
}