apiVersion: v1 kind: Service metadata: name: {{ include "grafana-mcp.fullname" . }} namespace: {{ include "grafana-mcp.namespace" . }} labels: {{- include "grafana-mcp.labels" . | nindent 4 }} app.kubernetes.io/component: mcp-server {{- with .Values.service.labels }} {{- toYaml . | nindent 4 }} {{- end }} {{- with .Values.service.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: type: {{ .Values.service.type }} {{- if .Values.service.clusterIP }} clusterIP: {{ .Values.service.clusterIP }} {{- end }} {{- if .Values.service.externalIPs }} externalIPs: {{- toYaml .Values.service.externalIPs | nindent 4 }} {{- end }} {{- if .Values.service.loadBalancerIP }} loadBalancerIP: {{ .Values.service.loadBalancerIP }} {{- end }} {{- if .Values.service.loadBalancerSourceRanges }} loadBalancerSourceRanges: {{- toYaml .Values.service.loadBalancerSourceRanges | nindent 4 }} {{- end }} {{- if and (eq .Values.service.type "ExternalName") .Values.service.externalName }} externalName: {{ .Values.service.externalName }} {{- end }} ports: - port: {{ .Values.service.port }} targetPort: mcp-http protocol: TCP name: mcp-http {{- if and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) .Values.service.nodePort }} nodePort: {{ .Values.service.nodePort }} {{- end }} {{- with .Values.service.extraPorts }} {{- toYaml . | nindent 4 }} {{- end }} selector: {{- include "grafana-mcp.selectorLabels" . | nindent 4 }} app.kubernetes.io/component: mcp-server {{- with .Values.service.sessionAffinity }} sessionAffinity: {{ . }} {{- end }} {{- with .Values.service.sessionAffinityConfig }} sessionAffinityConfig: {{- toYaml . | nindent 4 }} {{- end }}