kube

package
v1.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 30, 2019 License: Apache-2.0 Imports: 31 Imported by: 0

Documentation

Overview

Package kube provides helper utilities common for kubernetes

Index

Constants

View Source
const (
	SecretKind                   = "Secret"
	ServiceKind                  = "Service"
	EndpointsKind                = "Endpoints"
	DeploymentKind               = "Deployment"
	ReplicaSetKind               = "ReplicaSet"
	StatefulSetKind              = "StatefulSet"
	DaemonSetKind                = "DaemonSet"
	IngressKind                  = "Ingress"
	JobKind                      = "Job"
	PersistentVolumeClaimKind    = "PersistentVolumeClaim"
	CustomResourceDefinitionKind = "CustomResourceDefinition"
	PodKind                      = "Pod"
)

Variables

This section is empty.

Functions

func GetAppInstanceLabel added in v0.11.0

func GetAppInstanceLabel(un *unstructured.Unstructured, key string) string

GetAppInstanceLabel returns the application instance name from labels

func GetObjectRef added in v1.0.0

func GetObjectRef(obj *unstructured.Unstructured) v1.ObjectReference

func IsCRD added in v0.9.0

func IsCRD(obj *unstructured.Unstructured) bool

func IsCRDGroupVersionKind added in v0.9.0

func IsCRDGroupVersionKind(gvk schema.GroupVersionKind) bool

func MustToUnstructured

func MustToUnstructured(obj interface{}) *unstructured.Unstructured

MustToUnstructured converts a concrete K8s API type to a un unstructured object and panics if not successful

func NewKubeConfig added in v0.10.6

func NewKubeConfig(restConfig *rest.Config, namespace string) *clientcmdapi.Config

NewKubeConfig converts a clientcmdapi.Config (kubeconfig) from a rest.Config

func SetAppInstanceLabel added in v0.11.0

func SetAppInstanceLabel(target *unstructured.Unstructured, key, val string) error

SetAppInstanceLabel the recommended app.kubernetes.io/instance label against an unstructured object Uses the legacy labeling if environment variable is set

func SplitYAML added in v0.7.0

func SplitYAML(out string) ([]*unstructured.Unstructured, error)

SplitYAML splits a YAML file into unstructured objects. Returns list of all unstructured objects found in the yaml. If any errors occurred, returns the first one

func TestConfig

func TestConfig(config *rest.Config) error

TestConfig tests to make sure the REST config is usable

func ToGroupVersionResource added in v0.10.5

func ToGroupVersionResource(groupVersion string, apiResource *metav1.APIResource) schema.GroupVersionResource

func ToResourceInterface added in v0.10.5

func ToResourceInterface(dynamicIf dynamic.Interface, apiResource *metav1.APIResource, resource schema.GroupVersionResource, namespace string) dynamic.ResourceInterface

func ToUnstructured

func ToUnstructured(obj interface{}) (*unstructured.Unstructured, error)

ToUnstructured converts a concrete K8s API type to a un unstructured object

func UnsetLabel added in v0.8.0

func UnsetLabel(target *unstructured.Unstructured, key string)

UnsetLabel removes our app labels from an unstructured object

func WatchWithRetry added in v0.11.0

func WatchWithRetry(ctx context.Context, getWatch func() (watch.Interface, error)) chan struct {
	*watch.Event
	Error error
}

WatchWithRetry returns channel of watch events or errors of failed to call watch API.

func WriteKubeConfig added in v0.3.2

func WriteKubeConfig(restConfig *rest.Config, namespace, filename string) error

WriteKubeConfig takes a rest.Config and writes it as a kubeconfig at the specified path

Types

type APIResourceInfo added in v0.12.0

type APIResourceInfo struct {
	GroupKind schema.GroupKind
	Meta      metav1.APIResource
	Interface dynamic.ResourceInterface
}

type Kubectl added in v0.9.0

type Kubectl interface {
	ApplyResource(config *rest.Config, obj *unstructured.Unstructured, namespace string, dryRun, force bool) (string, error)
	ConvertToVersion(obj *unstructured.Unstructured, group, version string) (*unstructured.Unstructured, error)
	DeleteResource(config *rest.Config, gvk schema.GroupVersionKind, name string, namespace string, forceDelete bool) error
	GetResource(config *rest.Config, gvk schema.GroupVersionKind, name string, namespace string) (*unstructured.Unstructured, error)
	PatchResource(config *rest.Config, gvk schema.GroupVersionKind, name string, namespace string, patchType types.PatchType, patchBytes []byte) (*unstructured.Unstructured, error)
	GetAPIResources(config *rest.Config, resourceFilter ResourceFilter) ([]APIResourceInfo, error)
}

type KubectlCmd added in v0.9.0

type KubectlCmd struct{}

func (KubectlCmd) ApplyResource added in v0.9.0

func (k KubectlCmd) ApplyResource(config *rest.Config, obj *unstructured.Unstructured, namespace string, dryRun, force bool) (string, error)

ApplyResource performs an apply of a unstructured resource

func (KubectlCmd) ConvertToVersion added in v0.9.0

func (k KubectlCmd) ConvertToVersion(obj *unstructured.Unstructured, group string, version string) (*unstructured.Unstructured, error)

ConvertToVersion converts an unstructured object into the specified group/version

func (KubectlCmd) DeleteResource added in v0.9.0

func (k KubectlCmd) DeleteResource(config *rest.Config, gvk schema.GroupVersionKind, name string, namespace string, forceDelete bool) error

DeleteResource deletes resource

func (KubectlCmd) GetAPIResources added in v0.11.0

func (k KubectlCmd) GetAPIResources(config *rest.Config, resourceFilter ResourceFilter) ([]APIResourceInfo, error)

func (KubectlCmd) GetResource added in v0.11.0

func (k KubectlCmd) GetResource(config *rest.Config, gvk schema.GroupVersionKind, name string, namespace string) (*unstructured.Unstructured, error)

GetResource returns resource

func (KubectlCmd) PatchResource added in v0.12.0

func (k KubectlCmd) PatchResource(config *rest.Config, gvk schema.GroupVersionKind, name string, namespace string, patchType types.PatchType, patchBytes []byte) (*unstructured.Unstructured, error)

PatchResource patches resource

type ResourceFilter added in v0.12.0

type ResourceFilter interface {
	IsExcludedResource(group, kind, cluster string) bool
}

type ResourceKey added in v0.11.0

type ResourceKey struct {
	Group     string
	Kind      string
	Namespace string
	Name      string
}

func GetResourceKey added in v0.11.0

func GetResourceKey(obj *unstructured.Unstructured) ResourceKey

func NewResourceKey added in v0.11.0

func NewResourceKey(group string, kind string, namespace string, name string) ResourceKey

func (ResourceKey) GroupKind added in v0.12.0

func (k ResourceKey) GroupKind() schema.GroupKind

func (*ResourceKey) String added in v0.11.0

func (k *ResourceKey) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL