Commit graph

67 commits

Author SHA1 Message Date
FluxCD
44be203e73 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771097548-afa58df 2026-02-14 19:36:35 +00:00
FluxCD
42f7f41584 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771097398-b74c890 2026-02-14 19:32:36 +00:00
FluxCD
b74c890b1d chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771097218-e6a4b27 2026-02-14 19:29:36 +00:00
FluxCD
e6a4b27737 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771097039-30e0322 2026-02-14 19:26:34 +00:00
FluxCD
30e032207f chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771096857-26dc35f 2026-02-14 19:23:35 +00:00
FluxCD
26dc35f58a chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771096678-7c9d014 2026-02-14 19:20:33 +00:00
FluxCD
7c9d014c6b chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771096497-ecfa150 2026-02-14 19:17:35 +00:00
FluxCD
ecfa1500ec chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771096328-99da7e0 2026-02-14 19:14:33 +00:00
FluxCD
99da7e0299 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771096058-5df5c97 2026-02-14 19:11:33 +00:00
FluxCD
933cb7fc5f chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771095731-cb0c6e7 2026-02-14 19:08:24 +00:00
FluxCD
cb0c6e79fb chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771095546-66ea0e2 2026-02-14 19:01:44 +00:00
FluxCD
66ea0e256b chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771095367-61dfe82 2026-02-14 18:58:42 +00:00
FluxCD
61dfe82ca9 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771095194-d26a070 2026-02-14 18:55:44 +00:00
FluxCD
d26a0701cb chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771094551-f837178 2026-02-14 18:52:49 +00:00
FluxCD
f8371783cf chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771094368-530bf01 2026-02-14 18:42:07 +00:00
FluxCD
530bf01bba chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771094191-9f0211f 2026-02-14 18:39:04 +00:00
FluxCD
9f0211f140 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771094000-c59a852 2026-02-14 18:36:07 +00:00
FluxCD
ed7542b94a chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771090131-e9e1a29 2026-02-14 17:31:28 +00:00
FluxCD
e9e1a29684 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771089953-61cfd3c 2026-02-14 17:28:25 +00:00
FluxCD
61cfd3c0d3 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771089769-d9de116 2026-02-14 17:25:29 +00:00
FluxCD
d9de116a7e chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771089591-661ed97 2026-02-14 17:22:27 +00:00
FluxCD
661ed97622 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771089406-67a0b10 2026-02-14 17:19:27 +00:00
FluxCD
67a0b10ea5 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771089224-e8449f6 2026-02-14 17:16:24 +00:00
FluxCD
e8449f67e5 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771089049-3e5dce3 2026-02-14 17:13:23 +00:00
FluxCD
3e5dce35a0 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771088871-4e2910a 2026-02-14 17:10:24 +00:00
FluxCD
4e2910a1b2 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771088688-dd25098 2026-02-14 17:07:23 +00:00
FluxCD
dd250980ea chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771088502-3a9fffe 2026-02-14 17:04:25 +00:00
FluxCD
3a9fffe147 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771088322-7464376 2026-02-14 17:01:20 +00:00
FluxCD
746437644b chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771088140-0c99535 2026-02-14 16:58:16 +00:00
FluxCD
0c99535682 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771087964-d16bee5 2026-02-14 16:55:16 +00:00
FluxCD
d16bee59d8 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771086677-8d00a04 2026-02-14 16:52:18 +00:00
8d00a04187
feat: add FluxCD image automation, fix Preseem duplicate AP crash
Switch deployment pipeline from GitLab Agent kubectl to FluxCD image
automation. CI now only builds and pushes tagged images to Forgejo
registry; FluxCD detects new tags and updates the deployment manifest.

Fix Ecto.MultipleResultsError on /dashboard when a device has multiple
Preseem access point records by using limit(1) instead of Repo.get_by.
2026-02-14 10:30:12 -06:00
17c5b681a3
back up to 2 replicas 2026-02-11 16:04:47 -06:00
92b4f0081a
reduce to one replica in prod for now 2026-02-11 15:38:07 -06:00
a97ae5ad09
Speed up Kubernetes rollouts
Changes:
- maxSurge: 1 → 100% (start all new pods simultaneously)
- minReadySeconds: 30 → 10 (faster promotion)
- readinessProbe successThreshold: 2 → 1 (faster health checks)

Result: Rollout time reduced from 6+ minutes to ~90 seconds while
maintaining zero downtime (maxUnavailable: 0 unchanged).
2026-02-04 15:16:16 -06:00
6b63dc9295
encryption updates 2026-02-01 17:05:55 -06:00
d29fb8cfd7 totp fixes 2026-01-28 16:16:59 -06:00
7b6298f5dc
ecto ssl tweaks 2026-01-25 16:00:48 -06:00
76854479c9
update deployment 2026-01-25 15:29:38 -06:00
979d246160
reduce replicas 2026-01-24 15:59:52 -06:00
be818b49b8
refactor: remove Valkey from K8s, move to Proxmox hosts
Removing all Valkey (Redis) resources from Kubernetes due to instability
caused by Flannel CNI networking issues. Redis will now run on Proxmox
hosts for better stability and performance.

