diff --git a/utils/k8s/K8sUtil.go b/utils/k8s/K8sUtil.go index 83bddefd..71c7a3fa 100644 --- a/utils/k8s/K8sUtil.go +++ b/utils/k8s/K8sUtil.go @@ -67,19 +67,75 @@ import ( ) type K8sUtil struct { - logger *zap.SugaredLogger + Logger *zap.SugaredLogger runTimeConfig *client.RuntimeConfig kubeconfig *string } +type K8sUtilIf interface { + GetLogsForAPod(kubeClient *kubernetes.Clientset, namespace string, podName string, container string, follow bool) *restclient.Request + GetMetricsClientSet(restConfig *rest.Config, k8sHttpClient *http.Client) (*metrics.Clientset, error) + GetNmByName(ctx context.Context, metricsClientSet *metrics.Clientset, name string) (*v1beta1.NodeMetrics, error) + GetNmList(ctx context.Context, metricsClientSet *metrics.Clientset) (*v1beta1.NodeMetricsList, error) + GetPodsListForNamespace(ctx context.Context, k8sClientSet *kubernetes.Clientset, namespace string) (*v1.PodList, error) + GetServerVersionFromDiscoveryClient(k8sClientSet *kubernetes.Clientset) (*version.Info, error) + GetNodeByName(ctx context.Context, k8sClientSet *kubernetes.Clientset, name string) (*v1.Node, error) + GetNodesList(ctx context.Context, k8sClientSet *kubernetes.Clientset) (*v1.NodeList, error) + GetCoreV1ClientByRestConfig(restConfig *rest.Config) (*v12.CoreV1Client, error) + GetCoreV1ClientInCluster() (*v12.CoreV1Client, error) + GetKubeVersion() (*version.Info, error) + ValidateResource(resourceObj map[string]interface{}, gvk schema.GroupVersionKind, validateCallback func(namespace string, group string, kind string, resourceName string) bool) bool + BuildK8sObjectListTableData(manifest *unstructured.UnstructuredList, namespaced bool, gvk schema.GroupVersionKind, validateResourceAccess func(namespace string, group string, kind string, resourceName string) bool) (*ClusterResourceListMap, error) + GetPodByName(namespace string, name string, client *v12.CoreV1Client) (*v1.Pod, error) + GetK8sInClusterRestConfig() (*rest.Config, error) + GetResourceInfoByLabelSelector(ctx context.Context, namespace string, labelSelector string) (*v1.Pod, error) + GetClientByToken(serverUrl string, token map[string]string) (*v12.CoreV1Client, error) + ListNamespaces(client *v12.CoreV1Client) (*v1.NamespaceList, error) + DeleteAndCreateJob(content []byte, namespace string, clusterConfig *ClusterConfig) error + DeletePodByLabel(namespace string, labels string, clusterConfig *ClusterConfig) error + CreateJob(namespace string, name string, clusterConfig *ClusterConfig, job *batchV1.Job) error + GetLiveZCall(path string, k8sClientSet *kubernetes.Clientset) ([]byte, error) + DiscoveryClientGetLiveZCall(cluster *ClusterConfig) ([]byte, error) + GetK8sConfigAndClientsByRestConfig(restConfig *rest.Config) (*http.Client, *kubernetes.Clientset, error) + GetK8sConfigAndClients(clusterConfig *ClusterConfig) (*rest.Config, *http.Client, *kubernetes.Clientset, error) + GetK8sInClusterConfigAndDynamicClients() (*rest.Config, *http.Client, dynamic.Interface, error) + GetK8sInClusterConfigAndClients() (*rest.Config, *http.Client, *kubernetes.Clientset, error) + DeleteJob(namespace string, name string, clusterConfig *ClusterConfig) error + DeleteSecret(namespace string, name string, client *v12.CoreV1Client) error + UpdateSecret(namespace string, secret *v1.Secret, client *v12.CoreV1Client) (*v1.Secret, error) + CreateSecretData(namespace string, secret *v1.Secret, v1Client *v12.CoreV1Client) (*v1.Secret, error) + CreateSecret(namespace string, data map[string][]byte, secretName string, secretType v1.SecretType, client *v12.CoreV1Client, labels map[string]string, stringData map[string]string) (*v1.Secret, error) + GetSecret(namespace string, name string, client *v12.CoreV1Client) (*v1.Secret, error) + PatchConfigMapJsonType(namespace string, clusterConfig *ClusterConfig, name string, data interface{}, path string) (*v1.ConfigMap, error) + PatchConfigMap(namespace string, clusterConfig *ClusterConfig, name string, data map[string]interface{}) (*v1.ConfigMap, error) + UpdateConfigMap(namespace string, cm *v1.ConfigMap, client *v12.CoreV1Client) (*v1.ConfigMap, error) + CreateConfigMap(namespace string, cm *v1.ConfigMap, client *v12.CoreV1Client) (*v1.ConfigMap, error) + GetConfigMap(namespace string, name string, client *v12.CoreV1Client) (*v1.ConfigMap, error) + CheckIfNsExists(namespace string, client *v12.CoreV1Client) (exists bool, err error) + CreateNsIfNotExists(namespace string, clusterConfig *ClusterConfig) (err error) + GetK8sDiscoveryClientInCluster() (*discovery.DiscoveryClient, error) + GetK8sDiscoveryClient(clusterConfig *ClusterConfig) (*discovery.DiscoveryClient, error) + GetClientForInCluster() (*v12.CoreV1Client, error) + GetCoreV1Client(clusterConfig *ClusterConfig) (*v12.CoreV1Client, error) + GetRestConfigByCluster(clusterConfig *ClusterConfig) (*restclient.Config, error) +} + type ClusterConfig struct { - ClusterName string - Host string - BearerToken string - InsecureSkipTLSVerify bool - KeyData string - CertData string - CAData string + ClusterName string + Host string + BearerToken string + InsecureSkipTLSVerify bool + KeyData string + CertData string + CAData string + ClusterId int + ProxyUrl string + ToConnectForClusterVerification bool + ToConnectWithSSHTunnel bool + SSHTunnelUser string + SSHTunnelPassword string + SSHTunnelAuthKey string + SSHTunnelServerAddress string } func NewK8sUtil(logger *zap.SugaredLogger, runTimeConfig *client.RuntimeConfig) *K8sUtil { @@ -93,7 +149,7 @@ func NewK8sUtil(logger *zap.SugaredLogger, runTimeConfig *client.RuntimeConfig) } flag.Parse() - return &K8sUtil{logger: logger, runTimeConfig: runTimeConfig, kubeconfig: kubeconfig} + return &K8sUtil{Logger: logger, runTimeConfig: runTimeConfig, kubeconfig: kubeconfig} } func (impl K8sUtil) GetRestConfigByCluster(clusterConfig *ClusterConfig) (*restclient.Config, error) { @@ -103,7 +159,7 @@ func (impl K8sUtil) GetRestConfigByCluster(clusterConfig *ClusterConfig) (*restc if clusterConfig.Host == DefaultClusterUrl && len(bearerToken) == 0 { restConfig, err = impl.GetK8sInClusterRestConfig() if err != nil { - impl.logger.Errorw("error in getting rest config for default cluster", "err", err) + impl.Logger.Errorw("error in getting rest config for default cluster", "err", err) return nil, err } } else { @@ -121,7 +177,7 @@ func (impl K8sUtil) GetRestConfigByCluster(clusterConfig *ClusterConfig) (*restc func (impl K8sUtil) GetCoreV1Client(clusterConfig *ClusterConfig) (*v12.CoreV1Client, error) { cfg, err := impl.GetRestConfigByCluster(clusterConfig) if err != nil { - impl.logger.Errorw("error in getting rest config for default cluster", "err", err) + impl.Logger.Errorw("error in getting rest config for default cluster", "err", err) return nil, err } return impl.GetCoreV1ClientByRestConfig(cfg) @@ -131,18 +187,18 @@ func (impl K8sUtil) GetClientForInCluster() (*v12.CoreV1Client, error) { // creates the in-cluster config config, err := impl.GetK8sInClusterRestConfig() if err != nil { - impl.logger.Errorw("error in getting config", "err", err) + impl.Logger.Errorw("error in getting config", "err", err) return nil, err } // creates the clientset httpClient, err := OverrideK8sHttpClientWithTracer(config) if err != nil { - impl.logger.Errorw("error in getting http client for default cluster", "err", err) + impl.Logger.Errorw("error in getting http client for default cluster", "err", err) return nil, err } clientset, err := v12.NewForConfigAndClient(config, httpClient) if err != nil { - impl.logger.Errorw("error", "error", err) + impl.Logger.Errorw("error", "error", err) return nil, err } return clientset, err @@ -151,17 +207,17 @@ func (impl K8sUtil) GetClientForInCluster() (*v12.CoreV1Client, error) { func (impl K8sUtil) GetK8sDiscoveryClient(clusterConfig *ClusterConfig) (*discovery.DiscoveryClient, error) { cfg, err := impl.GetRestConfigByCluster(clusterConfig) if err != nil { - impl.logger.Errorw("error in getting rest config for default cluster", "err", err) + impl.Logger.Errorw("error in getting rest config for default cluster", "err", err) return nil, err } httpClient, err := OverrideK8sHttpClientWithTracer(cfg) if err != nil { - impl.logger.Errorw("error in getting http client for default cluster", "err", err) + impl.Logger.Errorw("error in getting http client for default cluster", "err", err) return nil, err } discoveryClient, err := discovery.NewDiscoveryClientForConfigAndClient(cfg, httpClient) if err != nil { - impl.logger.Errorw("error", "error", err, "clusterConfig", clusterConfig) + impl.Logger.Errorw("error", "error", err, "clusterConfig", clusterConfig) return nil, err } return discoveryClient, err @@ -170,21 +226,21 @@ func (impl K8sUtil) GetK8sDiscoveryClient(clusterConfig *ClusterConfig) (*discov func (impl K8sUtil) GetK8sDiscoveryClientInCluster() (*discovery.DiscoveryClient, error) { config, err := impl.GetK8sInClusterRestConfig() if err != nil { - impl.logger.Errorw("error in getting config", "err", err) + impl.Logger.Errorw("error in getting config", "err", err) return nil, err } if err != nil { - impl.logger.Errorw("error", "error", err) + impl.Logger.Errorw("error", "error", err) return nil, err } httpClient, err := OverrideK8sHttpClientWithTracer(config) if err != nil { - impl.logger.Errorw("error in getting http client for default cluster", "err", err) + impl.Logger.Errorw("error in getting http client for default cluster", "err", err) return nil, err } discoveryClient, err := discovery.NewDiscoveryClientForConfigAndClient(config, httpClient) if err != nil { - impl.logger.Errorw("error", "error", err) + impl.Logger.Errorw("error", "error", err) return nil, err } return discoveryClient, err @@ -193,19 +249,19 @@ func (impl K8sUtil) GetK8sDiscoveryClientInCluster() (*discovery.DiscoveryClient func (impl K8sUtil) CreateNsIfNotExists(namespace string, clusterConfig *ClusterConfig) (err error) { v12Client, err := impl.GetCoreV1Client(clusterConfig) if err != nil { - impl.logger.Errorw("error", "error", err, "clusterConfig", clusterConfig) + impl.Logger.Errorw("error", "error", err, "clusterConfig", clusterConfig) return err } exists, err := impl.CheckIfNsExists(namespace, v12Client) if err != nil { - impl.logger.Errorw("error", "error", err, "clusterConfig", clusterConfig) + impl.Logger.Errorw("error", "error", err, "clusterConfig", clusterConfig) return err } if exists { - impl.logger.Infow("namesapce already exist") + impl.Logger.Infow("namesapce already exist") return nil } - impl.logger.Infow("ns not exists creating", "ns", namespace) + impl.Logger.Infow("ns not exists creating", "ns", namespace) _, err = impl.createNs(namespace, v12Client) return err } @@ -213,11 +269,11 @@ func (impl K8sUtil) CreateNsIfNotExists(namespace string, clusterConfig *Cluster func (impl K8sUtil) CheckIfNsExists(namespace string, client *v12.CoreV1Client) (exists bool, err error) { ns, err := client.Namespaces().Get(context.Background(), namespace, metav1.GetOptions{}) //ns, err := impl.k8sClient.CoreV1().Namespaces().Get(namespace, metav1.GetOptions{}) - impl.logger.Debugw("ns fetch", "name", namespace, "res", ns) + impl.Logger.Debugw("ns fetch", "name", namespace, "res", ns) if errors.IsNotFound(err) { return false, nil } else if err != nil { - impl.logger.Errorw("error in checking if ns exist", "err", err) + impl.Logger.Errorw("error in checking if ns exist", "err", err) return false, err } else { return true, nil @@ -229,7 +285,7 @@ func (impl K8sUtil) createNs(namespace string, client *v12.CoreV1Client) (ns *v1 nsSpec := &v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: namespace}} ns, err = client.Namespaces().Create(context.Background(), nsSpec, metav1.CreateOptions{}) if err != nil { - impl.logger.Errorw("error in creating ns", "err", err) + impl.Logger.Errorw("error in creating ns", "err", err) return nil, err } else { return ns, nil @@ -244,7 +300,7 @@ func (impl K8sUtil) deleteNs(namespace string, client *v12.CoreV1Client) error { func (impl K8sUtil) GetConfigMap(namespace string, name string, client *v12.CoreV1Client) (*v1.ConfigMap, error) { cm, err := client.ConfigMaps(namespace).Get(context.Background(), name, metav1.GetOptions{}) if err != nil { - impl.logger.Errorw("error in getting config map", "err", err) + impl.Logger.Errorw("error in getting config map", "err", err) return nil, err } else { return cm, nil @@ -254,7 +310,7 @@ func (impl K8sUtil) GetConfigMap(namespace string, name string, client *v12.Core func (impl K8sUtil) CreateConfigMap(namespace string, cm *v1.ConfigMap, client *v12.CoreV1Client) (*v1.ConfigMap, error) { cm, err := client.ConfigMaps(namespace).Create(context.Background(), cm, metav1.CreateOptions{}) if err != nil { - impl.logger.Errorw("error in creating config map", "err", err) + impl.Logger.Errorw("error in creating config map", "err", err) return nil, err } else { return cm, nil @@ -264,7 +320,7 @@ func (impl K8sUtil) CreateConfigMap(namespace string, cm *v1.ConfigMap, client * func (impl K8sUtil) UpdateConfigMap(namespace string, cm *v1.ConfigMap, client *v12.CoreV1Client) (*v1.ConfigMap, error) { cm, err := client.ConfigMaps(namespace).Update(context.Background(), cm, metav1.UpdateOptions{}) if err != nil { - impl.logger.Errorw("error in updating config map", "err", err) + impl.Logger.Errorw("error in updating config map", "err", err) return nil, err } else { return cm, nil @@ -274,17 +330,17 @@ func (impl K8sUtil) UpdateConfigMap(namespace string, cm *v1.ConfigMap, client * func (impl K8sUtil) PatchConfigMap(namespace string, clusterConfig *ClusterConfig, name string, data map[string]interface{}) (*v1.ConfigMap, error) { k8sClient, err := impl.GetCoreV1Client(clusterConfig) if err != nil { - impl.logger.Errorw("error in getting k8s client", "err", err) + impl.Logger.Errorw("error in getting k8s client", "err", err) return nil, err } b, err := json.Marshal(data) if err != nil { - impl.logger.Errorw("error in marshalling data", "err", err) + impl.Logger.Errorw("error in marshalling data", "err", err) panic(err) } cm, err := k8sClient.ConfigMaps(namespace).Patch(context.Background(), name, types.PatchType(types.MergePatchType), b, metav1.PatchOptions{}) if err != nil { - impl.logger.Errorw("error in patching config map", "err", err) + impl.Logger.Errorw("error in patching config map", "err", err) return nil, err } else { return cm, nil @@ -295,7 +351,7 @@ func (impl K8sUtil) PatchConfigMap(namespace string, clusterConfig *ClusterConfi func (impl K8sUtil) PatchConfigMapJsonType(namespace string, clusterConfig *ClusterConfig, name string, data interface{}, path string) (*v1.ConfigMap, error) { v12Client, err := impl.GetCoreV1Client(clusterConfig) if err != nil { - impl.logger.Errorw("error in getting v12 client ", "err", err, "namespace", namespace, "name", name) + impl.Logger.Errorw("error in getting v12 client ", "err", err, "namespace", namespace, "name", name) return nil, err } var patches []*JsonPatchType @@ -307,13 +363,13 @@ func (impl K8sUtil) PatchConfigMapJsonType(namespace string, clusterConfig *Clus patches = append(patches, patch) b, err := json.Marshal(patches) if err != nil { - impl.logger.Errorw("error in getting marshalling pacthes", "err", err, "namespace", namespace) + impl.Logger.Errorw("error in getting marshalling pacthes", "err", err, "namespace", namespace) panic(err) } cm, err := v12Client.ConfigMaps(namespace).Patch(context.Background(), name, types.PatchType(types.JSONPatchType), b, metav1.PatchOptions{}) if err != nil { - impl.logger.Errorw("error in patching config map", "err", err, "namespace", namespace) + impl.Logger.Errorw("error in patching config map", "err", err, "namespace", namespace) return nil, err } else { return cm, nil @@ -330,7 +386,7 @@ type JsonPatchType struct { func (impl K8sUtil) GetSecret(namespace string, name string, client *v12.CoreV1Client) (*v1.Secret, error) { secret, err := client.Secrets(namespace).Get(context.Background(), name, metav1.GetOptions{}) if err != nil { - impl.logger.Errorw("error in getting secrets", "err", err, "namespace", namespace) + impl.Logger.Errorw("error in getting secrets", "err", err, "namespace", namespace) return nil, err } else { return secret, nil @@ -366,7 +422,7 @@ func (impl K8sUtil) CreateSecretData(namespace string, secret *v1.Secret, v1Clie func (impl K8sUtil) UpdateSecret(namespace string, secret *v1.Secret, client *v12.CoreV1Client) (*v1.Secret, error) { secret, err := client.Secrets(namespace).Update(context.Background(), secret, metav1.UpdateOptions{}) if err != nil { - impl.logger.Errorw("error in updating secrets", "err", err, "namespace", namespace) + impl.Logger.Errorw("error in updating secrets", "err", err, "namespace", namespace) return nil, err } else { return secret, nil @@ -376,7 +432,7 @@ func (impl K8sUtil) UpdateSecret(namespace string, secret *v1.Secret, client *v1 func (impl K8sUtil) DeleteSecret(namespace string, name string, client *v12.CoreV1Client) error { err := client.Secrets(namespace).Delete(context.Background(), name, metav1.DeleteOptions{}) if err != nil { - impl.logger.Errorw("error in deleting secrets", "err", err, "namespace", namespace) + impl.Logger.Errorw("error in deleting secrets", "err", err, "namespace", namespace) return err } return nil @@ -385,21 +441,21 @@ func (impl K8sUtil) DeleteSecret(namespace string, name string, client *v12.Core func (impl K8sUtil) DeleteJob(namespace string, name string, clusterConfig *ClusterConfig) error { _, _, clientSet, err := impl.GetK8sConfigAndClients(clusterConfig) if err != nil { - impl.logger.Errorw("clientSet err, DeleteJob", "err", err) + impl.Logger.Errorw("clientSet err, DeleteJob", "err", err) return err } jobs := clientSet.BatchV1().Jobs(namespace) job, err := jobs.Get(context.Background(), name, metav1.GetOptions{}) if err != nil && errors.IsNotFound(err) { - impl.logger.Errorw("get job err, DeleteJob", "err", err) + impl.Logger.Errorw("get job err, DeleteJob", "err", err) return nil } if job != nil { err := jobs.Delete(context.Background(), name, metav1.DeleteOptions{}) if err != nil && !errors.IsNotFound(err) { - impl.logger.Errorw("delete err, DeleteJob", "err", err) + impl.Logger.Errorw("delete err, DeleteJob", "err", err) return err } } @@ -410,12 +466,12 @@ func (impl K8sUtil) DeleteJob(namespace string, name string, clusterConfig *Clus func (impl K8sUtil) GetK8sInClusterConfigAndClients() (*rest.Config, *http.Client, *kubernetes.Clientset, error) { restConfig, err := impl.GetK8sInClusterRestConfig() if err != nil { - impl.logger.Errorw("error in getting rest config for in cluster", "err", err) + impl.Logger.Errorw("error in getting rest config for in cluster", "err", err) return nil, nil, nil, err } k8sHttpClient, k8sClientSet, err := impl.GetK8sConfigAndClientsByRestConfig(restConfig) if err != nil { - impl.logger.Errorw("error in getting client set by rest config for in cluster", "err", err) + impl.Logger.Errorw("error in getting client set by rest config for in cluster", "err", err) return nil, nil, nil, err } return restConfig, k8sHttpClient, k8sClientSet, nil @@ -424,17 +480,17 @@ func (impl K8sUtil) GetK8sInClusterConfigAndClients() (*rest.Config, *http.Clien func (impl K8sUtil) GetK8sInClusterConfigAndDynamicClients() (*rest.Config, *http.Client, dynamic.Interface, error) { restConfig, err := impl.GetK8sInClusterRestConfig() if err != nil { - impl.logger.Errorw("error in getting rest config for in cluster", "err", err) + impl.Logger.Errorw("error in getting rest config for in cluster", "err", err) return nil, nil, nil, err } k8sHttpClient, err := OverrideK8sHttpClientWithTracer(restConfig) if err != nil { - impl.logger.Errorw("error in getting k8s http client set by rest config for in cluster", "err", err) + impl.Logger.Errorw("error in getting k8s http client set by rest config for in cluster", "err", err) return nil, nil, nil, err } dynamicClientSet, err := dynamic.NewForConfigAndClient(restConfig, k8sHttpClient) if err != nil { - impl.logger.Errorw("error in getting client set by rest config for in cluster", "err", err) + impl.Logger.Errorw("error in getting client set by rest config for in cluster", "err", err) return nil, nil, nil, err } return restConfig, k8sHttpClient, dynamicClientSet, nil @@ -443,7 +499,7 @@ func (impl K8sUtil) GetK8sInClusterConfigAndDynamicClients() (*rest.Config, *htt func (impl K8sUtil) GetK8sDynamicClient(restConfig *rest.Config, k8sHttpClient *http.Client) (dynamic.Interface, error) { dynamicClientSet, err := dynamic.NewForConfigAndClient(restConfig, k8sHttpClient) if err != nil { - impl.logger.Errorw("error in getting client set by rest config for in cluster", "err", err) + impl.Logger.Errorw("error in getting client set by rest config for in cluster", "err", err) return nil, err } return dynamicClientSet, nil @@ -452,12 +508,12 @@ func (impl K8sUtil) GetK8sDynamicClient(restConfig *rest.Config, k8sHttpClient * func (impl K8sUtil) GetK8sConfigAndClients(clusterConfig *ClusterConfig) (*rest.Config, *http.Client, *kubernetes.Clientset, error) { restConfig, err := impl.GetRestConfigByCluster(clusterConfig) if err != nil { - impl.logger.Errorw("error in getting rest config by cluster", "err", err, "clusterName", clusterConfig.ClusterName) + impl.Logger.Errorw("error in getting rest config by cluster", "err", err, "clusterName", clusterConfig.ClusterName) return nil, nil, nil, err } k8sHttpClient, k8sClientSet, err := impl.GetK8sConfigAndClientsByRestConfig(restConfig) if err != nil { - impl.logger.Errorw("error in getting client set by rest config", "err", err, "clusterName", clusterConfig.ClusterName) + impl.Logger.Errorw("error in getting client set by rest config", "err", err, "clusterName", clusterConfig.ClusterName) return nil, nil, nil, err } return restConfig, k8sHttpClient, k8sClientSet, nil @@ -466,12 +522,12 @@ func (impl K8sUtil) GetK8sConfigAndClients(clusterConfig *ClusterConfig) (*rest. func (impl K8sUtil) GetK8sConfigAndClientsByRestConfig(restConfig *rest.Config) (*http.Client, *kubernetes.Clientset, error) { k8sHttpClient, err := OverrideK8sHttpClientWithTracer(restConfig) if err != nil { - impl.logger.Errorw("error in getting k8s http client set by rest config", "err", err) + impl.Logger.Errorw("error in getting k8s http client set by rest config", "err", err) return nil, nil, err } k8sClientSet, err := kubernetes.NewForConfigAndClient(restConfig, k8sHttpClient) if err != nil { - impl.logger.Errorw("error in getting client set by rest config", "err", err) + impl.Logger.Errorw("error in getting client set by rest config", "err", err) return nil, nil, err } return k8sHttpClient, k8sClientSet, nil @@ -480,13 +536,13 @@ func (impl K8sUtil) GetK8sConfigAndClientsByRestConfig(restConfig *rest.Config) func (impl K8sUtil) DiscoveryClientGetLiveZCall(cluster *ClusterConfig) ([]byte, error) { _, _, k8sClientSet, err := impl.GetK8sConfigAndClients(cluster) if err != nil { - impl.logger.Errorw("errir in getting clients and configs", "err", err, "clusterName", cluster.ClusterName) + impl.Logger.Errorw("errir in getting clients and configs", "err", err, "clusterName", cluster.ClusterName) return nil, err } //using livez path as healthz path is deprecated response, err := impl.GetLiveZCall(LiveZ, k8sClientSet) if err != nil { - impl.logger.Errorw("error in getting livez call", "err", err, "clusterName", cluster.ClusterName) + impl.Logger.Errorw("error in getting livez call", "err", err, "clusterName", cluster.ClusterName) return nil, err } return response, err @@ -495,7 +551,7 @@ func (impl K8sUtil) DiscoveryClientGetLiveZCall(cluster *ClusterConfig) ([]byte, func (impl K8sUtil) GetLiveZCall(path string, k8sClientSet *kubernetes.Clientset) ([]byte, error) { response, err := k8sClientSet.Discovery().RESTClient().Get().AbsPath(path).DoRaw(context.Background()) if err != nil { - impl.logger.Errorw("error in getting response from discovery client", "err", err) + impl.Logger.Errorw("error in getting response from discovery client", "err", err) return nil, err } return response, err @@ -504,14 +560,14 @@ func (impl K8sUtil) GetLiveZCall(path string, k8sClientSet *kubernetes.Clientset func (impl K8sUtil) CreateJob(namespace string, name string, clusterConfig *ClusterConfig, job *batchV1.Job) error { _, _, clientSet, err := impl.GetK8sConfigAndClients(clusterConfig) if err != nil { - impl.logger.Errorw("clientSet err, CreateJob", "err", err) + impl.Logger.Errorw("clientSet err, CreateJob", "err", err) } time.Sleep(5 * time.Second) jobs := clientSet.BatchV1().Jobs(namespace) _, err = jobs.Get(context.Background(), name, metav1.GetOptions{}) if err == nil { - impl.logger.Errorw("get job err, CreateJob", "err", err) + impl.Logger.Errorw("get job err, CreateJob", "err", err) time.Sleep(5 * time.Second) _, err = jobs.Get(context.Background(), name, metav1.GetOptions{}) if err == nil { @@ -521,7 +577,7 @@ func (impl K8sUtil) CreateJob(namespace string, name string, clusterConfig *Clus _, err = jobs.Create(context.Background(), job, metav1.CreateOptions{}) if err != nil { - impl.logger.Errorw("create err, CreateJob", "err", err) + impl.Logger.Errorw("create err, CreateJob", "err", err) return err } return nil @@ -532,7 +588,7 @@ func (impl K8sUtil) CreateJob(namespace string, name string, clusterConfig *Clus func (impl K8sUtil) DeletePodByLabel(namespace string, labels string, clusterConfig *ClusterConfig) error { _, _, clientSet, err := impl.GetK8sConfigAndClients(clusterConfig) if err != nil { - impl.logger.Errorw("clientSet err, DeletePod", "err", err) + impl.Logger.Errorw("clientSet err, DeletePod", "err", err) return err } @@ -541,7 +597,7 @@ func (impl K8sUtil) DeletePodByLabel(namespace string, labels string, clusterCon pods := clientSet.CoreV1().Pods(namespace) podList, err := pods.List(context.Background(), metav1.ListOptions{LabelSelector: labels}) if err != nil && errors.IsNotFound(err) { - impl.logger.Errorw("get pod err, DeletePod", "err", err) + impl.Logger.Errorw("get pod err, DeletePod", "err", err) return nil } @@ -550,7 +606,7 @@ func (impl K8sUtil) DeletePodByLabel(namespace string, labels string, clusterCon podName := pod.ObjectMeta.Name err := pods.Delete(context.Background(), podName, metav1.DeleteOptions{}) if err != nil && !errors.IsNotFound(err) { - impl.logger.Errorw("delete err, DeletePod", "err", err) + impl.Logger.Errorw("delete err, DeletePod", "err", err) return err } } @@ -564,27 +620,27 @@ func (impl K8sUtil) DeleteAndCreateJob(content []byte, namespace string, cluster var job batchV1.Job err := yaml.Unmarshal(content, &job) if err != nil { - impl.logger.Errorw("Unmarshal err, CreateJobSafely", "err", err) + impl.Logger.Errorw("Unmarshal err, CreateJobSafely", "err", err) return err } // delete job if exists err = impl.DeleteJob(namespace, job.Name, clusterConfig) if err != nil { - impl.logger.Errorw("DeleteJobIfExists err, CreateJobSafely", "err", err) + impl.Logger.Errorw("DeleteJobIfExists err, CreateJobSafely", "err", err) return err } labels := "job-name=" + job.Name err = impl.DeletePodByLabel(namespace, labels, clusterConfig) if err != nil { - impl.logger.Errorw("DeleteJobIfExists err, CreateJobSafely", "err", err) + impl.Logger.Errorw("DeleteJobIfExists err, CreateJobSafely", "err", err) return err } // create job err = impl.CreateJob(namespace, job.Name, clusterConfig, &job) if err != nil { - impl.logger.Errorw("CreateJob err, CreateJobSafely", "err", err) + impl.Logger.Errorw("CreateJob err, CreateJobSafely", "err", err) return err } @@ -607,7 +663,7 @@ func (impl K8sUtil) GetClientByToken(serverUrl string, token map[string]string) clusterCfg := &ClusterConfig{Host: serverUrl, BearerToken: bearerToken} v12Client, err := impl.GetCoreV1Client(clusterCfg) if err != nil { - impl.logger.Errorw("error in k8s client", "error", err) + impl.Logger.Errorw("error in k8s client", "error", err) return nil, err } return v12Client, nil @@ -616,7 +672,7 @@ func (impl K8sUtil) GetClientByToken(serverUrl string, token map[string]string) func (impl K8sUtil) GetResourceInfoByLabelSelector(ctx context.Context, namespace string, labelSelector string) (*v1.Pod, error) { inClusterClient, err := impl.GetClientForInCluster() if err != nil { - impl.logger.Errorw("cluster config error", "err", err) + impl.Logger.Errorw("cluster config error", "err", err) return nil, err } pods, err := inClusterClient.Pods(namespace).List(ctx, metav1.ListOptions{ @@ -636,18 +692,18 @@ func (impl K8sUtil) GetResourceInfoByLabelSelector(ctx context.Context, namespac } func (impl K8sUtil) GetK8sInClusterRestConfig() (*rest.Config, error) { - impl.logger.Debug("getting k8s rest config") + impl.Logger.Debug("getting k8s rest config") if impl.runTimeConfig.LocalDevMode { restConfig, err := clientcmd.BuildConfigFromFlags("", *impl.kubeconfig) if err != nil { - impl.logger.Errorw("Error while building config from flags", "error", err) + impl.Logger.Errorw("Error while building config from flags", "error", err) return nil, err } return restConfig, nil } else { clusterConfig, err := rest.InClusterConfig() if err != nil { - impl.logger.Errorw("error in fetch default cluster config", "err", err) + impl.Logger.Errorw("error in fetch default cluster config", "err", err) return nil, err } return clusterConfig, nil @@ -657,7 +713,7 @@ func (impl K8sUtil) GetK8sInClusterRestConfig() (*rest.Config, error) { func (impl K8sUtil) GetPodByName(namespace string, name string, client *v12.CoreV1Client) (*v1.Pod, error) { pod, err := client.Pods(namespace).Get(context.Background(), name, metav1.GetOptions{}) if err != nil { - impl.logger.Errorw("error in fetch pod name", "err", err) + impl.Logger.Errorw("error in fetch pod name", "err", err) return nil, err } else { return pod, nil @@ -754,7 +810,7 @@ func (impl K8sUtil) BuildK8sObjectListTableData(manifest *unstructured.Unstructu clusterResourceListMap.Headers = headers clusterResourceListMap.Data = rowsMapping - impl.logger.Debugw("resource listing response", "clusterResourceListMap", clusterResourceListMap) + impl.Logger.Debugw("resource listing response", "clusterResourceListMap", clusterResourceListMap) return clusterResourceListMap, nil } @@ -868,12 +924,12 @@ func OverrideK8sHttpClientWithTracer(restConfig *rest.Config) (*http.Client, err func (impl K8sUtil) GetKubeVersion() (*version.Info, error) { discoveryClient, err := impl.GetK8sDiscoveryClientInCluster() if err != nil { - impl.logger.Errorw("eexception caught in getting discoveryClient", "err", err) + impl.Logger.Errorw("eexception caught in getting discoveryClient", "err", err) return nil, err } k8sServerVersion, err := discoveryClient.ServerVersion() if err != nil { - impl.logger.Errorw("exception caught in getting k8sServerVersion", "err", err) + impl.Logger.Errorw("exception caught in getting k8sServerVersion", "err", err) return nil, err } return k8sServerVersion, err @@ -883,7 +939,7 @@ func (impl K8sUtil) GetCoreV1ClientInCluster() (*v12.CoreV1Client, error) { restConfig := &rest.Config{} restConfig, err := impl.GetK8sInClusterRestConfig() if err != nil { - impl.logger.Error("Error in creating config for default cluster", "err", err) + impl.Logger.Error("Error in creating config for default cluster", "err", err) return nil, err } return impl.GetCoreV1ClientByRestConfig(restConfig) @@ -892,12 +948,12 @@ func (impl K8sUtil) GetCoreV1ClientInCluster() (*v12.CoreV1Client, error) { func (impl K8sUtil) GetCoreV1ClientByRestConfig(restConfig *rest.Config) (*v12.CoreV1Client, error) { httpClientFor, err := rest.HTTPClientFor(restConfig) if err != nil { - impl.logger.Error("error occurred while overriding k8s client", "reason", err) + impl.Logger.Error("error occurred while overriding k8s client", "reason", err) return nil, err } k8sClient, err := v12.NewForConfigAndClient(restConfig, httpClientFor) if err != nil { - impl.logger.Error("error creating k8s client", "error", err) + impl.Logger.Error("error creating k8s client", "error", err) return nil, err } return k8sClient, err @@ -906,7 +962,7 @@ func (impl K8sUtil) GetCoreV1ClientByRestConfig(restConfig *rest.Config) (*v12.C func (impl K8sUtil) GetNodesList(ctx context.Context, k8sClientSet *kubernetes.Clientset) (*v1.NodeList, error) { nodeList, err := k8sClientSet.CoreV1().Nodes().List(ctx, metav1.ListOptions{}) if err != nil { - impl.logger.Errorw("error in getting node list", "err", err) + impl.Logger.Errorw("error in getting node list", "err", err) return nil, err } return nodeList, err @@ -914,7 +970,7 @@ func (impl K8sUtil) GetNodesList(ctx context.Context, k8sClientSet *kubernetes.C func (impl K8sUtil) GetNodeByName(ctx context.Context, k8sClientSet *kubernetes.Clientset, name string) (*v1.Node, error) { node, err := k8sClientSet.CoreV1().Nodes().Get(ctx, name, metav1.GetOptions{}) if err != nil { - impl.logger.Errorw("error in getting node by name", "err", err) + impl.Logger.Errorw("error in getting node by name", "err", err) return nil, err } return node, err @@ -923,7 +979,7 @@ func (impl K8sUtil) GetNodeByName(ctx context.Context, k8sClientSet *kubernetes. func (impl K8sUtil) GetServerVersionFromDiscoveryClient(k8sClientSet *kubernetes.Clientset) (*version.Info, error) { serverVersion, err := k8sClientSet.DiscoveryClient.ServerVersion() if err != nil { - impl.logger.Errorw("error in getting server version from discovery client", "err", err) + impl.Logger.Errorw("error in getting server version from discovery client", "err", err) return nil, err } return serverVersion, err @@ -931,7 +987,7 @@ func (impl K8sUtil) GetServerVersionFromDiscoveryClient(k8sClientSet *kubernetes func (impl K8sUtil) GetPodsListForNamespace(ctx context.Context, k8sClientSet *kubernetes.Clientset, namespace string) (*v1.PodList, error) { podList, err := k8sClientSet.CoreV1().Pods(namespace).List(ctx, metav1.ListOptions{}) if err != nil { - impl.logger.Errorw("error in getting pos list for namespace", "err", err) + impl.Logger.Errorw("error in getting pos list for namespace", "err", err) return nil, err } return podList, err @@ -939,7 +995,7 @@ func (impl K8sUtil) GetPodsListForNamespace(ctx context.Context, k8sClientSet *k func (impl K8sUtil) GetNmList(ctx context.Context, metricsClientSet *metrics.Clientset) (*v1beta1.NodeMetricsList, error) { nmList, err := metricsClientSet.MetricsV1beta1().NodeMetricses().List(ctx, metav1.ListOptions{}) if err != nil { - impl.logger.Errorw("error in getting node metrics", "err", err) + impl.Logger.Errorw("error in getting node metrics", "err", err) return nil, err } return nmList, err @@ -947,7 +1003,7 @@ func (impl K8sUtil) GetNmList(ctx context.Context, metricsClientSet *metrics.Cli func (impl K8sUtil) GetNmByName(ctx context.Context, metricsClientSet *metrics.Clientset, name string) (*v1beta1.NodeMetrics, error) { nodeMetrics, err := metricsClientSet.MetricsV1beta1().NodeMetricses().Get(ctx, name, metav1.GetOptions{}) if err != nil { - impl.logger.Errorw("error in getting node metrics by name", "err", err) + impl.Logger.Errorw("error in getting node metrics by name", "err", err) return nil, err } return nodeMetrics, err @@ -955,7 +1011,7 @@ func (impl K8sUtil) GetNmByName(ctx context.Context, metricsClientSet *metrics.C func (impl K8sUtil) GetMetricsClientSet(restConfig *rest.Config, k8sHttpClient *http.Client) (*metrics.Clientset, error) { metricsClientSet, err := metrics.NewForConfigAndClient(restConfig, k8sHttpClient) if err != nil { - impl.logger.Errorw("error in getting metrics client set", "err", err) + impl.Logger.Errorw("error in getting metrics client set", "err", err) return nil, err } return metricsClientSet, err @@ -1029,12 +1085,12 @@ func UpdateNodeUnschedulableProperty(desiredUnschedulable bool, node *v1.Node, k func (impl K8sUtil) CreateK8sClientSet(restConfig *rest.Config) (*kubernetes.Clientset, error) { k8sHttpClient, err := OverrideK8sHttpClientWithTracer(restConfig) if err != nil { - impl.logger.Errorw("service err, OverrideK8sHttpClientWithTracer", "err", err) + impl.Logger.Errorw("service err, OverrideK8sHttpClientWithTracer", "err", err) return nil, err } k8sClientSet, err := kubernetes.NewForConfigAndClient(restConfig, k8sHttpClient) if err != nil { - impl.logger.Errorw("error in getting client set by rest config", "err", err) + impl.Logger.Errorw("error in getting client set by rest config", "err", err) return nil, err } return k8sClientSet, err @@ -1093,17 +1149,17 @@ func (impl K8sUtil) GetResourceIf(restConfig *rest.Config, groupVersionKind sche } dynamicIf, err := dynamic.NewForConfigAndClient(restConfig, httpClient) if err != nil { - impl.logger.Errorw("error in getting dynamic interface for resource", "err", err) + impl.Logger.Errorw("error in getting dynamic interface for resource", "err", err) return nil, false, err } discoveryClient, err := discovery.NewDiscoveryClientForConfigAndClient(restConfig, httpClient) if err != nil { - impl.logger.Errorw("error in getting k8s client", "err", err) + impl.Logger.Errorw("error in getting k8s client", "err", err) return nil, false, err } apiResource, err := ServerResourceForGroupVersionKind(discoveryClient, groupVersionKind) if err != nil { - impl.logger.Errorw("error in getting server resource", "err", err) + impl.Logger.Errorw("error in getting server resource", "err", err) return nil, false, err } resource := groupVersionKind.GroupVersion().WithResource(apiResource.Name) @@ -1114,7 +1170,7 @@ func (impl K8sUtil) ListEvents(restConfig *rest.Config, namespace string, groupV _, namespaced, err := impl.GetResourceIf(restConfig, groupVersionKind) if err != nil { - impl.logger.Errorw("error in getting dynamic interface for resource", "err", err, "resource", name) + impl.Logger.Errorw("error in getting dynamic interface for resource", "err", err, "resource", name) return nil, err } groupVersionKind.Kind = "List" @@ -1123,12 +1179,12 @@ func (impl K8sUtil) ListEvents(restConfig *rest.Config, namespace string, groupV } httpClient, err := OverrideK8sHttpClientWithTracer(restConfig) if err != nil { - impl.logger.Errorw("error in getting http client", "err", err) + impl.Logger.Errorw("error in getting http client", "err", err) return nil, err } eventsClient, err := v12.NewForConfigAndClient(restConfig, httpClient) if err != nil { - impl.logger.Errorw("error in getting client for resource", "err", err, "resource", name) + impl.Logger.Errorw("error in getting client for resource", "err", err, "resource", name) return nil, err } eventsIf := eventsClient.Events(namespace) @@ -1143,7 +1199,7 @@ func (impl K8sUtil) ListEvents(restConfig *rest.Config, namespace string, groupV } list, err := eventsIf.List(ctx, listOptions) if err != nil { - impl.logger.Errorw("error in getting events list", "err", err, "resource", name) + impl.Logger.Errorw("error in getting events list", "err", err, "resource", name) return nil, err } return list, err @@ -1153,12 +1209,12 @@ func (impl K8sUtil) ListEvents(restConfig *rest.Config, namespace string, groupV func (impl K8sUtil) GetPodLogs(ctx context.Context, restConfig *rest.Config, name string, namespace string, sinceTime *metav1.Time, tailLines int, follow bool, containerName string, isPrevContainerLogsEnabled bool) (io.ReadCloser, error) { httpClient, err := OverrideK8sHttpClientWithTracer(restConfig) if err != nil { - impl.logger.Errorw("error in getting pod logs", "err", err) + impl.Logger.Errorw("error in getting pod logs", "err", err) return nil, err } podClient, err := v12.NewForConfigAndClient(restConfig, httpClient) if err != nil { - impl.logger.Errorw("error in getting client for resource", "err", err, "resource", name, "namespace", namespace) + impl.Logger.Errorw("error in getting client for resource", "err", err, "resource", name, "namespace", namespace) return nil, err } TailLines := int64(tailLines) @@ -1176,7 +1232,7 @@ func (impl K8sUtil) GetPodLogs(ctx context.Context, restConfig *rest.Config, nam logsRequest := podIf.GetLogs(name, podLogOptions) stream, err := logsRequest.Stream(ctx) if err != nil { - impl.logger.Errorw("error in streaming pod logs", "err", err, "resource", name, "namespace", namespace) + impl.Logger.Errorw("error in streaming pod logs", "err", err, "resource", name, "namespace", namespace) return nil, err } return stream, nil @@ -1184,17 +1240,17 @@ func (impl K8sUtil) GetPodLogs(ctx context.Context, restConfig *rest.Config, nam func (impl K8sUtil) GetResourceIfWithAcceptHeader(restConfig *rest.Config, groupVersionKind schema.GroupVersionKind) (resourceIf dynamic.NamespaceableResourceInterface, namespaced bool, err error) { httpClient, err := OverrideK8sHttpClientWithTracer(restConfig) if err != nil { - impl.logger.Errorw("error in getting http client", "err", err) + impl.Logger.Errorw("error in getting http client", "err", err) return nil, false, err } discoveryClient, err := discovery.NewDiscoveryClientForConfigAndClient(restConfig, httpClient) if err != nil { - impl.logger.Errorw("error in getting k8s client", "err", err) + impl.Logger.Errorw("error in getting k8s client", "err", err) return nil, false, err } apiResource, err := ServerResourceForGroupVersionKind(discoveryClient, groupVersionKind) if err != nil { - impl.logger.Errorw("error in getting server resource", "err", err) + impl.Logger.Errorw("error in getting server resource", "err", err) return nil, false, err } resource := groupVersionKind.GroupVersion().WithResource(apiResource.Name) @@ -1209,12 +1265,12 @@ func (impl K8sUtil) GetResourceIfWithAcceptHeader(restConfig *rest.Config, group } httpClient, err = OverrideK8sHttpClientWithTracer(restConfig) if err != nil { - impl.logger.Errorw("error in getting http client", "err", err) + impl.Logger.Errorw("error in getting http client", "err", err) return nil, false, err } dynamicIf, err := dynamic.NewForConfigAndClient(restConfig, httpClient) if err != nil { - impl.logger.Errorw("error in getting dynamic interface for resource", "err", err) + impl.Logger.Errorw("error in getting dynamic interface for resource", "err", err) return nil, false, err } return dynamicIf.Resource(resource), apiResource.Namespaced, nil @@ -1235,7 +1291,7 @@ func ServerResourceForGroupVersionKind(discoveryClient discovery.DiscoveryInterf func (impl K8sUtil) GetResourceList(ctx context.Context, restConfig *rest.Config, gvk schema.GroupVersionKind, namespace string) (*ResourceListResponse, bool, error) { resourceIf, namespaced, err := impl.GetResourceIfWithAcceptHeader(restConfig, gvk) if err != nil { - impl.logger.Errorw("error in getting dynamic interface for resource", "err", err, "namespace", namespace) + impl.Logger.Errorw("error in getting dynamic interface for resource", "err", err, "namespace", namespace) return nil, namespaced, err } var resp *unstructured.UnstructuredList @@ -1251,7 +1307,7 @@ func (impl K8sUtil) GetResourceList(ctx context.Context, restConfig *rest.Config resp, err = resourceIf.List(ctx, listOptions) } if err != nil { - impl.logger.Errorw("error in getting resource", "err", err, "namespace", namespace) + impl.Logger.Errorw("error in getting resource", "err", err, "namespace", namespace) return nil, namespaced, err } return &ResourceListResponse{*resp}, namespaced, nil @@ -1260,7 +1316,7 @@ func (impl K8sUtil) GetResourceList(ctx context.Context, restConfig *rest.Config func (impl K8sUtil) PatchResourceRequest(ctx context.Context, restConfig *rest.Config, pt types.PatchType, manifest string, name string, namespace string, gvk schema.GroupVersionKind) (*ManifestResponse, error) { resourceIf, namespaced, err := impl.GetResourceIf(restConfig, gvk) if err != nil { - impl.logger.Errorw("error in getting dynamic interface for resource", "err", err, "resource", name, "namespace", namespace) + impl.Logger.Errorw("error in getting dynamic interface for resource", "err", err, "resource", name, "namespace", namespace) return nil, err } @@ -1271,7 +1327,7 @@ func (impl K8sUtil) PatchResourceRequest(ctx context.Context, restConfig *rest.C resp, err = resourceIf.Patch(ctx, name, pt, []byte(manifest), metav1.PatchOptions{FieldManager: "patch"}) } if err != nil { - impl.logger.Errorw("error in applying resource", "err", err, "resource", name, "namespace", namespace) + impl.Logger.Errorw("error in applying resource", "err", err, "resource", name, "namespace", namespace) return nil, err } return &ManifestResponse{*resp}, nil @@ -1281,7 +1337,7 @@ func (impl K8sUtil) PatchResourceRequest(ctx context.Context, restConfig *rest.C func (impl K8sUtil) GetApiResources(restConfig *rest.Config, includeOnlyVerb string) ([]*K8sApiResource, error) { discoveryClient, err := discovery.NewDiscoveryClientForConfig(restConfig) if err != nil { - impl.logger.Errorw("error in getting dynamic k8s client", "err", err) + impl.Logger.Errorw("error in getting dynamic k8s client", "err", err) return nil, err } @@ -1293,7 +1349,7 @@ func (impl K8sUtil) GetApiResources(restConfig *rest.Config, includeOnlyVerb str case true: break default: - impl.logger.Errorw("error in getting api-resources from k8s", "err", err) + impl.Logger.Errorw("error in getting api-resources from k8s", "err", err) return nil, err } } @@ -1349,13 +1405,13 @@ func (impl K8sUtil) GetApiResources(restConfig *rest.Config, includeOnlyVerb str func (impl *K8sUtil) CreateResources(ctx context.Context, restConfig *rest.Config, manifest string, gvk schema.GroupVersionKind, namespace string) (*ManifestResponse, error) { resourceIf, namespaced, err := impl.GetResourceIf(restConfig, gvk) if err != nil { - impl.logger.Errorw("error in getting dynamic interface for resource", "err", err, "namespace", namespace) + impl.Logger.Errorw("error in getting dynamic interface for resource", "err", err, "namespace", namespace) return nil, err } var createObj map[string]interface{} err = json.Unmarshal([]byte(manifest), &createObj) if err != nil { - impl.logger.Errorw("error in json un-marshaling patch(manifest) string for creating resource", "err", err, "namespace", namespace) + impl.Logger.Errorw("error in json un-marshaling patch(manifest) string for creating resource", "err", err, "namespace", namespace) return nil, err } var resp *unstructured.Unstructured @@ -1365,7 +1421,7 @@ func (impl *K8sUtil) CreateResources(ctx context.Context, restConfig *rest.Confi resp, err = resourceIf.Create(ctx, &unstructured.Unstructured{Object: createObj}, metav1.CreateOptions{}) } if err != nil { - impl.logger.Errorw("error in creating resource", "err", err, "namespace", namespace) + impl.Logger.Errorw("error in creating resource", "err", err, "namespace", namespace) return nil, err } return &ManifestResponse{*resp}, nil @@ -1373,7 +1429,7 @@ func (impl *K8sUtil) CreateResources(ctx context.Context, restConfig *rest.Confi func (impl *K8sUtil) GetResource(ctx context.Context, namespace string, name string, gvk schema.GroupVersionKind, restConfig *rest.Config) (*ManifestResponse, error) { resourceIf, namespaced, err := impl.GetResourceIf(restConfig, gvk) if err != nil { - impl.logger.Errorw("error in getting dynamic interface for resource", "err", err, "namespace", namespace) + impl.Logger.Errorw("error in getting dynamic interface for resource", "err", err, "namespace", namespace) return nil, err } var resp *unstructured.Unstructured @@ -1383,7 +1439,7 @@ func (impl *K8sUtil) GetResource(ctx context.Context, namespace string, name str resp, err = resourceIf.Get(ctx, name, metav1.GetOptions{}) } if err != nil { - impl.logger.Errorw("error in getting resource", "err", err, "resource", name, "namespace", namespace) + impl.Logger.Errorw("error in getting resource", "err", err, "resource", name, "namespace", namespace) return nil, err } return &ManifestResponse{*resp}, nil @@ -1392,13 +1448,13 @@ func (impl *K8sUtil) UpdateResource(ctx context.Context, restConfig *rest.Config resourceIf, namespaced, err := impl.GetResourceIf(restConfig, gvk) if err != nil { - impl.logger.Errorw("error in getting dynamic interface for resource", "err", err, "namespace", namespace) + impl.Logger.Errorw("error in getting dynamic interface for resource", "err", err, "namespace", namespace) return nil, err } var updateObj map[string]interface{} err = json.Unmarshal([]byte(k8sRequestPatch), &updateObj) if err != nil { - impl.logger.Errorw("error in json un-marshaling patch string for updating resource ", "err", err, "namespace", namespace) + impl.Logger.Errorw("error in json un-marshaling patch string for updating resource ", "err", err, "namespace", namespace) return nil, err } var resp *unstructured.Unstructured @@ -1408,7 +1464,7 @@ func (impl *K8sUtil) UpdateResource(ctx context.Context, restConfig *rest.Config resp, err = resourceIf.Update(ctx, &unstructured.Unstructured{Object: updateObj}, metav1.UpdateOptions{}) } if err != nil { - impl.logger.Errorw("error in updating resource", "err", err, "namespace", namespace) + impl.Logger.Errorw("error in updating resource", "err", err, "namespace", namespace) return nil, err } return &ManifestResponse{*resp}, nil @@ -1417,7 +1473,7 @@ func (impl *K8sUtil) UpdateResource(ctx context.Context, restConfig *rest.Config func (impl *K8sUtil) DeleteResource(ctx context.Context, restConfig *rest.Config, gvk schema.GroupVersionKind, namespace string, name string, forceDelete bool) (*ManifestResponse, error) { resourceIf, namespaced, err := impl.GetResourceIf(restConfig, gvk) if err != nil { - impl.logger.Errorw("error in getting dynamic interface for resource", "err", err, "resource", name, "namespace", namespace) + impl.Logger.Errorw("error in getting dynamic interface for resource", "err", err, "resource", name, "namespace", namespace) return nil, err } var obj *unstructured.Unstructured @@ -1428,20 +1484,20 @@ func (impl *K8sUtil) DeleteResource(ctx context.Context, restConfig *rest.Config if len(namespace) > 0 && namespaced { obj, err = resourceIf.Namespace(namespace).Get(ctx, name, metav1.GetOptions{}) if err != nil { - impl.logger.Errorw("error in getting resource", "err", err, "resource", name, "namespace", namespace) + impl.Logger.Errorw("error in getting resource", "err", err, "resource", name, "namespace", namespace) return nil, err } err = resourceIf.Namespace(namespace).Delete(ctx, name, deleteOptions) } else { obj, err = resourceIf.Get(ctx, name, metav1.GetOptions{}) if err != nil { - impl.logger.Errorw("error in getting resource", "err", err, "resource", name, "namespace", namespace) + impl.Logger.Errorw("error in getting resource", "err", err, "resource", name, "namespace", namespace) return nil, err } err = resourceIf.Delete(ctx, name, deleteOptions) } if err != nil { - impl.logger.Errorw("error in deleting resource", "err", err, "resource", name, "namespace", namespace) + impl.Logger.Errorw("error in deleting resource", "err", err, "resource", name, "namespace", namespace) return nil, err } return &ManifestResponse{*obj}, nil @@ -1450,7 +1506,7 @@ func (impl *K8sUtil) DeleteResource(ctx context.Context, restConfig *rest.Config func (impl *K8sUtil) DecodeGroupKindversion(data string) (*schema.GroupVersionKind, error) { _, groupVersionKind, err := legacyscheme.Codecs.UniversalDeserializer().Decode([]byte(data), nil, nil) if err != nil { - impl.logger.Errorw("error occurred while extracting data for gvk", "err", err, "gvk", data) + impl.Logger.Errorw("error occurred while extracting data for gvk", "err", err, "gvk", data) return nil, err } return groupVersionKind, err @@ -1459,7 +1515,7 @@ func (impl *K8sUtil) DecodeGroupKindversion(data string) (*schema.GroupVersionKi func (impl K8sUtil) GetK8sServerVersion(clientSet *kubernetes.Clientset) (*version.Info, error) { k8sServerVersion, err := clientSet.DiscoveryClient.ServerVersion() if err != nil { - impl.logger.Errorw("error occurred in getting k8sServerVersion", "err", err) + impl.Logger.Errorw("error occurred in getting k8sServerVersion", "err", err) return nil, err } return k8sServerVersion, nil @@ -1468,12 +1524,12 @@ func (impl K8sUtil) GetK8sServerVersion(clientSet *kubernetes.Clientset) (*versi func (impl K8sUtil) ExtractK8sServerMajorAndMinorVersion(k8sServerVersion *version.Info) (int, int, error) { majorVersion, err := strconv.Atoi(k8sServerVersion.Major) if err != nil { - impl.logger.Errorw("error occurred in converting k8sServerVersion.Major version value to integer", "err", err, "k8sServerVersion.Major", k8sServerVersion.Major) + impl.Logger.Errorw("error occurred in converting k8sServerVersion.Major version value to integer", "err", err, "k8sServerVersion.Major", k8sServerVersion.Major) return 0, 0, err } minorVersion, err := strconv.Atoi(k8sServerVersion.Minor) if err != nil { - impl.logger.Errorw("error occurred in converting k8sServerVersion.Minor version value to integer", "err", err, "k8sServerVersion.Minor", k8sServerVersion.Minor) + impl.Logger.Errorw("error occurred in converting k8sServerVersion.Minor version value to integer", "err", err, "k8sServerVersion.Minor", k8sServerVersion.Minor) return majorVersion, 0, err } return majorVersion, minorVersion, nil @@ -1483,7 +1539,7 @@ func (impl K8sUtil) GetPodListByLabel(namespace, label string, clientSet *kubern pods := clientSet.CoreV1().Pods(namespace) podList, err := pods.List(context.Background(), metav1.ListOptions{LabelSelector: label}) if err != nil { - impl.logger.Errorw("get pod err, DeletePod", "err", err) + impl.Logger.Errorw("get pod err, DeletePod", "err", err) return nil, err } return podList.Items, nil