Documentation ¶
Index ¶
- Constants
- Variables
- func AddAuthDetails(req *http.Request, filepath string) error
- func ApplyManifest(manifest []byte, client *meshkitkube.Client, update bool, delete bool) error
- func ApplyManifestFiles(manifestArr []Manifest, requestedAdapters []string, client *meshkitkube.Client, ...) error
- func ApplyOperatorManifest(client *meshkitkube.Client, update bool, delete bool) error
- func AreAllPodsRunning() (bool, error)
- func AskForConfirmation(s string) bool
- func AskForInput(prompt string, allowed []string) string
- func BackupConfigFile(cfgFile string)
- func CanUseCachedManifests(currCtx *(config.Context)) error
- func CanUseCachedOperatorManifests(currCtx *(config.Context)) error
- func ChangeConfigEndpoint(currCtx string, ctx *config.Context) error
- func ChangeManifestVersion(channel, version, filePath string) error
- func ChangePlatform(currCtx string, ctx config.Context) error
- func CheckK8sVersion(versionInfo *version.Info) error
- func CheckKubectlVersion() error
- func CleanPodNames(name string) string
- func ContainsStringPrefix(arr []string, str string) bool
- func ContentTypeIsHTML(resp *http.Response) bool
- func ConvertMapInterfaceMapString(v interface{}) interface{}
- func ConvertRespToSSE(resp *http.Response) (chan Event, error)
- func CreateConfigFile() error
- func CreateDefaultSpinner(suffix string, finalMsg string) *spinner.Spinner
- func CreateManifestsFolder() error
- func CreateTempAuthServer(fn func(http.ResponseWriter, *http.Request)) (*http.Server, int, error)
- func DownloadDockerComposeFile(ctx *config.Context, force bool) error
- func DownloadManifests(manifestArr []Manifest, rawManifestsURL string) error
- func DownloadOperatorManifest() error
- func Equals(tb testing.TB, exp, act interface{})
- func GenerateConfigAKS(configPath, resourceGroup, clusterName string) error
- func GenerateConfigEKS(configPath, region, cluster string) error
- func GenerateConfigGKE(configPath, SAName, namespc string) error
- func GenerateConfigMinikube(configPath string) error
- func GetBasePath(t *testing.T) string
- func GetChannelAndVersion(currCtx *(config.Context)) (string, string, error)
- func GetDeploymentVersion(filePath string) (string, error)
- func GetK8sVersionInfo() (*version.Info, error)
- func GetLatestStableReleaseTag() (string, error)
- func GetManifestTreeURL(version string) (string, error)
- func GetManifestURL(manifest Manifest, rawManifestsURL string) string
- func GetPods(client *meshkitkube.Client, namespace string) (*v1core.PodList, error)
- func GetProviderInfo(mctCfg *config.MesheryCtlConfig) (map[string]Provider, error)
- func GetRequiredPods(specifiedPods []string, availablePods []v1core.Pod) ([]string, error)
- func GetSessionData(mctlCfg *config.MesheryCtlConfig, tokenPath string) (*models.Preference, error)
- func InitiateLogin(mctlCfg *config.MesheryCtlConfig) ([]byte, error)
- func InstallprereqDocker() error
- func IsAdapterValid(manifestArr []Manifest, adapterManifest string) bool
- func IsMesheryRunning(currPlatform string) (bool, error)
- func IsValidSubcommand(available []*cobra.Command, sub string) bool
- func MapGet(mp map[string]interface{}, key ...string) (interface{}, bool)
- func MapSet(mp map[string]interface{}, value interface{}, key ...string)
- func NavigateToBrowser(endpoint string) error
- func ParseURLGithub(URL string) (string, string, error)
- func PerfError(msg string) string
- func Populate(src, dst string) error
- func PrintToTable(header []string, data [][]string)
- func PrintToTableInStringFormat(header []string, data [][]string) string
- func PrintToTableWithFooter(header []string, data [][]string, footer []string)
- func ReadToken(filepath string) (map[string]string, error)
- func RecursiveCastMapStringInterfaceToMapStringInterface(in map[string]interface{}) map[string]interface{}
- func RootError(msg string) string
- func SafeClose(co io.Closer)
- func SetFileLocation() error
- func SetFileLocationTesting(dir string)
- func SetKubeConfig()
- func SetOverrideValues(ctx *config.Context, mesheryImageVersion string) map[string]interface{}
- func SetupContextEnv(t *testing.T)
- func SetupCustomContextEnv(t *testing.T, pathToContext string)
- func SetupLogrusFormatter()
- func SetupLogrusGrabTesting(t *testing.T) *bytes.Buffer
- func StartMockery(t *testing.T)
- func Startdockerdaemon(subcommand string) error
- func StopMockery(t *testing.T)
- func StringContainedInSlice(str string, slice []string) int
- func StringInSlice(str string, slice []string) bool
- func StringWithCharset(length int) string
- func SystemError(msg string) string
- func TransformYAML(yamlByt []byte, transform func(interface{}) (interface{}, error), ...) ([]byte, error)
- func TruncateID(id string) string
- func UpdateAuthDetails(filepath string) error
- func UpdateMesheryContainers() error
- func UploadFileWithParams(uri string, params map[string]string, paramName, path string) (*http.Request, error)
- func ValidateURL(URL string) error
- type CmdTestInput
- type Containers
- type DockerCompose
- type Event
- type EventData
- type GoldenFile
- type K8sCompose
- type Manifest
- type ManifestList
- type MockURL
- type Provider
- type Service
- type Spec
- type Template
- type TemplateSpec
- type TerminalFormatter
- type TestHelper
- type Volumes
Constants ¶
const ( OperatorURL = baseConfigURL + "manifests/default.yaml" BrokerURL = baseConfigURL + "samples/meshery_v1alpha1_broker.yaml" MeshsyncURL = baseConfigURL + "samples/meshery_v1alpha1_meshsync.yaml" // Meshery Server Location EndpointProtocol = "http" )
const ( HelmChartURL = "https://meshery.io/charts/" HelmChartName = "meshery" )
Variables ¶
var ( // ResetFlag indicates if a reset is required ResetFlag bool // SkipResetFlag indicates if fetching the updated manifest files is required SkipResetFlag bool // MesheryEndpoint is the default URL in which Meshery is exposed MesheryEndpoint = "http://localhost:9081" // MesheryFolder is the default relative location of the meshery config // related configuration files. MesheryFolder = ".meshery" // DockerComposeFile is the default location within the MesheryFolder // where the docker compose file is located. DockerComposeFile = "meshery.yaml" // AuthConfigFile is the location of the auth file for performing perf testing AuthConfigFile = "auth.json" // DefaultConfigPath is the detail path to mesheryctl config DefaultConfigPath = "config.yaml" // MesheryNamespace is the namespace to which Meshery is deployed in the Kubernetes cluster MesheryNamespace = "meshery" // MesheryDeployment is the name of a Kubernetes manifest file required to setup Meshery // check https://github.com/layer5io/meshery/tree/master/install/deployment_yamls/k8s MesheryDeployment = "meshery-deployment.yaml" // MesheryService is the name of a Kubernetes manifest file required to setup Meshery // check https://github.com/layer5io/meshery/tree/master/install/deployment_yamls/k8s MesheryService = "meshery-service.yaml" //MesheryOperator is the file for default Meshery operator //check https://github.com/layer5io/meshery-operator/blob/master/config/manifests/default.yaml MesheryOperator = "default.yaml" //MesheryOperatorBroker is the file for the Meshery broker //check https://github.com/layer5io/meshery-operator/blob/master/config/samples/meshery_v1alpha1_broker.yaml MesheryOperatorBroker = "meshery_v1alpha1_broker.yaml" //MesheryOperatorMeshsync is the file for the Meshery Meshsync Operator //check https://github.com/layer5io/meshery-operator/blob/master/config/samples/meshery_v1alpha1_meshsync.yaml MesheryOperatorMeshsync = "meshery_v1alpha1_meshsync.yaml" // ServiceAccount is the name of a Kubernetes manifest file required to setup Meshery // check https://github.com/layer5io/meshery/tree/master/install/deployment_yamls/k8s ServiceAccount = "service-account.yaml" // To upload with param name ParamName = "k8sfile" // kubeconfig file name KubeConfigYaml = "kubeconfig.yaml" // ViperCompose is an instance of viper for docker-compose ViperCompose = viper.New() // ViperDocker is an instance of viper for the meshconfig file when the platform is docker ViperDocker = viper.New() // ViperK8s is an instance of viper for the meshconfig file when the platform is kubernetes ViperK8s = viper.New() // SilentFlag skips waiting for user input and proceeds with default options SilentFlag bool // PlatformFlag sets the platform for the initial config file PlatformFlag string // Paths to kubeconfig files ConfigPath string KubeConfig string )
var ( // ManifestsFolder is where the Kubernetes manifests are stored ManifestsFolder = "manifests" ReleaseTag string )
var CfgFile string
var ListOfAdapters = []string{"meshery-app-mesh", "meshery-istio", "meshery-linkerd", "meshery-consul", "meshery-nsm", "meshery-kuma", "meshery-cpx", "meshery-osm", "meshery-traefik-mesh", "meshery-nginx-sm"}
ListOfAdapters returns the list of adapters available
var TemplateContext = config.Context{ Endpoint: EndpointProtocol + "://localhost:9081", Token: "Default", Platform: "kubernetes", Adapters: ListOfAdapters, Channel: "stable", Version: "latest", }
TemplateContext is the template context provided when creating a config file
var TemplateToken = config.Token{ Name: "Default", Location: AuthConfigFile, }
TemplateToken is the template token provided when creating a config file
Functions ¶
func AddAuthDetails ¶
AddAuthDetails Adds authentication cookies to the request
func ApplyManifest ¶ added in v0.5.2
ApplyManifest is a wrapper function for client.ApplyManifest
func ApplyManifestFiles ¶ added in v0.5.2
func ApplyManifestFiles(manifestArr []Manifest, requestedAdapters []string, client *meshkitkube.Client, update bool, delete bool) error
ApplyManifestFiles applies/updates/deletes all the required manifests into the Kubernetes cluster
func ApplyOperatorManifest ¶ added in v0.5.12
func ApplyOperatorManifest(client *meshkitkube.Client, update bool, delete bool) error
ApplyOperatorManifest applies/updates/deletes the operator manifest
func AreAllPodsRunning ¶ added in v0.5.33
AreAllPodsRunning checks if all the deployment pods under kubernetes are running
func AskForConfirmation ¶ added in v0.5.1
AskForConfirmation asks the user for confirmation. A user must type in "yes" or "no" and then press enter. It has fuzzy matching, so "y", "Y", "yes", "YES", and "Yes" all count as confirmations. If the input is not recognized, it will ask again. The function does not return until it gets a valid response from the user.
func AskForInput ¶ added in v0.5.15
AskForInput asks the user for an input and checks if it is in the available values
func BackupConfigFile ¶ added in v0.5.32
func BackupConfigFile(cfgFile string)
func CanUseCachedManifests ¶ added in v0.5.50
CanUseCachedManifests returns an error if it is not possible to use cached manifests
func CanUseCachedOperatorManifests ¶ added in v0.5.50
CanUseCachedOperatorManifests returns an error if it is not possible to use cached operator manifests
func ChangeConfigEndpoint ¶ added in v0.5.14
ChangeConfigEndpoint changes the endpoint of the current context in meshconfig, based on the platform
func ChangeManifestVersion ¶ added in v0.5.3
ChangeManifestVersion changes the tag of the images in the manifest according to the pinned version
func ChangePlatform ¶ added in v0.5.19
ChangePlatform changes the platform specified in the current context to the specified platform
func CheckK8sVersion ¶ added in v0.5.3
func CheckKubectlVersion ¶ added in v0.5.3
func CheckKubectlVersion() error
CheckKubectlVersion validates whether the installed kubectl version is running a minimum kubectl version.
func CleanPodNames ¶ added in v0.5.13
CleanPodNames cleans the pod names in the MesheryNamespace to make it more readable
func ContainsStringPrefix ¶ added in v0.5.46
ContainsStringPrefix takes a string slice and a string and returns true if it is present
func ContentTypeIsHTML ¶ added in v0.3.18
ContentTypeIsHTML Checks if the response is an HTML resposnse
func ConvertMapInterfaceMapString ¶ added in v0.5.39
func ConvertMapInterfaceMapString(v interface{}) interface{}
ConvertMapInterfaceMapString converts map[interface{}]interface{} => map[string]interface{}
It will also convert []interface{} => []string
func ConvertRespToSSE ¶ added in v0.5.46
ConvertRespToSSE converts a connection to a stream of server sent events
func CreateConfigFile ¶ added in v0.5.1
func CreateConfigFile() error
CreateConfigFile creates config file in Meshery Folder
func CreateDefaultSpinner ¶ added in v0.5.24
func CreateManifestsFolder ¶ added in v0.5.13
func CreateManifestsFolder() error
CreateManifestsFolder creates a new folder (.meshery/manifests)
func CreateTempAuthServer ¶ added in v0.5.32
CreateTempAuthServer creates a temporary http server
It implements a custom mux and has a catch all route, the function passed as the parameter is binded to the catch all route
func DownloadDockerComposeFile ¶ added in v0.5.1
DownloadDockerComposeFile fetches docker-compose.yaml based on passed context if it does not exists. Use force to override download anyway
func DownloadManifests ¶ added in v0.5.1
DownloadManifests downloads all the Kubernetes manifest files
func DownloadOperatorManifest ¶ added in v0.5.13
func DownloadOperatorManifest() error
DownloadOperatorManifest downloads the operator manifest files
func GenerateConfigAKS ¶ added in v0.5.1
GenerateConfigAKS generates kube config file in ~/.meshery/kubeconfig.yaml for a AKS cluster
func GenerateConfigEKS ¶ added in v0.5.1
GenerateConfigEKS generates kube config file in .meshery/kubeconfig.yaml for an EKS cluster
func GenerateConfigGKE ¶
GenerateConfigGKE generates kube config file in ~/.meshery/kubeconfig.yaml for a GKE cluster
func GenerateConfigMinikube ¶
GenerateConfigMinikube generates kube config file in ~/.meshery/kubeconfig.yaml for a Minikube cluster
func GetChannelAndVersion ¶ added in v0.5.46
returns the Channel and Version given a context
func GetDeploymentVersion ¶ added in v0.5.50
func GetK8sVersionInfo ¶ added in v0.5.3
GetK8sVersionInfo returns version.Info for the Kubernetes cluster.
func GetLatestStableReleaseTag ¶ added in v0.5.1
GetLatestStableReleaseTag fetches and returns the latest release tag from GitHub
func GetManifestTreeURL ¶ added in v0.5.2
GetManifestTreeURL returns the manifest tree url based on version
func GetManifestURL ¶ added in v0.5.1
GetManifestURL returns the URLs for the manifest files
func GetProviderInfo ¶ added in v0.5.32
func GetProviderInfo(mctCfg *config.MesheryCtlConfig) (map[string]Provider, error)
GetProviderInfo queries meshery API for the provider info
func GetRequiredPods ¶ added in v0.5.13
GetRequiredPods checks if the pods specified by the user is valid returns a list of the required pods
func GetSessionData ¶ added in v0.5.38
func GetSessionData(mctlCfg *config.MesheryCtlConfig, tokenPath string) (*models.Preference, error)
func InitiateLogin ¶ added in v0.5.32
func InitiateLogin(mctlCfg *config.MesheryCtlConfig) ([]byte, error)
InitiateLogin initates the login process
func InstallprereqDocker ¶ added in v0.5.12
func InstallprereqDocker() error
func IsAdapterValid ¶ added in v0.5.1
IsAdapterValid checks if the adapter mentioned by the user is a valid adapter
func IsMesheryRunning ¶
IsMesheryRunning checks if the meshery server containers are up and running
func IsValidSubcommand ¶
IsValidSubcommand checks if the passed subcommand is supported by the parent command
func MapGet ¶ added in v0.5.39
MapGet takes in the map keys - each key goes one level deeper in the map
func MapSet ¶ added in v0.5.39
MapSet takes in the map that needs to be manipulated, the value that needs to be assgined to be assigned and the key - each key goes one level deeper in the map
func NavigateToBrowser ¶ added in v0.5.12
NavigateToBroswer naviagtes to the endpoint displaying Meshery UI in the broswer.
func ParseURLGithub ¶ added in v0.5.38
ParseURLGithub checks URL and returns raw repo, path, error
func PerfError ¶
PerfError returns a formatted error message with a link to 'perf' command usage page at in addition to the error message
func PrintToTable ¶ added in v0.5.2
PrintToTable prints the given data into a table format
func PrintToTableInStringFormat ¶ added in v0.5.26
PrintToTableInStringFormat prints the given data into a table format but return as a string
func PrintToTableWithFooter ¶ added in v0.5.11
PrintToTableWithFooter prints the given data into a table format but with a footer
func RecursiveCastMapStringInterfaceToMapStringInterface ¶ added in v0.5.39
func RecursiveCastMapStringInterfaceToMapStringInterface(in map[string]interface{}) map[string]interface{}
RecursiveCastMapStringInterfaceToMapStringInterface will convert a map[string]interface{} recursively => map[string]interface{}
func RootError ¶
RootError returns a formatted error message with a link to 'root' command usage page at in addition to the error message
func SetFileLocationTesting ¶ added in v0.5.37
func SetFileLocationTesting(dir string)
Set file location for testing stuff
func SetKubeConfig ¶ added in v0.5.61
func SetKubeConfig()
Sets the path to user's kubeconfig file into global variables
func SetOverrideValues ¶ added in v0.5.67
SetOverrideValues returns the value overrides based on current context to install/upgrade helm chart
func SetupContextEnv ¶ added in v0.5.26
use default context /pkg/utils/TestConfig.yaml
func SetupCustomContextEnv ¶ added in v0.5.37
setup custom context with SetupCustomContextEnv
func SetupLogrusFormatter ¶ added in v0.5.26
func SetupLogrusFormatter()
Call this function to setup logrus
func SetupLogrusGrabTesting ¶ added in v0.5.46
setup logrus formatter and return the buffer in which commands output is to be set.
func StartMockery ¶ added in v0.5.26
Start mock HTTP client to mock requests
func Startdockerdaemon ¶ added in v0.5.12
func StringContainedInSlice ¶ added in v0.5.13
StringContainedInSlice returns the index in which a string is a substring in a list of strings
func StringInSlice ¶ added in v0.5.15
StringInSlice checks if a string is present in a slice
func StringWithCharset ¶
StringWithCharset generates a random string with a given length
func SystemError ¶
SystemError returns a formatted error message with a link to 'system' command usage page in addition to the error message
func TransformYAML ¶ added in v0.5.39
func TransformYAML(yamlByt []byte, transform func(interface{}) (interface{}, error), keys ...string) ([]byte, error)
TransformYAML takes in:
yamlByt - YAML Byte slice that needs to be modified transform - function that will be executed on that value, the returned value will replace the current value keys - takes in a series of keys which are supposed to be nested, numbers can also be passed to access an array
func TruncateID ¶ added in v0.5.11
TruncateID shortens an id to 8 characters
func UpdateAuthDetails ¶
UpdateAuthDetails checks gets the token (old/refreshed) from meshery server and writes it back to the config file
func UpdateMesheryContainers ¶ added in v0.5.1
func UpdateMesheryContainers() error
UpdateMesheryContainers runs the update command for meshery client
func UploadFileWithParams ¶
func UploadFileWithParams(uri string, params map[string]string, paramName, path string) (*http.Request, error)
UploadFileWithParams returns a request configured to upload files with other values
func ValidateURL ¶ added in v0.5.1
ValidateURL validates url provided for meshery backend to mesheryctl context
Types ¶
type CmdTestInput ¶ added in v0.5.26
type Containers ¶ added in v0.5.3
type DockerCompose ¶ added in v0.5.1
type GoldenFile ¶ added in v0.5.26
type GoldenFile struct {
// contains filtered or unexported fields
}
func NewGoldenFile ¶ added in v0.5.26
func NewGoldenFile(t *testing.T, name string, directory string) *GoldenFile
func (*GoldenFile) LoadByte ¶ added in v0.5.26
func (tf *GoldenFile) LoadByte() []byte
Load a Golden file
func (*GoldenFile) Write ¶ added in v0.5.26
func (tf *GoldenFile) Write(content string)
write a Golden file
func (*GoldenFile) WriteInByte ¶ added in v0.5.26
func (tf *GoldenFile) WriteInByte(content []byte)
write a Golden file
type K8sCompose ¶ added in v0.5.3
type Manifest ¶ added in v0.5.1
type Manifest struct { Path string `json:"path,omitempty"` Mode string `json:"mode,omitempty"` Typ string `json:"type,omitempty"` SHA string `json:"sha,omitempty"` Size json.Number `json:"size,omitempty"` URL string `json:"url,omitempty"` }
func FetchManifests ¶ added in v0.5.2
FetchManifests is a wrapper function that identifies the required manifest files as downloads them
func ListManifests ¶ added in v0.5.1
ListManifests lists the manifest files stored in GitHub
type ManifestList ¶ added in v0.5.1
type Template ¶ added in v0.5.3
type Template struct { Metadata interface{} `yaml:"metadata,omitempty"` Spec TemplateSpec `yaml:"spec,omitempty"` }
type TemplateSpec ¶ added in v0.5.3
type TemplateSpec struct { ServiceAccount string `yaml:"serviceAccount,omitempty"` ServiceAccountName string `yaml:"serviceAccountName,omitempty"` Containers []Containers `yaml:"containers,omitempty"` RestartPolicy string `yaml:"restartPolicy,omitempty"` }
type TerminalFormatter ¶ added in v0.5.26
type TerminalFormatter struct{}
TerminalFormatter is exported
type TestHelper ¶ added in v0.5.26
func NewTestHelper ¶ added in v0.5.26
func NewTestHelper(t *testing.T) *TestHelper