Reads your database
Point Lynq at a MySQL table. Every row where activate is true becomes a managed node — no pipelines, no glue code.
Lynq turns database records into Kubernetes resources. Automatically.
One database row in, a full set of reconciled Kubernetes resources out — with the controls to keep it safe.
Point Lynq at a MySQL table. Every row where activate is true becomes a managed node — no pipelines, no glue code.
Resources are applied with SSA under the lynq field manager — Lynq owns exactly its fields and never clobbers the rest.
Declare dependIds and Lynq builds a DAG, applying resources in topological order and waiting for readiness gates.
Write a LynqForm once. Your columns render into a full resource set per row — Deployments, Services, Ingresses, and more.
Each LynqNode reports ready, pending, failed, skipped, and conflicts — so you always know the real state, per row.
One database row, reconciled end to end — Lynq reads it, creates a LynqNode, applies the resources, and the app goes live.
A real operator session — apply the manifests, insert a row, deactivate another, and watch Lynq create and garbage-collect the matching Kubernetes resources. Only your database changes.
The moment a row changes, the cluster is out of date — until someone runs kubectl. Lynq closes that gap continuously: the cluster is always a reflection of the database.
Data-driven automation is only safe if it knows what not to touch. Every resource in a LynqForm carries three per-resource policies — each a guardrail against a specific way automation could do damage.
Halts and surfaces the conflict — overwrites nothing.
Takes ownership deliberately via SSA force=true.
Removes the resource along with the row.
Keeps the PVC — drops the ownerRef, adds an orphan marker.
Re-applies whenever the rendered spec drifts.
Creates once, then never touches it again.
A template edit, a bulk update, or a large insert can touch — or create — nodes across the whole graph at once, and doing them all together would stampede your API server. maxSkew caps how many change at a time. Pick a trigger, drag maxSkew, and watch it roll through the topology.
web-stack.yaml editedevery node re-renders → all reconcileA single template edit reconciles every node — a thundering herd that can melt the control plane if it all happens at once. maxSkew rolls it through a few at a time while the rest keep serving the current version. Drag maxSkew ↑ for a faster rollout, ↓ for a gentler one.
15 Prometheus metrics, a pre-built Grafana dashboard, and 14 alert rules with runbooks. Whatever goes wrong — conflicts, failures, latency, a whole hub — the metric graphs it and the right alert pages you.
New conflicts on acme-corp-web-stack — resource_kind=Service.
0.23 conflicts/sec on Service · policy=Stuck. Review naming templates.
The metric caught the drift and paged before it spread — no resource was overwritten.
A web UI that shows live resource health, reconciliation events, and topology relationships — no kubectl required
Insights on Infrastructure as Data, Kubernetes operations, and Lynq updates
Thoughts on delegating business logic to the infrastructure layer, through the lens of Uber embedding Rate Limiting into their service mesh
Read article →The era of AI Agents autonomously managing infrastructure is coming. But do we have an answer to the question, 'When AI decides, who executes?'
Read article →Lynq Dashboard is now available. A web UI to visualize Hub-Form-Node relationships and quickly identify problematic resources.
Read article →Requires Kubernetes and cert-manager. The quickstart provisions a full local environment — MySQL, Lynq, and sample resources — using automated setup scripts.