feat(global_defaults): validate user input against one argument spec on both paths
This commit is contained in:
@@ -0,0 +1,248 @@
|
||||
---
|
||||
# Validated by the validate_inputs action, not by Ansible's role argument check: no tasks file is named
|
||||
# `inputs`. A sub-option named `<name>` marks a dict keyed by name.
|
||||
argument_specs:
|
||||
inputs:
|
||||
short_description: User input read by the bootstrap and, through the main repository, by every role
|
||||
options:
|
||||
boot_iso: {type: str}
|
||||
rhel_iso: {type: str}
|
||||
custom_iso: {type: bool}
|
||||
thirdparty_tasks: {type: str}
|
||||
note: {type: str}
|
||||
hypervisor:
|
||||
type: dict
|
||||
options:
|
||||
type: {type: str, choices: [libvirt, proxmox, vmware, xen, none]}
|
||||
url: {type: str}
|
||||
username: {type: str}
|
||||
password: {type: str, no_log: true}
|
||||
token_id: {type: str}
|
||||
token_secret: {type: str, no_log: true}
|
||||
node: {type: str}
|
||||
cluster: {type: str}
|
||||
datacenter: {type: str}
|
||||
storage: {type: str}
|
||||
folder: {type: str}
|
||||
certs: {type: bool}
|
||||
ssh: {type: bool}
|
||||
system:
|
||||
type: dict
|
||||
options:
|
||||
type: {type: str, choices: [virtual, physical, vm]}
|
||||
os: {type: str}
|
||||
version: {type: str}
|
||||
filesystem: {type: str, choices: [btrfs, ext4, xfs]}
|
||||
name: {type: str}
|
||||
source: {type: str}
|
||||
id: {type: str}
|
||||
cpus: {type: int}
|
||||
memory: {type: int}
|
||||
balloon: {type: int}
|
||||
path: {type: str}
|
||||
timezone: {type: str}
|
||||
locale: {type: str}
|
||||
keymap: {type: str}
|
||||
packages: {type: list, elements: str}
|
||||
network:
|
||||
type: dict
|
||||
options:
|
||||
bridge: {type: str}
|
||||
vlan: {type: str}
|
||||
ip: {type: str}
|
||||
prefix: {type: str}
|
||||
gateway: {type: str}
|
||||
dns:
|
||||
type: dict
|
||||
options:
|
||||
servers: {type: list, elements: str}
|
||||
search: {type: list, elements: str}
|
||||
interfaces:
|
||||
type: list
|
||||
elements: dict
|
||||
options:
|
||||
name: {type: str}
|
||||
bridge: {type: str}
|
||||
vlan: {type: str}
|
||||
ip: {type: str}
|
||||
prefix: {type: str}
|
||||
gateway: {type: str}
|
||||
extra_addresses: {type: list, elements: str}
|
||||
parent: {type: str}
|
||||
method: {type: str}
|
||||
bridge_ports: {type: raw}
|
||||
bridge_vids: {type: raw}
|
||||
bridge_stp: {type: bool}
|
||||
bridge_fd: {type: int}
|
||||
bridge_vlan_aware: {type: bool}
|
||||
bridge_pvid: {type: str}
|
||||
disks:
|
||||
type: list
|
||||
elements: dict
|
||||
options:
|
||||
size: {type: float}
|
||||
device: {type: str}
|
||||
storage: {type: str}
|
||||
format: {type: str}
|
||||
bus: {type: str}
|
||||
slot: {type: str}
|
||||
path: {type: str}
|
||||
target: {type: str}
|
||||
mount:
|
||||
type: dict
|
||||
options:
|
||||
path: {type: str}
|
||||
fstype: {type: str, choices: ["", btrfs, ext4, xfs]}
|
||||
label: {type: str}
|
||||
opts: {type: str}
|
||||
users:
|
||||
type: dict
|
||||
options:
|
||||
"<name>":
|
||||
type: dict
|
||||
options:
|
||||
password: {type: str, no_log: true}
|
||||
keys: {type: list, elements: str}
|
||||
sudo: {type: raw}
|
||||
groups: {type: list, elements: str}
|
||||
shell: {type: str}
|
||||
password_login: {type: bool}
|
||||
uid: {type: int}
|
||||
disabled: {type: bool}
|
||||
root:
|
||||
type: dict
|
||||
options:
|
||||
password: {type: str, no_log: true}
|
||||
shell: {type: str}
|
||||
content:
|
||||
type: dict
|
||||
options:
|
||||
source: {type: str, choices: ["", dvd, mirror, satellite, none]}
|
||||
url: {type: str}
|
||||
proxy: {type: str}
|
||||
gpgcheck: {type: bool}
|
||||
satellite:
|
||||
type: dict
|
||||
options:
|
||||
host: {type: str}
|
||||
ip: {type: str}
|
||||
org: {type: str}
|
||||
activation_key: {type: str, no_log: true}
|
||||
ca_url: {type: str}
|
||||
service_level: {type: str}
|
||||
environment: {type: str}
|
||||
install: {type: bool}
|
||||
luks:
|
||||
type: dict
|
||||
options:
|
||||
enabled: {type: bool}
|
||||
passphrase: {type: str, no_log: true}
|
||||
mapper: {type: str}
|
||||
auto: {type: bool}
|
||||
method: {type: str, choices: [tpm2, keyfile]}
|
||||
tpm2:
|
||||
type: dict
|
||||
options:
|
||||
device: {type: str}
|
||||
pcrs: {type: raw}
|
||||
keysize: {type: int}
|
||||
options: {type: str}
|
||||
type: {type: str}
|
||||
cipher: {type: str}
|
||||
hash: {type: str}
|
||||
iter: {type: int}
|
||||
bits: {type: int}
|
||||
pbkdf: {type: str}
|
||||
features:
|
||||
type: dict
|
||||
options:
|
||||
cloud_init: {type: bool}
|
||||
cis:
|
||||
type: dict
|
||||
options:
|
||||
enabled: {type: bool}
|
||||
profile: {type: str, choices: [default, l1, l2]}
|
||||
rules: {type: dict}
|
||||
params: {type: dict}
|
||||
selinux:
|
||||
type: dict
|
||||
options:
|
||||
enabled: {type: bool}
|
||||
firewall:
|
||||
type: dict
|
||||
options:
|
||||
enabled: {type: bool}
|
||||
backend: {type: str, choices: ["", firewalld, ufw]}
|
||||
toolkit: {type: str, choices: [nftables, iptables]}
|
||||
ssh:
|
||||
type: dict
|
||||
options:
|
||||
enabled: {type: bool}
|
||||
zstd:
|
||||
type: dict
|
||||
options:
|
||||
enabled: {type: bool}
|
||||
swap:
|
||||
type: dict
|
||||
options:
|
||||
enabled: {type: bool}
|
||||
banner:
|
||||
type: dict
|
||||
options:
|
||||
motd: {type: bool}
|
||||
sudo: {type: bool}
|
||||
chroot:
|
||||
type: dict
|
||||
options:
|
||||
tool: {type: str, choices: [arch-chroot, chroot, systemd-nspawn]}
|
||||
initramfs:
|
||||
type: dict
|
||||
options:
|
||||
generator: {type: str, choices: ["", dracut, mkinitcpio, initramfs-tools]}
|
||||
desktop:
|
||||
type: dict
|
||||
options:
|
||||
enabled: {type: bool}
|
||||
environment: {type: str, choices: ["", gnome, kde, sway, hyprland]}
|
||||
display_manager: {type: str, choices: ["", gdm, sddm, plasma-login-manager, greetd, ly]}
|
||||
autologin: {type: raw}
|
||||
session: {type: str}
|
||||
groups: {type: list, elements: str}
|
||||
secure_boot:
|
||||
type: dict
|
||||
options:
|
||||
enabled: {type: bool}
|
||||
method: {type: str, choices: ["", sbctl, uki]}
|
||||
firmware:
|
||||
type: dict
|
||||
options:
|
||||
enabled: {type: raw, choices: [true, false, auto]}
|
||||
microcode: {type: raw, choices: [true, false, auto]}
|
||||
gpu:
|
||||
type: dict
|
||||
options:
|
||||
enabled: {type: raw, choices: [true, false, auto]}
|
||||
nvidia_driver: {type: str, choices: [auto, open, proprietary, nouveau]}
|
||||
peripherals:
|
||||
type: dict
|
||||
options:
|
||||
enabled: {type: raw, choices: [true, false, auto]}
|
||||
fingerprint: {type: raw, choices: [true, false, auto]}
|
||||
camera: {type: raw, choices: [true, false, auto]}
|
||||
audio: {type: raw, choices: [true, false, auto]}
|
||||
bluetooth: {type: raw, choices: [true, false, auto]}
|
||||
displaylink: {type: bool}
|
||||
hardware:
|
||||
type: dict
|
||||
options:
|
||||
profile: {type: dict}
|
||||
cpu: {type: str}
|
||||
gpus: {type: list, elements: str}
|
||||
wireless: {type: list, elements: str}
|
||||
audio: {type: list, elements: str}
|
||||
camera: {type: dict}
|
||||
fingerprint: {type: bool}
|
||||
bluetooth: {type: bool}
|
||||
packages: {type: dict}
|
||||
disable: {type: list, elements: str}
|
||||
kernel_params: {type: list, elements: str}
|
||||
Reference in New Issue
Block a user