rancher / rancher

Complete container management platform
http://rancher.com
Apache License 2.0
23.28k stars 2.95k forks source link

Rancher Single docker install is displaying the 2.5.x dashboard UI, not the newest #32728

Closed izaac closed 3 years ago

izaac commented 3 years ago

What kind of request is this: bug

Steps to reproduce:

docker run -d -p 80:80 -p 443:443 --privileged --name=master --restart=unless-stopped rancher/rancher:master-head --trace

Result:

UI is an older Dashboard

Screen Shot 2021-05-13 at 4 32 59 PM

Environment information

vincent99 commented 3 years ago

This is the version that's embedded into the container, which is rarely updated for master and therefore quite old.

You shouldn't be getting that though, because master-head is a non-release, the ui-preferred-offline=dynamic setting should cause it to look at if it's a release, see that it's not, and then serve up the index from the CDN, which would be the current dashboard master.

So something's wrong with the server logic, in a way that's not 100% reproducible ( I ran the same build on my computer and got new remotely hosted UI as expected). Maybe if you try to hit the page before all the settings have been created or some race condition like that.

Jono-SUSE-Rancher commented 3 years ago

@izaac - Can you test this again in a fresh browser (with cleared cache/cookies)? And, what may actually work as well is if you do it with an incognito window and start fresh. See if you still get the error showing the incorrect version in the UI.

@vincent99 is correct that this will be difficult to address if we can't consistently reproduce it.

If you are able to reproduce it, please put some steps on what you did to make it happen consistently and we will take a look.

izaac commented 3 years ago

@Jono-SUSE-Rancher @vincent99 I am able to always reproduce it on a Linode CentOS Stream 8 machine.

This machine IP address is accessible from a Route53 A record. I am using this script to deploy master

./re-deploy-master (this defaults to master-head)

cat ./re-deploy-rancher.sh
#!/bin/bash
#set -x
#set -e

defaultvalue=master
name=${1:-$defaultvalue}

docker stop "$(docker ps -a -q)"
docker rm "$(docker ps -a -q)"
docker system prune -a -f
docker system prune --volumes -f

if [[ $name == *"master"*  ]]
then
    docker run -d -p 80:80 -p 443:443 --privileged --name="$name" --restart=unless-stopped rancher/rancher:"$name"-head --trace
else
    docker run -d -p 80:80 -p 443:443 --privileged --name="$name" --restart=unless-stopped rancher/rancher:"$name" --trace
fi

Docker logs: test.log

Docker info:

Client:
 Debug Mode: false

Server:
 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 1
 Server Version: 19.03.15
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
 runc version: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 4.18.0-277.el8.x86_64
 Operating System: CentOS Stream 8
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 7.586GiB
 Name: li1242-231.members.linode.com
 ID: 2JEC:NY76:GELG:ID54:LO4I:6TS2:OT6X:NWTC:Q54B:P6CU:IZ4M:B2OU
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
Jono-SUSE-Rancher commented 3 years ago

Thanks for the additional info Izaac. The UI in the Docker install is not dynamically updating to the master version of the UI. We should test this when we officially tag a UI release and embed in it in the Rancher Build.

vincent99 commented 3 years ago

@Jono-SUSE-Rancher That doesn't really work...

The master build is supposed to fetch https://releases.rancher.com/dashboard/latest/index.html (because that's what ui-dashboard-index and ui-preferred-offline are set to) and return that (which then loads other assets off the CDN). It should not be serving up the one baked into the container at all, which is what @izaac's install ends up with (and I saw hitting his install myself, but also can't reproduce locally). The fact that the copy you get happens to be outdated is an unrelated concern.

RCs and real releases are supposed to do the opposite, always load from the copy in the container.

vincent99 commented 3 years ago

@izaac It looks to be because outbound internet access isn't working on your machine; there are several things that fail to load in the log (and that's the part that other people wouldn't be able to just reproduce). When it can't download it fails back to the local copy (as the message says).

2021/05/20 19:54:37 [WARNING] failed to refresh data from upstream https://releases.rancher.com/kontainer-driver-metadata/dev-v2.6/data.json: driverMetadata err Get "https://releases.rancher.com/kontainer-driver-metadata/dev-v2.6/data.json": context deadline exceeded (Client.Timeout exceeded while awaiting headers), Fallback to refresh from local file path /var/lib/rancher-data/driver-metadata/data.json

2021/05/20 19:55:39 [ERROR] Failed to download https://releases.rancher.com/dashboard/latest/index.html, falling back to packaged UI

izaac commented 3 years ago

@vincent99 @Jono-SUSE-Rancher ok i created a new VM and made sure the VM had proper outgoing connection.

That made it work for me. I think the previous VM had a very strict firewall configuration.

Closing.

Rancher version 2.6 master-head (05/21/2021) 4f9850d