--- # 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 `$${...}`.