Parameter Reference

Complete reference for all configurable parameters across the 5 wizard pages in the Backstage Software Template.

Page 1: VM Identity

Parameter Type Required Default Description
vmName string Yes DNS-compatible name for the virtual machine. Pattern: ^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$
description string No RHEL virtual machine managed via GitOps and bootc Human-readable description for the VM.
owner string Yes Current user entity name Workshop username (e.g., user1). Pattern: ^user[0-9]+$
namespace string No <owner>-vms Kubernetes namespace for the VM resources. Leave empty to use the auto-generated default.

Page 2: Compute Resources

Parameter Type Default Allowed Values Description
cpuCores integer 2 1, 2, 4, 8, 16 Number of CPU cores per socket.
cpuSockets integer 1 1, 2 Number of CPU sockets.
cpuThreads integer 1 1, 2 Threads per CPU core (hyper-threading).
memory string 4Gi 2Gi, 4Gi, 8Gi, 16Gi, 32Gi Guest memory allocation.
runStrategy string Always Always, RerunOnFailure, Manual, Halted VM lifecycle strategy. Always auto-starts and restarts; Halted creates but does not start.

Page 3: Storage & Boot Source

Parameter Type Required Default Allowed Values Description
rootDiskSize string No 30Gi 20Gi, 30Gi, 50Gi, 100Gi, 200Gi Size of the root disk PVC.
storageClass string No (cluster default) Any valid StorageClass Kubernetes StorageClass name. Leave empty for cluster default.
bootSource string Yes registry registry, bootc-image How the VM root disk is provisioned. registry uses a traditional RHEL guest image; bootc-image uses image-mode RHEL.
registryUrl string Conditional registry.redhat.io/rhel9/rhel-guest-image:latest Any OCI image URL OCI image containing the guest disk (qcow2 or raw). Only shown when bootSource=registry.
bootcImageUrl string Conditional quay.io/centos-bootc/centos-bootc:stream9 Any bootc OCI image URL OCI bootc image for image-mode RHEL. Only shown when bootSource=bootc-image.

Page 4: Network & Access

Parameter Type Required Default Description
vmPassword string Yes redhat123 Password for the cloud-user account (console/VNC login).
sshPublicKey string Yes SSH public key injected via cloud-init for the cloud-user account.
installHttpd boolean No true Install and enable Apache HTTP Server with a default landing page on port 8080.
extraPackages string No (empty) Space-separated list of additional packages to install via cloud-init (e.g., vim-enhanced git podman).
hostname string No (same as VM name) Guest hostname.
cloudInitExtra string No (empty) Additional cloud-init user-data in YAML format, appended to the generated config.
enableConnectivityLink boolean No false Create Gateway, HTTPRoute, and policies to expose the VM service through the Istio mesh.

Page 5: Connectivity Link Configuration

These parameters only apply when enableConnectivityLink is set to true on the previous page.
Parameter Type Default Allowed Values Description
routePath string / Any path prefix HTTP path prefix to match on the HTTPRoute.
authModel string none none, oidc, apikey How clients authenticate to the exposed service. none = open; oidc = Keycloak JWT; apikey = X-API-Key header/cookie.
rateLimitPerMinute integer 120 0 = unlimited Maximum requests per minute. Applied via RateLimitPolicy (non-apikey) or PlanPolicy (apikey).
keycloakRealm string neuralbank Any realm name Keycloak realm for JWT validation. Only shown when authModel=oidc.
keycloakClientId string vm-client Any client ID OIDC client ID. Only shown when authModel=oidc.

Computed Values

These values are derived automatically during template execution:

Value Formula Example
uniqueName <owner>-<vmName> user1-my-webserver
namespace (if empty) <owner>-vms user1-vms
clusterDomain Read from workshop-config ConfigMap apps.cluster.example.com
Gitea repo URL gitea-gitea.<clusterDomain>/ws-<owner>/<vmName>-vm gitea-gitea.apps.../ws-user1/my-webserver-vm
ArgoCD app name <owner>-<vmName>-vm user1-my-webserver-vm