Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-1698

[vsphere] Installer get panic error when no setting platform.vsphere.failureDomains.topology.networks

    XMLWordPrintable

Details

    • Moderate
    • False
    • Hide

      None

      Show
      None
    • Hide
      Previously, when installing a cluster on VMWare vSphere, the installation failed if the user specified the `platform.vsphere.vcenters` parameter but did not specify the `platform.vsphere.failureDomains.topology.networks` parameter in the `install-config.yaml` file. With this update, the installation program alerts the user that the `platform.vsphere.failureDomains.topology.networks` field is required when specifying `platform.vsphere.vcenters`. (link:https://issues.redhat.com/browse/OCPBUGS-1698[*OCPBUGS-1698*])
      Show
      Previously, when installing a cluster on VMWare vSphere, the installation failed if the user specified the `platform.vsphere.vcenters` parameter but did not specify the `platform.vsphere.failureDomains.topology.networks` parameter in the `install-config.yaml` file. With this update, the installation program alerts the user that the `platform.vsphere.failureDomains.topology.networks` field is required when specifying `platform.vsphere.vcenters`. (link: https://issues.redhat.com/browse/OCPBUGS-1698 [* OCPBUGS-1698 *])

    Description

      Description of problem:

      unset field networks in topology of each failureDomain, but defines platform.vsphere.vcenters.

      in install-config.yaml:

          vcenters:
          - server: xxx
            user: xxx
            password: xxx
            datacenters:
            - IBMCloud
            - datacenter-2
          failureDomains:
          - name: us-east-1
            region: us-east
            zone: us-east-1a
            topology:
              datacenter: IBMCloud
              computeCluster: /IBMCloud/host/vcs-mdcnc-workload-2
              datastore: multi-zone-ds-shared
            server: ibmvcenter.vmc-ci.devcluster.openshift.com
          - name: us-east-2
            region: us-east
            zone: us-east-2a
            topology:
              datacenter: IBMCloud
              computeCluster: /IBMCloud/host/vcs-mdcnc-workload-2
              datastore: multi-zone-ds-shared
            server: ibmvcenter.vmc-ci.devcluster.openshift.com
          - name: us-east-3
      

      Launch installer to create cluster, get panic error

      sh-4.4$ ./openshift-install create cluster --dir ipi --log-level debug
      DEBUG OpenShift Installer 4.12.0-0.nightly-2022-09-25-071630 
      DEBUG Built from commit 1fb1397635c89ff8b3645fed4c4c264e4119fa84 
      DEBUG Fetching Metadata...                         
      ...
      DEBUG       Reusing previously-fetched Master Ignition Config 
      DEBUG     Generating Master Machines...            
      panic: runtime error: index out of range [0] with length 0goroutine 1 [running]:
      github.com/openshift/installer/pkg/asset/machines/vsphere.getDefinedZones(0xc0003bec80)
          /go/src/github.com/openshift/installer/pkg/asset/machines/vsphere/machinesets.go:122 +0x4f8
      github.com/openshift/installer/pkg/asset/machines/vsphere.Machines({0xc0011ca0b0, 0xd}, 0xc001080c80, 0xc0005cad50, {0xc000651d10, 0x13}, {0x4ab5773, 0x6}, {0x4ad49bb, 0x10})
          /go/src/github.com/openshift/installer/pkg/asset/machines/vsphere/machines.go:37 +0x250
      github.com/openshift/installer/pkg/asset/machines.(*Master).Generate(0xc001118bd0, 0x5?)
       

      Field platform.vsphere.failureDomains.topology.netowrks is not required in documentation.

      sh-4.4$ ./openshift-install explain installconfig.platform.vsphere.failureDomains.topology
      KIND:     InstallConfig
      VERSION:  v1RESOURCE: <object>
        Topology describes a given failure domain using vSphere constructsFIELDS:
          computeCluster <string> -required-
            computeCluster as the failure domain This is required to be a path    datacenter <string> -required-
            datacenter is the vCenter datacenter in which virtual machines will be located and defined as the failure domain.    datastore <string> -required-
            datastore is the name or inventory path of the datastore in which the virtual machine is created/located.    folder <string>
            folder is the name or inventory path of the folder in which the virtual machine is created/located.    networks <[]string>
            networks is the list of networks within this failure domain    resourcePool <string>
            resourcePool is the absolute path of the resource pool where virtual machines will be created. The absolute path is of the form /<datacenter>/host/<cluster>/Resources/<resourcepool>. 

      Version-Release number of selected component (if applicable):

      4.12.0-0.nightly-2022-09-25-071630

      How reproducible:

      always when setting platform.vsphere.vcenters and unsetting platform.vsphere.failureDomains.topology.networks
      It works if no set platform.vsphere.vcenters and set platform.vsphere.failureDomains.topology.networks

      Steps to Reproduce:

      1. configure zones in install-config.yaml, set platform.vsphere.vcenters and unset platform.vsphere.failureDomains.topology.networks
      2. install IPI cluster
      3.
      

      Actual results:

      installer get panic error

      Expected results:

      installation is successful.

      Additional info:

       

      Attachments

        Activity

          People

            rhn-support-rvanderp Richard Vanderpool
            jinyunma Jinyun Ma
            Jinyun Ma Jinyun Ma
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: