# Cluster State Snapshot

**Generated:** 2026-02-28T06:26:40 UTC

This document captures the current state of the K3s cluster for the geocrop project.

---

## 1. Namespaces

```
NAME                   STATUS   AGE
cert-manager           Active   35h
default                Active   36h
geocrop                Active   34h
ingress-nginx          Active   35h
kube-node-lease        Active   36h
kube-public            Active   36h
kube-system            Active   36h
kubernetes-dashboard   Active   35h
```

---

## 2. Pods (geocrop namespace)

```
NAME                              READY   STATUS        RESTARTS   AGE   IP          NODE                           NOMINATED NODE   READINESS GATES
geocrop-api-6f84486df6-sm7nb      1/1     Running       0          11h   10.42.4.5   vmi2956652.contaboserver.net   <none>           <none>
geocrop-worker-769d4999d5-jmsqj   1/1     Running       0          10h   10.42.4.6   vmi2956652.contaboserver.net   <none>           <none>
hello-api-77b4864bdb-fkj57        1/1     Terminating   0          34h   10.42.3.5   vmi3047336                     <none>           <none>
hello-web-5db48dd85d-n4jg2        1/1     Running       0          34h   10.42.0.7   vmi2853337                     <none>           <none>
minio-7d787d64c5-nlmr4            1/1     Running       0          34h   10.42.1.8   vmi3045103.contaboserver.net   <none>           <none>
redis-f986c5697-rndl8             1/1     Running       0          34h   10.42.0.6   vmi2853337                     <none>           <none>
```

---

## 3. Services (geocrop namespace)

```
NAME          TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)             AGE
geocrop-api   ClusterIP   10.43.7.69     <none>        8000/TCP            34h
geocrop-web   ClusterIP   10.43.101.43   <none>        80/TCP              34h
minio         ClusterIP   10.43.71.8     <none>        9000/TCP,9001/TCP   34h
redis         ClusterIP   10.43.15.14    <none>        6379/TCP            34h
```

---

## 4. Ingress (geocrop namespace)

```
NAME              CLASS   HOSTS                                                                       ADDRESS        PORTS     AGE
geocrop-minio     nginx   minio.portfolio.techarvest.co.zw,console.minio.portfolio.techarvest.co.zw   167.86.68.48   80, 443   34h
geocrop-web-api   nginx   portfolio.techarvest.co.zw,api.portfolio.techarvest.co.zw                   167.86.68.48   80, 443   34h
```

---

## 5. PersistentVolumeClaims (geocrop namespace)

```
NAME        STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
minio-pvc   Bound    pvc-44bf8a0f-cbc9-4336-aa54-edf1c4d0be86   30Gi       RWO            local-path     <unset>                 34h
```

---

## Summary

### Cluster Health
- **Status:** Healthy
- **K3s Cluster:** Operational with 3 worker nodes
- **Namespace:** `geocrop` is active and running

### Service Status

| Component | Status | Notes |
|-----------|--------|-------|
| geocrop-api | Running | API service on port 8000 |
| geocrop-worker | Running | Worker for inference tasks |
| minio | Running | S3-compatible storage on ports 9000/9001 |
| redis | Running | Message queue backend on port 6379 |
| geocrop-web | Running | Frontend service on port 80 |

### Observations

1. **MinIO:** Running with 30Gi PVC bound to local-path storage
   - Service accessible at `minio.geocrop.svc.cluster.local:9000`
   - Console at `minio.geocrop.svc.cluster.local:9001`
   - Ingress configured for `minio.portfolio.techarvest.co.zw` and `console.minio.portfolio.techarvest.co.zw`

2. **Redis:** Running and healthy
   - Service accessible at `redis.geocrop.svc.cluster.local:6379`

3. **API:** Running (v3)
   - Service accessible at `geocrop-api.geocrop.svc.cluster.local:8000`
   - Ingress configured for `api.portfolio.techarvest.co.zw`

4. **Worker:** Running (v2)
   - Processing inference jobs from RQ queue

5. **TLS/INGRESS:** All ingress resources configured with TLS
   - Using nginx ingress class
   - Certificates managed by cert-manager (letsencrypt-prod ClusterIssuer)

### Legacy Pods

- `hello-api` and `hello-web` pods are present but in terminating/running state (old deployment)
- These can be cleaned up in a future maintenance window
