Documentation ¶
Overview ¶
Copyright (C) 2021-2023, Kubefirst
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Index ¶
- Variables
- func CheckForExistingPortForwards(ports ...int) error
- func CreateSecretV2(clientset *kubernetes.Clientset, secret *v1.Secret) error
- func GetClientConfig(kubeconfigPath string) (*rest.Config, error)
- func GetClientSet(kubeconfigPath string) (*kubernetes.Clientset, error)
- func GetSecretValue(k8sClient coreV1Types.SecretInterface, secretName, key string) string
- func OpenPortForwardPodWrapper(clientset *kubernetes.Clientset, restConfig *rest.Config, podName string, ...)
- func PodExecSession(kubeConfigPath string, p *PodSessionOptions, silent bool) error
- func PortForwardPod(clientset *kubernetes.Clientset, req PortForwardAPodRequest) error
- func PortForwardPodWithRetry(clientset *kubernetes.Clientset, req PortForwardAPodRequest) error
- func ReadConfigMapV2(kubeConfigPath string, namespace string, configMapName string) (map[string]string, error)
- func ReadSecretV2(clientset *kubernetes.Clientset, namespace string, secretName string) (map[string]string, error)
- func ReadService(kubeConfigPath string, namespace string, serviceName string) (*v1.Service, error)
- func ReturnDeploymentObject(clientset *kubernetes.Clientset, matchLabel string, matchLabelValue string, ...) (*appsv1.Deployment, error)
- func ReturnJobObject(clientset *kubernetes.Clientset, namespace string, jobName string) (*batchv1.Job, error)
- func ReturnPodObject(kubeConfigPath string, matchLabel string, matchLabelValue string, ...) (*v1.Pod, error)
- func ReturnStatefulSetObject(clientset *kubernetes.Clientset, matchLabel string, matchLabelValue string, ...) (*appsv1.StatefulSet, error)
- func VerifyArgoCDReadiness(clientset *kubernetes.Clientset, highAvailabilityEnabled bool, ...) (bool, error)
- func WaitForDeploymentReady(clientset *kubernetes.Clientset, deployment *appsv1.Deployment, ...) (bool, error)
- func WaitForJobComplete(clientset *kubernetes.Clientset, job *batchv1.Job, timeoutSeconds int64) (bool, error)
- func WaitForNamespaceandPods(kubeconfigPath, kubectlClientPath, namespace, podLabel string)
- func WaitForPodReady(clientset *kubernetes.Clientset, pod *v1.Pod, timeoutSeconds int) (bool, error)
- func WaitForStatefulSetReady(clientset *kubernetes.Clientset, statefulset *appsv1.StatefulSet, ...) (bool, error)
- type KubernetesClient
- func (kcl KubernetesClient) ApplyObjects(namespace string, yamlData [][]byte) error
- func (kcl KubernetesClient) KustomizeBuild(kustomizationDirectory string) (*bytes.Buffer, error)
- func (kcl KubernetesClient) ReadYAMLFile(filepath string) (string, error)
- func (kcl KubernetesClient) SplitYAMLFile(yamlData *bytes.Buffer) ([][]byte, error)
- type PatchJson
- type PodSessionOptions
- type PortForwardAPodRequest
- type PortForwardAServiceRequest
Constants ¶
This section is empty.
Variables ¶
var GitlabSecretClient coreV1Types.SecretInterface
Functions ¶
func CheckForExistingPortForwards ¶
CheckForExistingPortForwards determines whether or not port forwards are already running
func CreateSecretV2 ¶
func CreateSecretV2(clientset *kubernetes.Clientset, secret *v1.Secret) error
CreateSecretV2 creates a Kubernetes Secret
func GetClientConfig ¶
GetClientConfig returns a rest.Config object for working with the Kubernetes API
func GetClientSet ¶
func GetClientSet(kubeconfigPath string) (*kubernetes.Clientset, error)
GetClientSet - Get reference to k8s credentials to use APIS
func GetSecretValue ¶
func GetSecretValue(k8sClient coreV1Types.SecretInterface, secretName, key string) string
func OpenPortForwardPodWrapper ¶
func OpenPortForwardPodWrapper( clientset *kubernetes.Clientset, restConfig *rest.Config, podName string, namespace string, podPort int, podLocalPort int, stopChannel chan struct{}, )
OpenPortForwardPodWrapper wrapper for PortForwardPod function. This functions make it easier to open and close port forward request. By providing the function parameters, the function will manage to create the port forward. The parameter for the stopChannel controls when the port forward must be closed.
Example:
vaultStopChannel := make(chan struct{}, 1) go func() { OpenPortForwardWrapper( pkg.VaultPodName, pkg.VaultNamespace, pkg.VaultPodPort, pkg.VaultPodLocalPort, vaultStopChannel) wg.Done() }()
func PodExecSession ¶
func PodExecSession(kubeConfigPath string, p *PodSessionOptions, silent bool) error
PodExecSession executes a command against a Pod
func PortForwardPod ¶
func PortForwardPod(clientset *kubernetes.Clientset, req PortForwardAPodRequest) error
PortForwardPod receives a PortForwardAPodRequest, and enables port forwarding for the specified resource. If the provided Pod name matches a running Pod, it will try to port forward for that Pod on the specified port.
func PortForwardPodWithRetry ¶
func PortForwardPodWithRetry(clientset *kubernetes.Clientset, req PortForwardAPodRequest) error
func ReadConfigMapV2 ¶
func ReadConfigMapV2(kubeConfigPath string, namespace string, configMapName string) (map[string]string, error)
ReadConfigMapV2 reads the content of a Kubernetes ConfigMap
func ReadSecretV2 ¶
func ReadSecretV2(clientset *kubernetes.Clientset, namespace string, secretName string) (map[string]string, error)
ReadSecretV2 reads the content of a Kubernetes Secret
func ReadService ¶
ReadService reads a Kubernetes Service object
func ReturnDeploymentObject ¶
func ReturnDeploymentObject(clientset *kubernetes.Clientset, matchLabel string, matchLabelValue string, namespace string, timeoutSeconds int) (*appsv1.Deployment, error)
ReturnDeploymentObject returns a matching appsv1.Deployment object based on the filters
func ReturnJobObject ¶
func ReturnJobObject(clientset *kubernetes.Clientset, namespace string, jobName string) (*batchv1.Job, error)
ReturnJobObject returns a matching appsv1.StatefulSet object based on the filters
func ReturnPodObject ¶
func ReturnPodObject(kubeConfigPath string, matchLabel string, matchLabelValue string, namespace string, timeoutSeconds int) (*v1.Pod, error)
ReturnPodObject returns a matching v1.Pod object based on the filters
func ReturnStatefulSetObject ¶
func ReturnStatefulSetObject(clientset *kubernetes.Clientset, matchLabel string, matchLabelValue string, namespace string, timeoutSeconds int) (*appsv1.StatefulSet, error)
ReturnStatefulSetObject returns a matching appsv1.StatefulSet object based on the filters
func VerifyArgoCDReadiness ¶
func VerifyArgoCDReadiness(clientset *kubernetes.Clientset, highAvailabilityEnabled bool, timeoutSeconds int) (bool, error)
VerifyArgoCDReadiness waits for critical resources within ArgoCD to be ready and only returns once they're all healthy
This helps prevent race conditions and timeouts
func WaitForDeploymentReady ¶
func WaitForDeploymentReady(clientset *kubernetes.Clientset, deployment *appsv1.Deployment, timeoutSeconds int) (bool, error)
WaitForDeploymentReady waits for a target Deployment to become ready
func WaitForJobComplete ¶
func WaitForJobComplete(clientset *kubernetes.Clientset, job *batchv1.Job, timeoutSeconds int64) (bool, error)
WaitForJobComplete waits for a target Job to reach completion
func WaitForNamespaceandPods ¶
func WaitForNamespaceandPods(kubeconfigPath, kubectlClientPath, namespace, podLabel string)
func WaitForPodReady ¶
func WaitForPodReady(clientset *kubernetes.Clientset, pod *v1.Pod, timeoutSeconds int) (bool, error)
WaitForPodReady waits for a target Pod to become ready
func WaitForStatefulSetReady ¶
func WaitForStatefulSetReady(clientset *kubernetes.Clientset, statefulset *appsv1.StatefulSet, timeoutSeconds int, ignoreReady bool) (bool, error)
WaitForStatefulSetReady waits for a target StatefulSet to become ready
Types ¶
type KubernetesClient ¶
type KubernetesClient struct { Clientset *kubernetes.Clientset RestConfig *rest.Config KubeConfigPath string }
func CreateKubeConfig ¶
func CreateKubeConfig(inCluster bool, kubeConfigPath string) *KubernetesClient
CreateKubeConfig returns a struct KubernetesClient with references to a clientset, restConfig, and path to the Kubernetes config used to generate the client
func (KubernetesClient) ApplyObjects ¶
func (kcl KubernetesClient) ApplyObjects(namespace string, yamlData [][]byte) error
ApplyObjects parses a structured Kubernetes-compatible yaml file and applies its objects to a target Kubernetes cluster
func (KubernetesClient) KustomizeBuild ¶
func (kcl KubernetesClient) KustomizeBuild(kustomizationDirectory string) (*bytes.Buffer, error)
KustomizeBuild parses a file path and returns manifests built via kustomization.yaml if present
kustomizationDirectory should be a directory containing a kustomization.yaml file and subsequent configuration
The return values is a string representation of parsed resources in yaml
func (KubernetesClient) ReadYAMLFile ¶
func (kcl KubernetesClient) ReadYAMLFile(filepath string) (string, error)
ReadYAMLFile reads a yaml file in the filesystem
func (KubernetesClient) SplitYAMLFile ¶
func (kcl KubernetesClient) SplitYAMLFile(yamlData *bytes.Buffer) ([][]byte, error)
SplitYAMLFile takes a separated (---) yaml doc and returns [][]byte
type PodSessionOptions ¶
type PodSessionOptions struct { Command []string Namespace string PodName string Stdin bool Stdout bool Stderr bool TtyEnabled bool }
podSessionOptions provides a struct to assign parameters to an exec session
type PortForwardAPodRequest ¶
type PortForwardAPodRequest struct { // RestConfig is the kubernetes config RestConfig *rest.Config // Pod is the selected pod for this port forwarding Pod v1.Pod // LocalPort is the local port that will be selected to expose the PodPort LocalPort int // PodPort is the target port for the pod PodPort int // StopCh is the channel used to manage the port forward lifecycle StopCh <-chan struct{} // ReadyCh communicates when the tunnel is ready to receive traffic ReadyCh chan struct{} }
type PortForwardAServiceRequest ¶
type PortForwardAServiceRequest struct { // RestConfig is the kubernetes config RestConfig *rest.Config // Service is the selected service for this port forwarding Service v1.Service // LocalPort is the local port that will be selected to expose the ServicePort LocalPort int // ServicePort is the target port for the service ServicePort int // StopCh is the channel used to manage the port forward lifecycle StopCh <-chan struct{} // ReadyCh communicates when the tunnel is ready to receive traffic ReadyCh chan struct{} }