meshery / meshery

Meshery, the cloud native manager
https://meshery.io
Apache License 2.0
5.66k stars 1.77k forks source link

Avoid prompt after `meshery` install in `service-mesh-labs` #4091

Closed suhaniii closed 1 year ago

suhaniii commented 3 years ago

Current Behavior

In service-mesh-labs after installing meshery curl -L https://git.io/meshery | ADAPTERS=istio PLATFORM=docker bash -, a prompt can be seen - Refer below image

Screenshot 2021-09-01 at 8 28 24 AM

Expected Behavior

After Installing meshery remove prompt

Screenshots/Logs

Environment


Contributor Guides and Resources

suhaniii commented 3 years ago

More details // @hexxdump

hexxdump commented 3 years ago

@suhaniii The issue seems to be from "mesheryctl system context custom -s ...." command rather than the "meshery system start.." command of the installer, will it be possible to run the below command in the katakoda setup and collect the logs?

curl -L https://git.io/meshery | ADAPTERS=istio PLATFORM=docker bash -x -

warunicorn19 commented 3 years ago
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  6674  100  6674    0     0  10460      0 --:--:-- --:--:-- --:--:-- 10460
+ getopts :np: opt
+ '[' '' '!=' false ']'
+ '[' '!' docker ']'
+ case "$PLATFORM" in
++ uname -m
+ OSARCHITECTURE=x86_64
++ uname
+ OS=Linux
+ '[' xLinux = xDarwin ']'
+ OSEXT=Linux
+ command_exists curl
+ command -v curl
+ command_exists unzip
+ command -v unzip
+ '[' x = x ']'
++ head -n 1
++ grep -v 'rc\.[0-9]$'
++ curl -L -s https://api.github.com/repos/meshery/meshery/releases
++ grep tag_name
++ sed 's/ *"tag_name": *"\(.*\)",*/\1/'
+ MESHERY_VERSION=v0.5.52
+ '[' xv0.5.52 = x ']'
+ NAME=mesheryctl-v0.5.52
+ URL=https://github.com/meshery/meshery/releases/download/v0.5.52/mesheryctl_0.5.52_Linux_x86_64.zip
+ printf '\nDownloading %s for %s...\n\n' mesheryctl-v0.5.52 Linux

Downloading mesheryctl-v0.5.52 for Linux...

+ curl -L https://github.com/meshery/meshery/releases/download/v0.5.52/mesheryctl_0.5.52_Linux_x86_64.zip -o /root/meshery.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   642  100   642    0     0   3028      0 --:--:-- --:--:-- --:--:--  3028
100 12.4M  100 12.4M    0     0  15.7M      0 --:--:-- --:--:-- --:--:-- 15.7M
++ file /root/meshery.zip
++ grep 'Zip archive data'
+ validFile='/root/meshery.zip: Zip archive data, at least v2.0 to extract'
+ '[' -z '/root/meshery.zip: Zip archive data, at least v2.0 to extract' ']'
++ tr -dc A-Za-z0-9
++ head -c 16
+ temporary_dir_name=D39dLiEYM4XKx0uB
+ '[' -z D39dLiEYM4XKx0uB ']'
+ mkdir D39dLiEYM4XKx0uB
+ '[' 0 -ne 0 ']'
+ printf '\nExtracting %s to temporary folder %s...\n' mesheryctl-v0.5.52 D39dLiEYM4XKx0uB

Extracting mesheryctl-v0.5.52 to temporary folder D39dLiEYM4XKx0uB...
+ unzip /root/meshery.zip -d /root/D39dLiEYM4XKx0uB
Archive:  /root/meshery.zip
  inflating: /root/D39dLiEYM4XKx0uB/LICENSE  
  inflating: /root/D39dLiEYM4XKx0uB/README.md  
  inflating: /root/D39dLiEYM4XKx0uB/mesheryctl  
+ install_dir=
+ '[' -z '' ']'
+ install_dir=/usr/local/bin
+ printf '\nInstalling mesheryctl in /usr/local/bin.\n'

