Skip to content

Release: Helm chart, /healthz, YAML fix (dev -> master, publishes 0.1.28) - #34

Merged
iklobato merged 5 commits into
masterfrom
dev
Aug 1, 2026
Merged

iklobato merged 5 commits into
masterfrom
dev

Conversation

@iklobato

@iklobato iklobato commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Promote dev to master. This triggers the release pipeline: PyPI bump to 0.1.28, build + publish, tag v0.1.28, and the Docker image build (iklob1/lightapi:0.1.28 with /healthz).

Contents

  • Helm chart (charts/lightapi) defaulting to iklob1/lightapi.
  • /healthz liveness/readiness route.
  • lightapi serve console command.
  • YAML fix: declarative fields without constraints/default now map and persist.

Validated: 327 tests green on 3.10/3.11/3.12, helm lint clean, behavior battery on minikube.

https://claude.ai/code/session_01LWV5jPTwsAehx2rM7UZjtq

iklo and others added 5 commits August 1, 2026 19:21
A declarative endpoint field with no constraints and no default (e.g.
`price: {type: float}`) was given an Ellipsis class attribute. Ellipsis is
not a FieldInfo, so FieldInfoStripper never removed it, and the leftover
class attribute stopped SQLAlchemy from mapping the column. The column was
created NOT NULL by create_all but its value was silently dropped on INSERT,
so every write to such a field raised a NOT NULL violation.

Leave these fields annotation-only: the annotation alone already makes the
generated schema field required, and the column now maps and persists.

Claude-Session: https://claude.ai/code/session_01LWV5jPTwsAehx2rM7UZjtq
Deploy a declarative CRUD API over an existing database with only a
values.yaml: the chart hands LightApi.from_config the declarative config and
runs it, so teams write no CRUD code.

- ServerCommand (lightapi/server.py) + `lightapi serve` console script +
  `python -m lightapi`: boot a server from LIGHTAPI_CONFIG/HOST/PORT.
- Always-on /healthz route (lightapi/health.py) for orchestrator probes,
  wired once into both run() and build_app().
- Generic Dockerfile: one image, config injected at deploy time.
- charts/lightapi: Deployment (config via ConfigMap, secrets via Secret,
  /healthz liveness+readiness probes), Service, Secret, ServiceAccount,
  optional Ingress and HPA.

Verified end to end on minikube: helm install/upgrade/rollback, config-change
pod roll, secret and existingSecret paths, HPA, method restriction, optimistic
locking, and broken-config CrashLoopBackOff with no traffic served.

Claude-Session: https://claude.ai/code/session_01LWV5jPTwsAehx2rM7UZjtq
- README: env vars (LIGHTAPI_CONFIG/HOST/PORT), a `lightapi serve` note, a
  health-check note, and a Kubernetes (Helm) section.
- docs/deployment/helm.md: full Helm guide with a minikube walkthrough.
- charts/lightapi/README.md: chart usage and a complete values reference.
- docs/deployment/docker.md: align with the real image (lightapi serve +
  LIGHTAPI_CONFIG) instead of the old gunicorn placeholder.
- Add the Helm page to the deployment nav.

Claude-Session: https://claude.ai/code/session_01LWV5jPTwsAehx2rM7UZjtq
Reconcile the two Docker packaging paths. Keep master's published
iklob1/lightapi image, docker/entrypoint.py, and docker-publish workflow as the
container story; keep this branch's Helm chart, /healthz route, and the YAML
column-mapping fix on top. The chart now defaults to iklob1/lightapi.

Conflicts resolved:
- Dockerfile / .dockerignore / docs/deployment/docker.md: took master's.
- lightapi/lightapi.py build_app(): kept master's CORS wiring and added the
  /healthz route via _asgi_routes().

The `lightapi serve` console command stays as a general library CLI alongside
the container entrypoint.

Claude-Session: https://claude.ai/code/session_01LWV5jPTwsAehx2rM7UZjtq
Package LightAPI as a Helm chart for zero-CRUD-code deploys
@iklobato
iklobato merged commit 675f097 into master Aug 1, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant