mirror of
https://github.com/zalando-incubator/kube-metrics-adapter.git
synced 2025-05-13 16:59:37 +00:00
Compare commits
2 Commits
v0.1.14
...
gen-openap
Author | SHA1 | Date | |
---|---|---|---|
c614b57a63 | |||
5bd527b698 |
34
Makefile
34
Makefile
@ -1,19 +1,22 @@
|
|||||||
.PHONY: clean test check build.local build.linux build.osx build.docker build.push
|
.PHONY: clean test check build.local build.linux build.osx build.docker build.push
|
||||||
|
|
||||||
BINARY ?= kube-metrics-adapter
|
BINARY ?= kube-metrics-adapter
|
||||||
VERSION ?= $(shell git describe --tags --always --dirty)
|
VERSION ?= $(shell git describe --tags --always --dirty)
|
||||||
IMAGE ?= registry-write.opensource.zalan.do/teapot/$(BINARY)
|
IMAGE ?= registry-write.opensource.zalan.do/teapot/$(BINARY)
|
||||||
TAG ?= $(VERSION)
|
TAG ?= $(VERSION)
|
||||||
SOURCES = $(shell find . -name '*.go')
|
SOURCES = $(shell find . -name '*.go')
|
||||||
DOCKERFILE ?= Dockerfile
|
DOCKERFILE ?= Dockerfile
|
||||||
GOPKGS = $(shell go list ./...)
|
GOPKGS = $(shell go list ./...)
|
||||||
BUILD_FLAGS ?= -v
|
GO_OPENAPI_GEN = ./build/openapi-gen
|
||||||
LDFLAGS ?= -X main.version=$(VERSION) -w -s
|
OPENAPI_GEN = pkg/apiserver/generated/openapi/zz_generated.openapi.go
|
||||||
|
BUILD_FLAGS ?= -v
|
||||||
|
LDFLAGS ?= -X main.version=$(VERSION) -w -s
|
||||||
|
|
||||||
default: build.local
|
default: build.local
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf build
|
rm -rf build
|
||||||
|
rm -rf $(OPENAPI_GEN)
|
||||||
|
|
||||||
test:
|
test:
|
||||||
go test -v $(GOPKGS)
|
go test -v $(GOPKGS)
|
||||||
@ -22,17 +25,24 @@ check:
|
|||||||
go mod download
|
go mod download
|
||||||
golangci-lint run --timeout=2m ./...
|
golangci-lint run --timeout=2m ./...
|
||||||
|
|
||||||
|
$(GO_OPENAPI_GEN):
|
||||||
|
mkdir -p build
|
||||||
|
GOBIN=$(shell pwd)/build go install k8s.io/kube-openapi/cmd/openapi-gen
|
||||||
|
|
||||||
|
$(OPENAPI_GEN): $(GO_OPENAPI_GEN)
|
||||||
|
$(GO_OPENAPI_GEN) -o . --go-header-file hack/boilerplate.go.txt --logtostderr -i k8s.io/metrics/pkg/apis/custom_metrics,k8s.io/metrics/pkg/apis/custom_metrics/v1beta1,k8s.io/metrics/pkg/apis/custom_metrics/v1beta2,k8s.io/metrics/pkg/apis/external_metrics,k8s.io/metrics/pkg/apis/external_metrics/v1beta1,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/apimachinery/pkg/api/resource,k8s.io/apimachinery/pkg/version,k8s.io/api/core/v1 -p pkg/apiserver/generated/openapi -O zz_generated.openapi -r /dev/null
|
||||||
|
|
||||||
build.local: build/$(BINARY)
|
build.local: build/$(BINARY)
|
||||||
build.linux: build/linux/$(BINARY)
|
build.linux: build/linux/$(BINARY)
|
||||||
build.osx: build/osx/$(BINARY)
|
build.osx: build/osx/$(BINARY)
|
||||||
|
|
||||||
build/$(BINARY): go.mod $(SOURCES)
|
build/$(BINARY): go.mod $(OPENAPI_GEN) $(SOURCES)
|
||||||
CGO_ENABLED=0 go build -o build/$(BINARY) $(BUILD_FLAGS) -ldflags "$(LDFLAGS)" .
|
CGO_ENABLED=0 go build -o build/$(BINARY) $(BUILD_FLAGS) -ldflags "$(LDFLAGS)" .
|
||||||
|
|
||||||
build/linux/$(BINARY): go.mod $(SOURCES)
|
build/linux/$(BINARY): go.mod $(OPENAPI_GEN) $(SOURCES)
|
||||||
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build $(BUILD_FLAGS) -o build/linux/$(BINARY) -ldflags "$(LDFLAGS)" .
|
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build $(BUILD_FLAGS) -o build/linux/$(BINARY) -ldflags "$(LDFLAGS)" .
|
||||||
|
|
||||||
build/osx/$(BINARY): go.mod $(SOURCES)
|
build/osx/$(BINARY): go.mod $(OPENAPI_GEN) $(SOURCES)
|
||||||
GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build $(BUILD_FLAGS) -o build/osx/$(BINARY) -ldflags "$(LDFLAGS)" .
|
GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build $(BUILD_FLAGS) -o build/osx/$(BINARY) -ldflags "$(LDFLAGS)" .
|
||||||
|
|
||||||
build.docker: build.linux
|
build.docker: build.linux
|
||||||
|
19
go.mod
19
go.mod
@ -3,13 +3,13 @@ module github.com/zalando-incubator/kube-metrics-adapter
|
|||||||
require (
|
require (
|
||||||
github.com/NYTimes/gziphandler v1.0.1 // indirect
|
github.com/NYTimes/gziphandler v1.0.1 // indirect
|
||||||
github.com/aws/aws-sdk-go v1.31.7
|
github.com/aws/aws-sdk-go v1.31.7
|
||||||
|
github.com/go-openapi/spec v0.19.3
|
||||||
github.com/googleapis/gnostic v0.2.0 // indirect
|
github.com/googleapis/gnostic v0.2.0 // indirect
|
||||||
github.com/influxdata/influxdb-client-go v0.1.5
|
github.com/influxdata/influxdb-client-go v0.1.5
|
||||||
github.com/kubernetes-incubator/custom-metrics-apiserver v0.0.0-20200323093244-5046ce1afe6b
|
github.com/kubernetes-incubator/custom-metrics-apiserver v0.0.0-20200618121405-54026617ec44
|
||||||
github.com/lib/pq v1.2.0 // indirect
|
github.com/lib/pq v1.2.0 // indirect
|
||||||
github.com/mattn/go-colorable v0.1.4 // indirect
|
github.com/mattn/go-colorable v0.1.4 // indirect
|
||||||
github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852
|
github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852
|
||||||
github.com/onsi/ginkgo v1.11.0 // indirect
|
|
||||||
github.com/onsi/gomega v1.8.1 // indirect
|
github.com/onsi/gomega v1.8.1 // indirect
|
||||||
github.com/prometheus/client_golang v1.6.0
|
github.com/prometheus/client_golang v1.6.0
|
||||||
github.com/prometheus/common v0.10.0
|
github.com/prometheus/common v0.10.0
|
||||||
@ -17,16 +17,19 @@ require (
|
|||||||
github.com/spf13/cobra v0.0.7
|
github.com/spf13/cobra v0.0.7
|
||||||
github.com/stretchr/testify v1.6.0
|
github.com/stretchr/testify v1.6.0
|
||||||
github.com/zalando-incubator/cluster-lifecycle-manager v0.0.0-20180921141935-824b77fb1f84
|
github.com/zalando-incubator/cluster-lifecycle-manager v0.0.0-20180921141935-824b77fb1f84
|
||||||
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975 // indirect
|
|
||||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
|
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
|
||||||
golang.org/x/tools v0.0.0-20200204192400-7124308813f3 // indirect
|
golang.org/x/tools v0.0.0-20200204192400-7124308813f3 // indirect
|
||||||
|
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e // indirect
|
||||||
honnef.co/go/tools v0.0.1-2020.1.3 // indirect
|
honnef.co/go/tools v0.0.1-2020.1.3 // indirect
|
||||||
k8s.io/api v0.17.3
|
k8s.io/api v0.18.4
|
||||||
k8s.io/apimachinery v0.17.4
|
k8s.io/apiextensions-apiserver v0.18.4
|
||||||
k8s.io/client-go v0.17.3
|
k8s.io/apimachinery v0.18.4
|
||||||
k8s.io/component-base v0.17.3
|
k8s.io/apiserver v0.18.4
|
||||||
|
k8s.io/client-go v0.18.4
|
||||||
|
k8s.io/component-base v0.18.4
|
||||||
k8s.io/klog v1.0.0
|
k8s.io/klog v1.0.0
|
||||||
k8s.io/metrics v0.17.3
|
k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6
|
||||||
|
k8s.io/metrics v0.18.4
|
||||||
)
|
)
|
||||||
|
|
||||||
go 1.13
|
go 1.13
|
||||||
|
15
hack/boilerplate.go.txt
Normal file
15
hack/boilerplate.go.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
/*
|
||||||
|
Copyright YEAR The Kubernetes Authors.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/
|
13824
pkg/apiserver/generated/openapi/zz_generated.openapi.go
Normal file
13824
pkg/apiserver/generated/openapi/zz_generated.openapi.go
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,7 @@
|
|||||||
package collector
|
package collector
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
@ -8,9 +9,9 @@ import (
|
|||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
"github.com/zalando-incubator/kube-metrics-adapter/pkg/collector/httpmetrics"
|
"github.com/zalando-incubator/kube-metrics-adapter/pkg/collector/httpmetrics"
|
||||||
autoscalingv2 "k8s.io/api/autoscaling/v2beta2"
|
autoscalingv2 "k8s.io/api/autoscaling/v2beta2"
|
||||||
|
corev1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
"k8s.io/apimachinery/pkg/api/resource"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
corev1 "k8s.io/api/core/v1"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
"k8s.io/client-go/kubernetes"
|
"k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/metrics/pkg/apis/custom_metrics"
|
"k8s.io/metrics/pkg/apis/custom_metrics"
|
||||||
@ -81,7 +82,7 @@ func (c *PodCollector) GetMetrics() ([]CollectedMetric, error) {
|
|||||||
LabelSelector: labels.Set(c.podLabelSelector.MatchLabels).String(),
|
LabelSelector: labels.Set(c.podLabelSelector.MatchLabels).String(),
|
||||||
}
|
}
|
||||||
|
|
||||||
pods, err := c.client.CoreV1().Pods(c.namespace).List(opts)
|
pods, err := c.client.CoreV1().Pods(c.namespace).List(context.TODO(), opts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -95,9 +96,9 @@ func (c *PodCollector) GetMetrics() ([]CollectedMetric, error) {
|
|||||||
values := make([]CollectedMetric, 0, len(pods.Items))
|
values := make([]CollectedMetric, 0, len(pods.Items))
|
||||||
for i := 0; i < len(pods.Items); i++ {
|
for i := 0; i < len(pods.Items); i++ {
|
||||||
select {
|
select {
|
||||||
case err := <- errCh:
|
case err := <-errCh:
|
||||||
c.logger.Error(err)
|
c.logger.Error(err)
|
||||||
case resp := <- ch:
|
case resp := <-ch:
|
||||||
values = append(values, resp)
|
values = append(values, resp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -135,13 +136,13 @@ func (c *PodCollector) getPodMetric(pod corev1.Pod, ch chan CollectedMetric, err
|
|||||||
func getPodLabelSelector(client kubernetes.Interface, hpa *autoscalingv2.HorizontalPodAutoscaler) (*metav1.LabelSelector, error) {
|
func getPodLabelSelector(client kubernetes.Interface, hpa *autoscalingv2.HorizontalPodAutoscaler) (*metav1.LabelSelector, error) {
|
||||||
switch hpa.Spec.ScaleTargetRef.Kind {
|
switch hpa.Spec.ScaleTargetRef.Kind {
|
||||||
case "Deployment":
|
case "Deployment":
|
||||||
deployment, err := client.AppsV1().Deployments(hpa.Namespace).Get(hpa.Spec.ScaleTargetRef.Name, metav1.GetOptions{})
|
deployment, err := client.AppsV1().Deployments(hpa.Namespace).Get(context.TODO(), hpa.Spec.ScaleTargetRef.Name, metav1.GetOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return deployment.Spec.Selector, nil
|
return deployment.Spec.Selector, nil
|
||||||
case "StatefulSet":
|
case "StatefulSet":
|
||||||
sts, err := client.AppsV1().StatefulSets(hpa.Namespace).Get(hpa.Spec.ScaleTargetRef.Name, metav1.GetOptions{})
|
sts, err := client.AppsV1().StatefulSets(hpa.Namespace).Get(context.TODO(), hpa.Spec.ScaleTargetRef.Name, metav1.GetOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,15 @@
|
|||||||
package collector
|
package collector
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
"sync"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
"sync"
|
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
appsv1 "k8s.io/api/apps/v1"
|
appsv1 "k8s.io/api/apps/v1"
|
||||||
@ -115,7 +116,7 @@ func makeTestPods(t *testing.T, testServer string, metricName string, port strin
|
|||||||
PodIP: testServer,
|
PodIP: testServer,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
_, err := client.CoreV1().Pods(testNamespace).Create(testPod)
|
_, err := client.CoreV1().Pods(testNamespace).Create(context.TODO(), testPod, v1.CreateOptions{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -129,7 +130,7 @@ func makeTestDeployment(t *testing.T, client kubernetes.Interface) *appsv1.Deplo
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
_, err := client.AppsV1().Deployments(testNamespace).Create(&deployment)
|
_, err := client.AppsV1().Deployments(testNamespace).Create(context.TODO(), &deployment, v1.CreateOptions{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
return &deployment
|
return &deployment
|
||||||
|
|
||||||
@ -149,7 +150,7 @@ func makeTestHPA(t *testing.T, client kubernetes.Interface) *autoscalingv2.Horiz
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
_, err := client.AutoscalingV2beta2().HorizontalPodAutoscalers("test-namespace").Create(hpa)
|
_, err := client.AutoscalingV2beta2().HorizontalPodAutoscalers("test-namespace").Create(context.TODO(), hpa, v1.CreateOptions{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
return hpa
|
return hpa
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package collector
|
package collector
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
@ -125,7 +126,7 @@ func getWeights(ingressAnnotations map[string]string, backendAnnotations []strin
|
|||||||
|
|
||||||
// getCollector returns a collector for getting the metrics.
|
// getCollector returns a collector for getting the metrics.
|
||||||
func (c *SkipperCollector) getCollector() (Collector, error) {
|
func (c *SkipperCollector) getCollector() (Collector, error) {
|
||||||
ingress, err := c.client.NetworkingV1beta1().Ingresses(c.objectReference.Namespace).Get(c.objectReference.Name, metav1.GetOptions{})
|
ingress, err := c.client.NetworkingV1beta1().Ingresses(c.objectReference.Namespace).Get(context.TODO(), c.objectReference.Name, metav1.GetOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -207,13 +208,13 @@ func targetRefReplicas(client kubernetes.Interface, hpa *autoscalingv2.Horizonta
|
|||||||
var replicas int32
|
var replicas int32
|
||||||
switch hpa.Spec.ScaleTargetRef.Kind {
|
switch hpa.Spec.ScaleTargetRef.Kind {
|
||||||
case "Deployment":
|
case "Deployment":
|
||||||
deployment, err := client.AppsV1().Deployments(hpa.Namespace).Get(hpa.Spec.ScaleTargetRef.Name, metav1.GetOptions{})
|
deployment, err := client.AppsV1().Deployments(hpa.Namespace).Get(context.TODO(), hpa.Spec.ScaleTargetRef.Name, metav1.GetOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
replicas = deployment.Status.Replicas
|
replicas = deployment.Status.Replicas
|
||||||
case "StatefulSet":
|
case "StatefulSet":
|
||||||
sts, err := client.AppsV1().StatefulSets(hpa.Namespace).Get(hpa.Spec.ScaleTargetRef.Name, metav1.GetOptions{})
|
sts, err := client.AppsV1().StatefulSets(hpa.Namespace).Get(context.TODO(), hpa.Spec.ScaleTargetRef.Name, metav1.GetOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package collector
|
package collector
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
@ -32,7 +33,7 @@ func TestTargetRefReplicasDeployments(t *testing.T) {
|
|||||||
|
|
||||||
// Create an HPA with the deployment as ref
|
// Create an HPA with the deployment as ref
|
||||||
hpa, err := client.AutoscalingV2beta2().HorizontalPodAutoscalers(deployment.Namespace).
|
hpa, err := client.AutoscalingV2beta2().HorizontalPodAutoscalers(deployment.Namespace).
|
||||||
Create(newHPA(defaultNamespace, name, "Deployment"))
|
Create(context.TODO(), newHPA(defaultNamespace, name, "Deployment"), metav1.CreateOptions{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
replicas, err := targetRefReplicas(client, hpa)
|
replicas, err := targetRefReplicas(client, hpa)
|
||||||
@ -49,7 +50,7 @@ func TestTargetRefReplicasStatefulSets(t *testing.T) {
|
|||||||
|
|
||||||
// Create an HPA with the statefulSet as ref
|
// Create an HPA with the statefulSet as ref
|
||||||
hpa, err := client.AutoscalingV2beta2().HorizontalPodAutoscalers(statefulSet.Namespace).
|
hpa, err := client.AutoscalingV2beta2().HorizontalPodAutoscalers(statefulSet.Namespace).
|
||||||
Create(newHPA(defaultNamespace, name, "StatefulSet"))
|
Create(context.TODO(), newHPA(defaultNamespace, name, "StatefulSet"), metav1.CreateOptions{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
replicas, err := targetRefReplicas(client, hpa)
|
replicas, err := targetRefReplicas(client, hpa)
|
||||||
@ -73,7 +74,7 @@ func newHPA(namesapce string, refName string, refKind string) *autoscalingv2.Hor
|
|||||||
}
|
}
|
||||||
|
|
||||||
func newDeployment(client *fake.Clientset, namespace string, name string, replicas, readyReplicas int32) (*appsv1.Deployment, error) {
|
func newDeployment(client *fake.Clientset, namespace string, name string, replicas, readyReplicas int32) (*appsv1.Deployment, error) {
|
||||||
return client.AppsV1().Deployments(namespace).Create(&appsv1.Deployment{
|
return client.AppsV1().Deployments(namespace).Create(context.TODO(), &appsv1.Deployment{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: name,
|
Name: name,
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
@ -83,11 +84,11 @@ func newDeployment(client *fake.Clientset, namespace string, name string, replic
|
|||||||
ReadyReplicas: replicas,
|
ReadyReplicas: replicas,
|
||||||
Replicas: readyReplicas,
|
Replicas: readyReplicas,
|
||||||
},
|
},
|
||||||
})
|
}, metav1.CreateOptions{})
|
||||||
}
|
}
|
||||||
|
|
||||||
func newStatefulSet(client *fake.Clientset, namespace string, name string) (*appsv1.StatefulSet, error) {
|
func newStatefulSet(client *fake.Clientset, namespace string, name string) (*appsv1.StatefulSet, error) {
|
||||||
return client.AppsV1().StatefulSets(namespace).Create(&appsv1.StatefulSet{
|
return client.AppsV1().StatefulSets(namespace).Create(context.TODO(), &appsv1.StatefulSet{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: name,
|
Name: name,
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
@ -96,7 +97,7 @@ func newStatefulSet(client *fake.Clientset, namespace string, name string) (*app
|
|||||||
ReadyReplicas: 1,
|
ReadyReplicas: 1,
|
||||||
Replicas: 2,
|
Replicas: 2,
|
||||||
},
|
},
|
||||||
})
|
}, metav1.CreateOptions{})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSkipperCollector(t *testing.T) {
|
func TestSkipperCollector(t *testing.T) {
|
||||||
@ -382,7 +383,7 @@ func makeIngress(client kubernetes.Interface, namespace, ingressName, backend st
|
|||||||
Host: hostname,
|
Host: hostname,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
_, err := client.NetworkingV1beta1().Ingresses(namespace).Create(ingress)
|
_, err := client.NetworkingV1beta1().Ingresses(namespace).Create(context.TODO(), ingress, metav1.CreateOptions{})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ func (p *HPAProvider) Run(ctx context.Context) {
|
|||||||
func (p *HPAProvider) updateHPAs() error {
|
func (p *HPAProvider) updateHPAs() error {
|
||||||
p.logger.Info("Looking for HPAs")
|
p.logger.Info("Looking for HPAs")
|
||||||
|
|
||||||
hpas, err := p.client.AutoscalingV2beta2().HorizontalPodAutoscalers(metav1.NamespaceAll).List(metav1.ListOptions{})
|
hpas, err := p.client.AutoscalingV2beta2().HorizontalPodAutoscalers(metav1.NamespaceAll).List(context.TODO(), metav1.ListOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ func TestUpdateHPAs(t *testing.T) {
|
|||||||
fakeClient := fake.NewSimpleClientset()
|
fakeClient := fake.NewSimpleClientset()
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
hpa, err = fakeClient.AutoscalingV2beta2().HorizontalPodAutoscalers("default").Create(hpa)
|
hpa, err = fakeClient.AutoscalingV2beta2().HorizontalPodAutoscalers("default").Create(context.TODO(), hpa, metav1.CreateOptions{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
collectorFactory := collector.NewCollectorFactory()
|
collectorFactory := collector.NewCollectorFactory()
|
||||||
@ -86,7 +86,7 @@ func TestUpdateHPAs(t *testing.T) {
|
|||||||
|
|
||||||
// update HPA
|
// update HPA
|
||||||
hpa.Annotations["metric-config.pods.requests-per-second.json-path/port"] = "8080"
|
hpa.Annotations["metric-config.pods.requests-per-second.json-path/port"] = "8080"
|
||||||
_, err = fakeClient.AutoscalingV2beta2().HorizontalPodAutoscalers("default").Update(hpa)
|
_, err = fakeClient.AutoscalingV2beta2().HorizontalPodAutoscalers("default").Update(context.TODO(), hpa, metav1.UpdateOptions{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = provider.updateHPAs()
|
err = provider.updateHPAs()
|
||||||
@ -134,7 +134,7 @@ func TestUpdateHPAsDisregardingIncompatibleHPA(t *testing.T) {
|
|||||||
fakeClient := fake.NewSimpleClientset()
|
fakeClient := fake.NewSimpleClientset()
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
_, err = fakeClient.AutoscalingV2beta2().HorizontalPodAutoscalers("default").Create(hpa)
|
_, err = fakeClient.AutoscalingV2beta2().HorizontalPodAutoscalers("default").Create(context.TODO(), hpa, metav1.CreateOptions{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
collectorFactory := collector.NewCollectorFactory()
|
collectorFactory := collector.NewCollectorFactory()
|
||||||
|
@ -29,10 +29,14 @@ import (
|
|||||||
"github.com/prometheus/client_golang/prometheus/promhttp"
|
"github.com/prometheus/client_golang/prometheus/promhttp"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"github.com/zalando-incubator/cluster-lifecycle-manager/pkg/credentials-loader/platformiam"
|
"github.com/zalando-incubator/cluster-lifecycle-manager/pkg/credentials-loader/platformiam"
|
||||||
|
generatedopenapi "github.com/zalando-incubator/kube-metrics-adapter/pkg/apiserver/generated/openapi"
|
||||||
"github.com/zalando-incubator/kube-metrics-adapter/pkg/collector"
|
"github.com/zalando-incubator/kube-metrics-adapter/pkg/collector"
|
||||||
"github.com/zalando-incubator/kube-metrics-adapter/pkg/provider"
|
"github.com/zalando-incubator/kube-metrics-adapter/pkg/provider"
|
||||||
"github.com/zalando-incubator/kube-metrics-adapter/pkg/zmon"
|
"github.com/zalando-incubator/kube-metrics-adapter/pkg/zmon"
|
||||||
"golang.org/x/oauth2"
|
"golang.org/x/oauth2"
|
||||||
|
"k8s.io/apiextensions-apiserver/pkg/apiserver"
|
||||||
|
openapinamer "k8s.io/apiserver/pkg/endpoints/openapi"
|
||||||
|
genericapiserver "k8s.io/apiserver/pkg/server"
|
||||||
"k8s.io/client-go/informers"
|
"k8s.io/client-go/informers"
|
||||||
"k8s.io/client-go/kubernetes"
|
"k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/client-go/rest"
|
"k8s.io/client-go/rest"
|
||||||
@ -126,6 +130,10 @@ func (o AdapterServerOptions) RunCustomMetricsAdapterServer(stopCh <-chan struct
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
config.GenericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(generatedopenapi.GetOpenAPIDefinitions, openapinamer.NewDefinitionNamer(apiserver.Scheme))
|
||||||
|
config.GenericConfig.OpenAPIConfig.Info.Title = "kube-metrics-adapter"
|
||||||
|
config.GenericConfig.OpenAPIConfig.Info.Version = "1.0.0"
|
||||||
|
|
||||||
var clientConfig *rest.Config
|
var clientConfig *rest.Config
|
||||||
if len(o.RemoteKubeConfigFile) > 0 {
|
if len(o.RemoteKubeConfigFile) > 0 {
|
||||||
loadingRules := &clientcmd.ClientConfigLoadingRules{ExplicitPath: o.RemoteKubeConfigFile}
|
loadingRules := &clientcmd.ClientConfigLoadingRules{ExplicitPath: o.RemoteKubeConfigFile}
|
||||||
|
Reference in New Issue
Block a user