Problems when running `./mesheryctl system start -p docker`

Hi,

I’m working on an issue [mesheryctl] Install: Support new Meshery Adapter for Nighthawk · Issue #10371 · meshery/meshery · GitHub related to Mesheryctl. I followed instructions of contributor guides as follows,

  1. fork the meshery/meshery to my github account
  2. git clone my forked copy of the project.
  3. Navigate to the project directory
    cd meshery
  4. Add a reference(remote) to the original repository.
    git remote add upstream https://github.com/meshery/meshery.git
  5. take a pull from the upstream repo to my master branch to keep it the most updated
  6. open the docker desktop and enable kubernete
  7. cd mesheryctl
  8. before making any changes, I would like to run the project first, so I run make in the mesheryctl folder to build the binary
  9. then I run ./mesheryctl system start -p docker

The output in console are listed below,

A new release of mesheryctl is available:  → v0.8.0-beta.2
https://github.com/meshery/meshery/releases/tag/v0.8.0-beta.2
Check https://docs.meshery.io/installation/upgrades#upgrading-meshery-cli for instructions on how to update mesheryctl

Updating Meshery now...
WARN[0000] /Users/kunyuexing/.meshery/meshery.yaml: `version` is obsolete 
[+] Pulling 2/2
 ✔ watchtower Pulled                                                                                                                                                                    1.1s 
 ✔ meshery Pulled                                                                                                                                                                       1.0s 
Starting Meshery...
WARN[0000] /Users/kunyuexing/.meshery/meshery.yaml: `version` is obsolete 
[+] Running 2/0
 ✔ Container meshery-watchtower-1  Running                                                                                                                                              0.0s 
 ✔ Container meshery-meshery-1     Running                                                                                                                                              0.0s 
Starting Meshery logging . . .
meshery-1     | time="2024-08-28T00:22:55Z" level=info msg="Local Provider capabilities are: v0.8.0-beta.2" app=meshery
meshery-1     | time="2024-08-28T00:22:55Z" level=info msg="Meshery Server release channel is: stable" app=meshery
meshery-1     | time="2024-08-28T00:22:55Z" level=info msg="Meshery Database is at: /home/appuser/.meshery/config" app=meshery
meshery-1     | time="2024-08-28T00:22:55Z" level=info msg="Using kubeconfig at: /home/appuser/.kube" app=meshery
meshery-1     | time="2024-08-28T00:22:55Z" level=info msg="Log level: info" app=meshery
meshery-1     | time="2024-08-28T00:22:55Z" level=info msg="creating directories for seeding... /home/appuser/.meshery/content/patterns" app=meshery
meshery-1     | time="2024-08-28T00:22:55Z" level=info msg="creating directories for seeding... /home/appuser/.meshery/content/applications" app=meshery
meshery-1     | time="2024-08-28T00:22:55Z" level=info msg="creating directories for seeding... /home/appuser/.meshery/content/filters/binaries" app=meshery
meshery-1     | time="2024-08-28T00:22:56Z" level=info msg="extracting Patterns from /home/appuser/.meshery/content/patterns" app=meshery
meshery-1     | time="2024-08-28T00:22:56Z" level=info msg="seeding sample Patterns" app=meshery
meshery-1     | time="2024-08-28T00:22:56Z" level=info msg="extracting Filters from /home/appuser/.meshery/content/filters/binaries" app=meshery
meshery-1     | time="2024-08-28T00:22:56Z" level=info msg="seeding sample Filters" app=meshery
meshery-1     | time="2024-08-28T00:22:56Z" level=info msg="Meshery Server listening on: 9081" app=meshery
meshery-1     | time="2024-08-28T00:23:01Z" level=info msg="extracting Applications from /home/appuser/.meshery/content/applications" app=meshery
meshery-1     | time="2024-08-28T00:23:01Z" level=info msg="seeding sample Applications" app=meshery
meshery-1     | time="2024-08-28T00:23:27Z" level=info msg="For registrant artifacthub successfully imported 2117 models 11711 components 108 relationships" app=meshery
meshery-1     | time="2024-08-28T00:23:27Z" level=info msg="For registrant github successfully imported 189 models 2656 components 9 relationships" app=meshery
meshery-1     | time="2024-08-28T00:23:27Z" level=info msg="For registrant meshery successfully imported 5 models 593 components" app=meshery
meshery-1     | time="2024-08-28T00:23:27Z" level=error msg="open : no such file or directory" app=meshery code=meshkit-11171 probable-cause="File does not exist in the location .Insufficient permissions" severity=2 short-description="error reading file" suggested-remediation="Verify that file exist at the provided location.Verify sufficient file permissions."
watchtower-1  | time="2024-08-28T00:22:56Z" level=info msg="Watchtower 1.7.1"
watchtower-1  | time="2024-08-28T00:22:56Z" level=info msg="Using no notifications"
watchtower-1  | time="2024-08-28T00:22:56Z" level=info msg="Only checking containers using enable label"
watchtower-1  | time="2024-08-28T00:22:56Z" level=info msg="Scheduling first run: 2024-08-29 00:22:56 +0000 UTC"
watchtower-1  | time="2024-08-28T00:22:56Z" level=info msg="Note that the first check will be performed in 23 hours, 59 minutes, 59 seconds"

I’m not sure what the expected output should be and confused whether I’m missing anything. Please help me with this problem.

In terms of building and running mesheryctl, and in terms of running (*not building) Meshery Server, you’re all set given the steps that you have performed above. Meshery Server is now listening for any requests that clients/adapters/plugins to any of its extensible interfaces make of it. You might want to use Meshery UI (a client) to explore Meshery further. Given that you are using Docker as your platform, you will find Meshery UI available at http://localhost:9081.

When you compile and run any of the Meshery adapters, they will automatically communicate with Meshery Server using gRPC, registering their capabilities with Meshery Server as they do.

At some point in the future, should you need to build Meshery Server and/or Meshery UI, you will choose not to use mesheryctl to start the server, but choose to use a make target instead.

// @Xin_Huang

Hi @Lee,

Thank you for the quick reply.

Previously when I followed the instructions listed above, except that at the step9 I ran ./mesheryctl system start instead of ./mesheryctl system start -p docker, I found that it opened the Meshery playground at local host but the adapters are unavailable (I posted a discussion here). From the solution below, I got the instructions that to make the adapters available in that situation, I need to running make run into the respective directory of adapter. And before that, I need to first deploy Meshery either in Kubernetes or Docker.

So this time, at step9 I run ./mesheryctl system start -p docker to start Meshery and deploy it in docker. But the console’s output has an error message, and it didn’t open the Meshery playground at localhost.

meshery-1     | time="2024-08-28T00:23:27Z" level=error msg="open : no such file or directory" app=meshery code=meshkit-11171 probable-cause="File does not exist in the location .Insufficient permissions" severity=2 short-description="error reading file" suggested-remediation="Verify that file exist at the provided location.Verify sufficient file permissions."

I’m not sure if I’m on the right track or if I missed anything.

Meshery Playground is a community-hosted instance of Meshery at https://playground.meshery.io.

While you can perform step 9 (run a pre-built image of Meshery Server), it’s a slightly less straight-forward setup. Instead, follow the contributing instructions to build and run Meshery Server.

1 Like

Hi @Lee ,

Thanks for the further explanation. Problem solved! :slight_smile:

1 Like