remove heapster from project dependencies

This commit is contained in:
MartinForReal
2023-05-17 07:23:26 +00:00
parent d4aeca09f5
commit 75095b2573
6 changed files with 3 additions and 211 deletions

View File

@@ -0,0 +1,148 @@
// Copyright 2014 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package problemclient
import (
"fmt"
"io/ioutil"
"net/url"
"strconv"
"k8s.io/apimachinery/pkg/runtime/schema"
kube_rest "k8s.io/client-go/rest"
kubeClientCmd "k8s.io/client-go/tools/clientcmd"
kubeClientCmdApi "k8s.io/client-go/tools/clientcmd/api"
)
const (
APIVersion = "v1"
defaultKubeletPort = 10255
defaultKubeletHttps = false
defaultUseServiceAccount = false
defaultServiceAccountFile = "/var/run/secrets/kubernetes.io/serviceaccount/token"
defaultInClusterConfig = true
)
func getConfigOverrides(uri *url.URL) (*kubeClientCmd.ConfigOverrides, error) {
kubeConfigOverride := kubeClientCmd.ConfigOverrides{
ClusterInfo: kubeClientCmdApi.Cluster{},
}
if len(uri.Scheme) != 0 && len(uri.Host) != 0 {
kubeConfigOverride.ClusterInfo.Server = fmt.Sprintf("%s://%s", uri.Scheme, uri.Host)
}
opts := uri.Query()
if len(opts["insecure"]) > 0 {
insecure, err := strconv.ParseBool(opts["insecure"][0])
if err != nil {
return nil, err
}
kubeConfigOverride.ClusterInfo.InsecureSkipTLSVerify = insecure
}
return &kubeConfigOverride, nil
}
func getKubeClientConfig(uri *url.URL) (*kube_rest.Config, error) {
var (
kubeConfig *kube_rest.Config
err error
)
opts := uri.Query()
configOverrides, err := getConfigOverrides(uri)
if err != nil {
return nil, err
}
inClusterConfig := defaultInClusterConfig
if len(opts["inClusterConfig"]) > 0 {
inClusterConfig, err = strconv.ParseBool(opts["inClusterConfig"][0])
if err != nil {
return nil, err
}
}
if inClusterConfig {
kubeConfig, err = kube_rest.InClusterConfig()
if err != nil {
return nil, err
}
if configOverrides.ClusterInfo.Server != "" {
kubeConfig.Host = configOverrides.ClusterInfo.Server
}
kubeConfig.GroupVersion = &schema.GroupVersion{Version: APIVersion}
kubeConfig.Insecure = configOverrides.ClusterInfo.InsecureSkipTLSVerify
if configOverrides.ClusterInfo.InsecureSkipTLSVerify {
kubeConfig.TLSClientConfig.CAFile = ""
}
} else {
authFile := ""
if len(opts["auth"]) > 0 {
authFile = opts["auth"][0]
}
if authFile != "" {
// Load structured kubeconfig data from the given path.
loader := &kubeClientCmd.ClientConfigLoadingRules{ExplicitPath: authFile}
loadedConfig, err := loader.Load()
if err != nil {
return nil, err
}
// Flatten the loaded data to a particular restclient.Config based on the current context.
if kubeConfig, err = kubeClientCmd.NewNonInteractiveClientConfig(
*loadedConfig,
loadedConfig.CurrentContext,
&kubeClientCmd.ConfigOverrides{},
loader).ClientConfig(); err != nil {
return nil, err
}
} else {
kubeConfig = &kube_rest.Config{
Host: configOverrides.ClusterInfo.Server,
TLSClientConfig: kube_rest.TLSClientConfig{
Insecure: configOverrides.ClusterInfo.InsecureSkipTLSVerify,
},
}
kubeConfig.GroupVersion = &schema.GroupVersion{Version: APIVersion}
}
}
if len(kubeConfig.Host) == 0 {
return nil, fmt.Errorf("invalid kubernetes master url specified")
}
useServiceAccount := defaultUseServiceAccount
if len(opts["useServiceAccount"]) >= 1 {
useServiceAccount, err = strconv.ParseBool(opts["useServiceAccount"][0])
if err != nil {
return nil, err
}
}
if useServiceAccount {
// If a readable service account token exists, then use it
if contents, err := ioutil.ReadFile(defaultServiceAccountFile); err == nil {
kubeConfig.BearerToken = string(contents)
}
}
kubeConfig.ContentType = "application/vnd.kubernetes.protobuf"
return kubeConfig, nil
}

View File

@@ -34,7 +34,6 @@ import (
"k8s.io/client-go/tools/record"
"github.com/golang/glog"
"k8s.io/heapster/common/kubernetes"
"k8s.io/node-problem-detector/cmd/options"
"k8s.io/node-problem-detector/pkg/version"
)
@@ -68,7 +67,7 @@ func NewClientOrDie(npdo *options.NodeProblemDetectorOptions) Client {
// we have checked it is a valid URI after command line argument is parsed.:)
uri, _ := url.Parse(npdo.ApiServerOverride)
cfg, err := kubernetes.GetKubeClientConfig(uri)
cfg, err := getKubeClientConfig(uri)
if err != nil {
panic(err)
}