Meshconfig with "kubernetes" as the platform and no locally running Docker service results in an error.
mesheryctl should have more graceful error handling when the Kubernetes platform is not available.
Context
➜ ~ mesheryctl system context view
endpoint: https://localhost:9081
token: Default
platform: kubernetes
adapters:
- meshery-istio
- meshery-linkerd
- meshery-consul
- meshery-nsm
- meshery-kuma
- meshery-cpx
- meshery-osm
- meshery-traefik-mesh
channel: stable
version: latest
Start
➜ ~ mesheryctl system start
creating ~/.meshery/manifests folder...
downloading manifest files from https://github.com/layer5io/meshery/tree/master/install/deployment_yamls/k8s
Starting Meshery...
applying the manifests to Kubernetes cluster...
Error: failed to start Meshery
See https://docs.meshery.io/guides/mesheryctl/#meshery-lifecycle-management for usage details
: failed to apply manifest files: failed to apply manifests: Error Applying manifest.Get https://kubernetes.docker.internal:6443/api?timeout=32s: dial tcp 127.0.0.1:6443: connect: connection refused
Usage:
mesheryctl system start [flags]
Suggested Implementation
Check if a cluster is running by adding a pre-requisite check for platform Kubernetes. This can be found in line 222 in helpers.go
func PreReqCheck(subcommand string, focusedContext string) error {
This should be achieved using Kubernetes client-go and not by running commands directly on the shell.
// @aneeshnema @metonymic-smokey FYI
@leecalcote @navendu-pottekkat Can I try this one?
@piyushsingariya I guess @metonymic-smokey might be already working on it?
@navendu-pottekkat Yes, just started working on it.
Most helpful comment
@navendu-pottekkat Yes, just started working on it.