seriohub / velero-ui

A UI for Velero
Apache License 2.0
53 stars 4 forks source link

Error installing Velero UI: unknown object type "nil" in ConfigMap.data.API_ENDPOINT_PORT #34

Open ithesadson opened 1 month ago

ithesadson commented 1 month ago

Description: When attempting to install Velero UI using Helm on Kubernetes version 1.21.5, I encountered an error that prevented successful installation. The error message indicated an issue with unknown object type "nil" in ConfigMap.data.API_ENDPOINT_PORT.

Steps to Reproduce:

  1. Install Velero UI using Helm with the following command: helm install vui seriohub-velero/vui -n velero-ui --create-namespace

  2. Check the installation status using Helm.

    Expected Behavior: Velero UI should install successfully without any errors.

    Actual Behavior: Installation fails with the following error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: error validating "": error validating data: unknown object type "nil" in ConfigMap.data.API_ENDPOINT_PORT


Workaround: Manually edit the watchdog ConfigMap file (configmap.yaml) included in the Helm chart to set the API_ENDPOINT_PORT value to "8001" before installing Velero UI.

Additional Information:

Kubernetes Version: 1.21.5 Helm Version: v3.15.1 Velero UI Helm Chart Version: latest

Solution: I resolved this issue by manually editing the configmap.yaml file in the Helm chart to specify the API_ENDPOINT_PORT value before installing Velero UI. After making this change, I successfully installed Velero UI using the corrected Helm chart.

Note: I encountered this error while attempting to install Velero UI in two different environments with varying Kubernetes versions. The error occurred in Kubernetes version 1.21.5, while the installation was successful in a different environment with a newer Kubernetes version. This suggests that the issue may be related to differences between Kubernetes versions.

ithesadson commented 1 month ago

$ cat vui/templates/watchdog/configmap.yaml API_ENDPOINT_PORT: {{ .Values.apiEndpointPort | default "8001" | quote }}

Do you think it makes more sense to change the port definition in the configmap in this way? @davideserio

davideserio commented 1 month ago

Thanks for the report.

As stated in the README, the versions of Kubernetes on which we developed, tested, and put this project into production are v1.28.2 or higher. I have not tested it on earlier versions.

Certainly, the use of default values offers a more robust approach. This surely applies not only to the API_ENDPOINT_PORT key but also to other keys. We will try to add them gradually in future updates.

louise-zhang commented 2 weeks ago

Hi @davideserio,

I believe the issue is due to a typo in the values file:

Current value:

watchdogConfig:
  ...
  # -- Socket bind port
  apiEndPointPort: "8001"  # <----- Capital 'P' for "Point"

It should be:

watchdogConfig:
  ...
  # -- Socket bind port
  apiEndpointPort: "8001"  # <----- Lowercase 'p' for "point"