Lynq Operator is a Kubernetes operator that automates database-driven infrastructure provisioning. It reads node data from external datasources (MySQL, PostgreSQL planned for v1.2) and dynamically creates, updates, and manages Kubernetes resources using declarative templates.
One database row = One fully provisioned node stack
Why Lynq Operator?
Traditional provisioning approaches are limited:
β Helm: Manual per-node releases and values files
β GitOps: Static manifests don't scale to thousands of nodes
β Custom scripts: Fragile, hard to maintain, no drift correction
Lynq Operator provides:
β Database-driven automation: Your existing database becomes the source of truth
β Real-time sync: Changes propagate automatically (30s status reflection)
β Production-grade: SSA, webhooks, finalizers, metrics, and drift detection built-in
LynqForm Controller - Validates templates and linkage
LynqNode Controller - Renders templates β Applies resources via SSA
Multi-template support: One registry can be referenced by multiple templates (prod, staging, etc.). Desired count = referencingTemplates Γ activeRows.
# Clone repository
git clone https://github.com/k8s-lynq/lynq.git
cd lynq
# Install dependencies
go mod download
# Run tests
make test
# Build binary
make build
# Build and push container
make docker-build docker-push IMG=<your-registry>/lynq:tag
Running Locally
# Install CRDs
make install
# Run controller locally (uses ~/.kube/config)
make run
# Run with debug logging
LOG_LEVEL=debug make run
Running Tests
# Unit tests
make test
# Integration tests
make test-integration
# E2E tests (requires kind)
make test-e2e
# Coverage report
make test-coverage
π€ Contributing
We welcome contributions from anyone interested in database-driven Kubernetes automation.
Our vision: We're building this project with open governance and community-first principles. As the project grows, we aspire to join cloud-native foundations like CNCF to foster broader collaboration and adoption.
Lynq Operator is database-driven and designed for SaaS platforms where node data lives in databases, not git repositories. It automates provisioning from database rows with real-time sync, whereas Helm and GitOps require manual per-node configuration.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.