{{- if .Values.coder.service.enable }}
---
apiVersion: v1
kind: Service
metadata:
  name: coder
  labels:
    {{- include "coder.labels" . | nindent 4 }}
  annotations:
    {{- toYaml .Values.coder.service.annotations | nindent 4 }}
spec:
  type: {{ .Values.coder.service.type }}
  sessionAffinity: {{ .Values.coder.service.sessionAffinity }}
  ports:
    - name: "http"
      port: 80
      targetPort: "http"
      protocol: TCP
      {{ if eq .Values.coder.service.type "NodePort" }}
      nodePort: {{ .Values.coder.service.httpNodePort }}
      {{ end }}
    {{- if eq (include "coder.tlsEnabled" .) "true" }}
    - name: "https"
      port: 443
      targetPort: "https"
      protocol: TCP
      {{ if eq .Values.coder.service.type "NodePort" }}
      nodePort: {{ .Values.coder.service.httpsNodePort }}
      {{ end }}
    {{- end }}
  {{- if eq "LoadBalancer" .Values.coder.service.type }}
  {{- with .Values.coder.service.loadBalancerIP }}
  loadBalancerIP: {{ . | quote }}
  {{- end }}
  {{- with .Values.coder.service.externalTrafficPolicy }}
  externalTrafficPolicy: {{ . | quote }}
  {{- end }}
  {{- end }}
  selector:
    {{- include "coder.selectorLabels" . | nindent 4 }}
{{- end }}
