func NewNsOptions(streams genericclioptions.IOStreams) *NsOptions {
	return &NsOptions{
		configFlags: genericclioptions.NewConfigFlags(true),
		IOStreams:   streams,
	}
}
NewNsOptions provides an instance of NsOptions with default values
package cmd
import (
	"context"
	"fmt"
	"strings"
	"github.com/fatih/color"
	"github.com/spf13/cobra"
	v1 "k8s.io/api/core/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/cli-runtime/pkg/genericclioptions"
	"k8s.io/client-go/kubernetes"
	_ "k8s.io/client-go/plugin/pkg/client/auth"
	"k8s.io/client-go/tools/clientcmd"
	"k8s.io/client-go/tools/clientcmd/api"
)
var (
	nsExample = `
	# view the current namespace from your KUBECONFIG alongside all available namespaces
	kubectl ns
	# switch the namespace to foo if foo selects exactly one namespace, otherwise print a filtered list
	kubectl ns foo`
)
type NsOptions struct {
	configFlags *genericclioptions.ConfigFlags
	rawConfig   api.Config
	args        []string
	userSpecifiedNamespace string
	namespaces             *v1.NamespaceList
	genericclioptions.IOStreams
}