Skip to content

Commit 42b9b77

Browse files
renovate[bot]cavcrosby
authored andcommitted
Update development dependencies
The ruff pre-commit hook has been updated to the ruff-check hook, as the former is now just an alias for the latter. The GitHub pull request, astral-sh/ruff-pre-commit#124, discusses these changes. The spacing underneath many lines within the code.md and infrastructure.md Markdown files has changed due to Prettier's pre-commit hook formatting them. Also, many link texts have changed to satisfy markdownlint's new MD059 rule (link text should be descriptive). The use_keywords_order_plays.yml playbook has changed to resolve ansible-lint name[unique] violations. Many role variables have been changed to resolve ansible-lint var-naming[no-role-prefix] violations. Passing the line number for tasks and plays (via 'data') as an argument to the create_matcherror method has changed due to how this attribute is to be accessed in relation to future versions of the ansible-core package (>= 2.19). This conclusion has come from reading ansible/ansible-lint#4554 and ansible/ansible-lint#4564. A version_changed attribute has been added to all rules to suppress a warning now generated from ansible-lint that complains when this attribute is missing. This behavior was introduced as of this commit: ansible/ansible-lint#4431. The value for this attribute models the one in the pyproject.toml file, in that it is not intended to hold much significance. This is primarily because I see little value in updating this attribute over time for internal rules. The _get_leaf_items method's type hint has changed from the union type 'list[Any] | dict[Any, Any]' to 'list[Any] | Mapping[Any, Any]' because the parent class type of ansiblelint.utils.Task has changed to be Mapping[str, Any]. The AnsibleUnicodeItems type alias now uses the 'type' keyword instead of TypeAlias, as this was recommended per ruff's non-pep695-type-alias rule.
1 parent 3712afd commit 42b9b77

File tree

29 files changed

+2045
-2309
lines changed

29 files changed

+2045
-2309
lines changed

.pre-commit-config.yaml

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ default_install_hook_types:
44
- pre-push
55
repos:
66
- repo: https://github.com/pre-commit/pre-commit-hooks.git
7-
rev: v4.6.0
7+
rev: v6.0.0
88
hooks:
99
- id: end-of-file-fixer
1010
- id: check-added-large-files
1111
- id: trailing-whitespace
1212

1313
- repo: https://github.com/ansible-community/ansible-lint.git
14-
rev: v24.9.0
14+
rev: v25.9.2
1515
hooks:
1616
- id: ansible-lint
1717
language: python
@@ -20,10 +20,10 @@ repos:
2020
additional_dependencies:
2121
- ansible-core ==2.17.0
2222
- jmespath ==1.0.1
23-
- pyspellchecker ==0.8.1
23+
- pyspellchecker ==0.8.3
2424

2525
- repo: https://github.com/adrienverge/yamllint.git
26-
rev: v1.35.1
26+
rev: v1.37.1
2727
hooks:
2828
- id: yamllint
2929
args:
@@ -35,7 +35,7 @@ repos:
3535
- ./roles
3636

3737
- repo: https://github.com/DavidAnson/markdownlint-cli2.git
38-
rev: v0.13.0
38+
rev: v0.18.1
3939
hooks:
4040
- id: markdownlint-cli2
4141

@@ -50,7 +50,7 @@ repos:
5050
types:
5151
- markdown
5252
additional_dependencies:
53-
- prettier@3.3.2
53+
- prettier@3.6.2
5454

5555
- id: pytest
5656
name: pytest
@@ -61,9 +61,9 @@ repos:
6161
- python
6262
additional_dependencies:
6363
- ansible-core ==2.17.0
64-
- ansible-lint ==24.9.0
65-
- pyspellchecker ==0.8.1
66-
- pytest ==8.3.4
64+
- ansible-lint ==25.9.2
65+
- pyspellchecker ==0.8.3
66+
- pytest ==8.4.2
6767

6868
- id: gendict.py
6969
name: gendict.py
@@ -73,32 +73,32 @@ repos:
7373
- pre-push
7474
additional_dependencies:
7575
- ansible-core ==2.17.0
76-
- ansible-lint ==24.9.0
77-
- pyspellchecker ==0.8.1
76+
- ansible-lint ==25.9.2
77+
- pyspellchecker ==0.8.3
7878

