Reorganize the brownfield repository, remove retired and generated artifacts, harden ignore rules, and record the GitOps/IaC redesign.
40 lines
2.1 KiB
Plaintext
40 lines
2.1 KiB
Plaintext
# Stage-1 Ansible lint. Starting at `basic` on purpose: this is an existing,
|
|
# working 33-role codebase, so the first pass must be adoptable rather than a
|
|
# wall of findings. Ratchet to `moderate` -> `safety` -> `production` once each
|
|
# level is clean; that ordering is ansible-lint's own progression.
|
|
profile: basic
|
|
|
|
exclude_paths:
|
|
- netboot.xyz/ # pristine upstream clone, not ours
|
|
- apps/napcat/
|
|
- node_modules/
|
|
- .git/
|
|
|
|
# Roles here are referenced by relative roles_path from each service's
|
|
# ansible.cfg, not installed as galaxy collections, so name-prefix rules that
|
|
# assume a collection layout do not apply.
|
|
skip_list:
|
|
- role-name # roles are local (pve_auth, dc_vm), not namespaced
|
|
|
|
# 265 of the 300 findings were this single rule. It demands every in-role
|
|
# variable carry the full role name, turning `win_vm_disk_gb` (role
|
|
# windows_vm) into `windows_vm_disk_gb` and `vyos_lan_address` (role
|
|
# vyos_router) into `vyos_router_lan_address`. That is a repo-wide rename of
|
|
# working code for no behavioural gain, and `_`-prefixed registers are already
|
|
# a clear private-variable convention here. Revisit only if these roles are
|
|
# ever published as a collection, where the prefix genuinely prevents clashes.
|
|
- var-naming[no-role-prefix]
|
|
|
|
# Visible but non-blocking, so the first gate can pass on an existing codebase.
|
|
# Ratchet: clear these, move them out of warn_list, then raise `profile` to
|
|
# moderate -> safety -> production. Each step should be its own change.
|
|
warn_list:
|
|
- command-instead-of-module # VyOS has no Python interpreter; module equivalents
|
|
# do not exist for much of the PVE CLI surface either
|
|
- no-changed-when # several tasks are reconcile ACTIONS (pveum realm sync)
|
|
# with no no-op signal to key off — documented in-role
|
|
- name[casing] # 14 findings, cosmetic
|
|
- schema[meta] # 6 roles lack galaxy_info.author; only matters if published
|
|
- yaml[line-length] # already governed by .yamllint.yml
|
|
- jinja[spacing]
|