Installing mesheryctl in /usr/local/bin.
++ whoami
+ WHOAMI=root
+ mv /root/D39dLiEYM4XKx0uB/mesheryctl /usr/local/bin/mesheryctl
+ echo 'mesheryctl installed.'
mesheryctl installed.
+ '[' '' == '' ']'
+ chown root /usr/local/bin/mesheryctl
+ chown root /root
+ chmod u+w /root
+ echo 'permissions moved to root'
permissions moved to root
+ printf 'Removing installation files'
Removing installation files+ rm -rf meshery.zip /root/D39dLiEYM4XKx0uB/
+ '[' '' == false ']'
+ '[' '!' -z istio ']'
+ adpaterString=
+ for adapter in $ADAPTERS
+ case $adapter in
+ adapterString=' -a meshery-istio '
+ mesheryctl system context create custom -s -a meshery-istio --yes
Missing Meshery config file.
Default config file created at /root/.meshery/config.yaml
Added `custom` context
+ printf '\nStarting Meshery...\n'

Starting Meshery...
+ mesheryctl system start --yes --platform docker
Updating Meshery now...
Pulling meshery (layer5/meshery:stable-latest)...
stable-latest: Pulling from layer5/meshery
16ec32c2132b: Pull complete
73c49e8f71b3: Pull complete
cf5d569a5c37: Pull complete
8b2d136452a8: Pull complete
fcf32b2ad4d5: Pull complete
7d846b52d64f: Pull complete
a3aac49ad88d: Pull complete
58f6530697e3: Pull complete
c73fe8df7068: Pull complete
8c22d7bde790: Pull complete
317068f5e1a6: Extracting [===================>                               ]  90.24MB/234.3MB
30dce458235a: Download complete
b9ec5f922741: Download complete
4f4fb700ef54: Download complete
warunicorn19 commented 3 years ago

Should i put a screenshot instead๐Ÿ˜…? @hexxdump

leecalcote commented 3 years ago

Should i put a screenshot instead๐Ÿ˜…? @hexxdump

Formatting added.

hexxdump commented 3 years ago

@warunicorn19, In your environment, I do not see the issue @suhaniii mentioned in the description above . image

i.e. meshery installer stuck for user input.

warunicorn19 commented 3 years ago

@hexxdump that happens after all the download is complete, i.e, right after this.

hexxdump commented 3 years ago

Thanks for clarifying @warunicorn19 . So, the issue is indeed with mesheryctl system start --yes --platform docker command.

suhaniii commented 3 years ago

@hexxdump It happens with image id kubernetes-cluster-running:1.18 not with minikube

hexxdump commented 3 years ago

@suhanii, My guess is that the default web browser is set to Lynx in this environment, will it be possible to set the default browser to firefox/chrome by using xdg-settings set default-web-browser ... command and check if you still hit the issue?

suhaniii commented 3 years ago

@suhanii, My guess is that the default web browser is set to Lynx in this environment, will it be possible to set the default browser to firefox/chrome by using xdg-settings set default-web-browser ... command and check if you still hit the issue?

Thank you @hexxdump. @iamsdas is already working on kubernetes-cluster-running. @iamsdas Do you want to test this?

iamsdas commented 3 years ago

@suhanii, My guess is that the default web browser is set to Lynx in this environment, will it be possible to set the default browser to firefox/chrome by using xdg-settings set default-web-browser ... command and check if you still hit the issue?

Thank you @hexxdump. @iamsdas is already working on kubernetes-cluster-running. @iamsdas Do you want to test this?

Sure, I'll try this out

iamsdas commented 3 years ago

So I tried it out. These are the steps I used:

apt install xdg-utils
apt install firefox
mkdir .config
xdg-settings set default-web-browser firefox.desktop

Made sure the changes are reflected with a xdg-settings get default-web-browser

Tried re-running the curl -L https://git.io/meshery | ADAPTERS=istio PLATFORM=docker bash - Still resulted in the same promt

hexxdump commented 3 years ago

