1 Commits

Author SHA1 Message Date
4f6612833e Implement Traefik Error Middleware 2024-02-23 08:19:18 -04:00
6 changed files with 188 additions and 27952 deletions

27957
catalog.json

File diff suppressed because it is too large Load Diff

View File

@@ -306,6 +306,15 @@ serviceAccount:
primary: true
# -- SCALE Middleware Handlers
middlewares:
errors: []
# - name: errorsName
# statusCodes:
# - "400-599"
# query: "/{status}.html"
# serviceName: "whoami"
# serviceKind: Service
# serviceNamespace: ix-traefik
# servicePort: 80
basicAuth: []
# - name: basicauthexample
# users:

View File

@@ -455,6 +455,66 @@ questions:
additional_attrs: true
type: dict
attrs:
- variable: errors
label: Errors
schema:
type: list
default: []
items:
- variable: errorsEntry
label: ""
schema:
additional_attrs: true
type: dict
attrs:
- variable: name
label: Name
schema:
type: string
required: true
default: ""
- variable: statusCodes
label: Status Codes
schema:
type: list
default: [ ]
items:
- variable: statusCodesEntry
label: "Status Codes Entry"
schema:
type: string
required: true
default: ""
- variable: query
label: Query
schema:
type: string
required: true
default: ""
- variable: serviceKind
label: Service Kind
schema:
type: string
required: true
default: ""
- variable: serviceNamespace
label: Service Namespace
schema:
type: string
required: true
default: ""
- variable: serviceName
label: Service Name
schema:
type: string
required: true
default: ""
- variable: servicePort
label: Service Port
schema:
type: int
required: true
default: 80
- variable: basicAuth
label: basicAuth
schema:

View File

@@ -70,6 +70,7 @@ args:
{{- if $.Values.ingressClass.enabled }}
- "--providers.kubernetesingress.ingressclass={{ .Release.Name }}"
{{- end }}
- "--providers.kubernetescrd.allowCrossNamespace=true"
{{- range $entrypoint, $config := $ports }}
{{/* add args for proxyProtocol support */}}
{{- if $config.proxyProtocol }}

View File

@@ -0,0 +1,20 @@
{{- range $index, $middlewareData := .Values.middlewares.errors }}
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }}
namespace: {{ $.Release.Namespace }}
spec:
errors:
status:
{{- range $middlewareData.statusCodes }}
- "{{ . }}"
{{- end }}
query: {{ $middlewareData.query }}
service:
name: {{ $middlewareData.serviceName }}
port: {{ $middlewareData.servicePort }}
kind: {{ $middlewareData.serviceKind }}
namespace: ix-{{ $middlewareData.serviceNamespace }}
{{- end -}}

View File

@@ -823,6 +823,99 @@
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "errors",
"label": "errors",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "errorsEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "statusCodes",
"label": "Status Codes",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "statusCodesEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "query",
"label": "Query",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "serviceName",
"label": "Service Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "serviceKind",
"label": "Service Kind",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "serviceNamespace",
"label": "Service Namespace",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "servicePort",
"label": "Service Port",
"schema": {
"type": "int",
"required": true,
"default": 80
}
}
]
}
}
]
}
},
{
"variable": "basicAuth",
"label": "basicAuth",