7979
- repo: https://github.com/gitleaks/gitleaks.git
80-
rev: v8.18.3
80+
rev: v8.28.0
8181
hooks:
8282
- id: gitleaks
8383

8484
- repo: https://github.com/pre-commit/mirrors-mypy.git
85-
rev: v1.13.0
85+
rev: v1.18.2
8686
hooks:
8787
- id: mypy
8888
language: python
8989
args:
9090
- --strict
9191
additional_dependencies:
9292
- ansible-core ==2.17.0
93-
- ansible-lint ==24.9.0
94-
- boto3-stubs[s3] ==1.38.13
95-
- pyspellchecker ==0.8.1
96-
- pytest ==8.3.4
93+
- ansible-lint ==25.9.2
94+
- boto3-stubs[s3] ==1.40.48
95+
- pyspellchecker ==0.8.3
96+
- pytest ==8.4.2
9797

9898
- repo: https://github.com/pre-commit/mirrors-mypy.git
9999
# Do not update unless package versions are supported by the system Python version
100100
# used by the proxy_servers hosts (556b70d).
101-
rev: v1.13.0
101+
rev: v1.18.2
102102
hooks:
103103
- id: mypy
104104
name: mypy (mitmproxy)
@@ -116,9 +116,9 @@ repos:
116116
- types-requests ==2.32.0.20250328
117117

118118
- repo: https://github.com/astral-sh/ruff-pre-commit.git
119-
rev: v0.8.0
119+
rev: v0.14.0
120120
hooks:
121-
- id: ruff
121+
- id: ruff-check
122122
args:
123123
- ./rules
124124

@@ -129,7 +129,7 @@ repos:
129129
- repo: https://github.com/astral-sh/ruff-pre-commit.git
130130
# Do not update unless package versions are supported by the system Python version
131131
# used by the proxy_servers hosts (556b70d).
132-
rev: v0.8.0
132+
rev: v0.14.0
133133
hooks:
134134
- id: ruff
135135
name: ruff (mitmproxy)
@@ -148,18 +148,18 @@ repos:
148148
- jinja
149149

150150
- repo: https://github.com/tofuutils/pre-commit-opentofu.git
151-
rev: v2.2.0
151+
rev: v2.2.1
152152
hooks:
153153
- id: tofu_fmt
154154
- id: tofu_validate
155155

156156
- repo: https://github.com/tombi-toml/tombi-pre-commit.git
157-
rev: v0.3.55
157+
rev: v0.6.25
158158
hooks:
159159
- id: tombi-lint
160160
- id: tombi-format
161161

162162
- repo: https://github.com/koalaman/shellcheck-precommit.git
163-
rev: v0.10.0
163+
rev: v0.11.0
164164
hooks:
165165
- id: shellcheck

docs/code.md

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
- The `site.yml` playbook serves as the main playbook that defines my homelab
99
infrastructure. Below are a few additional playbooks that are worth
1010
mentioning.
11-
1211
- The `on_prem.yml` playbook aggregates common configurations for my on
1312
premises hosts.
1413

@@ -18,7 +17,6 @@
1817

