Skip to content

Consume modes

Canonical two-checkout e2e (installer apply → kubeconfig → external-auth → bootstrap → platform → this apply → this bootstrap, plus verify and destroy): installer Virt stack.

Second IaC run (canonical)

# installer
make cluster.aro-virt.apply
make cluster.aro-virt.kubeconfig
make cluster.aro-virt.external-auth
make cluster.aro-virt.bootstrap
make cluster.aro-virt.platform

# this repo — kubeconfig is the installer's, not this checkout's .kube/config
export ARO_HCP_ROOT=/path/to/validated-pattern-aro-hcp
export ARO_HCP_PROFILE=aro-virt
export KUBECONFIG_PATH="${ARO_HCP_ROOT}/.kube/config"
export KUBECONFIG="${KUBECONFIG_PATH}"
# unset TF_VAR_* in this shell (same rule as the installer)
ARO_HCP_ROOT="${ARO_HCP_ROOT}" ARO_HCP_PROFILE=aro-virt make cluster.aro-virt.apply
make cluster.aro-virt.bootstrap

Destroy reverse: make cluster.aro-virt.destroy here (BGP CR drain + ANF cleanup then terraform; leftover ANF volumes block the pool — delete them and retry). Then installer destroy.

GitOps: this overlay binds cluster-admin to openshift-gitops-argocd-application-controller (the installer keeps the default least-privilege GitOps ClusterRole). The trident-from-metadata Job uses a ClusterRole for cluster-scoped TridentOrchestrator and CRD get. BGP operator is an in-cluster build of bgp-cloud-connector main; bgp-from-metadata stamps workload identity (sibling BGP MI) and BGPCloudConfiguration including networkInterfaceClientID (installer cluster-api-azure). Sample BGPRouting virt (192.168.100.0/24, namespace virt) is in gitops/samples/cudn; the operator creates the CUDN. Same Argo CD instance as the installer cluster-config Application.

In-tree module

module "netapp" {
  source = "git::https://github.com/rh-mobb/validated-pattern-openshift-virt.git//modules/azure?ref=<tag>"

  cluster_name        = var.cluster_name
  resource_group_name = module.network.resource_group_name
  location            = module.network.location
  vnet_name           = module.network.vnet_name
  subnet_prefix                = "10.0.3.0/24"
  route_server_subnet_prefix   = "10.0.4.0/26"
  bgp_router_pool_names        = ["np-virt"]
  oidc_issuer_url              = module.cluster.oidc_issuer_url
  network_interface_client_id  = module.identities.cluster_api_azure_client_id
}

Pin ref to a tag. Still install sibling gitops/ (Argo Application: Trident + OpenShift Virtualization) and run trident-cleanup.sh before destroying the module. The ARO HCP installer root does not call this module.