code: func (cli *DockerCli) StackOrchestrator(flagValue string) (Orchestrator, error) {
  	currentContext := cli.CurrentContext()
  	ctxRaw, err := cli.ContextStore().GetMetadata(currentContext)
  	if store.IsErrContextDoesNotExist(err) {
  		// case where the currentContext has been removed (CLI behavior is to fallback to using DOCKER_HOST based resolution)
  		return GetStackOrchestrator(flagValue, "", cli.ConfigFile().StackOrchestrator, cli.Err())
  	}
  	if err != nil {
  		return "", err
  	}
  	ctxMeta, err := GetDockerContext(ctxRaw)
  	if err != nil {
  		return "", err
  	}
  	ctxOrchestrator := string(ctxMeta.StackOrchestrator)
  	return GetStackOrchestrator(flagValue, ctxOrchestrator, cli.ConfigFile().StackOrchestrator, cli.Err())
  }
docs: // StackOrchestrator resolves which stack orchestrator is in use