diff --git a/jsonnet/kube-prometheus/kube-prometheus-custom-metrics.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-custom-metrics.libsonnet
index bbbd7a69767068e53283a2f7f02a8c6de82ebea7..110ace440bf3a068b166be360a80633ab6afe9aa 100644
--- a/jsonnet/kube-prometheus/kube-prometheus-custom-metrics.libsonnet
+++ b/jsonnet/kube-prometheus/kube-prometheus-custom-metrics.libsonnet
@@ -1,5 +1,3 @@
-local k = import 'github.com/ksonnet/ksonnet-lib/ksonnet.beta.4/k.libsonnet';
-
 // Custom metrics API allows the HPA v2 to scale based on arbirary metrics.
 // For more details on usage visit https://github.com/DirectXMan12/k8s-prometheus-adapter#quick-links
 
@@ -14,19 +12,12 @@ local k = import 'github.com/ksonnet/ksonnet-lib/ksonnet.beta.4/k.libsonnet';
             seriesFilters: [],
             resources: {
               overrides: {
-                namespace: {
-                  resource: 'namespace'
-                },
-                pod: {
-                  resource: 'pod'
-                }
+                namespace: { resource: 'namespace' },
+                pod: { resource: 'pod' },
               },
             },
-            name: {
-              matches: '^container_(.*)_seconds_total$',
-              as: ""
-            },
-            metricsQuery: 'sum(rate(<<.Series>>{<<.LabelMatchers>>,container!="POD"}[1m])) by (<<.GroupBy>>)'
+            name: { matches: '^container_(.*)_seconds_total$', as: '' },
+            metricsQuery: 'sum(rate(<<.Series>>{<<.LabelMatchers>>,container!="POD"}[1m])) by (<<.GroupBy>>)',
           },
           {
             seriesQuery: '{__name__=~"^container_.*",container!="POD",namespace!="",pod!=""}',
@@ -35,19 +26,12 @@ local k = import 'github.com/ksonnet/ksonnet-lib/ksonnet.beta.4/k.libsonnet';
             ],
             resources: {
               overrides: {
-                namespace: {
-                  resource: 'namespace'
-                },
-                pod: {
-                  resource: 'pod'
-                }
+                namespace: { resource: 'namespace' },
+                pod: { resource: 'pod' },
               },
             },
-            name: {
-              matches: '^container_(.*)_total$',
-              as: ''
-            },
-            metricsQuery: 'sum(rate(<<.Series>>{<<.LabelMatchers>>,container!="POD"}[1m])) by (<<.GroupBy>>)'
+            name: { matches: '^container_(.*)_total$', as: '' },
+            metricsQuery: 'sum(rate(<<.Series>>{<<.LabelMatchers>>,container!="POD"}[1m])) by (<<.GroupBy>>)',
           },
           {
             seriesQuery: '{__name__=~"^container_.*",container!="POD",namespace!="",pod!=""}',
@@ -56,60 +40,38 @@ local k = import 'github.com/ksonnet/ksonnet-lib/ksonnet.beta.4/k.libsonnet';
             ],
             resources: {
               overrides: {
-                namespace: {
-                  resource: 'namespace'
-                },
-                pod: {
-                  resource: 'pod'
-                }
+                namespace: { resource: 'namespace' },
+                pod: { resource: 'pod' },
               },
             },
-            name: {
-              matches: '^container_(.*)$',
-              as: ''
-            },
-            metricsQuery: 'sum(<<.Series>>{<<.LabelMatchers>>,container!="POD"}) by (<<.GroupBy>>)'
+            name: { matches: '^container_(.*)$', as: '' },
+            metricsQuery: 'sum(<<.Series>>{<<.LabelMatchers>>,container!="POD"}) by (<<.GroupBy>>)',
           },
           {
             seriesQuery: '{namespace!="",__name__!~"^container_.*"}',
             seriesFilters: [
               { isNot: '.*_total$' },
             ],
-            resources: {
-              template: '<<.Resource>>'
-            },
-            name: {
-              matches: '',
-              as: ''
-            },
-            metricsQuery: 'sum(<<.Series>>{<<.LabelMatchers>>}) by (<<.GroupBy>>)'
+            resources: { template: '<<.Resource>>' },
+            name: { matches: '', as: '' },
+            metricsQuery: 'sum(<<.Series>>{<<.LabelMatchers>>}) by (<<.GroupBy>>)',
           },
           {
             seriesQuery: '{namespace!="",__name__!~"^container_.*"}',
             seriesFilters: [
               { isNot: '.*_seconds_total' },
             ],
-            resources: {
-              template: '<<.Resource>>'
-            },
-            name: {
-              matches: '^(.*)_total$',
-              as: ''
-            },
-            metricsQuery: 'sum(rate(<<.Series>>{<<.LabelMatchers>>}[1m])) by (<<.GroupBy>>)'
+            resources: { template: '<<.Resource>>' },
+            name: { matches: '^(.*)_total$', as: '' },
+            metricsQuery: 'sum(rate(<<.Series>>{<<.LabelMatchers>>}[1m])) by (<<.GroupBy>>)',
           },
           {
             seriesQuery: '{namespace!="",__name__!~"^container_.*"}',
             seriesFilters: [],
-            resources: {
-              template: '<<.Resource>>'
-            },
-            name: {
-              matches: '^(.*)_seconds_total$',
-              as: ''
-            },
-            metricsQuery: 'sum(rate(<<.Series>>{<<.LabelMatchers>>}[1m])) by (<<.GroupBy>>)'
-          }
+            resources: { template: '<<.Resource>>' },
+            name: { matches: '^(.*)_seconds_total$', as: '' },
+            metricsQuery: 'sum(rate(<<.Series>>{<<.LabelMatchers>>}[1m])) by (<<.GroupBy>>)',
+          },
         ],
       },
     },