1918
- The `ansible` groups have been defined based mostly on their associated
2019
function. The rest are defined (loosely) based on geography.
21-
2220
- This decision was originally based on
2321
<https://docs.ansible.com/ansible/2.8/user_guide/playbooks_best_practices.html#how-to-differentiate-staging-vs-production>
2422
but such documentation has superseded by
@@ -30,8 +28,7 @@
3028
- The Kubernetes (`k8s`) playbooks are structured to run a generic play first
3129
then a named configuration play second. The notes on these decisions can be
3230
found
33-
[here](https://trello.com/c/QcvcMHUW/59-refactor-k8s-related-playbooks-ansible-units-in-assuming-there-only-exist-one-cluster).
34-
31+
[in its associated Trello card](https://trello.com/c/QcvcMHUW/59-refactor-k8s-related-playbooks-ansible-units-in-assuming-there-only-exist-one-cluster).
3532
- For example, the `Setup Kubernetes control planes (first control-planes)`
3633
play runs before the
3734
`Setup Kubernetes control planes (first control-planes) (poseidon)` play.
@@ -60,9 +57,9 @@
6057
QEMU/KVM along with the `vagrant-libvirt` plugin.
6158

6259
- The top level `vagrant_ansible_vars.json` was written to aggregate `ansible`
63-
host variables and `ansible` groups. A scaled back version of this file can be
64-
found [here](../examples/vagrant_ansible_vars.json). Below will be a brief
65-
outline of some elements that are not self-explanatory.
60+
host variables and `ansible` groups. A scaled back version of this
61+
[file exists within the project](../examples/vagrant_ansible_vars.json). Below
62+
will be a brief outline of some elements that are not self-explanatory.
6663
- `vagrant_config_refs` represent host variables whose value is defined by
6764
other host variables within the same host.
6865
- `vagrant_external_config_refs` represent host variables whose value is
@@ -87,8 +84,7 @@
8784
- `staging-dnsmasq-dhcp.conf.j2`
8885
- Consider the following hierarchy (in decreasing granularity) when creating new
8986
variables to use. This hierarchy is derived from
90-
[here](https://trello.com/c/PYAlPypV/37-check-the-consistency-of-variable-values-being-passed-into-ansible-roles).
91-
87+
[an associated Trello card](https://trello.com/c/PYAlPypV/37-check-the-consistency-of-variable-values-being-passed-into-ansible-roles).
9288
1. Host variables in the inventory file.
9389
2. Group variables in the inventory file.
9490
3. Group variables file within the project.
@@ -97,8 +93,7 @@
9793

9894
- Follow this precedence when naming playbooks (an exception to this would be
9995
those under `./examples/playbooks`). This precedence is derived from
100-
[here](https://trello.com/c/zfi9zgsR/83-integrate-installing-haproxy-and-keepalived-from-poseidonk8scontrollers-into-loadbalancersyml).
101-
96+
[an associated Trello card](https://trello.com/c/zfi9zgsR/83-integrate-installing-haproxy-and-keepalived-from-poseidonk8scontrollers-into-loadbalancersyml).
10297
1. A playbook directly maps to a host's higher purpose via machine hostname
10398
(e.g. `k8s_controllers.yml` -> `poseidon-k8s-controller1`).
10499
2. A playbook indirectly maps to a host's higher purpose via `ansible` groups
@@ -110,15 +105,14 @@
110105

111106
- Update software versions in `poseidon_k8s_software_versions.yml` when
112107
Kubernetes infrastructure patching occurs, as mentioned
113-
[here](./infrastructure.md).
108+
[the Infrastructure Design Documentation](./infrastructure.md).
114109

115110
- Update dependencies accordingly using Renovate.
116111

117112
- Update `VAGRANT_UPSTREAM_VERSION` periodically to newer versions of `vagrant`
118113
as they come out.
119114

120115
- Update language runtime versions periodically.
121-
122116
- Ruby is updated indirectly by upgrading the `vagrant` package from
123117
HashiCorp's package repositories.
124118

@@ -131,9 +125,7 @@
131125
- [Use the following procedure when updating public GPG key checksums.](https://trello.com/c/8IaHDWO7/151-create-a-process-to-verify-public-gpg-keys-upon-updating-related-ansible-tasks-checksum)
132126

133127
- Create new TLS certificates as those expire.
134-
135128
- [Follow these instructions to create a certificate for the root CA.](https://kubernetes.io/docs/tasks/administer-cluster/certificates/#openssl)
136-
137129
- The Common Name (CN) should be set to 'Conner Crosby (homelab-cm)'.
138130

139131
- The following can also be used to generate the signing key and certificate
@@ -144,9 +136,7 @@
144136

145137
- Follow these instructions for the client TLS certificates related to IRC
146138
server identification.
147-
148139
- For Libra.Chat:
149-
150140
1. [Replace a IRC server's TLS certificate by creating a new one.](https://libera.chat/guides/certfp#creating-a-self-signed-certificate)
151141
The following can also be used
152142
`openssl req -x509 -new -nodes -sha256 -newkey "ed25519" -days 1096 -out "./playbooks/files/certs/liberachat.pem" -keyout "./playbooks/files/certs/liberachat.pem"`.
@@ -163,7 +153,6 @@
163153
7. Upload the new certificate to Bitwarden.
164154

165155
- For OFTC:
166-
167156
1. [Replace a IRC server's TLS certificate by creating a new one.](https://libera.chat/guides/certfp#creating-a-self-signed-certificate)
168157
The following can also be used
169158
`openssl req -x509 -new -nodes -sha256 -newkey "ed25519" -days 1096 -out "./playbooks/files/certs/oftc.pem" -keyout "./playbooks/files/certs/oftc.pem"`.

docs/dictionary.txt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ apt_pkg
1010
aptsources
1111
arptables
1212
authorized_keys
13+
baz
1314
bgp
1415
br_netfilter
15-
ca
1616
calicoctl
1717
cfg
1818
cni
@@ -23,7 +23,6 @@ cri
2323
cronjobs
2424
csrs
2525
ddns
26-
debian
2726
dhcp
2827
dns
2928
dnsmasq
@@ -89,7 +88,6 @@ nginx
8988
nodeport
9089
pam_access
9190
permitrootlogin
92-
poseidon
9391
poseidon_ingress_nginx_node_http_port
9492
py
9593
python3
@@ -107,7 +105,6 @@ tigera
107105
tmux
108106
udev
109107
uri
110-
us's
111108
usa
112109
userland
113110
utf

docs/infrastructure.md

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
## Architecture
44

55
- The following are the subnets for my homelab. Notes on this can be found
6-
[here](https://trello.com/c/nUrXxJIE/119-decide-on-network-subnet-prefixes-for-staging-and-production-environments).
7-
6+
[in its associated Trello card](https://trello.com/c/nUrXxJIE/119-decide-on-network-subnet-prefixes-for-staging-and-production-environments).
87
- `192.168.0.x/24` -> production homelab network
98
- `192.168.1.x/24` -> production Kubernetes cluster (Poseidon) network
109
- `192.168.1.x/24` -> staging homelab network
@@ -14,40 +13,39 @@
1413

1514
- The Linux distributions of choice should be community lead distributions. The
1615
preference on this comes from
17-
[here](https://trello.com/c/mQ95baA5/164-migrate-kubernetes-cluster-poseidon-nodes-back-to-using-debian-12-instead-of-ubuntu-2204).
16+
[in its associated Trello card](https://trello.com/c/mQ95baA5/164-migrate-kubernetes-cluster-poseidon-nodes-back-to-using-debian-12-instead-of-ubuntu-2204).
1817

1918
- The decision to use the `systemd-networkd` role came at the beginning when
2019
needing to set static network configurations for hosts and wanting to utilize
2120
`systemd` services more heavily. Notes concerning this can be found
22-
[here](https://trello.com/c/NJPE8TxD/167-fix-virtual-nics-to-use-dhcp-in-the-packer-machine-images-when-first-booted-by-vms?search_id=784cfe32-2da0-431e-b3fe-54fab20c1c7b).
21+
[in its associated Trello card](https://trello.com/c/NJPE8TxD/167-fix-virtual-nics-to-use-dhcp-in-the-packer-machine-images-when-first-booted-by-vms?search_id=784cfe32-2da0-431e-b3fe-54fab20c1c7b).
2322

2423
- The primary homelab network's DHCP and DNS needs should be satisfied by
2524
`dnsmasq`. Notes on this can be found
26-
[here](https://trello.com/c/7WkUytTf/31-integrate-dnsmasq-for-dhcp-and-dns-into-my-project).
25+
[in its associated Trello card](https://trello.com/c/7WkUytTf/31-integrate-dnsmasq-for-dhcp-and-dns-into-my-project).
2726

2827
- The primary homelab network's load balancing needs should be satisfied by
2928
`haproxy`. Notes on this can be found
30-
[here](https://trello.com/c/1irPAunK/41-integrate-haproxy-into-my-kubernetes-cluster-homelab-subnet).
29+
[in its associated Trello card](https://trello.com/c/1irPAunK/41-integrate-haproxy-into-my-kubernetes-cluster-homelab-subnet).
3130

3231
- The primary homelab network's HTTPS MITM proxy needs should be satisfied by
3332
`mitmproxy`. Notes on this can be found
34-
[here](https://trello.com/c/VDJYXYzf/251-integrate-a-self-hosted-kiwix-into-the-project).
33+
[in its associated Trello card](https://trello.com/c/VDJYXYzf/251-integrate-a-self-hosted-kiwix-into-the-project).
3534

3635
- There will be a single QEMU/KVM host that will host my virtual machines. Notes
3736
on this can be found
38-
[here](https://trello.com/c/uUa3Totk/127-create-the-kvm-playbook-to-provision-a-machine-to-run-kvm-and-libvirt).
37+
[in its associated Trello card](https://trello.com/c/uUa3Totk/127-create-the-kvm-playbook-to-provision-a-machine-to-run-kvm-and-libvirt).
3938

4039
- There will be a NFS server that will satisfy my shared storage needs. Notes on
4140
this can be found
42-
[here](https://trello.com/c/EtZw0Kh4/252-integrate-a-nfs-server-into-the-project).
41+
[in its associated Trello card](https://trello.com/c/EtZw0Kh4/252-integrate-a-nfs-server-into-the-project).
4342

4443
- Securely accessing my primary homelab network wherever I might should be
4544
satisfied by `WireGuard`. Notes on this can be found
46-
[here](https://trello.com/c/6OfwfuPT/260-integrate-a-vpn-server-into-the-project).
45+
[in its associated Trello card](https://trello.com/c/6OfwfuPT/260-integrate-a-vpn-server-into-the-project).
4746

4847
- The Kubernetes cluster (Poseidon) has reasons for each part of the
4948
configuration set.
50-
5149
- [High Availability Configuration](https://trello.com/c/8JopdDFW/48-achieve-highly-available-for-my-kubernetes-cluster?search_id=05ef3726-02cf-4c28-a93c-6ad6c1e0136b)
5250
- [containerd](https://trello.com/c/0fXGhRc5/8-cluster-ctrserver1-and-ctrserver2s-docker-daemons)
5351
- [Calico CNI](https://trello.com/c/iRX5bxkG/49-integrate-calico-into-my-kubernetes-cluster)
@@ -57,7 +55,6 @@
5755
- [keepalived](https://trello.com/c/5hnN6ke6/78-reconsider-load-balancer-configuration-and-architecture-used-to-distribute-traffic-between-the-kubernetes-api-servers?search_id=f79767ea-223f-43fa-82c3-843a1ebf671c)
5856

5957
- The intended Ansible controllers will be my development machines.
60-
6158
- It is known that there are secrets that will be exposed in Ansible output,
6259
but this isn't a concern due to the Ansible controllers being my development
6360
machines. Any logs uploaded elsewhere are vetted carefully for secrets. Task
@@ -68,24 +65,19 @@
6865
- [Follow these notes to have a Kubernetes node join an already existing Kubernetes cluster (Poseidon).](https://trello.com/c/HO0aWCED/95-look-into-how-to-handle-a-worker-or-controller-rejoining-the-kubernetes-cluster-poseidon-after-the-cluster-has-been-created)
6966

7067
- Follow these instructions for updating system packages across all hosts:
71-
7268
1. Run the `maintenance.yml` playbook.
7369

7470
- Follow these instructions for checking load balancer backends:
75-
7671
1. Run the `maintenance.yml` playbook.
7772

7873
- Follow these instructions for upgrading an instance of the Kubernetes cluster
7974
(Poseidon). This presumes the cluster is running at least on version `v1.28`.
80-
8175
- If upgrading from version `1.28.x` to version `1.28.y` (where `y > x`):
82-
8376
1. Update `./playbooks/vars/poseidon_k8s_software_versions.yml` accordingly.
8477
2. Update `./playbooks/tasks/setup_calico.yml` accordingly.
8578
3. Run the `maintenance.yml` playbook.
8679

8780
- If upgrading from version `1.28.x` to version `1.29.x`:
88-
8981
1. Update `./playbooks/vars/poseidon_k8s_software_versions.yml` accordingly.
9082
2. Update `./playbooks/tasks/setup_calico.yml` accordingly.
9183
3. Update the `maintenance.yml` playbook according the
@@ -95,7 +87,6 @@
9587

9688
- If upgrading from version `1.x` to version `1.y` (where
9789
`y > x and (y-x) > 1`):
98-
9990
1. Update `./playbooks/vars/poseidon_k8s_software_versions.yml` accordingly.
10091
2. Update `./playbooks/tasks/setup_calico.yml` accordingly.
10192
3. Update the `maintenance.yml` playbook according the

examples/playbooks/use_keywords_order_plays.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717
- foo
1818

1919
tasks:
20-
- name: Foo
20+
- name: Bar
2121
ansible.builtin.debug:
2222
msg: bar
2323

2424
handlers:
25-
- name: Foo
25+
- name: Baz
2626
ansible.builtin.debug:
2727
msg: bar

0 commit comments

Comments
 (0)