Repository: metal3-io/baremetal-operator

Issue:
BMO optional pull is broken
### Which jobs are failing?

BMO optional pull Prow test.

```
[2025-05-26T05:04:57.441Z] go: downloading go.opentelemetry.io/otel/sdk v1.29.0
[2025-05-26T05:05:45.938Z] libvirt.org/go/libvirt: exec: "pkg-config": executable file not found in $PATH
[2025-05-26T05:05:45.938Z] make: *** [Makefile:208: build-vbmctl] Error 1
```

### Which tests are failing?

BMO optional pull Prow test.

### Since when has it been failing?

No idea, its optional test.

### Jenkins link

https://jenkins.nordix.org/blue/organizations/jenkins/metal3-bmo-e2e-test-optional-pull/detail/metal3-bmo-e2e-test-optional-pull/7/pipeline

### Reason for failure (if possible)

pkgconfig is missing, likely something changed in the runner image.


### Anything else we need to know?

/cc @lentzi90 

### Label(s) to be applied

/kind failing-test

Discussion:
@lentzi90: /triage accepted
Thanks for creating the issue. Our jenkins workers are missing some packages that the github runners have. (When we trigger the optional tests manually on a PR they run in jenkins. The periodic tests and automatically triggered tests run in github runners.
We need to fix https://github.com/metal3-io/baremetal-operator/issues/2456 first though. Otherwise there is no way to get them green.,

Solution patch:
diff --git a/hack/ci-e2e.sh b/hack/ci-e2e.sh
index 6d3af775..b7609991 100755
--- a/hack/ci-e2e.sh
+++ b/hack/ci-e2e.sh
@@ -53,6 +53,9 @@ export PATH="/usr/local/go/bin:${PATH}"
 "${REPO_ROOT}/hack/e2e/ensure_kubectl.sh"
 "${REPO_ROOT}/hack/e2e/ensure_yq.sh"
 
+sudo apt-get update
+sudo apt-get install -y libvirt-dev pkg-config
+
 # Build the container image with e2e tag (used in tests)
 IMG=quay.io/metal3-io/baremetal-operator:e2e make docker
 
diff --git a/ironic-deployment/overlays/e2e-release-29.0/ironic_bmo_configmap.env b/ironic-deployment/overlays/e2e-release-29.0/ironic_bmo_configmap.env
index 9dc4c4bf..3e41bfbe 100644
--- a/ironic-deployment/overlays/e2e-release-29.0/ironic_bmo_configmap.env
+++ b/ironic-deployment/overlays/e2e-release-29.0/ironic_bmo_configmap.env
@@ -1,6 +1,8 @@
 HTTP_PORT=6180
 PROVISIONING_INTERFACE=eth0
 CACHEURL=http://192.168.222.1/images
+IRONIC_HTTP_URL=http://192.168.222.1:6180
+IRONIC_BASE_URL=https://192.168.222.1:6385
 IRONIC_EXTERNAL_CALLBACK_URL=https://192.168.222.1:6385
 IRONIC_KERNEL_PARAMS=console=ttyS0
 IRONIC_INSPECTOR_VLAN_INTERFACES=all



Test patch:
diff --git a/test/e2e/config/ironic.yaml b/test/e2e/config/ironic.yaml
index 0caa8edd..67af9108 100644
--- a/test/e2e/config/ironic.yaml
+++ b/test/e2e/config/ironic.yaml
@@ -79,10 +79,6 @@ kindExtraPortMappings:
   hostPort: 6385
   listenAddress: "0.0.0.0"
   protocol: TCP
-- containerPort: 5050
-  hostPort: 5050
-  listenAddress: "0.0.0.0"
-  protocol: TCP
 
 
 bmoIronicUpgradeSpecs:
@@ -127,6 +123,7 @@ bmoIronicUpgradeSpecs:
   initBMOKustomization: "../../config/overlays/e2e-release-0.10"
   initIronicKustomization: "../../ironic-deployment/overlays/e2e-release-28.0"
   upgradeEntityKustomization: "../../ironic-deployment/overlays/e2e"
+  upgradeEntityName: "ironic"
 # Upgrade Ironic 29.0 -> latest | BMO 0.10
 - deployIronic: true
   deployBMO: true