During the VCF deployment, the validation for the VMFS FC Datastore fails.
search cancel

During the VCF deployment, the validation for the VMFS FC Datastore fails.

book

Article ID: 415493

calendar_today

Updated On:

Products

VCF Operations VMware vSphere ESXi

Issue/Introduction

Symptoms:

  • During the VCF deployment, the validation for the VMFS FC Datastore fails.

  • Verified both vcfOperationsSpec and vcfAutomationSpec have the parameter useExistingDeployment set to true

Environment

  • VMware Cloud Foundation 9.x

Cause

The validation for the VMFS FC Datastore fails because the system tries to retrieve IP Pool information using the API sddcs.VcfAutomationSpec.getIpPool().

However, this API call returns a null value since the VcfAutomationSpec does not contain IP Pool details when an existing deployment is used.

The log file /var/log/vmware/vcf/domainmanager/domainmanager.log confirms the issue.

YYYY-MM-DDTHH:MM:SS ERROR [vcf_dm,68f0cc266ac9f51fed2d33c6f58d99cb,b2ad] [c.v.e.s.o.model.error.ErrorFactory,dm-exec-15]  [63693G] VCF_ERROR_INTERNAL_SERVER_ERROR Invocation of prefix '' part of task ValidateVmfsFcDatastoreEligibilityAction in plugin ValidationPlugin failed with exception.
com.vmware.evo.sddc.common.core.error.InternalServerErrorException: Invocation of prefix '' part of task ValidateVmfsFcDatastoreEligibilityAction in plugin ValidationPlugin failed with exception.
        at com.vmware.evo.sddc.orchestrator.core.ProcessingTaskSubscriber.invokeMethod(ProcessingTaskSubscriber.java:450)
        at com.vmware.evo.sddc.orchestrator.core.ProcessingTaskSubscriber.processTask(ProcessingTaskSubscriber.java:517)
        at com.vmware.evo.sddc.orchestrator.core.ProcessingTaskSubscriber.accept(ProcessingTaskSubscriber.java:128)
        at jdk.internal.reflect.GeneratedMethodAccessor621.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:569)
        at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:85)
        at com.google.common.eventbus.Subscriber.lambda$dispatchEvent$0(Subscriber.java:71)
        at com.vmware.vcf.common.tracing.TraceRunnable.run(TraceRunnable.java:63)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.NullPointerException: Cannot invoke "java.util.List.size()" because the return value of "com.vmware.vcf.rest.api.model.v1.sddcs.VcfAutomationSpec.getIpPool()" is null

The error message indicates that the VcfAutomationSpec is missing IP Pool information, which leads to a NullPointerException during the validation step.

Verify the VcfAutomationSpec file by downloading the JSON file, to confirm there is no IP Pool information, as shown below:

"vcfAutomationSpec":
{"hostname":"HOSTNAME",
"useExistingDeployment":true,
"sslThumbprint":"##:##:##:##:##:##:##:57:73:1A:6D:61:37:##:##:##:##:##:##:##:49:28:##:##:##:##:##:##:##",
"adminUserPassword":"***********"}

Resolution

Broadcom Engineering is aware of the issue and it will be addressed in an upcoming release.

As a workaround, the IP Pool information is manually added to the VcfAutomationSpec JSON file.

This ensures that the validation for the VMFS FC Datastore passes successfully during the deployment.

Updated JSON Example:

"vcfAutomationSpec": {
  "ipPool": ["###.##.###.##", "###.##.###.##"],
  "hostname": "HOSTNAME",
  "internalClusterCidr": "198.18.0.0/15", --> (Add the correct internalClusterCidr value as configured on the existing Automation VM.)
  "useExistingDeployment": true,
  "sslThumbprint": "##:##:##:##:##:##:##:57:73:1A:6D:61:37:##:##:##:##:##:##:##:49:28:##:##:##:##:##:##:##",
  "adminUserPassword": "***********"
}