Form Builder
Build LynqForm YAML configurations using an intuitive UI. Create resources, manage dependencies, and export production-ready forms.
Form Builder
Hub Settings
Reference to your LynqHub
Available Variables
Resources
No resources added yet
Click "Add Resource" to start building your template
apiVersion: operator.lynq.sh/v1
kind: LynqForm
metadata:
name: my-form
spec:
hubId: my-hub
How to Use
Building from Scratch
- Set Hub ID: Enter your LynqHub name
- Add Resources: Click "+ Add Resource" to create new resources
- Select resource type (Deployment, Service, ConfigMap, etc.)
- Set unique ID and name template
- Configure dependencies
- Preview YAML: Switch to Preview tab to see generated YAML
- Export: Copy or download your form
Importing Existing YAML
- Switch to Editor Tab: Click "Editor" in the right panel
- Paste YAML: Paste your existing LynqForm
- Import: Click "⬅️ Import to UI" button
- Edit: Modify resources using the form UI
- Export: Generate updated YAML
Features
📝 Form-Based Resource Creation
- Visual interface for all resource types
- Automatic dependency management
- Template variable hints
- Real-time YAML preview
🔄 Bidirectional Sync
- UI → YAML: Build visually, export YAML
- YAML → UI: Import existing forms, edit visually
🎯 Template Variables
Available variables for use in templates:
{{ .uid }}- Node unique identifier{{ .host }}- Extracted host from URL{{ .hostOrUrl }}- Original URL/host value{{ .activate }}- Activation status
Usage example:
{{ .uid }}-app
{{ .host }}⚙️ Resource Configuration
For each resource, configure:
- ID: Unique identifier for dependencies
- Name Template: Go template for resource name
- Dependencies: Select which resources must exist first
- Policies: Wait for ready, creation/deletion policies
Supported Resource Types
| Type | Description |
|---|---|
| Namespace | Kubernetes namespace |
| Deployment | Pod deployment controller |
| StatefulSet | Stateful application controller |
| DaemonSet | Node-level daemon controller |
| Service | Network service |
| Ingress | HTTP/HTTPS routing |
| ConfigMap | Configuration data |
| Secret | Sensitive data |
| PersistentVolumeClaim | Storage volume |
| Job | One-time task |
| CronJob | Scheduled task |
| HorizontalPodAutoscaler | Auto-scaling configuration |
| Manifest | Raw YAML for custom resources |
Tips
Best Practices
- Use Clear IDs: Choose descriptive, unique identifiers
- Template Names: Use
{{ .uid }}prefix for uniqueness - Dependencies: Only add necessary dependencies
- Test First: Use Dependency Visualizer to check for cycles
Common Patterns
Secret → Deployment → Service:
1. Add Secret (id: app-secret)
2. Add Deployment (id: app, depends on: app-secret)
3. Add Service (id: app-svc, depends on: app)Namespace First:
1. Add Namespace (id: node-ns)
2. Add all other resources depending on node-nsNext Steps
- Dependencies Guide - Learn about dependency management
- 🔍 Dependency Visualizer - Visualize your form's dependency graph
- Templates Guide - Complete template documentation
- Quick Start - Deploy your first form
Need Help?
If you encounter issues, check the Troubleshooting Guide or refer to the API Reference.
