diff --git a/.woodpecker.yml b/.woodpecker.yml index b977b82..8eca8cf 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -94,7 +94,7 @@ steps: ANSIBLE_CONFIG: ansible.cfg SSH_PRIVATE_KEY: from_secret: SSH_PRIVATE_KEY - GITOPS_STATUS_SERVER_URL: http://gitops-status-server.observability-stack.svc.cluster.local:5000 + GITOPS_STATUS_SERVER_URL: http://gitops-status-server.observability-stack.svc.cluster.local:80 REPO_NAME: rsyslog SERVER_NAME: rsyslog-lab # Optimize Ansible for container environment @@ -145,7 +145,7 @@ steps: ANSIBLE_CONFIG: ansible.cfg SSH_PRIVATE_KEY: from_secret: SSH_PRIVATE_KEY - GITOPS_STATUS_SERVER_URL: http://gitops-status-server.observability-stack.svc.cluster.local:5000 + GITOPS_STATUS_SERVER_URL: http://gitops-status-server.observability-stack.svc.cluster.local:80 REPO_NAME: rsyslog SERVER_NAME: rsyslog-lab # Optimize Ansible for container environment diff --git a/ansible/playbooks/drift-check.yml b/ansible/playbooks/drift-check.yml index e12d733..4e90dba 100644 --- a/ansible/playbooks/drift-check.yml +++ b/ansible/playbooks/drift-check.yml @@ -62,19 +62,21 @@ ansible.builtin.set_fact: missing_on_server: "{{ git_filenames | difference(server_filenames) }}" - - name: Flag if any Git-managed file is missing from server - ansible.builtin.set_fact: - extra_files_on_server: true - when: missing_on_server | length > 0 - - name: Show missing files ansible.builtin.debug: msg: "Files in Git but missing on server: {{ missing_on_server }}" when: missing_on_server | length > 0 + # Initialize missing_on_server with default empty list to avoid undefined variable errors + - name: Initialize missing files tracking + ansible.builtin.set_fact: + missing_on_server: [] + - name: Set overall drift flag ansible.builtin.set_fact: - drift_detected: "{{ main_config_check.changed or rsyslogd_check.changed or (extra_files_on_server | default(false)) }}" + # Drift detected if: main config changed OR rsyslog.d changed OR any git-managed files missing from server + # Using | default([]) to safely handle undefined variables in container environment + drift_detected: "{{ main_config_check.changed or rsyslogd_check.changed or (missing_on_server | default([]) | length > 0) }}" # ───────────────────────────────────────────────────────────────────────── # Debug: Show WHAT changed (for troubleshooting) @@ -124,25 +126,13 @@ drifted_files: "{{ drifted_files + ['/etc/rsyslog.conf'] }}" when: main_config_check.changed - - name: Debug rsyslogd_check structure - ansible.builtin.debug: - msg: "rsyslogd_check.diff type: {{ rsyslogd_check.diff is iterable }}, content: {{ rsyslogd_check.diff }}" - when: rsyslogd_check.changed and rsyslogd_check.diff is defined - - name: Mark rsyslog.d directory as changed (simplified) ansible.builtin.set_fact: drifted_files: "{{ drifted_files + ['/etc/rsyslog.d/'] }}" when: rsyslogd_check.changed - - name: Debug changed files list after rsyslog.d check - ansible.builtin.debug: - msg: "Drifted files after rsyslog.d: {{ drifted_files }}" - - - name: Add missing files to drifted list - ansible.builtin.set_fact: - drifted_files: "{{ drifted_files + ['rsyslog.d/' + item] }}" - loop: "{{ missing_on_server }}" - when: missing_on_server is defined and missing_on_server | length > 0 + # NOTE: missing_on_server files are tracked in drift_detected flag but not in drifted_files list + # This is intentional - they indicate missing deployed files, which is a drift condition # ───────────────────────────────────────────────────────────────────────── # Debug output: Show structured drifted files for parsing