Skip to content

Commit

Permalink
Merge pull request #86 from MediaMarktSaturn/application/addGatewaySu…
Browse files Browse the repository at this point in the history
…pport

[Application] Add support for the Gateway API
  • Loading branch information
heubeck authored Dec 29, 2023
2 parents 5d43a3b + 8463cd8 commit acee4af
Show file tree
Hide file tree
Showing 11 changed files with 133 additions and 13 deletions.
14 changes: 9 additions & 5 deletions .github/workflows/pr-chart-lint-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,16 +47,20 @@ jobs:
strategy:
matrix:
include:
- name: k8s-1.29
kindest_image: kindest/node:v1.29.0
- name: k8s-1.28
kindest_image: kindest/node:v1.28.0
- name: k8s-1.27
kindest_image: kindest/node:v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72
kindest_image: kindest/node:v1.27.3
- name: k8s-1.26
kindest_image: kindest/node:v1.26.6@sha256:6e2d8b28a5b601defe327b98bd1c2d1930b49e5d8c512e1895099e4504007adb
kindest_image: kindest/node:v1.26.6
- name: k8s-1.25
kindest_image: kindest/node:v1.25.11@sha256:227fa11ce74ea76a0474eeefb84cb75d8dad1b08638371ecf0e86259b35be0c8
kindest_image: kindest/node:v1.25.11
- name: k8s-1.24
kindest_image: kindest/node:v1.24.15@sha256:7db4f8bea3e14b82d12e044e25e34bd53754b7f2b0e9d56df21774e6f66a70ab
kindest_image: kindest/node:v1.24.15
- name: k8s-1.23
kindest_image: kindest/node:v1.23.17@sha256:59c989ff8a517a93127d4a536e7014d28e235fb3529d9fba91b3951d461edfdb
kindest_image: kindest/node:v1.23.17
name: ${{ matrix.name }}
steps:
- uses: actions/checkout@v4
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/scripts/chart-test-prep.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,6 @@ kubectl create -f https://raw.githubusercontent.com/fluxcd/flagger/main/artifact

# apply chart preconditions
kubectl apply -f .github/workflows/scripts/chart-test-prep/preconditions.yaml

# install gateway crd
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.0.0/standard-install.yaml
15 changes: 15 additions & 0 deletions chart-tests/application/ci/test-gateway-api-values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
resources:
requests:
cpu: 10m
memory: 50Mi
limits:
cpu: 100m
memory: 100Mi

gatewayApi:
enabled: true
pathPrefix: /examine
stripPathPrefix: true
gatewayRef:
name: http-gateway
namespace: default
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
resources:
requests:
cpu: 10m
memory: 50Mi
limits:
cpu: 100m
memory: 100Mi

gatewayApi:
enabled: true
pathPrefix: /examine
gatewayRef:
name: http-gateway
namespace: default

canary:
enabled: true
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ autoscaling:

image:
repository: quay.io/heubeck/examiner
tag: 1.11.24
tag: 1.11.26
pullPolicy: IfNotPresent

