-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathgatewayclassblueprint-contour-istio.yaml
More file actions
80 lines (78 loc) · 2.47 KB
/
gatewayclassblueprint-contour-istio.yaml
File metadata and controls
80 lines (78 loc) · 2.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
apiVersion: gateway.tv2.dk/v1alpha1
kind: GatewayClassBlueprint
metadata:
name: contour-istio
spec:
# The following are templates used to 'implement' a 'parent' Gateway
gatewayTemplate:
resourceTemplates:
childGateway: |
apiVersion: gateway.networking.k8s.io/v1beta1
kind: Gateway
metadata:
name: {{ .Gateway.metadata.name }}-child
namespace: {{ .Gateway.metadata.namespace }}
annotations:
networking.istio.io/service-type: ClusterIP
spec:
gatewayClassName: istio
listeners:
{{- range .Gateway.spec.listeners }}
- name: {{ .name }}
port: 80
protocol: HTTP
{{ if get . "hostname" }}
hostname: {{ .hostname | quote }}
{{ end -}}
{{ if get . "allowedRoutes" }}
allowedRoutes:
{{ toYaml .allowedRoutes | nindent 6 }}
{{ end -}}
{{- end }}
loadBalancer: |
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ .Gateway.metadata.name }}
namespace: {{ .Gateway.metadata.namespace }}
spec:
ingressClassName: contour
tls:
- hosts:
{{- range .Gateway.spec.listeners }}
- {{ .hostname | quote }}
{{- end }}
secretName: {{ .Gateway.metadata.name }}-tls
rules:
{{- range .Gateway.spec.listeners }}
- host: {{ .hostname | quote }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: {{ $.Gateway.metadata.name }}-child-istio
port:
number: 80
{{- end }}
# The following are templates used to 'implement' a 'parent' HTTPRoute
httpRouteTemplate:
resourceTemplates:
shadowHttproute: |
apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
name: {{ .HTTPRoute.metadata.name }}-child
namespace: {{ .HTTPRoute.metadata.namespace }}
spec:
parentRefs:
{{ range .HTTPRoute.spec.parentRefs }}
- kind: {{ .kind }}
name: {{ .name }}-child
{{ if .namespace }}
namespace: {{ .namespace }}
{{ end }}
{{ end }}
rules:
{{ toYaml .HTTPRoute.spec.rules | nindent 4 }}