diff --git a/infrastructure/ansible/deploy_logic_push.yml b/infrastructure/ansible/deploy_logic_push.yml index 5f6fdc8..9774f44 100644 --- a/infrastructure/ansible/deploy_logic_push.yml +++ b/infrastructure/ansible/deploy_logic_push.yml @@ -85,13 +85,14 @@ mode: '0600' when: env_dict | length > 0 -# 6. Sync Dateien +# 6. Sync Dateien (mit Change-Detection für Config-Apps) - name: "Synchronisiere App-Dateien (Push)" copy: src: "{{ source_dir }}/" dest: "{{ target_dir }}/" mode: '0644' directory_mode: '0755' + register: file_sync_result # 7. Docker Compose Deployment - name: "Deploy {{ app_item.name }} mit Docker Compose" @@ -104,3 +105,14 @@ environment: PATH: "/usr/bin:/usr/local/bin:/snap/bin:{{ ansible_env.PATH }}" 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 diff --git a/infrastructure/apps/traefik-edge/config/dynamic/05-internal-ipwhitelist.yaml b/infrastructure/apps/traefik-edge/config/dynamic/05-internal-ipwhitelist.yaml deleted file mode 100644 index a7cdb49..0000000 --- a/infrastructure/apps/traefik-edge/config/dynamic/05-internal-ipwhitelist.yaml +++ /dev/null @@ -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 diff --git a/infrastructure/apps/traefik-edge/config/dynamic/10-k3s.yaml b/infrastructure/apps/traefik-edge/config/dynamic/10-k3s.yaml index 3c4fd82..36408ce 100644 --- a/infrastructure/apps/traefik-edge/config/dynamic/10-k3s.yaml +++ b/infrastructure/apps/traefik-edge/config/dynamic/10-k3s.yaml @@ -1,8 +1,8 @@ tcp: routers: - # Öffentliche k3s Domains (NICHT *.apps.internal.*) + # Alle k3s Domains (inkl. *.apps.internal.*) über TLS Passthrough k3s-passthrough: - rule: "HostSNIRegexp(`^[^.]+\\.(apps|sys)\\.k3s\\.stabify\\.de$`) && !HostSNIRegexp(`^.+\\.apps\\.internal\\.k3s\\.stabify\\.de$`)" + rule: "HostSNIRegexp(`^.+\\.k3s\\.stabify\\.de$`)" entryPoints: - websecure service: k3s-cluster diff --git a/infrastructure/deployments/vm-docker-traefik-302.stabify.de.yml b/infrastructure/deployments/vm-docker-traefik-302.stabify.de.yml index 911ca90..6c8c122 100644 --- a/infrastructure/deployments/vm-docker-traefik-302.stabify.de.yml +++ b/infrastructure/deployments/vm-docker-traefik-302.stabify.de.yml @@ -1,3 +1,4 @@ apps: - name: traefik-edge has_secrets: true # Benötigt Cloudflare Token + restart_on_config_change: true # Container neu starten wenn Config-Dateien geändert wurden \ No newline at end of file