mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-20 10:20:51 +00:00
Merge pull request #76912 from tallclair/cloudinfo
Reregister cAdvisor cloud info providers in Kubelet
This commit is contained in:
commit
33f907a4df
@ -37,6 +37,9 @@ go_library(
|
|||||||
"//vendor/github.com/google/cadvisor/container/systemd/install:go_default_library",
|
"//vendor/github.com/google/cadvisor/container/systemd/install:go_default_library",
|
||||||
"//vendor/github.com/google/cadvisor/fs:go_default_library",
|
"//vendor/github.com/google/cadvisor/fs:go_default_library",
|
||||||
"//vendor/github.com/google/cadvisor/manager:go_default_library",
|
"//vendor/github.com/google/cadvisor/manager:go_default_library",
|
||||||
|
"//vendor/github.com/google/cadvisor/utils/cloudinfo/aws:go_default_library",
|
||||||
|
"//vendor/github.com/google/cadvisor/utils/cloudinfo/azure:go_default_library",
|
||||||
|
"//vendor/github.com/google/cadvisor/utils/cloudinfo/gce:go_default_library",
|
||||||
"//vendor/github.com/google/cadvisor/utils/sysfs:go_default_library",
|
"//vendor/github.com/google/cadvisor/utils/sysfs:go_default_library",
|
||||||
"//vendor/k8s.io/klog:go_default_library",
|
"//vendor/k8s.io/klog:go_default_library",
|
||||||
],
|
],
|
||||||
|
@ -26,11 +26,18 @@ import (
|
|||||||
"path"
|
"path"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
// Register supported container handlers.
|
||||||
_ "github.com/google/cadvisor/container/containerd/install"
|
_ "github.com/google/cadvisor/container/containerd/install"
|
||||||
_ "github.com/google/cadvisor/container/crio/install"
|
_ "github.com/google/cadvisor/container/crio/install"
|
||||||
_ "github.com/google/cadvisor/container/docker/install"
|
_ "github.com/google/cadvisor/container/docker/install"
|
||||||
_ "github.com/google/cadvisor/container/systemd/install"
|
_ "github.com/google/cadvisor/container/systemd/install"
|
||||||
|
|
||||||
|
// Register cloud info providers.
|
||||||
|
// TODO(#76660): Remove this once the cAdvisor endpoints are removed.
|
||||||
|
_ "github.com/google/cadvisor/utils/cloudinfo/aws"
|
||||||
|
_ "github.com/google/cadvisor/utils/cloudinfo/azure"
|
||||||
|
_ "github.com/google/cadvisor/utils/cloudinfo/gce"
|
||||||
|
|
||||||
"github.com/google/cadvisor/cache/memory"
|
"github.com/google/cadvisor/cache/memory"
|
||||||
cadvisormetrics "github.com/google/cadvisor/container"
|
cadvisormetrics "github.com/google/cadvisor/container"
|
||||||
"github.com/google/cadvisor/events"
|
"github.com/google/cadvisor/events"
|
||||||
|
7
vendor/github.com/google/cadvisor/utils/cloudinfo/BUILD
generated
vendored
7
vendor/github.com/google/cadvisor/utils/cloudinfo/BUILD
generated
vendored
@ -21,7 +21,12 @@ filegroup(
|
|||||||
|
|
||||||
filegroup(
|
filegroup(
|
||||||
name = "all-srcs",
|
name = "all-srcs",
|
||||||
srcs = [":package-srcs"],
|
srcs = [
|
||||||
|
":package-srcs",
|
||||||
|
"//vendor/github.com/google/cadvisor/utils/cloudinfo/aws:all-srcs",
|
||||||
|
"//vendor/github.com/google/cadvisor/utils/cloudinfo/azure:all-srcs",
|
||||||
|
"//vendor/github.com/google/cadvisor/utils/cloudinfo/gce:all-srcs",
|
||||||
|
],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
)
|
)
|
||||||
|
30
vendor/github.com/google/cadvisor/utils/cloudinfo/aws/BUILD
generated
vendored
Normal file
30
vendor/github.com/google/cadvisor/utils/cloudinfo/aws/BUILD
generated
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||||
|
|
||||||
|
go_library(
|
||||||
|
name = "go_default_library",
|
||||||
|
srcs = ["aws.go"],
|
||||||
|
importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/utils/cloudinfo/aws",
|
||||||
|
importpath = "github.com/google/cadvisor/utils/cloudinfo/aws",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [
|
||||||
|
"//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
|
||||||
|
"//vendor/github.com/aws/aws-sdk-go/aws/ec2metadata:go_default_library",
|
||||||
|
"//vendor/github.com/aws/aws-sdk-go/aws/session:go_default_library",
|
||||||
|
"//vendor/github.com/google/cadvisor/info/v1:go_default_library",
|
||||||
|
"//vendor/github.com/google/cadvisor/utils/cloudinfo:go_default_library",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "package-srcs",
|
||||||
|
srcs = glob(["**"]),
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:private"],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "all-srcs",
|
||||||
|
srcs = [":package-srcs"],
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
79
vendor/github.com/google/cadvisor/utils/cloudinfo/aws/aws.go
generated
vendored
Normal file
79
vendor/github.com/google/cadvisor/utils/cloudinfo/aws/aws.go
generated
vendored
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
// Copyright 2015 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 cloudinfo
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/aws/aws-sdk-go/aws"
|
||||||
|
"github.com/aws/aws-sdk-go/aws/ec2metadata"
|
||||||
|
"github.com/aws/aws-sdk-go/aws/session"
|
||||||
|
|
||||||
|
info "github.com/google/cadvisor/info/v1"
|
||||||
|
"github.com/google/cadvisor/utils/cloudinfo"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
productVerFileName = "/sys/class/dmi/id/product_version"
|
||||||
|
biosVerFileName = "/sys/class/dmi/id/bios_vendor"
|
||||||
|
amazon = "amazon"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
cloudinfo.RegisterCloudProvider(info.AWS, &provider{})
|
||||||
|
}
|
||||||
|
|
||||||
|
type provider struct{}
|
||||||
|
|
||||||
|
var _ cloudinfo.CloudProvider = provider{}
|
||||||
|
|
||||||
|
func (provider) IsActiveProvider() bool {
|
||||||
|
var dataProduct []byte
|
||||||
|
var dataBios []byte
|
||||||
|
if _, err := os.Stat(productVerFileName); err == nil {
|
||||||
|
dataProduct, err = ioutil.ReadFile(productVerFileName)
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := os.Stat(biosVerFileName); err == nil {
|
||||||
|
dataBios, err = ioutil.ReadFile(biosVerFileName)
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return strings.Contains(string(dataProduct), amazon) || strings.Contains(strings.ToLower(string(dataBios)), amazon)
|
||||||
|
}
|
||||||
|
|
||||||
|
func getAwsMetadata(name string) string {
|
||||||
|
client := ec2metadata.New(session.New(&aws.Config{}))
|
||||||
|
data, err := client.GetMetadata(name)
|
||||||
|
if err != nil {
|
||||||
|
return info.UnknownInstance
|
||||||
|
}
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
|
||||||
|
func (provider) GetInstanceType() info.InstanceType {
|
||||||
|
return info.InstanceType(getAwsMetadata("instance-type"))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (provider) GetInstanceID() info.InstanceID {
|
||||||
|
return info.InstanceID(getAwsMetadata("instance-id"))
|
||||||
|
}
|
27
vendor/github.com/google/cadvisor/utils/cloudinfo/azure/BUILD
generated
vendored
Normal file
27
vendor/github.com/google/cadvisor/utils/cloudinfo/azure/BUILD
generated
vendored
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||||
|
|
||||||
|
go_library(
|
||||||
|
name = "go_default_library",
|
||||||
|
srcs = ["azure.go"],
|
||||||
|
importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/utils/cloudinfo/azure",
|
||||||
|
importpath = "github.com/google/cadvisor/utils/cloudinfo/azure",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [
|
||||||
|
"//vendor/github.com/google/cadvisor/info/v1:go_default_library",
|
||||||
|
"//vendor/github.com/google/cadvisor/utils/cloudinfo:go_default_library",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "package-srcs",
|
||||||
|
srcs = glob(["**"]),
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:private"],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "all-srcs",
|
||||||
|
srcs = [":package-srcs"],
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
58
vendor/github.com/google/cadvisor/utils/cloudinfo/azure/azure.go
generated
vendored
Normal file
58
vendor/github.com/google/cadvisor/utils/cloudinfo/azure/azure.go
generated
vendored
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
// Copyright 2015 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 cloudinfo
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io/ioutil"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
info "github.com/google/cadvisor/info/v1"
|
||||||
|
"github.com/google/cadvisor/utils/cloudinfo"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
sysVendorFileName = "/sys/class/dmi/id/sys_vendor"
|
||||||
|
biosUUIDFileName = "/sys/class/dmi/id/product_uuid"
|
||||||
|
microsoftCorporation = "Microsoft Corporation"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
cloudinfo.RegisterCloudProvider(info.Azure, &provider{})
|
||||||
|
}
|
||||||
|
|
||||||
|
type provider struct{}
|
||||||
|
|
||||||
|
var _ cloudinfo.CloudProvider = provider{}
|
||||||
|
|
||||||
|
func (provider) IsActiveProvider() bool {
|
||||||
|
data, err := ioutil.ReadFile(sysVendorFileName)
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return strings.Contains(string(data), microsoftCorporation)
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Implement method.
|
||||||
|
func (provider) GetInstanceType() info.InstanceType {
|
||||||
|
return info.UnknownInstance
|
||||||
|
}
|
||||||
|
|
||||||
|
func (provider) GetInstanceID() info.InstanceID {
|
||||||
|
data, err := ioutil.ReadFile(biosUUIDFileName)
|
||||||
|
if err != nil {
|
||||||
|
return info.UnNamedInstance
|
||||||
|
}
|
||||||
|
return info.InstanceID(strings.TrimSuffix(string(data), "\n"))
|
||||||
|
}
|
29
vendor/github.com/google/cadvisor/utils/cloudinfo/gce/BUILD
generated
vendored
Normal file
29
vendor/github.com/google/cadvisor/utils/cloudinfo/gce/BUILD
generated
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||||
|
|
||||||
|
go_library(
|
||||||
|
name = "go_default_library",
|
||||||
|
srcs = ["gce.go"],
|
||||||
|
importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/utils/cloudinfo/gce",
|
||||||
|
importpath = "github.com/google/cadvisor/utils/cloudinfo/gce",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [
|
||||||
|
"//vendor/cloud.google.com/go/compute/metadata:go_default_library",
|
||||||
|
"//vendor/github.com/google/cadvisor/info/v1:go_default_library",
|
||||||
|
"//vendor/github.com/google/cadvisor/utils/cloudinfo:go_default_library",
|
||||||
|
"//vendor/k8s.io/klog:go_default_library",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "package-srcs",
|
||||||
|
srcs = glob(["**"]),
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:private"],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "all-srcs",
|
||||||
|
srcs = [":package-srcs"],
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
66
vendor/github.com/google/cadvisor/utils/cloudinfo/gce/gce.go
generated
vendored
Normal file
66
vendor/github.com/google/cadvisor/utils/cloudinfo/gce/gce.go
generated
vendored
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
// Copyright 2015 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 gce
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io/ioutil"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
info "github.com/google/cadvisor/info/v1"
|
||||||
|
"github.com/google/cadvisor/utils/cloudinfo"
|
||||||
|
|
||||||
|
"cloud.google.com/go/compute/metadata"
|
||||||
|
"k8s.io/klog"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
gceProductName = "/sys/class/dmi/id/product_name"
|
||||||
|
google = "Google"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
cloudinfo.RegisterCloudProvider(info.GCE, &provider{})
|
||||||
|
}
|
||||||
|
|
||||||
|
type provider struct{}
|
||||||
|
|
||||||
|
var _ cloudinfo.CloudProvider = provider{}
|
||||||
|
|
||||||
|
func (provider) IsActiveProvider() bool {
|
||||||
|
data, err := ioutil.ReadFile(gceProductName)
|
||||||
|
if err != nil {
|
||||||
|
klog.V(2).Infof("Error while reading product_name: %v", err)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return strings.Contains(string(data), google)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (provider) GetInstanceType() info.InstanceType {
|
||||||
|
machineType, err := metadata.Get("instance/machine-type")
|
||||||
|
if err != nil {
|
||||||
|
return info.UnknownInstance
|
||||||
|
}
|
||||||
|
|
||||||
|
responseParts := strings.Split(machineType, "/") // Extract the instance name from the machine type.
|
||||||
|
return info.InstanceType(responseParts[len(responseParts)-1])
|
||||||
|
}
|
||||||
|
|
||||||
|
func (provider) GetInstanceID() info.InstanceID {
|
||||||
|
instanceID, err := metadata.Get("instance/id")
|
||||||
|
if err != nil {
|
||||||
|
return info.UnknownInstance
|
||||||
|
}
|
||||||
|
return info.InstanceID(info.InstanceType(instanceID))
|
||||||
|
}
|
3
vendor/modules.txt
vendored
3
vendor/modules.txt
vendored
@ -445,6 +445,9 @@ github.com/google/cadvisor/storage
|
|||||||
github.com/google/cadvisor/summary
|
github.com/google/cadvisor/summary
|
||||||
github.com/google/cadvisor/utils
|
github.com/google/cadvisor/utils
|
||||||
github.com/google/cadvisor/utils/cloudinfo
|
github.com/google/cadvisor/utils/cloudinfo
|
||||||
|
github.com/google/cadvisor/utils/cloudinfo/aws
|
||||||
|
github.com/google/cadvisor/utils/cloudinfo/azure
|
||||||
|
github.com/google/cadvisor/utils/cloudinfo/gce
|
||||||
github.com/google/cadvisor/utils/cpuload
|
github.com/google/cadvisor/utils/cpuload
|
||||||
github.com/google/cadvisor/utils/cpuload/netlink
|
github.com/google/cadvisor/utils/cpuload/netlink
|
||||||
github.com/google/cadvisor/utils/docker
|
github.com/google/cadvisor/utils/docker
|
||||||
|
Loading…
Reference in New Issue
Block a user