Skip to content

Commit

Permalink
Update adapter with Kubernetes 1.12.0
Browse files Browse the repository at this point in the history
  • Loading branch information
astefanutti committed Nov 14, 2018
1 parent bf78789 commit 0ff925d
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 11 deletions.
6 changes: 3 additions & 3 deletions pkg/cmd/server/start.go
Expand Up @@ -35,7 +35,7 @@ type CustomMetricsAdapterServerOptions struct {

func NewCustomMetricsAdapterServerOptions() *CustomMetricsAdapterServerOptions {
o := &CustomMetricsAdapterServerOptions{
SecureServing: genericoptions.WithLoopback(genericoptions.NewSecureServingOptions()),
SecureServing: genericoptions.NewSecureServingOptions().WithLoopback(),
Authentication: genericoptions.NewDelegatingAuthenticationOptions(),
Authorization: genericoptions.NewDelegatingAuthorizationOptions(),
Features: genericoptions.NewFeatureOptions(),
Expand All @@ -59,11 +59,11 @@ func (o CustomMetricsAdapterServerOptions) Config() (*apiserver.Config, error) {
}

serverConfig := genericapiserver.NewConfig(apiserver.Codecs)
if err := o.SecureServing.ApplyTo(serverConfig); err != nil {
if err := o.SecureServing.ApplyTo(&serverConfig.SecureServing, &serverConfig.LoopbackClientConfig); err != nil {
return nil, err
}

if err := o.Authentication.ApplyTo(&serverConfig.Authentication, serverConfig.SecureServing, nil); err != nil {
if err := o.Authentication.ApplyTo(&serverConfig.Authentication, serverConfig.SecureServing, serverConfig.OpenAPIConfig); err != nil {
return nil, err
}
if err := o.Authorization.ApplyTo(&serverConfig.Authorization); err != nil {
Expand Down
28 changes: 20 additions & 8 deletions test-adapter/provider/provider.go
Expand Up @@ -205,18 +205,30 @@ func (p *testingProvider) valueFor(info provider.CustomMetricInfo, name types.Na
}

// metricFor is a helper function which formats a value, metric, and object info into a MetricValue which can be returned by the metrics API
func (p *testingProvider) metricFor(value resource.Quantity, name types.NamespacedName, info provider.CustomMetricInfo) (*custom_metrics.MetricValue, error) {
func (p *testingProvider) metricFor(value resource.Quantity, name types.NamespacedName, selector labels.Selector, info provider.CustomMetricInfo) (*custom_metrics.MetricValue, error) {
objRef, err := helpers.ReferenceFor(p.mapper, name, info)
if err != nil {
return nil, err
}

return &custom_metrics.MetricValue{
metric := &custom_metrics.MetricValue{
DescribedObject: objRef,
MetricName: info.Metric,
Timestamp: metav1.Time{time.Now()},
Value: value,
}, nil
Metric: custom_metrics.MetricIdentifier{
Name: info.Metric,
},
Timestamp: metav1.Time{time.Now()},
Value: value,
}

if len(selector.String()) > 0 {
labelSelector, err := metav1.ParseToLabelSelector(selector.String())
if err != nil {
return nil, err
}
metric.Metric.Selector = labelSelector
}

return metric, nil
}

// metricsFor is a wrapper used by GetMetricBySelector to format several metrics which match a resource selector
Expand All @@ -237,7 +249,7 @@ func (p *testingProvider) metricsFor(namespace string, selector labels.Selector,
return nil, err
}

metric, err := p.metricFor(value, namespacedName, info)
metric, err := p.metricFor(value, namespacedName, selector, info)
if err != nil {
return nil, err
}
Expand All @@ -257,7 +269,7 @@ func (p *testingProvider) GetMetricByName(name types.NamespacedName, info provid
if err != nil {
return nil, err
}
return p.metricFor(value, name, info)
return p.metricFor(value, name, labels.Everything(), info)
}

func (p *testingProvider) GetMetricBySelector(namespace string, selector labels.Selector, info provider.CustomMetricInfo) (*custom_metrics.MetricValueList, error) {
Expand Down

0 comments on commit 0ff925d

Please sign in to comment.