When I tried the lab, the default-web-browser value is not reflected in the bash script. The default browser is still Lynx.

Screenshot 2021-09-08 at 11 46 39 AM

when I exit out of the bash command, the default browser value is unset.

Screenshot 2021-09-08 at 11 48 47 AM

we need to find a way to set the browser value globally.

iamsdas commented 3 years ago

We can also add a export BROWSER=firefox in the .bashrc file and then do a source .bashrc Doing so will prevent that prompt from happening but...this will also result in the following error message:

Opening Meshery (http://localhost:9081) in browser.
Error: no DISPLAY environment variable specified
Error: no DISPLAY environment variable specified
xdg-open: no method available for opening 'http://localhost:9081'
Failed to open Meshery in browser, please point your browser to http://localhost:9081 to access Meshery.

But I'm still not getting why this prompt thing happens in this environment while it did not happen in the minikube one

leecalcote commented 3 years ago

I don't know that trying to open the user's browser makes sense here. They are going to have to switch to the other iframe tab anyway.

hexxdump commented 3 years ago

We can also add a export BROWSER=firefox in the .bashrc file and then do a source .bashrc Doing so will prevent that prompt from happening but...this will also result in the following error message:

Opening Meshery (http://localhost:9081) in browser.
Error: no DISPLAY environment variable specified
Error: no DISPLAY environment variable specified
xdg-open: no method available for opening 'http://localhost:9081'
Failed to open Meshery in browser, please point your browser to http://localhost:9081 to access Meshery.

But I'm still not getting why this prompt thing happens in this environment while it did not happen in the minikube one

In that case, we could modify the one-liner as below:

curl -L https://git.io/meshery | BROWSER=firefox ADAPTERS=istio PLATFORM=docker bash -

minikube image could have different stack compared to kubernetes-cluster-running image. I dont think it would be wise to compare them both. We can get going with some quick readme instructions for the lab as @leecalcote mentioned. For e.g. the below log message is acceptable: Failed to open Meshery in browser, please point your browser to http://localhost:9081 to access Meshery. We could ask the user to open a browser window and open http://localhost:9081 to access Meshery.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 2 years ago

This issue is being automatically closed due to inactivity. However, you may choose to reopen this issue.

leecalcote commented 2 years ago

@suhaniii will you confirm that this is resolved?

suhaniii commented 2 years ago

@suhaniii will you confirm that this is resolved?

@leecalcote I just checked, Issue still persist.

suhaniii commented 2 years ago

Issue is with mesheryctl system start

Also, for PLATFORM=kubernetes it is working fine, problem is with PLATFORM=docker

leecalcote commented 2 years ago

Oh, I see. Ok, let's make sure that PLATFORM=kubernetes are what we use in the labs. ๐Ÿ‘

suhaniii commented 2 years ago

I updated PLATFORM=kubernetes and same problem started with this now.

suhaniii commented 2 years ago

We can also add a export BROWSER=firefox in the .bashrc file and then do a source .bashrc Doing so will prevent that prompt from happening but...this will also result in the following error message:

Opening Meshery (http://localhost:9081) in browser.
Error: no DISPLAY environment variable specified
Error: no DISPLAY environment variable specified
xdg-open: no method available for opening 'http://localhost:9081'
Failed to open Meshery in browser, please point your browser to http://localhost:9081 to access Meshery.

But I'm still not getting why this prompt thing happens in this environment while it did not happen in the minikube one

In that case, we could modify the one-liner as below:

curl -L https://git.io/meshery | BROWSER=firefox ADAPTERS=istio PLATFORM=docker bash -

minikube image could have different stack compared to kubernetes-cluster-running image. I dont think it would be wise to compare them both. We can get going with some quick readme instructions for the lab as @leecalcote mentioned. For e.g. the below log message is acceptable: Failed to open Meshery in browser, please point your browser to http://localhost:9081 to access Meshery. We could ask the user to open a browser window and open http://localhost:9081 to access Meshery.

@hexxdump
with curl -L https://git.io/meshery | BROWSER=firefox ADAPTERS=istio PLATFORM=kubernetes bash - we have below issue

Starting Meshery...
Starting Meshery...
โฃท Deploying Meshery on Kubernetes 
Meshery deployed on Kubernetes.

Some Meshery pods have not come up yet.
Please check the status of the pods by executing โ€œmesheryctl system statusโ€ before using meshery.
Opening Meshery (http://172.17.0.42:31358) in browser.

Looking up 172.17.0.42:31358
Making HTTP connection to 172.17.0.42:31358
Alert!: Unable to connect to remote host.

lynx: Can't access startfile http://172.17.0.42:31358/
Failed to open Meshery in browser, please point your browser to http://172.17.0.42:31358 to access Meshery.
stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 2 years ago

This issue is being automatically closed due to inactivity. However, you may choose to reopen this issue.

leecalcote commented 2 years ago

@suhaniii are you available to pick this one up?

suhaniii commented 2 years ago

Hi @leecalcote, availability is moderate, if that's okay - I will continue working on it.

leecalcote commented 2 years ago

@suhaniii, sounds real good. Yes, please.

suhaniii commented 2 years ago
Opening Meshery (http://172.17.0.29:31369) in browser.

Looking up 172.17.0.29:31369
Making HTTP connection to 172.17.0.29:31369
Alert!: Unable to connect to remote host.

lynx: Can't access startfile http://172.17.0.29:31369/
Failed to open Meshery in browser, please point your browser to http://172.17.0.29:31369 to access Meshery.

I think we are facing this issue as it is trying to open http://172.17.0.29:31369/ not https://2886795293-9081-jago01.environments.katacoda.com/provider (( https://[[HOST_SUBDOMAIN]]-9081-[[KATACODA_HOST]].environments.katacoda.com/provider )) .

It is the right way but not doesn't seems to be working only for our labs.

Can we add a functionality to not open our browser, if user has chosen false then it will not do mesheryctl system dashboard in start.go?

// @leecalcote @piyushsingariya

piyushsingariya commented 2 years ago

Can we add a functionality to not open our browser, if user has chosen false then it will not do mesheryctl system dashboard in start.go?

yeah ofcourse, a flag could maintain this.

leecalcote commented 2 years ago

Great suggestion, @suhaniii. Yes, I agree. Will someone kindly open up an issue on meshery/meshery for this? // @asubedy

asubedy commented 2 years ago
Opening Meshery (http://172.17.0.29:31369) in browser.

Looking up 172.17.0.29:31369
Making HTTP connection to 172.17.0.29:31369
Alert!: Unable to connect to remote host.

lynx: Can't access startfile http://172.17.0.29:31369/
Failed to open Meshery in browser, please point your browser to http://172.17.0.29:31369 to access Meshery.

I think we are facing this issue as it is trying to open http://172.17.0.29:31369/ not https://2886795293-9081-jago01.environments.katacoda.com/provider (( https://[[HOST_SUBDOMAIN]]-9081-[[KATACODA_HOST]].environments.katacoda.com/provider )) .

It is the right way but not doesn't seems to be working only for our labs.

Can we add a functionality to not open our browser, if user has chosen false then it will not do mesheryctl system dashboard in start.go?

// @leecalcote @piyushsingariya

Yes, adding a functionality to not open browser after finishing the setup might solve this problem. Just wanted to point out couple of things:

  1. The above error Unable to connect to remote host only occurs if meshery pod is not in ready state, if it is ready state we will get the vim page from which we have to press q and y to go back
  2. The domain from the above error http://172.17.0.29:31369, will still open a Meshery UI page if we open a new browser tab inside Katacoda scenario and enter 31369 as host (from this example), if the Meshery pod is ready state.
stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

github-actions[bot] commented 2 years ago

Checking in... it has been awhile since we've heard from you on this issue. Are you still working on it? Please let us know and please don't hesitate to contact a MeshMate or any other community member for assistance.


        Be sure to join the community, if you haven't yet and please leave a :star: star on the project :smile:

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.