add external device
This commit is contained in:
52
helm/external-devices/prd/templates/ingressroutes.yaml
Normal file
52
helm/external-devices/prd/templates/ingressroutes.yaml
Normal file
@@ -0,0 +1,52 @@
|
||||
{{- range $name, $device := .Values.externalDevices }}
|
||||
{{- if $device.enabled }}
|
||||
---
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: {{ $name }}
|
||||
namespace: {{ $device.namespace | default $.Values.global.namespace }}
|
||||
labels:
|
||||
app: external-device
|
||||
device: {{ $name }}
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`{{ $device.domain }}`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: {{ $name }}-backend
|
||||
port: {{ $device.port }}
|
||||
{{- if $device.basicAuth.enabled }}
|
||||
middlewares:
|
||||
- name: {{ $name }}-auth
|
||||
{{- end }}
|
||||
tls:
|
||||
secretName: {{ $device.tlsSecret | default $.Values.global.tlsSecret }}
|
||||
{{- if $.Values.global.redirectHttpToHttps }}
|
||||
---
|
||||
# Redirection HTTP vers HTTPS
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: {{ $name }}-http-redirect
|
||||
namespace: {{ $device.namespace | default $.Values.global.namespace }}
|
||||
labels:
|
||||
app: external-device
|
||||
device: {{ $name }}
|
||||
spec:
|
||||
entryPoints:
|
||||
- web
|
||||
routes:
|
||||
- match: Host(`{{ $device.domain }}`)
|
||||
kind: Rule
|
||||
middlewares:
|
||||
- name: redirect-https
|
||||
services:
|
||||
- name: {{ $name }}-backend
|
||||
port: {{ $device.port }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
29
helm/external-devices/prd/templates/middlewares.yaml
Normal file
29
helm/external-devices/prd/templates/middlewares.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
{{- if .Values.global.redirectHttpToHttps }}
|
||||
---
|
||||
# Middleware pour rediriger HTTP vers HTTPS
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: Middleware
|
||||
metadata:
|
||||
name: redirect-https
|
||||
namespace: {{ .Values.global.namespace }}
|
||||
spec:
|
||||
redirectScheme:
|
||||
scheme: https
|
||||
permanent: true
|
||||
{{- end }}
|
||||
|
||||
{{- range $name, $device := .Values.externalDevices }}
|
||||
{{- if and $device.enabled $device.basicAuth.enabled }}
|
||||
---
|
||||
# Middleware d'authentification basique pour {{ $name }}
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: Middleware
|
||||
metadata:
|
||||
name: {{ $name }}-auth
|
||||
namespace: {{ $device.namespace | default $.Values.global.namespace }}
|
||||
spec:
|
||||
basicAuth:
|
||||
secret: {{ $device.basicAuth.secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
21
helm/external-devices/prd/templates/services.yaml
Normal file
21
helm/external-devices/prd/templates/services.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
{{- range $name, $device := .Values.externalDevices }}
|
||||
{{- if $device.enabled }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ $name }}-backend
|
||||
namespace: {{ $device.namespace | default $.Values.global.namespace }}
|
||||
labels:
|
||||
app: external-device
|
||||
device: {{ $name }}
|
||||
spec:
|
||||
type: ExternalName
|
||||
externalName: {{ $device.ip }}
|
||||
ports:
|
||||
- port: {{ $device.port }}
|
||||
targetPort: {{ $device.port }}
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
Reference in New Issue
Block a user