Skip to content

Instantly share code, notes, and snippets.

@ncdc
Created May 26, 2017 16:54
Show Gist options
  • Save ncdc/14d44409a564ea3bcb0966de48009045 to your computer and use it in GitHub Desktop.
Save ncdc/14d44409a564ea3bcb0966de48009045 to your computer and use it in GitHub Desktop.
diff --git a/metrics/apis/metrics/install/install.go b/metrics/apis/metrics/install/install.go
index 208ac87..29aa18a 100644
--- a/metrics/apis/metrics/install/install.go
+++ b/metrics/apis/metrics/install/install.go
@@ -20,13 +20,8 @@ import (
"k8s.io/apimachinery/pkg/apimachinery/registered"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/sets"
- "k8s.io/client-go/pkg/api"
)
-func init() {
- Install(api.GroupFactoryRegistry, api.Registry, api.Scheme)
-}
-
// Install registers the API group and adds types to a scheme
func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) {
if err := announced.NewGroupMetaFactory(
diff --git a/metrics/apis/metrics/v1alpha1/register.go b/metrics/apis/metrics/v1alpha1/register.go
index a52e1fa..2908f5d 100644
--- a/metrics/apis/metrics/v1alpha1/register.go
+++ b/metrics/apis/metrics/v1alpha1/register.go
@@ -15,7 +15,6 @@
package v1alpha1
import (
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/client-go/pkg/api/v1"
@@ -45,6 +44,5 @@ func addKnownTypes(scheme *runtime.Scheme) error {
&PodMetricsList{},
&v1.ListOptions{},
)
- metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
return nil
}
diff --git a/metrics/cmd/heapster-apiserver/app/heapstermetrics.go b/metrics/cmd/heapster-apiserver/app/heapstermetrics.go
index 2ec8e82..027ef07 100644
--- a/metrics/cmd/heapster-apiserver/app/heapstermetrics.go
+++ b/metrics/cmd/heapster-apiserver/app/heapstermetrics.go
@@ -21,19 +21,45 @@ import (
metricsink "github.com/kubernetes-incubator/metrics-server/metrics/sinks/metric"
nodemetricsstorage "github.com/kubernetes-incubator/metrics-server/metrics/storage/nodemetrics"
podmetricsstorage "github.com/kubernetes-incubator/metrics-server/metrics/storage/podmetrics"
+ "k8s.io/apimachinery/pkg/apimachinery/announced"
+ "k8s.io/apimachinery/pkg/apimachinery/registered"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/runtime"
+ "k8s.io/apimachinery/pkg/runtime/schema"
+ "k8s.io/apimachinery/pkg/runtime/serializer"
"k8s.io/apiserver/pkg/registry/rest"
genericapiserver "k8s.io/apiserver/pkg/server"
v1listers "k8s.io/client-go/listers/core/v1"
- "k8s.io/client-go/pkg/api"
"k8s.io/metrics/pkg/apis/metrics"
- _ "k8s.io/metrics/pkg/apis/metrics/install"
+ "k8s.io/metrics/pkg/apis/metrics/install"
"k8s.io/metrics/pkg/apis/metrics/v1alpha1"
)
+var (
+ groupFactoryRegistry = make(announced.APIGroupFactoryRegistry)
+ registry = registered.NewOrDie("")
+ Scheme = runtime.NewScheme()
+ Codecs = serializer.NewCodecFactory(Scheme)
+)
+
func installMetricsAPIs(s *options.HeapsterRunOptions, g *genericapiserver.GenericAPIServer,
metricSink *metricsink.MetricSink, nodeLister v1listers.NodeLister, podLister v1listers.PodLister) {
+ install.Install(groupFactoryRegistry, registry, Scheme)
+
+ // we need to add the options to empty v1
+ metav1.AddToGroupVersion(Scheme, schema.GroupVersion{Group: "", Version: "v1"})
+
+ unversioned := schema.GroupVersion{Group: "", Version: "v1"}
+ Scheme.AddUnversionedTypes(unversioned,
+ &metav1.Status{},
+ &metav1.APIVersions{},
+ &metav1.APIGroupList{},
+ &metav1.APIGroup{},
+ &metav1.APIResourceList{},
+ )
- apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(metrics.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs)
+ apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(metrics.GroupName, registry, Scheme, metav1.ParameterCodec, Codecs)
+ apiGroupInfo.GroupMeta.GroupVersion = v1alpha1.SchemeGroupVersion
nodemetricsStorage := nodemetricsstorage.NewStorage(metrics.Resource("nodemetrics"), metricSink, nodeLister)
podmetricsStorage := podmetricsstorage.NewStorage(metrics.Resource("podmetrics"), metricSink, podLister)
diff --git a/metrics/cmd/heapster-apiserver/app/server.go b/metrics/cmd/heapster-apiserver/app/server.go
index dee08f9..f1f3458 100644
--- a/metrics/cmd/heapster-apiserver/app/server.go
+++ b/metrics/cmd/heapster-apiserver/app/server.go
@@ -26,7 +26,6 @@ import (
"k8s.io/apimachinery/pkg/util/wait"
genericapiserver "k8s.io/apiserver/pkg/server"
v1listers "k8s.io/client-go/listers/core/v1"
- "k8s.io/client-go/pkg/api"
)
type HeapsterAPIServer struct {
@@ -65,7 +64,7 @@ func newAPIServer(s *options.HeapsterRunOptions) (*genericapiserver.GenericAPISe
return nil, fmt.Errorf("error creating self-signed certificates: %v", err)
}
- serverConfig := genericapiserver.NewConfig(api.Codecs)
+ serverConfig := genericapiserver.NewConfig(Codecs)
if err := s.SecureServing.ApplyTo(serverConfig); err != nil {
return nil, err
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment