Files
claude-code 5ac7b2f5c5
CI/CD / lint-test (push) Failing after 1m40s
CI/CD / build-push (push) Has been skipped
fix: add request_upgrades.py to image, add web dashboard
- Dockerfile: add COPY for request_upgrades.py (was missing — root cause
  of Monday upgrade CronJob failing with 'No such file'), add git (needed
  for repo cloning in upgrade workflow), copy web.py + templates/
- requirements.txt: add fastapi, uvicorn, jinja2 for web dashboard
- web.py: FastAPI dashboard with image inventory and upgrade trigger pages
- templates/: base layout, images page (namespace→app→container grouped
  with live version status), upgrade page (outdated list + trigger button
  + job history)
- kubernetes/web-deployment.yaml: Deployment + LoadBalancer at 192.168.87.13
- kubernetes/rbac.yaml: add version-tracker-web ServiceAccount, ClusterRole
  (read pods/deployments/replicasets/statefulsets/daemonsets/jobs/cronjobs),
  and namespace Role to create upgrade Jobs
- kubernetes/upgrade-cronjob.yaml: fix YAML indentation bug on GITEA_USERNAME
  and GITEA_COMMITTER_NAME env vars
2026-07-12 16:15:15 +00:00

68 lines
1.6 KiB
YAML

---
apiVersion: apps/v1
kind: Deployment
metadata:
name: version-tracker-web
namespace: k8s-version-tracker
labels:
app: version-tracker-web
spec:
replicas: 1
selector:
matchLabels:
app: version-tracker-web
template:
metadata:
labels:
app: version-tracker-web
spec:
serviceAccountName: version-tracker-web
containers:
- name: web
image: registry.storedbox.net/k8s-version-tracker:latest
imagePullPolicy: Always
command: ["python", "web.py"]
ports:
- containerPort: 8080
name: http
env:
- name: MATTERMOST_WEBHOOK_URL
valueFrom:
secretKeyRef:
name: version-tracker-secrets
key: MATTERMOST_WEBHOOK_URL
- name: APPROVAL_MIDDLEWARE_URL
value: "http://192.168.87.14:8085"
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
readinessProbe:
httpGet:
path: /api/images
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
---
apiVersion: v1
kind: Service
metadata:
name: version-tracker-web
namespace: k8s-version-tracker
labels:
app: version-tracker-web
annotations:
metallb.universe.tf/loadBalancerIPs: 192.168.87.13
spec:
type: LoadBalancer
selector:
app: version-tracker-web
ports:
- name: http
port: 80
targetPort: 8080