k8sutil

package
v0.64.0-rhobs2 Latest Latest
Warning

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

Go to latest
Published: May 4, 2023 License: Apache-2.0 Imports: 34 Imported by: 0

Documentation

Index

Constants

View Source
const KubeConfigEnv = "KUBECONFIG"

KubeConfigEnv (optionally) specify the location of kubeconfig file

Variables

This section is empty.

Functions

func AddTypeInformationToObject

func AddTypeInformationToObject(obj runtime.Object) error

AddTypeInformationToObject adds TypeMeta information to a runtime.Object based upon the loaded scheme.Scheme See https://github.com/kubernetes/client-go/issues/308#issuecomment-700099260

func CreateOrUpdateEndpoints added in v0.6.0

func CreateOrUpdateEndpoints(ctx context.Context, eclient clientv1.EndpointsInterface, eps *v1.Endpoints) error

func CreateOrUpdateSecret

func CreateOrUpdateSecret(ctx context.Context, secretClient clientv1.SecretInterface, desired *v1.Secret) error

CreateOrUpdateSecret merges metadata of existing Secret with new one and updates it.

func CreateOrUpdateService added in v0.6.0

func CreateOrUpdateService(ctx context.Context, sclient clientv1.ServiceInterface, svc *v1.Service) error

func IsAPIGroupVersionResourceSupported

func IsAPIGroupVersionResourceSupported(discoveryCli discovery.DiscoveryInterface, groupversion string, resource string) (bool, error)

IsAPIGroupVersionResourceSupported checks if given groupVersion and resource is supported by the cluster.

you can exec `kubectl api-resources` to find groupVersion and resource.

func IsResourceNotFoundError

func IsResourceNotFoundError(err error) bool

func LabelSelectionHasChanged

func LabelSelectionHasChanged(old, current map[string]string, selector *metav1.LabelSelector) (bool, error)

LabelSelectionHasChanged returns true if the selector doesn't yield the same results for the old and current labels.

func MergePatchContainers

func MergePatchContainers(base, patches []v1.Container) ([]v1.Container, error)

MergePatchContainers adds patches to base using a strategic merge patch and iterating by container name, failing on the first error

func MustRegisterClientGoMetrics

func MustRegisterClientGoMetrics(registerer prometheus.Registerer)

MustRegisterClientGoMetrics registers k8s.io/client-go metrics. It panics if it encounters an error (e.g. metrics already registered).

func NewClusterConfig

func NewClusterConfig(host string, tlsInsecure bool, tlsConfig *rest.TLSClientConfig) (*rest.Config, error)

func PodRunningAndReady

func PodRunningAndReady(pod v1.Pod) (bool, error)

PodRunningAndReady returns whether a pod is running and each container has passed it's ready state.

func UpdateStatefulSet

func UpdateStatefulSet(ctx context.Context, sstClient clientappsv1.StatefulSetInterface, sset *appsv1.StatefulSet) error

UpdateStatefulSet merges metadata of existing StatefulSet with new one and updates it.

Types

type ResourceNamer

type ResourceNamer struct {
	// contains filtered or unexported fields
}

ResourceNamer knows how to generate valid names for various Kubernetes resources.

func NewResourceNamerWithPrefix

func NewResourceNamerWithPrefix(p string) ResourceNamer

NewResourceNamerWithPrefix returns a ResourceNamer that adds a prefix followed by an hyphen character to all resource names.

func (ResourceNamer) DNS1123Label

func (rn ResourceNamer) DNS1123Label(name string) (string, error)

DNS1123Label returns a name that is a valid DNS-1123 label. It will sanitize a name, removing invalid characters and if the name is bigger than 63 chars it will truncate it.

func (ResourceNamer) UniqueDNS1123Label

func (rn ResourceNamer) UniqueDNS1123Label(name string) (string, error)

UniqueDNS1123Label returns a name that is a valid DNS-1123 label. The returned name has a hash-based suffix to ensure uniqueness in case the input name exceeds the 63-chars limit.

Jump to

Keyboard shortcuts

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