17 Commits
Author SHA1 Message Date
Jeffrey 1593166803 argocd: restore argocd-install.yaml to its pre-4207459 state
It was swept into d5e0731 by a stray `git add -u` while amending an
unrelated commit. Nothing syncs infra/argocd, so the cluster was never
affected, but the file did not belong in that change.

The content is still reachable at d5e0731 if it is wanted back.
2026-08-29 19:07:16 +02:00
Jeffrey 42074599e9 gitea-runner: add the missing Application manifest
The Application was created with kubectl and never committed, so its chart
version, release config and values path lived only on the cluster. That made
the values-path fix a live patch: recreating the app would have restored the
old $values/gitea/runner/values.yaml and broken helm template again.

Both sources are public, so this sits alongside the other Helm-based apps
here rather than in the private repo.
2026-08-29 18:56:36 +02:00
Jeffrey a775c8b837 victoria-metrics: pin back to chart 0.77.0 after a failed 0.91.2 upgrade
The 0.91.2 bump had been sitting in Git unapplied because the app could not
generate manifests. Once the values path was fixed it applied, and Grafana
crash-looped on "Datasource provisioning error: data source not found".
Rolled back; Grafana and all 35 VMRules are healthy again on 0.77.0.

0.91.2 also moves the default dashboards and rules out of the Helm render
into a runtime sync-job, so upgrading needs a values migration and a
verified datasource config rather than a version bump.
2026-08-29 18:39:49 +02:00
Jeffrey 02c43d8b85 victoria-metrics: point the values ref at applications/
$values resolves to the repo root, so $values/victoria-metrics/values.yaml
never existed once the manifests moved under applications/. helm template
failed on every reconcile, leaving the app permanently sync status Unknown.

gitea-runner had the same broken path but has no manifest in this repo, so
it was patched on the cluster only.
2026-08-29 18:18:27 +02:00
Jeffrey d5e073131d infisical: ignore every volumeClaimTemplate field the api server injects
The earlier rule covered creationTimestamp, volumeMode and status but missed
apiVersion and kind, which the API server also injects into
volumeClaimTemplates. Those two alone kept both StatefulSets permanently
OutOfSync: a sync would apply successfully and report Synced, then the very
next comparison flagged them again.
2026-08-29 18:16:25 +02:00
Jeffrey 8fa2cb558e infisical: ignore the volumeClaimTemplate fields argocd cannot reconcile
A StatefulSet's volumeClaimTemplates are immutable, and the API server
injects creationTimestamp, volumeMode and a status block that are not in
the manifest. ArgoCD diffed those and reported OutOfSync permanently,
since no sync could ever resolve them.

infisical-postgres and infisical-valkey are the only StatefulSets here
using volumeClaimTemplates, which is why this app alone was affected.
2026-08-29 18:00:35 +02:00
Jeffrey cfd9317086 netbox: add NetBox 4.6.8 with postgres, valkey and rqworker
Five components under applications/netbox: the web pod, an rqworker,
a daily housekeeping CronJob, postgres 18 and two valkey instances.
The task queue runs appendonly on its own PVC so queued jobs survive a
restart, while the cache instance is disposable.

Worker and cronjob override args rather than command, which replaces
CMD while keeping tini as the entrypoint, so only the web pod runs
migrations. Media, reports and scripts share one RWX PVC via subPaths
because both the web pod and the worker mount them.

Exposed on the internal gateway only.
2026-08-27 20:46:34 +02:00
Jeffrey a57860a576 Update application and chart versions to latest
Bumps every outdated image and chart except databases, which are
deliberately left on their current versions.

Applications:
  authentik       2026.5.2 -> 2026.8.0 (server and worker)
  immich          v2.7.5 -> v3.1.0
  gitea           1.25 -> 1.27.2
  gotify          2.9.1 -> 3.0.0
  uptime-kuma     2.2.1 -> 2.5.3
  zipline         4.5.3 -> 4.7.0
  outline         1.8.1 -> 1.9.2
  reactive-resume v5.0 -> v5.2.8
  netbootxyz      nbxyz18 -> nbxyz24
  bentopdf        v2.8.2 -> v2.8.7
  jellyfin        10.11.9 -> 10.11.11
  gitea runner init busybox 1.37.0 -> 1.38.0

Infra:
  kube-vip                    v0.9.1 -> v1.2.3
  victoria-metrics-k8s-stack  0.77.0 -> 0.91.2
  intel-device-plugins        v0.35.0 -> v0.36.0
  crowdsec-envoy-bouncer      0.6.3 -> 0.8.0

Immich v3 drops pgvecto.rs support. Verified the live database already
runs vchord 0.4.3 and pgvector 0.8.1 with no pgvecto.rs extension, both
inside the ranges v3 accepts, so no database change is required.

The victoria-metrics chart renamed defaultRules.create to
defaultRules.enabled at both the top level and per group. Migrated those
keys so the etcd, kubeScheduler, kubernetesSystemControllerManager and
kubernetesSystemScheduler exclusions keep applying. Without the rename
those groups revert to enabled and alert on control-plane components
that k3s runs embedded.

That chart also moved default rules and dashboards to a runtime sync job
instead of templating them, so ArgoCD will prune the VMRules and
dashboard ConfigMaps it currently owns and the job will recreate them.

kube-vip is not managed by ArgoCD. The manifest change is inert until
applied by hand.
2026-08-24 23:12:22 +02:00
Jeffrey a7f4618d4f argocd: enable directory recurse on the remaining Directory apps
Without it, moving manifests into component directories makes ArgoCD stop seeing them and prune the workload.
2026-08-24 00:35:31 +02:00
Jeffrey 647d82fe0f argocd: enable recurse on the ddns application
azure-ddns now uses a component directory like the other apps, and without recurse ArgoCD stopped seeing its StatefulSet and InfisicalSecret.
2026-08-23 22:51:15 +02:00
Jeffrey 7403edf7d5 argocd: manage namespaces via manifests instead of CreateNamespace 2026-08-16 21:08:41 +02:00
Jeffrey 37737670b5 infisical: bring self-hosted stack under GitOps (postgres, valkey, backend); secret.yaml excluded template 2026-07-16 21:47:28 +02:00
Jeffrey 2505812fe7 Ignore Gateway certificateRefs group diff 2026-06-22 23:41:54 +02:00
Jeffrey 9841e6a55f Fix envoy-gateway-config to use kustomize 2026-06-22 23:40:18 +02:00
Jeffrey be9bd3a227 Add Outline 2026-06-22 23:32:35 +02:00
Jeffrey 62137018ea Track envoy-gateway-config app; move affine to deprecated in README 2026-06-21 12:45:21 +02:00
Jeffrey c40577589d Split manifests into infra/ and applications/ 2026-06-21 12:23:20 +02:00