added new docker settings for traefik
This commit is contained in:
@@ -85,13 +85,14 @@
|
|||||||
mode: '0600'
|
mode: '0600'
|
||||||
when: env_dict | length > 0
|
when: env_dict | length > 0
|
||||||
|
|
||||||
# 6. Sync Dateien
|
# 6. Sync Dateien (mit Change-Detection für Config-Apps)
|
||||||
- name: "Synchronisiere App-Dateien (Push)"
|
- name: "Synchronisiere App-Dateien (Push)"
|
||||||
copy:
|
copy:
|
||||||
src: "{{ source_dir }}/"
|
src: "{{ source_dir }}/"
|
||||||
dest: "{{ target_dir }}/"
|
dest: "{{ target_dir }}/"
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
directory_mode: '0755'
|
directory_mode: '0755'
|
||||||
|
register: file_sync_result
|
||||||
|
|
||||||
# 7. Docker Compose Deployment
|
# 7. Docker Compose Deployment
|
||||||
- name: "Deploy {{ app_item.name }} mit Docker Compose"
|
- name: "Deploy {{ app_item.name }} mit Docker Compose"
|
||||||
@@ -104,3 +105,14 @@
|
|||||||
environment:
|
environment:
|
||||||
PATH: "/usr/bin:/usr/local/bin:/snap/bin:{{ ansible_env.PATH }}"
|
PATH: "/usr/bin:/usr/local/bin:/snap/bin:{{ ansible_env.PATH }}"
|
||||||
register: compose_result
|
register: compose_result
|
||||||
|
|
||||||
|
# 8. Restart Container wenn Config-Dateien geändert wurden
|
||||||
|
# (Wichtig für Apps wie Traefik Edge, die Config-Dateien aus dem Dateisystem laden)
|
||||||
|
- name: "Restart {{ app_item.name }} Container wenn Config-Dateien geändert wurden"
|
||||||
|
shell: "cd {{ target_dir }} && docker compose restart"
|
||||||
|
when:
|
||||||
|
- file_sync_result.changed | default(false)
|
||||||
|
- app_item.restart_on_config_change | default(true)
|
||||||
|
environment:
|
||||||
|
PATH: "/usr/bin:/usr/local/bin:/snap/bin:{{ ansible_env.PATH }}"
|
||||||
|
ignore_errors: true
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
http:
|
|
||||||
middlewares:
|
|
||||||
internal-ipwhitelist:
|
|
||||||
ipWhiteList:
|
|
||||||
sourceRange:
|
|
||||||
- "10.100.0.0/16" # Internes Netzwerk (VLAN 30, 40, 90, etc.)
|
|
||||||
- "10.200.0.0/24" # VPN-Netzwerk
|
|
||||||
# Nur VPN-Clients dürfen auf *.apps.internal.* zugreifen
|
|
||||||
|
|
||||||
routers:
|
|
||||||
# Separate Route für interne Apps mit TLS Termination (nicht Passthrough)
|
|
||||||
# Damit können wir IP-Whitelist anwenden
|
|
||||||
internal-apps:
|
|
||||||
rule: "HostRegexp(`^.+\\.apps\\.internal\\.k3s\\.stabify\\.de$`)"
|
|
||||||
entryPoints:
|
|
||||||
- websecure
|
|
||||||
service: k3s-cluster-internal
|
|
||||||
middlewares:
|
|
||||||
- internal-ipwhitelist
|
|
||||||
tls:
|
|
||||||
certResolver: le
|
|
||||||
domains:
|
|
||||||
- main: "*.apps.internal.k3s.stabify.de"
|
|
||||||
|
|
||||||
services:
|
|
||||||
k3s-cluster-internal:
|
|
||||||
loadBalancer:
|
|
||||||
servers:
|
|
||||||
- url: "https://10.100.40.6:443"
|
|
||||||
passHostHeader: true
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
tcp:
|
tcp:
|
||||||
routers:
|
routers:
|
||||||
# Öffentliche k3s Domains (NICHT *.apps.internal.*)
|
# Alle k3s Domains (inkl. *.apps.internal.*) über TLS Passthrough
|
||||||
k3s-passthrough:
|
k3s-passthrough:
|
||||||
rule: "HostSNIRegexp(`^[^.]+\\.(apps|sys)\\.k3s\\.stabify\\.de$`) && !HostSNIRegexp(`^.+\\.apps\\.internal\\.k3s\\.stabify\\.de$`)"
|
rule: "HostSNIRegexp(`^.+\\.k3s\\.stabify\\.de$`)"
|
||||||
entryPoints:
|
entryPoints:
|
||||||
- websecure
|
- websecure
|
||||||
service: k3s-cluster
|
service: k3s-cluster
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
apps:
|
apps:
|
||||||
- name: traefik-edge
|
- name: traefik-edge
|
||||||
has_secrets: true # Benötigt Cloudflare Token
|
has_secrets: true # Benötigt Cloudflare Token
|
||||||
|
restart_on_config_change: true # Container neu starten wenn Config-Dateien geändert wurden
|
||||||
Reference in New Issue
Block a user