You've already forked athens-proxy-charts
feat: support gatewayAPI
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
chart:
|
||||
appVersion: 0.1.0
|
||||
version: 0.1.0
|
||||
suite: backendTLSPolicy template
|
||||
release:
|
||||
name: athens-proxy-unittest
|
||||
namespace: testing
|
||||
templates:
|
||||
- templates/backendTLSPolicy.yaml
|
||||
tests:
|
||||
- it: Skip rendering when disabled 1/6
|
||||
set:
|
||||
gatewayAPI.enabled: false
|
||||
gatewayAPI.core.backendTLSPolicy.enabled: false
|
||||
services.http.enabled: false
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 2/6
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.backendTLSPolicy.enabled: false
|
||||
services.http.enabled: false
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 3/6
|
||||
set:
|
||||
gatewayAPI.enabled: false
|
||||
gatewayAPI.core.backendTLSPolicy.enabled: true
|
||||
services.http.enabled: false
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 4/6
|
||||
set:
|
||||
gatewayAPI.enabled: false
|
||||
gatewayAPI.core.backendTLSPolicy.enabled: false
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 5/6
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.backendTLSPolicy.enabled: false
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 6/6
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.backendTLSPolicy.enabled: true
|
||||
services.http.enabled: false
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Render default values
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.backendTLSPolicy.enabled: true
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 1
|
||||
- containsDocument:
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: BackendTLSPolicy
|
||||
name: athens-proxy-unittest
|
||||
namespace: testing
|
||||
- contains:
|
||||
path: spec.targetRefs
|
||||
content:
|
||||
group: ""
|
||||
kind: Service
|
||||
name: athens-proxy-unittest-http
|
||||
- notExists:
|
||||
path: spec.validation.caCertificateRefs
|
||||
|
||||
- it: Render with custom annotations and labels
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.backendTLSPolicy:
|
||||
enabled: true
|
||||
annotations:
|
||||
foo: bar
|
||||
labels:
|
||||
bar: foo
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.annotations
|
||||
value:
|
||||
foo: bar
|
||||
- equal:
|
||||
path: metadata.labels
|
||||
value:
|
||||
app.kubernetes.io/instance: athens-proxy-unittest
|
||||
app.kubernetes.io/name: athens-proxy
|
||||
app.kubernetes.io/version: 0.1.0
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
helm.sh/chart: athens-proxy-0.1.0
|
||||
bar: foo
|
||||
|
||||
- it: Render with custom validation
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.backendTLSPolicy.enabled: true
|
||||
gatewayAPI.core.backendTLSPolicy.validation:
|
||||
caCertificateRefs:
|
||||
- group: ""
|
||||
kind: Secret
|
||||
name: athens-proxy-ca
|
||||
hostname: athens-proxy.svc.cluster.local
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- isSubset:
|
||||
path: spec.validation
|
||||
content:
|
||||
caCertificateRefs:
|
||||
- group: ""
|
||||
kind: Secret
|
||||
name: athens-proxy-ca
|
||||
@@ -0,0 +1,190 @@
|
||||
chart:
|
||||
appVersion: 0.1.0
|
||||
version: 0.1.0
|
||||
suite: ClientSettingsPolicy template
|
||||
release:
|
||||
name: athens-proxy-unittest
|
||||
namespace: testing
|
||||
templates:
|
||||
- templates/clientSettingsPolicy.yaml
|
||||
tests:
|
||||
- it: Skip rendering when disabled 1/8
|
||||
set:
|
||||
gatewayAPI.enabled: false
|
||||
gatewayAPI.core.httpRoute.enabled: false
|
||||
gatewayAPI.nginx.clientSettingsPolicy.enabled: false
|
||||
services.http.enabled: false
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 2/8
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute.enabled: false
|
||||
gatewayAPI.nginx.clientSettingsPolicy.enabled: false
|
||||
services.http.enabled: false
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 3/8
|
||||
set:
|
||||
gatewayAPI.enabled: false
|
||||
gatewayAPI.core.httpRoute.enabled: true
|
||||
gatewayAPI.nginx.clientSettingsPolicy.enabled: false
|
||||
services.http.enabled: false
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 4/8
|
||||
set:
|
||||
gatewayAPI.enabled: false
|
||||
gatewayAPI.core.httpRoute.enabled: false
|
||||
gatewayAPI.nginx.clientSettingsPolicy.enabled: true
|
||||
services.http.enabled: false
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 5/8
|
||||
set:
|
||||
gatewayAPI.enabled: false
|
||||
gatewayAPI.core.httpRoute.enabled: false
|
||||
gatewayAPI.nginx.clientSettingsPolicy.enabled: false
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 6/8
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute.enabled: true
|
||||
gatewayAPI.nginx.clientSettingsPolicy.enabled: false
|
||||
services.http.enabled: false
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 7/8
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute.enabled: false
|
||||
gatewayAPI.nginx.clientSettingsPolicy.enabled: true
|
||||
services.http.enabled: false
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 8/8
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute.enabled: false
|
||||
gatewayAPI.nginx.clientSettingsPolicy.enabled: false
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Render default values
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute.enabled: true
|
||||
gatewayAPI.nginx.clientSettingsPolicy.enabled: true
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 1
|
||||
- containsDocument:
|
||||
apiVersion: gateway.nginx.org/v1alpha1
|
||||
kind: ClientSettingsPolicy
|
||||
name: athens-proxy-unittest
|
||||
namespace: testing
|
||||
- notExists:
|
||||
path: metadata.annotations
|
||||
- equal:
|
||||
path: metadata.labels
|
||||
value:
|
||||
app.kubernetes.io/instance: athens-proxy-unittest
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: athens-proxy
|
||||
app.kubernetes.io/version: 0.1.0
|
||||
helm.sh/chart: athens-proxy-0.1.0
|
||||
- isSubset:
|
||||
path: spec.targetRef
|
||||
content:
|
||||
group: gateway.networking.k8s.io
|
||||
kind: HTTPRoute
|
||||
name: athens-proxy-unittest
|
||||
- notExists:
|
||||
path: spec.body
|
||||
- notExists:
|
||||
path: spec.keepAlive
|
||||
|
||||
- it: Render custom annotations and labels
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute.enabled: true
|
||||
gatewayAPI.nginx.clientSettingsPolicy:
|
||||
enabled: true
|
||||
annotations:
|
||||
foo: "bar"
|
||||
labels:
|
||||
bar: "foo"
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.annotations
|
||||
value:
|
||||
foo: "bar"
|
||||
- equal:
|
||||
path: metadata.labels
|
||||
value:
|
||||
app.kubernetes.io/instance: athens-proxy-unittest
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: athens-proxy
|
||||
app.kubernetes.io/version: 0.1.0
|
||||
helm.sh/chart: athens-proxy-0.1.0
|
||||
bar: "foo"
|
||||
|
||||
- it: Render with custom body settings
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute.enabled: true
|
||||
gatewayAPI.nginx.clientSettingsPolicy:
|
||||
enabled: true
|
||||
clientMaxBodySize: 10m
|
||||
clientBodyTimeout: 30s
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- isSubset:
|
||||
path: spec.body
|
||||
content:
|
||||
maxSize: 10m
|
||||
timeout: 30s
|
||||
- notExists:
|
||||
path: spec.keepAlive
|
||||
|
||||
- it: Render with custom keepAlive settings
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute.enabled: true
|
||||
gatewayAPI.nginx.clientSettingsPolicy:
|
||||
enabled: true
|
||||
keepaliveRequests: 100
|
||||
keepaliveTime: 60s
|
||||
keepaliveTimeout: 60s
|
||||
keepaliveMinTimeout: 10s
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- notExists:
|
||||
path: spec.body
|
||||
- isSubset:
|
||||
path: spec.keepAlive
|
||||
content:
|
||||
requests: 100
|
||||
time: 60s
|
||||
timeout: 60s
|
||||
minTimeout: 10s
|
||||
@@ -0,0 +1,194 @@
|
||||
chart:
|
||||
appVersion: 0.1.0
|
||||
version: 0.1.0
|
||||
suite: HTTPRoute template
|
||||
release:
|
||||
name: athens-proxy-unittest
|
||||
namespace: testing
|
||||
templates:
|
||||
- templates/httpRoute.yaml
|
||||
tests:
|
||||
- it: Skip rendering when disabled 1/6
|
||||
set:
|
||||
gatewayAPI.enabled: false
|
||||
gatewayAPI.core.httpRoute.enabled: false
|
||||
services.http.enabled: false
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 2/6
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute.enabled: false
|
||||
services.http.enabled: false
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 3/6
|
||||
set:
|
||||
gatewayAPI.enabled: false
|
||||
gatewayAPI.core.httpRoute.enabled: true
|
||||
services.http.enabled: false
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 4/6
|
||||
set:
|
||||
gatewayAPI.enabled: false
|
||||
gatewayAPI.core.httpRoute.enabled: false
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 5/6
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute.enabled: false
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Skip rendering when disabled 6/6
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute.enabled: true
|
||||
services.http.enabled: false
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: Rendering default values
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute.enabled: true
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 1
|
||||
- containsDocument:
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
name: athens-proxy-unittest
|
||||
namespace: testing
|
||||
- notExists:
|
||||
path: metadata.annotations
|
||||
- equal:
|
||||
path: metadata.labels
|
||||
value:
|
||||
app.kubernetes.io/instance: athens-proxy-unittest
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: athens-proxy
|
||||
app.kubernetes.io/version: 0.1.0
|
||||
helm.sh/chart: athens-proxy-0.1.0
|
||||
- notExists:
|
||||
path: spec.hostnames
|
||||
- notExists:
|
||||
path: spec.parentRefs
|
||||
- contains:
|
||||
path: spec.rules[0].backendRefs
|
||||
content:
|
||||
kind: Service
|
||||
name: athens-proxy-unittest-http
|
||||
namespace: testing
|
||||
port: 3000
|
||||
weight: 1
|
||||
- contains:
|
||||
path: spec.rules[0].matches
|
||||
content:
|
||||
path:
|
||||
type: PathPrefix
|
||||
value: /
|
||||
|
||||
- it: Rendering custom annotations and labels
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute:
|
||||
enabled: true
|
||||
annotations:
|
||||
foo: bar
|
||||
labels:
|
||||
bar: foo
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 1
|
||||
- equal:
|
||||
path: metadata.annotations
|
||||
value:
|
||||
foo: bar
|
||||
- equal:
|
||||
path: metadata.labels
|
||||
value:
|
||||
app.kubernetes.io/instance: athens-proxy-unittest
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: athens-proxy
|
||||
app.kubernetes.io/version: 0.1.0
|
||||
bar: foo
|
||||
helm.sh/chart: athens-proxy-0.1.0
|
||||
|
||||
- it: Rendering custom service port
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute.enabled: true
|
||||
services.http:
|
||||
enabled: true
|
||||
port: 9090
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.rules[0].backendRefs[0].port
|
||||
value: 9090
|
||||
|
||||
- it: Rendering custom matches
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute:
|
||||
enabled: true
|
||||
matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /foo
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- contains:
|
||||
path: spec.rules[0].matches
|
||||
content:
|
||||
path:
|
||||
type: PathPrefix
|
||||
value: /foo
|
||||
|
||||
- it: Rendering custom hostnames and parentRefs
|
||||
set:
|
||||
gatewayAPI.enabled: true
|
||||
gatewayAPI.core.httpRoute:
|
||||
enabled: true
|
||||
hostnames:
|
||||
- athens-proxy.example.local
|
||||
parentRefs:
|
||||
- name: gateway
|
||||
namespace: testing
|
||||
kind: Gateway
|
||||
sectionName: athens-proxy-debug-gateway
|
||||
services.http.enabled: true
|
||||
asserts:
|
||||
- lengthEqual:
|
||||
path: spec.hostnames
|
||||
count: 1
|
||||
- contains:
|
||||
path: spec.hostnames
|
||||
content:
|
||||
athens-proxy.example.local
|
||||
- lengthEqual:
|
||||
path: spec.parentRefs
|
||||
count: 1
|
||||
- contains:
|
||||
path: spec.parentRefs
|
||||
content:
|
||||
name: gateway
|
||||
namespace: testing
|
||||
kind: Gateway
|
||||
sectionName: athens-proxy-debug-gateway
|
||||
Reference in New Issue
Block a user