Documentation
¶
Index ¶
- Constants
- Variables
- func Can(verbs []string, v string) bool
- func CleanseNamespace(ns string) string
- func FQN(ns, n string) string
- func IsAllNamespace(ns string) bool
- func IsAllNamespaces(ns string) bool
- func IsClusterScoped(ns string) bool
- func IsClusterWide(ns string) bool
- func IsNamespaced(ns string) bool
- func Load(f types.Factory) error
- func MetaFQN(m metav1.ObjectMeta) string
- func Namespaced(p string) (string, string)
- type APIClient
- func (a *APIClient) ActiveCluster() string
- func (a *APIClient) ActiveNamespace() string
- func (a *APIClient) CachedDiscovery() (*disk.CachedDiscoveryClient, error)
- func (a *APIClient) CanI(ns, gvr string, verbs []string) (auth bool, err error)
- func (a *APIClient) CheckConnectivity() (status bool)
- func (a *APIClient) Config() types.Config
- func (a *APIClient) CurrentNamespaceName() (string, error)
- func (a *APIClient) Dial() (kubernetes.Interface, error)
- func (a *APIClient) DynDial() (dynamic.Interface, error)
- func (a *APIClient) HasMetrics() bool
- func (a *APIClient) IsActiveNamespace(ns string) bool
- func (a *APIClient) MXDial() (*versioned.Clientset, error)
- func (a *APIClient) RestConfig() (*restclient.Config, error)
- func (a *APIClient) ServerVersion() (*version.Info, error)
- func (a *APIClient) ValidNamespaces() ([]v1.Namespace, error)
- type Config
- func (c *Config) CallTimeout() time.Duration
- func (c *Config) ClusterNameFromContext(ctx string) (string, error)
- func (c *Config) ClusterNames() ([]string, error)
- func (c *Config) ConfigAccess() (clientcmd.ConfigAccess, error)
- func (c *Config) ContextNames() ([]string, error)
- func (c *Config) Contexts() (map[string]*clientcmdapi.Context, error)
- func (c *Config) CurrentClusterName() (string, error)
- func (c *Config) CurrentContextName() (string, error)
- func (c *Config) CurrentGroupNames() ([]string, error)
- func (c *Config) CurrentNamespaceName() (string, error)
- func (c *Config) CurrentUserName() (string, error)
- func (c *Config) DelContext(n string) error
- func (c *Config) Flags() *genericclioptions.ConfigFlags
- func (c *Config) GetContext(n string) (*clientcmdapi.Context, error)
- func (c *Config) ImpersonateGroups() (string, error)
- func (c *Config) ImpersonateUser() (string, error)
- func (c *Config) NamespaceNames(nns []v1.Namespace) []string
- func (c *Config) RESTConfig() (*restclient.Config, error)
- func (c *Config) RawConfig() (clientcmdapi.Config, error)
- type ContainerMetrics
- type Factory
- func (f *Factory) CanForResource(ns, gvr string, verbs []string) (informers.GenericInformer, error)
- func (f *Factory) Client() types.Connection
- func (f *Factory) FactoryFor(ns string) di.DynamicSharedInformerFactory
- func (f *Factory) ForResource(ns, gvr string) (informers.GenericInformer, error)
- func (f *Factory) Get(gvr, path string, wait bool, sel labels.Selector) (runtime.Object, error)
- func (f *Factory) List(gvr, ns string, wait bool, labels labels.Selector) ([]runtime.Object, error)
- func (f *Factory) SetActiveNS(ns string) error
- func (f *Factory) Start(ns string)
- func (f *Factory) Terminate()
- func (f *Factory) WaitForCacheSync()
- type GVR
- func (g GVR) AsResourceName() string
- func (g GVR) G() string
- func (g GVR) GR() *schema.GroupResource
- func (g GVR) GV() schema.GroupVersion
- func (g GVR) GVK() schema.GroupVersionKind
- func (g GVR) GVR() schema.GroupVersionResource
- func (g GVR) R() string
- func (g GVR) RG() (string, string)
- func (g GVR) String() string
- func (g GVR) SubResource() string
- func (g GVR) V() string
- type GVRs
- type Meta
- type Metrics
- type NodeMetrics
- type NodesMetrics
- type PodsMetrics
- type Schema
Constants ¶
const (
// NA Not available
NA = "n/a"
// NamespaceAll designates the fictional all namespace.
NamespaceAll = "all"
// AllNamespaces designates all namespaces.
AllNamespaces = ""
// ClusterScope designates a resource is not namespaced.
ClusterScope = "-"
// NotNamespaced designates a non resource namespace.
NotNamespaced = "*"
)
const (
// CallTimeout represents api call timeout limit.
CallTimeout = 30 * time.Second
)
Variables ¶
var Resources = newMeta()
Functions ¶
func Can ¶
func Can(verbs []string, v string) bool
Can determines the available actions for a given resource.
func CleanseNamespace ¶
func CleanseNamespace(ns string) string
CleanseNamespace ensures all ns maps to blank.
func IsAllNamespaces ¶
func IsAllNamespaces(ns string) bool
IsAllNamespaces returns true if all namespaces, false otherwise.
func IsClusterScoped ¶
func IsClusterScoped(ns string) bool
IsClusterScoped returns true if resource is not namespaced.
func IsClusterWide ¶
func IsClusterWide(ns string) bool
IsClusterWide returns true if ns designates cluster scope, false otherwise.
func IsNamespaced ¶
func IsNamespaced(ns string) bool
IsNamespaced returns true if a specific ns is given.
func MetaFQN ¶
func MetaFQN(m metav1.ObjectMeta) string
MetaFQN returns a fully qualified resource name.
func Namespaced ¶
func Namespaced(p string) (string, string)
Namespaced converts a resource path to namespace and resource name.
Types ¶
type APIClient ¶
type APIClient struct {
// contains filtered or unexported fields
}
APIClient represents a Kubernetes api client.
func InitConnectionOrDie ¶
func InitConnectionOrDie(config types.Config) (*APIClient, error)
InitConnectionOrDie initialize connection from command line args. Checks for connectivity with the api server.
func (*APIClient) ActiveCluster ¶
func (a *APIClient) ActiveCluster() string
ActiveCluster returns the current cluster name.
func (*APIClient) ActiveNamespace ¶
func (a *APIClient) ActiveNamespace() string
ActiveNamespace returns the current namespace.
func (*APIClient) CachedDiscovery ¶ added in v0.8.4
func (a *APIClient) CachedDiscovery() (*disk.CachedDiscoveryClient, error)
CachedDiscovery returns a cached discovery client.
func (*APIClient) CanI ¶
func (a *APIClient) CanI(ns, gvr string, verbs []string) (auth bool, err error)
CanI checks if user has access to a certain resource.
func (*APIClient) CheckConnectivity ¶
func (a *APIClient) CheckConnectivity() (status bool)
CheckConnectivity return true if api server is cool or false otherwise.
func (*APIClient) Config ¶
func (a *APIClient) Config() types.Config
Config return a kubernetes configuration.
func (*APIClient) CurrentNamespaceName ¶
func (a *APIClient) CurrentNamespaceName() (string, error)
CurrentNamespaceName return namespace name set via either cli arg or cluster config.
func (*APIClient) Dial ¶ added in v0.8.4
func (a *APIClient) Dial() (kubernetes.Interface, error)
Dial returns a handle to api server or an error
func (*APIClient) DynDial ¶ added in v0.8.4
func (a *APIClient) DynDial() (dynamic.Interface, error)
DynDial returns a handle to a dynamic interface.
func (*APIClient) HasMetrics ¶
func (a *APIClient) HasMetrics() bool
HasMetrics checks if the cluster supports metrics and user is authorized to use metrics.
func (*APIClient) IsActiveNamespace ¶
func (a *APIClient) IsActiveNamespace(ns string) bool
IsActiveNamespace returns true if namespaces matches.
func (*APIClient) MXDial ¶
func (a *APIClient) MXDial() (*versioned.Clientset, error)
MXDial returns a handle to the metrics server.
func (*APIClient) RestConfig ¶ added in v0.8.4
func (a *APIClient) RestConfig() (*restclient.Config, error)
RestConfig returns a rest api client.
func (*APIClient) ServerVersion ¶
func (a *APIClient) ServerVersion() (*version.Info, error)
ServerVersion returns the current server version info.
func (*APIClient) ValidNamespaces ¶
func (a *APIClient) ValidNamespaces() ([]v1.Namespace, error)
ValidNamespaces returns all available namespaces.
type Config ¶
type Config struct {
// contains filtered or unexported fields
}
Config tracks a kubernetes configuration.
func NewConfig ¶
func NewConfig(f *genericclioptions.ConfigFlags) *Config
NewConfig returns a new k8s config or an error if the flags are invalid.
func (*Config) CallTimeout ¶ added in v0.9.1
func (c *Config) CallTimeout() time.Duration
CallTimeout returns the call timeout if set or the default if not set.
func (*Config) ClusterNameFromContext ¶
func (c *Config) ClusterNameFromContext(ctx string) (string, error)
ClusterNameFromContext returns the cluster associated with the given context.
func (*Config) ClusterNames ¶
func (c *Config) ClusterNames() ([]string, error)
ClusterNames fetch all kubeconfig defined clusters.
func (*Config) ConfigAccess ¶
func (c *Config) ConfigAccess() (clientcmd.ConfigAccess, error)
ConfigAccess return the current kubeconfig api server access configuration.
func (*Config) ContextNames ¶
func (c *Config) ContextNames() ([]string, error)
ContextNames fetch all available contexts.
func (*Config) Contexts ¶
func (c *Config) Contexts() (map[string]*clientcmdapi.Context, error)
Contexts fetch all available contexts.
func (*Config) CurrentClusterName ¶
func (c *Config) CurrentClusterName() (string, error)
CurrentClusterName returns the active cluster name.
func (*Config) CurrentContextName ¶
func (c *Config) CurrentContextName() (string, error)
CurrentContextName returns the currently active config context.
func (*Config) CurrentGroupNames ¶
func (c *Config) CurrentGroupNames() ([]string, error)
CurrentGroupNames retrieves the active group names.
func (*Config) CurrentNamespaceName ¶
func (c *Config) CurrentNamespaceName() (string, error)
CurrentNamespaceName retrieves the active namespace.
func (*Config) CurrentUserName ¶
func (c *Config) CurrentUserName() (string, error)
CurrentUserName retrieves the active user name.
func (*Config) DelContext ¶
func (c *Config) DelContext(n string) error
DelContext remove a given context from the configuration.
func (*Config) Flags ¶
func (c *Config) Flags() *genericclioptions.ConfigFlags
Flags returns configuration flags.
func (*Config) GetContext ¶
func (c *Config) GetContext(n string) (*clientcmdapi.Context, error)
GetContext fetch a given context or error if it does not exists.
func (*Config) ImpersonateGroups ¶
func (c *Config) ImpersonateGroups() (string, error)
ImpersonateGroups retrieves the active groupsif set on the CLI.
func (*Config) ImpersonateUser ¶
func (c *Config) ImpersonateUser() (string, error)
ImpersonateUser retrieves the active user name if set on the CLI.
func (*Config) NamespaceNames ¶
func (c *Config) NamespaceNames(nns []v1.Namespace) []string
NamespaceNames fetch all available namespaces on current cluster.
func (*Config) RESTConfig ¶
func (c *Config) RESTConfig() (*restclient.Config, error)
RESTConfig fetch the current REST api service connection.
type ContainerMetrics ¶
type ContainerMetrics map[string]Metrics
ContainerMetrics tracks container metrics
type Factory ¶
type Factory struct {
// contains filtered or unexported fields
}
Factory tracks various resource informers.
func NewFactory ¶
func NewFactory(client types.Connection) *Factory
NewFactory returns a new informers factory.
func (*Factory) CanForResource ¶
func (f *Factory) CanForResource(ns, gvr string, verbs []string) (informers.GenericInformer, error)
CanForResource return an informer is user has access.
func (*Factory) Client ¶
func (f *Factory) Client() types.Connection
Client return the factory connection.
func (*Factory) FactoryFor ¶
func (f *Factory) FactoryFor(ns string) di.DynamicSharedInformerFactory
FactoryFor returns a factory for a given namespace.
func (*Factory) ForResource ¶
func (f *Factory) ForResource(ns, gvr string) (informers.GenericInformer, error)
ForResource returns an informer for a given resource.
func (*Factory) Get ¶
func (f *Factory) Get(gvr, path string, wait bool, sel labels.Selector) (runtime.Object, error)
Get retrieves a given resource.
func (*Factory) List ¶
func (f *Factory) List(gvr, ns string, wait bool, labels labels.Selector) ([]runtime.Object, error)
List returns a resource collection.
func (*Factory) SetActiveNS ¶
func (f *Factory) SetActiveNS(ns string) error
SetActiveNS sets the active namespace.
func (*Factory) Start ¶
func (f *Factory) Start(ns string)
Start initializes the informers until caller cancels the context.
func (*Factory) WaitForCacheSync ¶
func (f *Factory) WaitForCacheSync()
WaitForCacheSync waits for all factories to update their cache.
type GVR ¶
type GVR struct {
// contains filtered or unexported fields
}
GVR represents a kubernetes resource schema as a string. Format is group/version/resources:subresource
func FromGVAndR ¶
func FromGVAndR(gv, r string) GVR
FromGVAndR builds a gvr from a group/version and resource.
func NewGVRFromMeta ¶
func NewGVRFromMeta(a metav1.APIResource) GVR
NewGVRFromMeta builds a gvr from resource metadata.
func (GVR) AsResourceName ¶
func (g GVR) AsResourceName() string
AsResourceName returns a resource . separated descriptor in the shape of kind.version.group.
func (GVR) GV ¶
func (g GVR) GV() schema.GroupVersion
GV returns the group version scheme representation.
func (GVR) GVK ¶
func (g GVR) GVK() schema.GroupVersionKind
GVK returns a full schema representation.
func (GVR) GVR ¶
func (g GVR) GVR() schema.GroupVersionResource
GVR returns a full schema representation.
func (GVR) SubResource ¶
func (g GVR) SubResource() string
SubResource returns a sub resource if available.
type Metrics ¶
type Metrics struct {
CurrentCPU resource.Quantity
CurrentMEM resource.Quantity
}
Metrics represent an aggregation of all pod containers metrics.
type NodeMetrics ¶
type NodeMetrics struct {
CurrentCPU resource.Quantity
CurrentMEM resource.Quantity
AvailableCPU resource.Quantity
AvailableMEM resource.Quantity
TotalCPU resource.Quantity
TotalMEM resource.Quantity
}
NodeMetrics describes raw node metrics.
type NodesMetrics ¶
type NodesMetrics map[string]NodeMetrics
NodesMetrics tracks usage metrics per nodes.
type PodsMetrics ¶
type PodsMetrics map[string]ContainerMetrics
PodsMetrics tracks usage metrics per pods.