# ImagePolicy and check period for automated updates
Expand Down
4 changes: 2 additions & 2 deletions chart-tests/application/ci/test-sidecar-values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ sidecars:
- name: sidekick
image:
repository: quay.io/heubeck/examiner
tag: 1.11.24
tag: 1.11.26
env:
ECHO_VALUE: yehaaa
QUARKUS_HTTP_PORT: 9090
Expand All @@ -31,7 +31,7 @@ sidecars:
- name: kickback
image:
repository: quay.io/heubeck/examiner
tag: 1.11.24
tag: 1.11.26
env:
ECHO_VALUE: wohooo
QUARKUS_HTTP_PORT: 7070
Expand Down
2 changes: 1 addition & 1 deletion charts/application/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ maintainers:
- name: MediaMarktSaturn
url: https://github.com/MediaMarktSaturn
appVersion: 1.0.0
version: 1.10.0
version: 1.11.0
2 changes: 1 addition & 1 deletion charts/application/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Generic application chart with common requirements of a typical workload.
| readinessProbe.failureThreshold | int | `3` | |
| readinessProbe.timeoutSeconds | int | `5` | |
| image.repository | string | `"quay.io/heubeck/examiner"` | |
| image.tag | string | `"1.11.24"` | |
| image.tag | string | `"1.11.26"` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.tagSemverRange | string | `nil` | |
| image.tagNumerical | string | `nil` | |
Expand Down
28 changes: 27 additions & 1 deletion charts/application/templates/flagger-canary.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{{- if and .Values.canary.enabled (or .Values.istio.enabled .Values.linkerd.enabled ) }}
{{- if and .Values.canary.enabled (or .Values.istio.enabled .Values.linkerd.enabled .Values.gatewayApi.enabled ) }}
apiVersion: flagger.app/v1beta1
kind: Canary
metadata:
Expand All @@ -11,6 +11,12 @@ spec:
provider: istio
{{- else if .Values.linkerd.enabled }}
provider: linkerd
{{- else if .Values.gatewayApi.enabled }}
{{- if .Capabilities.APIVersions.Has "gateway.networking.k8s.io/v1" }}
provider: gatewayapi:v1
{{- else }}
provider: gatewayapi:v1beta1
{{- end }}
{{- end }}
targetRef:
apiVersion: apps/v1
Expand Down Expand Up @@ -45,6 +51,26 @@ spec:
tls:
mode: {{ .Values.istio.tlsMode }}
{{- end }}
{{- if .Values.gatewayApi.enabled }}
{{- if .Values.gatewayApi.host }}
hosts:
- {{ .Values.gatewayApi.host | quote }}
{{- end }}
{{- if .Values.gatewayApi.pathPrefix }}
match:
- uri:
prefix: {{ .Values.gatewayApi.pathPrefix | quote }}
{{- if .Values.gatewayApi.stripPathPrefix }}
rewrite:
uri: /
{{- end }}
{{- end }}
gatewayRefs:
- name: {{ .Values.gatewayApi.gatewayRef.name }}
{{- if .Values.gatewayApi.gatewayRef.namespace }}
namespace: {{ .Values.gatewayApi.gatewayRef.namespace }}
{{- end }}
{{- end }}
skipAnalysis: {{ .Values.canary.analysis.skip }}
analysis:
interval: {{ .Values.canary.analysis.interval }}
Expand Down
45 changes: 45 additions & 0 deletions charts/application/templates/k8s-http-route.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{{- if and (not .Values.canary.enabled) .Values.gatewayApi.enabled }}
{{- if .Capabilities.APIVersions.Has "gateway.networking.k8s.io/v1" }}
apiVersion: gateway.networking.k8s.io/v1
{{- else }}
apiVersion: gateway.networking.k8s.io/v1beta1
{{- end }}
kind: HTTPRoute
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "labels" . | nindent 4 }}
spec:
parentRefs:
- name: {{ .Values.gatewayApi.gatewayRef.name }}
{{- if .Values.gatewayApi.gatewayRef.namespace }}
namespace: {{ .Values.gatewayApi.gatewayRef.namespace }}
{{- end }}
{{- if .Values.gatewayApi.gatewayRef.sectionName }}
sectionName: {{ .Values.gatewayApi.gatewayRef.sectionName }}
{{- end }}
{{- if .Values.gatewayApi.host }}
hostnames:
- {{ .Values.gatewayApi.host | quote }}
{{- end }}
rules:
- backendRefs:
- name: {{ .Release.Name }}
kind: Service
port: {{ .Values.service.port }}
{{- if .Values.gatewayApi.pathPrefix }}
matches:
- path:
type: PathPrefix
value: {{ .Values.gatewayApi.pathPrefix | quote }}
{{- if .Values.gatewayApi.stripPathPrefix }}
filters:
- type: URLRewrite
urlRewrite:
path:
replaceFullPath: /
type: ReplaceFullPath
{{- end }}
{{- end }}
{{- end }}
14 changes: 12 additions & 2 deletions charts/application/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ readinessProbe:

image:
repository: quay.io/heubeck/examiner
tag: 1.11.24
tag: 1.11.26
pullPolicy: IfNotPresent

# ImagePolicy options:
Expand Down Expand Up @@ -157,6 +157,16 @@ linkerd:
config.linkerd.io/proxy-cpu-request: "0.2"
config.linkerd.io/proxy-memory-request: 128Mi

gatewayApi:
enabled: false
host:
pathPrefix:
stripPathPrefix: false
gatewayRef:
name:
namespace:
sectionName:

monitoring:
serviceMonitor: false
namespace: monitoring
Expand Down Expand Up @@ -266,7 +276,7 @@ sidecars: []
# - name: sqlproxy
# image:
# repository: quay.io/heubeck/examiner
# tag: 1.11.24
# tag: 1.11.26
# args: []
# env: {}
# configEnvFrom: []
Expand Down

0 comments on commit acee4af

Please sign in to comment.