k8sutil

package
v0.0.0-...-ac1ba31 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2024 License: Apache-2.0 Imports: 41 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

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

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

func IsAPIGroupVersionResourceSupported

func IsAPIGroupVersionResourceSupported(discoveryCli discovery.DiscoveryInterface, groupVersion schema.GroupVersion, resource string) (bool, error)

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

func IsAllowed

func IsAllowed(
	ctx context.Context,
	ssarClient clientauthv1.SelfSubjectAccessReviewInterface,
	namespaces []string,
	attributes ...ResourceAttribute,
) (bool, []error, error)

IsAllowed returns whether the user (e.g. the operator's service account) has been granted the required RBAC attributes. It returns true when the conditions are met for the namespaces (an empty namespace value means "all"). The second return value returns the list of permissions that are missing if the requirements aren't met.

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 LoadSecretRef

func LoadSecretRef(ctx context.Context, logger *slog.Logger, client clientv1.SecretInterface, sks *v1.SecretKeySelector) ([]byte, error)

LoadSecretRef returns the data from a secret key reference. If the reference is set as optional and the secret or key isn't found, the function returns no error.

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(config ClusterConfig) (*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 UpdateDNSConfig

func UpdateDNSConfig(podSpec *v1.PodSpec, config *monitoringv1.PodDNSConfig)

func UpdateDNSPolicy

func UpdateDNSPolicy(podSpec *v1.PodSpec, dnsPolicy *monitoringv1.DNSPolicy)

func UpdateDaemonSet

func UpdateDaemonSet(ctx context.Context, dmsClient clientappsv1.DaemonSetInterface, dset *appsv1.DaemonSet) error

UpdateDaemonSet merges metadata of existing DaemonSet with new one and updates it.

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 ClusterConfig

type ClusterConfig struct {
	Host           string
	TLSConfig      rest.TLSClientConfig
	AsUser         string
	KubeconfigPath string
}

type ResourceAttribute

type ResourceAttribute struct {
	Resource string
	Name     string
	Group    string
	Version  string
	Verbs    []string
}

ResourceAttribute represents authorization attributes to check on a given resource.

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