diff --git a/charts/site-manager/templates/httproute.yaml b/charts/site-manager/templates/httproute.yaml new file mode 100644 index 0000000..84fed90 --- /dev/null +++ b/charts/site-manager/templates/httproute.yaml @@ -0,0 +1,33 @@ +{{- $hasHttpRouteApi := .Capabilities.APIVersions.Has "gateway.networking.k8s.io/v1" -}} +{{- $isKubernetes := eq .Values.PAAS_PLATFORM "KUBERNETES" -}} +{{- if and $hasHttpRouteApi $isKubernetes -}} +--- +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: {{ .Chart.Name }} + namespace: {{ .Release.Namespace }} + labels: + app: {{ .Chart.Name }} +spec: + parentRefs: + - group: gateway.networking.k8s.io + kind: Gateway + name: {{ .Values.httpRoute.gatewayName | quote }} + namespace: {{ .Values.httpRoute.gatewayNamespace | quote }} + {{- if .Values.ingress.name }} + hostnames: + - {{ .Values.ingress.name | quote }} + {{- end }} + rules: + - matches: + - path: + type: PathPrefix + value: / + backendRefs: + - group: "" + kind: Service + name: {{ .Chart.Name }} + port: 443 + weight: 1 +{{- end }} diff --git a/charts/site-manager/templates/ingress.yaml b/charts/site-manager/templates/ingress.yaml index 545dbdb..39767cc 100644 --- a/charts/site-manager/templates/ingress.yaml +++ b/charts/site-manager/templates/ingress.yaml @@ -1,9 +1,13 @@ +{{- if .Values.ingress.create }} apiVersion: {{ include "site-manager.ingress.apiVersion" . }} kind: Ingress metadata: name: {{ .Chart.Name }} namespace: {{ .Release.Namespace }} annotations: + # Prevent gateway-api-converter from auto-converting this legacy Ingress + # when Gateway API resources (HTTPRoute, etc) are managed by chart. + gateway-api-converter.netcracker.com/ignore: "true" {{- if .Values.tls.enabled }} nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" {{- if .Values.tls.defaultIngressTls }} @@ -48,3 +52,4 @@ spec: port: number: 443 {{- end }} +{{- end }} diff --git a/charts/site-manager/values.yaml b/charts/site-manager/values.yaml index 60c5f44..eb3a97c 100644 --- a/charts/site-manager/values.yaml +++ b/charts/site-manager/values.yaml @@ -56,6 +56,14 @@ ingress: name: "" className: "" +# Gateway API (HTTPRoute) configuration. +# Resources are created only when: +# 1) gateway.networking.k8s.io/v1 CRDs are present +# 2) PAAS_PLATFORM=KUBERNETES +httpRoute: + gatewayName: default-external-gateway + gatewayNamespace: envoy-gateway + limits: cpu: "20m" memory: "100Mi"