Skip to content

Cluster Profiles

Profile Structure

The edge-vmo cluster uses a layered profile approach in Palette:

graph TB
    subgraph Infra["VMO-RA-Infra-Agent-PXKE-Portworx-PureFA (1.8.0)"]
        OS["edge-native-byoi 2.1.0<br/>(OS Layer)"]
        K8S["edge-k8s 1.33.6<br/>(K8s Layer - PXKE)"]
        CNI["cni-cilium-oss 1.18.4<br/>(CNI Layer)"]
        PX["portworx-add-on 3.4.1<br/>(Add-on)"]
    end
    subgraph Core["VMO-RA-Core-PXKE-Agent (1.8.0)"]
        MLB["lb-metallb-helm 0.15.2"]
        NGX["nginx 1.14.1"]
        PROM["prometheus-operator 80.4.2"]
        VMO["virtual-machine-orchestrator 4.8.9"]
    end
    subgraph Addons["Additional Profiles"]
        PXE["VMO-RA-Portworx-AddOn"]
        MIG["vm-migration-assistant"]
        TPL["VMO-RA-Templates"]
    end

    OS --> K8S --> CNI --> PX
    PX -.-> MLB

Profile UIDs

Profile UID Version Type
VMO-RA-Infra-Agent-PXKE-Portworx-PureFA 698e434f56d5433423e3ee5a 1.8.0-pxstorev2 cluster
VMO-RA-Core-PXKE-Agent 698e43979f639727243be3e8 1.8.0-pwx add-on

Pack UIDs (1.8.0)

Core Profile Packs

Pack Pack UID Tag
lb-metallb-helm 687bd4787f1abbedbd0f8fb7 0.15.2
nginx 696d0eedef11f7533c19975e 1.14.1
prometheus-operator 696d0ee7ef11f75312694c58 80.4.2
virtual-machine-orchestrator 696d69f63463b326869682c6 4.8.9

Infra Profile Packs

Pack Pack UID Tag
edge-native-byoi 675f1171e0153f3d34d22d13 2.1.0
edge-k8s 696d0ee4ef11f75302dbdaff 1.33.6
cni-cilium-oss 696d0eebef11f75330bc6fc2 1.18.4
portworx-add-on 6904daf95571a488b4da783a 3.4.1

Critical Customizations

These customizations must be carried forward during any profile upgrade. They differ from the RA defaults:

Core Profile

Pack Customization RA Default Our Value Why
lb-metallb-helm autoAssign true false Prevent random IP assignment to LB services
nginx loadBalancerIP "" "10.0.12.36" Fixed ingress IP
virtual-machine-orchestrator Feature gates No SMM SMM added Required for SecureBoot VMs

Infra Profile

Pack Customization RA Default Our Value Why
cni-cilium-oss clusterPoolIPv4PodCIDRList ["10.0.0.0/8"] ["{{ .spectro.var.K8sPodCIDR }}"] Use Palette variable for consistency
portworx-add-on Storage class name spectro-storage-class portworx-block Standard naming
portworx-add-on Storage class annotations none storageclass.kubevirt.io/is-default-virt-class: "true" KubeVirt default
portworx-add-on Storage class parameters empty repl:2, io_profile:auto_journal, priority_io:high, nodiscard:true Production settings
portworx-add-on storageCluster annotations misc-args only + run-on-master, pvc-controller-port, pvc-controller-secure-port Required for 3-node control-plane-only
portworx-add-on Node placement none nodeAffinity for control-plane + px/enabled Run on all control-plane nodes
portworx-add-on License activation true false Manual activation

VMO Feature Gates

The full list of enabled feature gates in the VMO pack:

additionalFeatureGates:
  - LiveMigration
  - HotplugVolumes
  - Snapshot
  - VMExport
  - ExpandDisks
  - HotplugNICs
  - VMLiveUpdateFeatures
  - VMPersistentState
  - VolumesUpdateStrategy
  - VolumeMigration
  - CPUManager
  - HypervStrictCheck
  - SMM

SMM Feature Gate

The SMM feature gate is not in the RA defaults. It must be manually added during upgrades. Without it, VMs migrated from vSphere with EFI SecureBoot enabled will fail to start.

Palette Variables

These Palette variables are referenced in pack configurations:

Variable Used By Purpose
{{ .spectro.var.K8sPodCIDR }} Cilium Pod network CIDR
{{ .spectro.var.metallbIpRange }} MetalLB IP address pool range
{{ .spectro.var.PortworxDataInterface }} Portworx Data network interface
{{ .spectro.var.PortworxMgmtInterface }} Portworx Management network interface
{{ .spectro.var.PortworxMaxStorageNodes }} Portworx Max nodes with storage
{{ .spectro.var.PortworxCloudDriveSize }} Portworx Cloud drive size
{{ .spectro.system.cluster.uid }} Portworx Cluster UID (system var)
{{ .spectro.system.cluster.name }} Portworx Cluster name (system var)