Skip to content
GitHub stars

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 ​

  1. Set Hub ID: Enter your LynqHub name
  2. Add Resources: Click "+ Add Resource" to create new resources
    • Select resource type (Deployment, Service, ConfigMap, etc.)
    • Set unique ID and name template
    • Configure dependencies
  3. Preview YAML: Switch to Preview tab to see generated YAML
  4. Export: Copy or download your form

Importing Existing YAML ​

  1. Switch to Editor Tab: Click "Editor" in the right panel
  2. Paste YAML: Paste your existing LynqForm
  3. Import: Click "⬅️ Import to UI" button
  4. Edit: Modify resources using the form UI
  5. 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 ​

TypeDescription
NamespaceKubernetes namespace
DeploymentPod deployment controller
StatefulSetStateful application controller
DaemonSetNode-level daemon controller
ServiceNetwork service
IngressHTTP/HTTPS routing
ConfigMapConfiguration data
SecretSensitive data
PersistentVolumeClaimStorage volume
JobOne-time task
CronJobScheduled task
HorizontalPodAutoscalerAuto-scaling configuration
ManifestRaw YAML for custom resources

Tips ​

Best Practices ​

  1. Use Clear IDs: Choose descriptive, unique identifiers
  2. Template Names: Use {{ .uid }} prefix for uniqueness
  3. Dependencies: Only add necessary dependencies
  4. 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-ns

Next Steps ​


Need Help?

If you encounter issues, check the Troubleshooting Guide or refer to the API Reference.

Released under the Apache 2.0 License.
Built with ❀️ using Kubebuilder, Controller-Runtime, and VitePress.