@@ -152,46 +114,53 @@ local k = import 'github.com/ksonnet/ksonnet-lib/ksonnet.beta.4/k.libsonnet';
         versionPriority: 200,
       },
     },
-    customMetricsClusterRoleServerResources:
-      local clusterRole = k.rbac.v1.clusterRole;
-      local policyRule = clusterRole.rulesType;
-
-      local rules =
-        policyRule.new() +
-        policyRule.withApiGroups(['custom.metrics.k8s.io']) +
-        policyRule.withResources(['*']) +
-        policyRule.withVerbs(['*']);
-
-      clusterRole.new() +
-      clusterRole.mixin.metadata.withName('custom-metrics-server-resources') +
-      clusterRole.withRules(rules),
-
-    customMetricsClusterRoleBindingServerResources:
-      local clusterRoleBinding = k.rbac.v1.clusterRoleBinding;
+    customMetricsClusterRoleServerResources: {
+      apiVersion: 'rbac.authorization.k8s.io/v1',
+      kind: 'ClusterRole',
+      metadata: {
+        name: 'custom-metrics-server-resources',
+      },
+      rules: [{
+        apiGroups: ['custom.metrics.k8s.io'],
+        resources: ['*'],
+        verbs: ['*'],
+      }],
+    },
+    customMetricsClusterRoleBindingServerResources: {
+      apiVersion: 'rbac.authorization.k8s.io/v1',
+      kind: 'ClusterRoleBinding',
+      metadata: {
+        name: 'custom-metrics-server-resources',
+      },
 
-      clusterRoleBinding.new() +
-      clusterRoleBinding.mixin.metadata.withName('custom-metrics-server-resources') +
-      clusterRoleBinding.mixin.roleRef.withApiGroup('rbac.authorization.k8s.io') +
-      clusterRoleBinding.mixin.roleRef.withName('custom-metrics-server-resources') +
-      clusterRoleBinding.mixin.roleRef.mixinInstance({ kind: 'ClusterRole' }) +
-      clusterRoleBinding.withSubjects([{
+      roleRef: {
+        apiGroup: 'rbac.authorization.k8s.io',
+        kind: 'ClusterRole',
+        name: 'custom-metrics-server-resources',
+      },
+      subjects: [{
         kind: 'ServiceAccount',
         name: $.prometheusAdapter.serviceAccount.metadata.name,
         namespace: $._config.namespace,
-      }]),
-
-    customMetricsClusterRoleBindingHPA:
-      local clusterRoleBinding = k.rbac.v1.clusterRoleBinding;
+      }],
+    },
+    customMetricsClusterRoleBindingHPA: {
+      apiVersion: 'rbac.authorization.k8s.io/v1',
+      kind: 'ClusterRoleBinding',
+      metadata: {
+        name: 'hpa-controller-custom-metrics',
+      },
 
-      clusterRoleBinding.new() +
-      clusterRoleBinding.mixin.metadata.withName('hpa-controller-custom-metrics') +
-      clusterRoleBinding.mixin.roleRef.withApiGroup('rbac.authorization.k8s.io') +
-      clusterRoleBinding.mixin.roleRef.withName('custom-metrics-server-resources') +
-      clusterRoleBinding.mixin.roleRef.mixinInstance({ kind: 'ClusterRole' }) +
-      clusterRoleBinding.withSubjects([{
+      roleRef: {
+        apiGroup: 'rbac.authorization.k8s.io',
+        kind: 'ClusterRole',
+        name: 'custom-metrics-server-resources',
+      },
+      subjects: [{
         kind: 'ServiceAccount',
         name: 'horizontal-pod-autoscaler',
         namespace: 'kube-system',
-      }]),
-  }
+      }],
+    },
+  },
 }