Flux's postBuild.substituteFrom runs envsubst over the WHOLE manifest, including
the VM cloud-init userData. It was substituting every shell `${...}` in the UOS
install script (${UOS_URL}, the API-resolver ${...}) to empty — which is why the
first UOS install silently did nothing — and ${PIPESTATUS[0]} then broke the
build entirely ("missing closing brace"), blocking apps-vms reconcile.
VM manifests use no cluster-vars, so substitution is unneeded. Removed it; the
cloud-init shell now reaches the guest intact. (A future VM needing a cluster-var
must escape its shell `${...}` as `$${...}`.)
Co-Authored-By: Claude Opus 4.8 <[email protected]>
30 lines
1.3 KiB
YAML
30 lines
1.3 KiB
YAML
---
|
|
# Flux Kustomization: VM tier (KubeVirt VirtualMachines). Reconciles ./apps/vms.
|
|
#
|
|
# NON-GATING (wait:false): unlike the app waves, this does NOT health-wait. A VM's first-boot image
|
|
# import (CDI, minutes) + in-guest software install mean a VM can be intentionally long-not-Ready, so
|
|
# health-gating it would wedge reconciliation for no benefit. VMs have no in-cluster dependents.
|
|
# dependsOn platform-config so KubeVirt/CDI + the longhorn-vm StorageClass + CDI StorageProfiles
|
|
# exist first. prune:true — this Kustomization solely owns the VM manifests (no adoption concern).
|
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
kind: Kustomization
|
|
metadata:
|
|
name: apps-vms
|
|
namespace: flux-system
|
|
spec:
|
|
interval: 10m
|
|
retryInterval: 2m
|
|
timeout: 5m
|
|
prune: true
|
|
wait: false
|
|
dependsOn:
|
|
- name: platform-config
|
|
sourceRef:
|
|
kind: GitRepository
|
|
name: flux-system
|
|
path: ./apps/vms
|
|
# NO postBuild.substituteFrom: Flux's envsubst would run over the ENTIRE manifest, including the
|
|
# VM cloud-init shell scripts, and mangle every `${...}` (e.g. ${UOS_URL}, ${PIPESTATUS[0]}) —
|
|
# corrupting the in-guest install. VM manifests reference no cluster-vars, so substitution is
|
|
# unneeded here. A future VM that needs a cluster-var must escape its shell `${...}` as `$${...}`.
|