Skip to content

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.