ExternalService and Entrypoint-Disable Support (#256)
* Setup externalService processing and enhance Traefik * Simplify Ingress * Simplify External Services * Adjust Service and Portal settings accordingly * Fix some newly introduced bugs * Adapt docs
This commit is contained in:
committed by
kjeld Schouten-Lebbing
parent
fcc43dbcdf
commit
1257de6408
+160
-64
@@ -70,20 +70,6 @@ We try to maintain as much of a standardised questions.yaml format as possible,
|
||||
editable: false
|
||||
type: string
|
||||
default: ""
|
||||
# - variable: servicePort
|
||||
# label: "Service Port to proxy to"
|
||||
# schema:
|
||||
# hidden: true
|
||||
# editable: false
|
||||
# type: int
|
||||
# default: 80
|
||||
- variable: serviceKind
|
||||
label: "Service Kind to proxy to"
|
||||
schema:
|
||||
hidden: true
|
||||
editable: false
|
||||
type: string
|
||||
default: ""
|
||||
- variable: entrypoint
|
||||
label: "Select Entrypoint"
|
||||
schema:
|
||||
@@ -109,29 +95,13 @@ We try to maintain as much of a standardised questions.yaml format as possible,
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
- variable: paths
|
||||
label: "paths"
|
||||
- variable: path
|
||||
label: "path"
|
||||
schema:
|
||||
type: list
|
||||
default: []
|
||||
items:
|
||||
- variable: path
|
||||
label: "Path"
|
||||
schema:
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: path
|
||||
label: "path"
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
default: "/"
|
||||
- variable: pathType
|
||||
label: "pathType"
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
default: "prefix"
|
||||
type: string
|
||||
required: true
|
||||
hidden: true
|
||||
default: "/"
|
||||
- variable: certType
|
||||
label: "Select Certificate Type"
|
||||
schema:
|
||||
@@ -189,20 +159,6 @@ We try to maintain as much of a standardised questions.yaml format as possible,
|
||||
editable: false
|
||||
type: string
|
||||
default: ""
|
||||
# - variable: servicePort
|
||||
# label: "Service Port to proxy to"
|
||||
# schema:
|
||||
# hidden: true
|
||||
# editable: false
|
||||
# type: int
|
||||
# default: 80
|
||||
- variable: serviceKind
|
||||
label: "Service Kind to proxy to"
|
||||
schema:
|
||||
hidden: true
|
||||
editable: false
|
||||
type: string
|
||||
default: ""
|
||||
- variable: entrypoint
|
||||
label: "Select Entrypoint"
|
||||
schema:
|
||||
@@ -244,20 +200,6 @@ We try to maintain as much of a standardised questions.yaml format as possible,
|
||||
editable: false
|
||||
type: string
|
||||
default: ""
|
||||
# - variable: servicePort
|
||||
# label: "Service Port to proxy to"
|
||||
# schema:
|
||||
# hidden: true
|
||||
# editable: false
|
||||
# type: int
|
||||
# default: 80
|
||||
- variable: serviceKind
|
||||
label: "Service Kind to proxy to"
|
||||
schema:
|
||||
hidden: true
|
||||
editable: false
|
||||
type: string
|
||||
default: ""
|
||||
- variable: entrypoint
|
||||
label: "Select Entrypoint"
|
||||
schema:
|
||||
@@ -268,3 +210,157 @@ We try to maintain as much of a standardised questions.yaml format as possible,
|
||||
- value: "torrent-udp"
|
||||
description: "Torrent-UDP: port 51413"
|
||||
```
|
||||
|
||||
### Other Ingress options
|
||||
|
||||
There are a few other options that are rarely (if ever) used.
|
||||
|
||||
##### servicePort
|
||||
|
||||
```
|
||||
- variable: servicePort
|
||||
label: "Service Port to proxy to"
|
||||
schema:
|
||||
hidden: true
|
||||
editable: false
|
||||
type: int
|
||||
default: 80
|
||||
```
|
||||
|
||||
|
||||
##### serviceKind
|
||||
|
||||
```
|
||||
- variable: serviceKind
|
||||
label: "Service Kind to proxy to"
|
||||
schema:
|
||||
hidden: true
|
||||
editable: false
|
||||
type: string
|
||||
default: ""
|
||||
```
|
||||
|
||||
|
||||
### External Services
|
||||
|
||||
The externalServices option, is actually mostly an Ingress "under the hood" which just creates a very small (minimal) service.
|
||||
|
||||
```
|
||||
- variable: externalServices
|
||||
label: "(Advanced) Add External Services"
|
||||
group: "Advanced"
|
||||
schema:
|
||||
type: list
|
||||
default: []
|
||||
items:
|
||||
- variable: externalService
|
||||
label: "External Service"
|
||||
schema:
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: enabled
|
||||
label: "Enable Web Reverse Proxy"
|
||||
schema:
|
||||
type: boolean
|
||||
hidden: true
|
||||
editable: false
|
||||
default: true
|
||||
- variable: type
|
||||
label: "Reverse Proxy Type"
|
||||
schema:
|
||||
type: string
|
||||
default: "HTTP"
|
||||
hidden: true
|
||||
editable: false
|
||||
required: true
|
||||
- variable: serviceName
|
||||
label: "Service name to proxy to"
|
||||
schema:
|
||||
hidden: true
|
||||
editable: false
|
||||
type: string
|
||||
default: ""
|
||||
- variable: serviceTarget
|
||||
label: "IP Adress of the external service"
|
||||
schema:
|
||||
hidden: false
|
||||
editable: true
|
||||
required: true
|
||||
type: string
|
||||
default: "192.168.0.0"
|
||||
- variable: servicePort
|
||||
label: "External Service Port"
|
||||
description: "The port on the external service you want to proxy"
|
||||
schema:
|
||||
hidden: false
|
||||
required: true
|
||||
editable: true
|
||||
type: int
|
||||
default: 80
|
||||
- variable: serviceType
|
||||
label: "Connection Type"
|
||||
description: "Connection Type between Traefik and the external service"
|
||||
schema:
|
||||
hidden: false
|
||||
editable: true
|
||||
required: true
|
||||
default: "HTTP"
|
||||
type: string
|
||||
enum:
|
||||
- value: "HTTP"
|
||||
description: "HTTP"
|
||||
- value: "HTTPS"
|
||||
description: "HTTPS"
|
||||
- variable: serviceKind
|
||||
label: "Service Kind to proxy to"
|
||||
schema:
|
||||
hidden: true
|
||||
editable: false
|
||||
type: string
|
||||
default: ""
|
||||
- variable: entrypoint
|
||||
label: "Select Entrypoint"
|
||||
schema:
|
||||
type: string
|
||||
default: "websecure"
|
||||
required: true
|
||||
enum:
|
||||
- value: "websecure"
|
||||
description: "Websecure: HTTPS/TLS port 443"
|
||||
- variable: host
|
||||
label: "Domain Name"
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
- variable: path
|
||||
label: "path"
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
hidden: false
|
||||
default: "/"
|
||||
- variable: certType
|
||||
label: "Select Certificate Type"
|
||||
schema:
|
||||
type: string
|
||||
default: "selfsigned"
|
||||
enum:
|
||||
- value: ""
|
||||
description: "No Encryption/TLS/Certificates"
|
||||
- value: "selfsigned"
|
||||
description: "Self-Signed Certificate"
|
||||
- value: "ixcert"
|
||||
description: "TrueNAS SCALE Certificate"
|
||||
- variable: certificate
|
||||
label: "Select TrueNAS SCALE Certificate"
|
||||
schema:
|
||||
type: int
|
||||
show_if: [["certType", "=", "ixcert"]]
|
||||
$ref:
|
||||
- "definitions/certificate"
|
||||
- variable: authForwardURL
|
||||
label: "Forward Authentication URL"
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
```
|
||||
|
||||
@@ -4,9 +4,9 @@ After installation almost every app should have a "portal" button. This button i
|
||||
|
||||
##### questions.yaml example
|
||||
|
||||
Every questions.yaml file should contain the following snippets to enable the portal button. Please be aware to change `"https"` to `"http"` if your application uses http instead of https when running using "NodePort".
|
||||
Every questions.yaml file should contain the following snippets to enable the portal button. Please be aware to change `"http"` to `"https"` in services.main.port.protocol if your application uses http instead of https when running using "NodePort".
|
||||
|
||||
Also please be aware that the portal only(!) points towards the main service and main ingress.
|
||||
Also please be aware that the portal only(!) points towards the main service, main service port and main ingress.
|
||||
|
||||
```
|
||||
portals:
|
||||
@@ -17,7 +17,7 @@ portals:
|
||||
- "$kubernetes-resource_configmap_portal_host"
|
||||
ports:
|
||||
- "$kubernetes-resource_configmap_portal_port"
|
||||
path: "/"
|
||||
path: "/"
|
||||
|
||||
questions:
|
||||
|
||||
@@ -36,14 +36,6 @@ questions:
|
||||
editable: false
|
||||
type: boolean
|
||||
default: true
|
||||
- variable: nodePortProtocol
|
||||
label: "Protocol when using NodePort"
|
||||
description: "Enter the protocol to use when using nodeport"
|
||||
schema:
|
||||
hidden: true
|
||||
editable: false
|
||||
type: string
|
||||
default: "https"
|
||||
|
||||
```
|
||||
|
||||
|
||||
@@ -64,13 +64,13 @@ Please keep in mind that every App is different, some just have one service (whi
|
||||
label: "Port Type"
|
||||
schema:
|
||||
type: string
|
||||
default: "TCP"
|
||||
hidden: true
|
||||
default: "HTTP"
|
||||
hidden: false
|
||||
enum:
|
||||
- value: TCP
|
||||
description: "TCP"
|
||||
- value: "UDP"
|
||||
description: "UDP"
|
||||
- value: HTTP
|
||||
description: "HTTP"
|
||||
- value: "HTTPS"
|
||||
description: "HTTPS"
|
||||
- variable: port
|
||||
label: "container port"
|
||||
schema:
|
||||
|
||||
Reference in New Issue
Block a user