Documentation ¶
Index ¶
- Constants
- func AddTypeInformationToObject(obj runtime.Object) error
- func CreateOrUpdateEndpointSlice(ctx context.Context, c clientdiscoveryv1.EndpointSliceInterface, ...) error
- func CreateOrUpdateEndpoints(ctx context.Context, eclient clientv1.EndpointsInterface, eps *v1.Endpoints) error
- func CreateOrUpdateSecret(ctx context.Context, secretClient clientv1.SecretInterface, desired *v1.Secret) error
- func CreateOrUpdateService(ctx context.Context, sclient clientv1.ServiceInterface, svc *v1.Service) (*v1.Service, error)
- func IsAPIGroupVersionResourceSupported(discoveryCli discovery.DiscoveryInterface, groupVersion schema.GroupVersion, ...) (bool, error)
- func IsAllowed(ctx context.Context, ssarClient clientauthv1.SelfSubjectAccessReviewInterface, ...) (bool, []error, error)
- func IsResourceNotFoundError(err error) bool
- func LabelSelectionHasChanged(old, current map[string]string, selector *metav1.LabelSelector) (bool, error)
- func LoadSecretRef(ctx context.Context, logger *slog.Logger, client clientv1.SecretInterface, ...) ([]byte, error)
- func MergePatchContainers(base, patches []v1.Container) ([]v1.Container, error)
- func MustRegisterClientGoMetrics(registerer prometheus.Registerer)
- func NewClusterConfig(config ClusterConfig) (*rest.Config, error)
- func PodRunningAndReady(pod v1.Pod) (bool, error)
- func UpdateDNSConfig(podSpec *v1.PodSpec, config *monitoringv1.PodDNSConfig)
- func UpdateDNSPolicy(podSpec *v1.PodSpec, dnsPolicy *monitoringv1.DNSPolicy)
- func UpdateDaemonSet(ctx context.Context, dmsClient clientappsv1.DaemonSetInterface, ...) error
- func UpdateStatefulSet(ctx context.Context, sstClient clientappsv1.StatefulSetInterface, ...) error
- type ClusterConfig
- type ResourceAttribute
- type ResourceNamer
Constants ¶
const KubeConfigEnv = "KUBECONFIG"
KubeConfigEnv (optionally) specify the location of kubeconfig file.
Variables ¶
This section is empty.
Functions ¶
func AddTypeInformationToObject ¶
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 CreateOrUpdateEndpointSlice ¶
func CreateOrUpdateEndpointSlice(ctx context.Context, c clientdiscoveryv1.EndpointSliceInterface, eps *discoveryv1.EndpointSlice) error
func CreateOrUpdateEndpoints ¶
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 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 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 ¶
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 ¶
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.