{{- if .Values.httpRoute.enabled -}} {{- $fullName := include "chart.fullname" . -}} {{- $svcPort := .Values.service.port -}} {{- $defaultGatewayName := .Values.gateway.name -}} {{- if not $defaultGatewayName -}} {{- $defaultGatewayName = printf "%s-gateway" $fullName -}} {{- end -}} {{- $defaultGatewayNs := .Release.Namespace -}} {{- if .Values.gateway.enabled -}} {{- $defaultGatewayNs = default .Release.Namespace .Values.gateway.namespace -}} {{- end -}} apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: {{ $fullName }} labels: {{- include "chart.labels" . | nindent 4 }} {{- with .Values.httpRoute.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: parentRefs: {{- if .Values.httpRoute.parentRefs }} {{- range $ref := .Values.httpRoute.parentRefs }} - name: {{ default $defaultGatewayName $ref.name | quote }} {{- $refNs := $ref.namespace | default $defaultGatewayNs -}} namespace: {{ $refNs | quote }} {{- with $ref.sectionName }} sectionName: {{ . | quote }} {{- else }} sectionName: "http" {{- end }} {{- with $ref.kind }} kind: {{ . | quote }} {{- end }} {{- with $ref.group }} group: {{ . | quote }} {{- end }} {{- end }} {{- else }} # Default parentRef when parentRefs is empty or not set - name: {{ $defaultGatewayName | quote }} namespace: {{ $defaultGatewayNs | quote }} sectionName: "http" {{- end }} {{- with .Values.httpRoute.hostnames }} hostnames: {{- toYaml . | nindent 4 }} {{- end }} rules: {{- range .Values.httpRoute.rules }} - {{- with .matches }} matches: {{- toYaml . | nindent 8 }} {{- end }} {{- with .filters }} filters: {{- toYaml . | nindent 8 }} {{- end }} backendRefs: - name: {{ $fullName }} port: {{ $svcPort }} weight: 1 {{- end }} {{- end }}