mirror of
https://github.com/dredx/prole.git
synced 2026-09-24 15:04:31 +00:00
Repairs and improvements:
- iSCSI: Added cleanup tasks to remove stale mounts and fstab entries. Improved robustness of iSCSI target management and added 'iscsi_absent_mounts' support.
- K3s:
- Updated service start logic to accept 'activating' state, preventing premature failure during slow startups.
- Improved service stop logic to safely handle missing or not-found services.
- Ensured 'prole-installer' ServiceAccount and ClusterRoleBinding exist for K8s administration.
- Added leader election and etcd tuning arguments (forgiving leases) to config.yaml.j2.
- Removed deprecated 'prole-port-forwards' systemd service.
- Installer & Scripts:
- Updated legacy_tk.py to support K3s mode, secret resolution for passwords, and better environment management (including ~/.prole/env.sh for service mode).
- Updated init_ansible.sh to support PROLE_VAULT_PASS_FILE and ANSIBLE_VAULT_PASSWORD_FILE.
- Improved directory and kubeconfig path resolution in prole_cfg.sh to support fallback to ~/.prole.
- Enhanced Grafana password resolution in init_monitoring.sh.
- Added automatic application of iSCSI StorageClass and PersistentVolumes in init_openbao.sh.
- General: Switched conf/prole.cfg to k3s deployment mode and updated vault_k3s.yml token.
New Ansible Tasks and Playbooks:
- infrastructure/playbooks/iscsi_cleanup.yml: Automates logout and removal of stale iSCSI node records.
- infrastructure/playbooks/prole_logs_migrate.yml: Orchestrates /prole/logs migration to iSCSI storage.
- infrastructure/playbooks/tmp_bao_dir.yml: Ensures host-level storage directories for OpenBao.
- infrastructure/playbooks/tmp_mount.yml: Utility to verify and enforce host-level mounts.
- infrastructure/playbooks/k3s_sync.yml: Added tasks to start K3s after sync and update local kubeconfig on the controller.
- Added 'Unmount stale iSCSI mounts' and 'Remove stale iSCSI fstab entries' to the iscsi role.
- Added 'Ensure prole-installer service account exists' to the k3s role.
56 lines
1.5 KiB
YAML
56 lines
1.5 KiB
YAML
---
|
|
- name: Install iSCSI dependencies
|
|
ansible.builtin.package:
|
|
name:
|
|
- open-iscsi
|
|
- util-linux
|
|
state: present
|
|
|
|
- name: Ensure iscsid enabled
|
|
ansible.builtin.service:
|
|
name: iscsid
|
|
state: started
|
|
enabled: true
|
|
|
|
- name: Configure and login iSCSI targets
|
|
ansible.builtin.include_tasks: iscsi_target.yml
|
|
loop: "{{ iscsi_targets | default([]) }}"
|
|
loop_control:
|
|
loop_var: t
|
|
|
|
- name: Unmount stale iSCSI mounts
|
|
ansible.builtin.mount:
|
|
path: "{{ item.path | default(item) }}"
|
|
state: unmounted
|
|
loop: "{{ iscsi_absent_mounts | default([]) }}"
|
|
loop_control:
|
|
label: "{{ item.path | default(item) }}"
|
|
tags:
|
|
- iscsi_cleanup
|
|
|
|
- name: Remove stale iSCSI fstab entries
|
|
ansible.builtin.lineinfile:
|
|
path: /etc/fstab
|
|
state: absent
|
|
regexp: "^\\\\S+\\\\s+{{ (item.path | default(item)) | regex_escape }}\\\\s+"
|
|
loop: "{{ iscsi_absent_mounts | default([]) }}"
|
|
loop_control:
|
|
label: "{{ item.path | default(item) }}"
|
|
tags:
|
|
- iscsi_cleanup
|
|
|
|
- name: Mount filesystems for iSCSI targets
|
|
ansible.builtin.include_tasks: iscsi_mount.yml
|
|
loop: "{{ iscsi_targets | default([]) | map(attribute='mounts') | list | flatten }}"
|
|
loop_control:
|
|
loop_var: m
|
|
|
|
- name: Guardrail - ensure required mountpoints are mounted
|
|
ansible.builtin.command: "findmnt -n {{ item.path }}"
|
|
register: _findmnt
|
|
changed_when: false
|
|
failed_when: _findmnt.rc != 0
|
|
loop: "{{ iscsi_targets | default([]) | map(attribute='mounts') | list | flatten }}"
|
|
loop_control:
|
|
label: "{{ item.path }}"
|