Changes:
- Delete Valkey StatefulSet (master + 2 replicas)
- Delete Valkey Sentinel StatefulSet (3 instances)
- Delete Valkey services (headless and sentinel)
- Delete Valkey ConfigMap
- Remove Valkey resources from kustomization.yaml
- Update deployment to use towerops-redis secret for connection

Next Steps:
- Set up Redis Sentinel on 3 Proxmox hosts/LXC containers
- Create towerops-redis secret with REDIS_HOST and REDIS_PORT
- Test failover and application connectivity

Benefits:
- Not affected by K8s networking issues (Flannel failures)
- More stable (no restarts from node issues)
- Better performance (no K8s overhead)
- Independent lifecycle from K8s cluster
2026-01-24 14:12:02 -06:00
2b78b1a2d3
snmpkit overhaul and etcd 2026-01-23 16:23:57 -06:00
5f6ac5ddb9
update deployment 2026-01-23 07:47:00 -06:00
375cce8174
Add system-cluster-critical priority class to towerops deployment
Prevents race condition where towerops pods try to start before Flannel
CNI is fully initialized during node restarts.

Same fix as applied to Valkey StatefulSet (commit 30a0b9a). Both
critical infrastructure components now have proper priority classes to
ensure CNI readiness before pod scheduling.

Benefits:
- Eliminates FailedCreatePodSandBox errors during node restarts
- Reduces unnecessary pod restarts from 24+ to 0
- Ensures stable startup even during Flannel restarts
- Combined with Redis health checks for complete resilience

Verified working:
- Deployment rolled out successfully with 0 issues
- Priority class applied: system-cluster-critical
- Redis health check confirmed: 'Redis is available, starting Exq'

🤖 Generated with Claude Code
2026-01-19 17:09:33 -06:00
3d2cd0d43f
Fix Credo issues and improve code quality
- Reduced cyclomatic complexity in Ping.send_icmp_packet by extracting handle_icmp_recv helper
- Reduced cyclomatic complexity in Devices.resolve_snmp_config by extracting determine_snmp_source helper
- Added Repo alias to discovery_test.exs to fix nested module warning
- All tests passing (992 tests, 1 failure in unrelated test)
- Removed incomplete mib_parser_test.exs
- Cleaned up debug-redis.sh script
2026-01-19 15:09:19 -06:00
b4f8b40b7f
Include MIB files in Docker image instead of using PVC
- Remove PVC volume mount from k8s/deployment.yaml
- Delete k8s/mib-pvc.yaml (no longer needed)
- Update .gitignore to commit MIB files to git
- Add mix import_mibs task to copy MIBs from LibreNMS
- Add all MIB files from priv/mibs/ to git

This fixes the multi-attach volume error in Kubernetes where new pods
couldn't start because the RWO (ReadWriteOnce) PVC was attached to the
old pod. MIBs are now part of the Docker image and can be used by all
pods simultaneously.
2026-01-19 14:01:03 -06:00
adec4b134f
snmp overhaul 2026-01-18 16:00:01 -06:00
d2e38e351e
feat: display all timestamps in user's timezone
- Add timezone to socket assigns in mount_current_scope
- Detect user timezone from browser using Intl.DateTimeFormat
- Auto-save detected timezone to user profile on first connection
- Update all templates to use TimeHelpers with timezone parameter
- Update agent helper functions to accept timezone parameter
- Templates updated:
  - Alert list (triggered, acknowledged, resolved)
  - Device list (last checked)
  - Agent list and show (created, last seen, updated)
  - Admin dashboard (impersonation logs)
  - Admin org/user lists (created/joined dates)
  - Main dashboard (alert times)
2026-01-18 12:19:17 -06:00
5152ceac8b
fix: simplify Redis host to just 'valkey' for same-namespace service 2026-01-18 12:06:44 -06:00
7e9940c619
fix(k8s): use ClusterIP service and FQDN for Valkey connection
Changed Valkey service from headless to ClusterIP and updated
REDIS_HOST to use full FQDN for more reliable DNS resolution.

Changes:
- valkey-service.yaml: Changed from headless (clusterIP: None) to ClusterIP
- deployment.yaml: Changed REDIS_HOST from "valkey" to "valkey.towerops.svc.cluster.local"

This ensures stable ClusterIP and explicit DNS resolution for Redis connections.
2026-01-18 11:23:51 -06:00