Uploaded image for project: 'Red Hat Developer Hub Bugs'
  1. Red Hat Developer Hub Bugs
  2. RHDHBUGS-2551

Known Issue: Helm Upgrade may require manual update of custom values files if overriding specific list fields

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Normal Normal
    • None
    • 1.9.0
    • Helm Chart
    • None
    • False
    • Hide

      None

      Show
      None
    • False
    • Hide
      === Helm Upgrade may require manual update of custom values files if overriding specific list fields

      **Issue:**
      When upgrading the Red Hat Developer Hub (RHDH) Helm release to 1.9, users who utilize custom `values.yaml` files to override specific lists in the default configuration will need to manually update their files to include some new defaults.

      **Details:**
      This requirement is due to a known Helm limitation where the tool does not perform a "deep merge" on list fields. Instead, if a list is defined in a custom values file, it completely replaces the corresponding list in the default values. If you have custom overrides for the fields listed below, they will inadvertently strip out the new mandatory configurations required for the **Extensions Catalog Index** feature introduced in 1.9.

      **Affected Fields:**
      * `upstream.backstage.extraVolumeMounts`
      * `upstream.backstage.extraVolumes`
      * `upstream.backstage.initContainers`

      **Impact:**
      Failure to include the new default volume mounts and environment variables in your custom `values.yaml` will result in the RHDH application failing to initialize or failing to discover dynamic plugins correctly.

      **Workaround:**
      If you override any of the affected fields, you must manually merge the 1.9 default items into your custom configuration. You can view the full list of default values for the current version by running the following command:

      [source,bash,subs="attributes"]
      ----
      helm show values redhat-developer-hub --repo https://charts.openshift.io --version {product-chart-version}
      ----

      #### Required Configuration Updates
      Ensure your custom `values.yaml` includes the following highlighted items within their respective lists to avoid configuration loss:

      [source,yaml]
      ----
      upstream:
        backstage:
          extraVolumeMounts:
            # TODO: In addition to your custom mounts and the RHDH defaults, ensure this item is present (defined in the default RHDH chart):
            - name: extensions-catalog
              mountPath: /extensions

          extraVolumes:
            # TODO: In addition to your custom volumes and the RHDH defaults, ensure this item is present (defined in the default RHDH chart):
            - name: extensions-catalog
              emptyDir: {}

          initContainers:
            # TODO: Ensure the 'install-dynamic-plugins' container includes these environment variables and volume mounts:
            - name: install-dynamic-plugins
              env:
                # TODO: In addition to your custom env vars and the RHDH defaults for the install-dynamic-plugins init container,
                # ensure the following items are present (defined in the default RHDH chart):
                - name: CATALOG_INDEX_IMAGE
                  value: '{{ .Values.global.catalogIndex.image.registry }}/{{ .Values.global.catalogIndex.image.repository }}:{{ .Values.global.catalogIndex.image.tag }}'
                - name: CATALOG_ENTITIES_EXTRACT_DIR
                  value: '/extensions'
              volumeMounts:
                # TODO: In addition to your custom volume mounts and the RHDH defaults for the install-dynamic-plugins init container,
                # ensure the following item is present (defined in the default RHDH chart):
                - name: extensions-catalog
                  mountPath: /extensions
              ### ... other fields omitted for brevity
      ----
      Show
      === Helm Upgrade may require manual update of custom values files if overriding specific list fields **Issue:** When upgrading the Red Hat Developer Hub (RHDH) Helm release to 1.9, users who utilize custom `values.yaml` files to override specific lists in the default configuration will need to manually update their files to include some new defaults. **Details:** This requirement is due to a known Helm limitation where the tool does not perform a "deep merge" on list fields. Instead, if a list is defined in a custom values file, it completely replaces the corresponding list in the default values. If you have custom overrides for the fields listed below, they will inadvertently strip out the new mandatory configurations required for the **Extensions Catalog Index** feature introduced in 1.9. **Affected Fields:** * `upstream.backstage.extraVolumeMounts` * `upstream.backstage.extraVolumes` * `upstream.backstage.initContainers` **Impact:** Failure to include the new default volume mounts and environment variables in your custom `values.yaml` will result in the RHDH application failing to initialize or failing to discover dynamic plugins correctly. **Workaround:** If you override any of the affected fields, you must manually merge the 1.9 default items into your custom configuration. You can view the full list of default values for the current version by running the following command: [source,bash,subs="attributes"] ---- helm show values redhat-developer-hub --repo https://charts.openshift.io --version {product-chart-version} ---- #### Required Configuration Updates Ensure your custom `values.yaml` includes the following highlighted items within their respective lists to avoid configuration loss: [source,yaml] ---- upstream:   backstage:     extraVolumeMounts:       # TODO: In addition to your custom mounts and the RHDH defaults, ensure this item is present (defined in the default RHDH chart):       - name: extensions-catalog         mountPath: /extensions     extraVolumes:       # TODO: In addition to your custom volumes and the RHDH defaults, ensure this item is present (defined in the default RHDH chart):       - name: extensions-catalog         emptyDir: {}     initContainers:       # TODO: Ensure the 'install-dynamic-plugins' container includes these environment variables and volume mounts:       - name: install-dynamic-plugins         env:           # TODO: In addition to your custom env vars and the RHDH defaults for the install-dynamic-plugins init container,           # ensure the following items are present (defined in the default RHDH chart):           - name: CATALOG_INDEX_IMAGE             value: '{{ .Values.global.catalogIndex.image.registry }}/{{ .Values.global.catalogIndex.image.repository }}:{{ .Values.global.catalogIndex.image.tag }}'           - name: CATALOG_ENTITIES_EXTRACT_DIR             value: '/extensions'         volumeMounts:           # TODO: In addition to your custom volume mounts and the RHDH defaults for the install-dynamic-plugins init container,           # ensure the following item is present (defined in the default RHDH chart):           - name: extensions-catalog             mountPath: /extensions         ### ... other fields omitted for brevity ----
    • Known Issue

      This issue is just a placeholder to document this as a known issue (caused by a limitation with Helm) as a followup to the changes done to handle the extraction of the catalog entities in the install methods (RHIDP-11293).

              rh-ee-asoro Armel Soro
              rh-ee-asoro Armel Soro
              RHDH Install
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: