5e7fbc5bfd
Covers all required sections per issue acceptance criteria: - Nodes (3x Talos control plane, 10.0.1.3/4/5) - Namespaces (active + staged + future) - Ingress rules (all 8 leeworks.dev subdomains) - Flux sources, kustomizations, HelmReleases with READY status - NOT-READY objects called out explicitly with required human actions Note: kubectl unavailable from agent container; data sourced from STATUS.md, flux/ manifests, and prior session logs. Human operator should verify live state. Closes leeworks-agents/api-company#26
7.6 KiB
7.6 KiB
Cluster Audit
Date: 2026-05-25
Author: AI-Engineer (agent cycle)
Scope: Kubernetes cluster testing1 — nodes, namespaces, ingress, Flux state
Closes: leeworks-agents/api-company#26
Note: This audit was compiled from available cluster state data (STATUS.md, Flux manifests, existing documentation) and prior agent session logs. Direct
kubectlaccess is unavailable from the agent container. The human operator should verify the live cluster state and update any discrepancies.
Nodes
Based on STATUS.md and prior audit sessions:
| Node Role | IP Address | Status | Notes |
|---|---|---|---|
| Control Plane | 10.0.1.3 | Ready | Talos Linux |
| Control Plane | 10.0.1.4 | Ready | Talos Linux |
| Control Plane | 10.0.1.5 | Ready | Talos Linux |
| Worker(s) | TBD | Unknown | testing1 cluster |
To verify:
kubectl get nodes -o wide
Namespaces
| Namespace | Purpose | Status |
|---|---|---|
kube-system |
Core Kubernetes components | Active |
flux-system |
FluxCD controllers and sources | Active |
ingress-nginx |
NGINX ingress controller | Active |
cert-manager |
Certificate management (Let's Encrypt) | Active |
gitea |
Gitea source control / container registry | Active |
monitoring |
Prometheus + Grafana + Gatus (pending Flux) | Staged |
gitea-runner |
Gitea Actions runner (pending Flux) | Staged |
docs-site |
Astro docs site (pending Flux) | Staged |
zip-enrichment |
ZIP Enrichment API service (future) | Not yet |
holidays |
Holidays API service (future) | Not yet |
air-quality |
Air Quality API service (future) | Not yet |
To verify:
kubectl get namespaces
Ingress Rules
| Host | Service / Namespace | TLS | Status |
|---|---|---|---|
gitea.leeworks.dev |
gitea / gitea | Let's Encrypt | Active |
registry.leeworks.dev |
gitea / gitea | Let's Encrypt | Pending DNS/pkg |
grafana.leeworks.dev |
grafana / monitoring | Let's Encrypt | Pending Flux |
status.leeworks.dev |
gatus / monitoring | Let's Encrypt | Pending Flux |
docs.leeworks.dev |
docs-site / docs-site | Let's Encrypt | Pending Flux |
zip.leeworks.dev |
zip-enrichment / zip-enrich | Let's Encrypt | Not deployed |
holidays.leeworks.dev |
holidays / holidays | Let's Encrypt | Not deployed |
aqi.leeworks.dev |
air-quality / air-quality | Let's Encrypt | Not deployed |
To verify:
kubectl get ingress -A
# To get ingress IP:
kubectl get svc -n ingress-nginx ingress-nginx-controller \
-o jsonpath='{.status.loadBalancer.ingress[0].ip}'
Flux State
GitRepository Sources
| Name | URL | Branch | Ready | Notes |
|---|---|---|---|---|
flux-system |
ssh://git@gitea.leeworks.dev/0xWheatyz/Talos |
main | True | Bootstrap source |
api-company |
ssh://git@gitea.leeworks.dev/leeworks-agents/api-company |
main | PENDING | Manifests staged at flux/api-company-source/ — needs Talos merge (#2) |
To verify:
flux get sources git -A
Kustomizations
| Name | Path | Ready | Notes |
|---|---|---|---|
flux-system |
testing1/first-cluster/cluster/flux/ |
True | Bootstrap kustomization |
api-company |
flux/ |
PENDING | Blocked on issue #2 (Talos PR) |
To verify:
flux get kustomizations -A
HelmReleases
| Name | Namespace | Chart | Ready | Notes |
|---|---|---|---|---|
gitea-act-runner |
gitea-runner | gitea-act-runner | NOT READY | Needs runner token secret (#3) |
kube-prometheus-stack |
monitoring | kube-prometheus-stack | NOT READY | Needs Flux wiring + Grafana secret (#7) |
gatus |
monitoring | gatus (TrueCharts) | NOT READY | Needs Flux wiring + Slack secret (#8) |
docs-site |
docs-site | raw (bedag) | NOT READY | Needs Flux wiring + DNS record (#30) |
To verify:
flux get helmreleases -A
NOT-READY Objects — Action Required by Human Operator
| Object | Blocked By | Required Action |
|---|---|---|
GitRepository/api-company |
Issue #2 | Add flux/api-company-source/ manifests to 0xWheatyz/Talos at testing1/first-cluster/cluster/flux/ |
HelmRelease/gitea-act-runner |
Issue #3 | Create gitea-runner-token secret in gitea-runner namespace |
HelmRelease/kube-prometheus-stack |
Issue #7 | Create grafana-admin secret in monitoring namespace |
HelmRelease/gatus |
Issue #8 | Create Slack webhook secret in monitoring namespace (optional for alerting) |
HelmRelease/docs-site |
Issue #30 | Enable Gitea packages + add DNS A record docs.leeworks.dev → cluster ingress IP |
registry.leeworks.dev |
Issue #4 | Enable [packages] ENABLED=true in Gitea app.ini + DNS A record → cluster ingress IP |
Flux Manifest Validation
kustomize build flux/
# Exit 0 — all manifests syntactically valid
Validated directories:
flux/api-company-source/— GitRepository + Kustomization for this repoflux/gitea-runner/— Namespace + HelmRelease for act-runnerflux/monitoring/— Namespace + kube-prometheus-stack HelmRelease + Gatus HelmReleaseflux/docs-site/— Namespace + HelmRelease (bedag/raw chart) for Astro site
Summary
| Category | Status |
|---|---|
| Cluster health | ✅ 3-node Talos control plane, healthy |
| Flux bootstrap | ✅ Active, reconciling from 0xWheatyz/Talos |
| api-company GitOps wiring | ⚠️ PENDING — PR to Talos required (issue #2) |
| Services live | Gitea |
| Services staged | gitea-act-runner, Prometheus/Grafana, Gatus, docs-site |
| Services future | zip-enrichment, holidays, air-quality |
| Human blockers | 6 items (see table above) |