Device configuration UI not showing up

Setting up my own server (open source). All is working but cannot see the device configuration GUI on the device screen. (Do see that when connecting the same device to hosted mender). Any idea?

My first question would be versions, and how this is set up?

In general this should be part of both our demo and OS production setup scripts?

Followed the docs yesterday. I believe that should be latest version.
Using mender helm chart version 3.1.0.

Just tried aligning my versions with hosted mender.
Changed the gui.image.tag to “staging_e71963e52d48191fb04c36551f99503db8abbf16”.
Didn’t help.

Also, checked the gui pod with kubectl and saw HAVE_DEVICECCONFIG=“true” which I assume is what it should be but - still - the device config GUI is not showing up.

Here is the list of my current versions:

Hmm, that is interesting, as far as I’ve been let in the know, the HAVE_DEVICECONFIG env var is all that should be needed.

@mzedel could you help out here?

@oleorhagen is correct, that variable should be the key… otherwise the only requirement is that the device needs to be either in an accepted or preauthorized state.
Just to be sure, the MENDER_HOSTED setting should not be truthy on the gui pod - that would also prohibit seeing the configuration section (and disturb a few more areas without the Hosted Mender backend).

Just checked. MENDER_HOSTED is not defined on my gui pod. Should I explicitly define it and set it to “false”?
Could it be that the fact the first device that was accepted on this mender server was a device I took from the hosted server and just added my server URL (but the original setup that was ran on it had the --mender-hosted option)? I’ve removed that device since then and that didn’t help but could there be some “leftovers” on the server that cause that? Any other direction I should check?

That is weird, if that is not set, there is only one more thing that could produce it: if the URL contains
Could you post the env.js, that is served alongside the gui bundle (you should be able to find it under: https://<yourDomain>/ui/env.js)?

As for any left over settings from Hosted Mender, that should not matter, as long as the device is authenticated with your local server… the UI only checks for hasDeviceConfig && [DEVICE_STATES.accepted, DEVICE_STATES.preauth].includes(status) (where status is device.status) and hasDeviceConfig is defined by either the HAVE_DEVICECONFIG variable or information from the Hosted Mender backend if MENDER_HOSTED is set.

See below what I get for my env.js.
Indeed, the hasDeviceConfig is not set.

  mender_environment = {
    hostAddress: "",
    hostedAnnouncement: "",
    isDemoMode: "",
    features: {
      hasAddons: "",
      hasAuditlogs: "",
      hasDeviceConfig: "",
      hasDeviceConnect: "true",
      hasMonitor: "",
      hasMultitenancy: "",
      hasReporting: "",
      isEnterprise: "",
      isHosted: ""
    trackerCode: "",
    recaptchaSiteKey: "",
    stripeAPIKey: "",
    integrationVersion: "3.1.0",
    menderVersion: "3.1.0",
    menderArtifactVersion: "3.6.0",
    metaMenderVersion: "",
    services: {
      deploymentsVersion: "",
      deviceauthVersion: "",
      guiVersion: "staging_e71963e52d48191fb04c36551f99503db8abbf16",
      inventoryVersion: ""
    demoArtifactPort: "",
    disableOnboarding: ""

But, double checked with kubectl describe pod and the gui pod seems to have this env var set correctly…

      INTEGRATION_VERSION:      3.1.0
      MENDER_VERSION:           3.1.0
      HAVE_DEVICECONNECT:       true
      HAVE_DEVICECCONFIG:       true

that’s it! - that is wrong in the helm chart :disappointed: - it should be HAVE_DEVICECONFIG… I’ll create a PR to fix this and am very sorry!

Hey, don’t worry :slight_smile:
Thanks a lot for the support!

1 Like