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

4.12 and 4.13 MultiNIC installation issues in Official document

XMLWordPrintable

    • Moderate
    • No
    • 4
    • OSDOCS Sprint 238
    • 1
    • False
    • Hide

      None

      Show
      None

      Description of problem:
      We installed OCP version 4.12.15 in our s390x LPAR (RHEL 9.1). As we have a Multi-NIC OCP setup, we heavily rely on this troubleshooting article which changed from OCP 4.11 to OCP 4.12.
      https://docs.openshift.com/container-platform/4.12/support/troubleshooting/troubleshooting-network-issues.html

      All issue which we faced mainly because of the wrong content in OCP official document.

      The MachineConfig that we are supposed to use from the above official document: (Same issue for both Master and Worker)
      https://docs.openshift.com/container-platform/4.12/support/troubleshooting/troubleshooting-network-issues.html#:~:text=Master%20machine%20config%20manifest

      Issue 1:

      Let's first fix the elephant in the room. The formatting:

      • "metadata.name" was wrongly indented: Changed 4 spaces to 2 spaces.
      • "spec.config" was wrongly indented: Changed 1 space to 2 spaces and added 1 space for all the lines underneath.
        Note: Changes made in red.

      ```yaml

      apiVersion: machineconfiguration.openshift.io/v1

      kind: MachineConfig

      metadata:

        labels:

          machineconfiguration.openshift.io/role: master

        name: 99-nodeip-hint-master

      spec:

        config:

          ignition:

            version: 3.2.0

          storage:

            files:

              - contents:

                  source: data:text/plain;charset=utf-8;base64, <encoded_content>

                mode: 0644

                overwrite: true

                path: /etc/default/nodeip-configuration

      ```

      -------------------------------------------------------------------------------------------

      Issue 2:

      <encoded_content> base64:

      The troubleshooting guide used the following to generate the base64 string:

      ```

      echo 'NODEIP_HINT=192.0.2.1' | base64

      ```

      However, I believe the encoded newline character is not needed and might even cause issues. Therefore, I suggest to use:

      ```

      echo -n 'NODEIP_HINT=192.0.2.1' | base64

      ```

      ---------------------------------------------------------------------------------------
      Issue 3:

      <encoded_content>:

      When you now put in the <encoded_content> like this:

      ```yaml

      apiVersion: machineconfiguration.openshift.io/v1

      kind: MachineConfig

      metadata:

        labels:

          machineconfiguration.openshift.io/role: master

        name: 99-nodeip-hint-master

      spec:

        config:

          ignition:

            version: 3.2.0

          storage:

            files:

              - contents:

                  source: data:text/plain;charset=utf-8;base64, Tk9ERUlQX0hJTlQ9MTkyLjAuMi4x

                mode: 0644

                overwrite: true

                path: /etc/default/nodeip-configuration

      ```

      It is valid YAML, and it won't complain generating the ignition files. However, the installation will fail with a parsing error:

      ```

      Error:

      ...

      2023-05-10T16:57:57.032231329+00:00 stderr F F0510 16:57:57.032217       1 bootstrap.go:47] error running MCC[BOOTSTRAP]: parsing Ignition config spec v3.2 failed with error: config is not valid

      2023-05-10T16:57:57.032231329+00:00 stderr F Report: error at $.storage.files.0.contents.source, line 1 col 75: invalid data character

      ```

      First the above error does not tell what file exactly caused the parsing error. So it is already difficult to figure out that the issues was caused once again by the MachineConfig above.

       

      The problem this time is that the Data URI scheme "data:text/plain;charset=...." is not allowed to contain any unencoded space characters. Fixing this now leads to this final version:

      ```

      apiVersion: machineconfiguration.openshift.io/v1

      kind: MachineConfig

      metadata:

        labels:

          machineconfiguration.openshift.io/role: master

        name: 99-nodeip-hint-master

      spec:

        config:

          ignition:

            version: 3.2.0

          storage:

            files:

              - contents:

                  source: data:text/plain;charset=utf-8;base64,Tk9ERUlQX0hJTlQ9MTkyLjAuMi4x

                mode: 0644

                overwrite: true

                path: /etc/default/nodeip-configuration

      ```

      --------------------------------------------------------------------------------------------
      Issue 4:

      .yml versus .yaml File Ending:

      When you create two manifest files with the above content for master and one slightly modified version for the worker during the installation with the filenames: `99-nodeip-hint-master.yml`, `99-nodeip-hint-worker.yml`. We get an obscure error when trying to create the ignition files. This error goes away when changing the file ending to `.yaml` which is the official file ending. However, either the error message should be more clear about this OR `.yml` should just work as it is used quite often. When searching for `.yml` in the search field of the OCP documentation there are a lot of matches.

       

      Regards,
      Seeman Mannan

       

       

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

       

      How reproducible:

       

      Steps to Reproduce:

      1.
      2.
      3.
      

      Actual results:

       

      Expected results:

       

      Additional info:

       

            rhn-support-stevsmit Steven Smith
            seeman.mannan@ibm.com Seeman Mannan
            Ross Brattain Ross Brattain
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: