jsonnet: unify metadata management

This commit is contained in:
paulfantom
2021-11-01 11:19:34 +01:00
parent ba8ec69845
commit 1870702831
9 changed files with 156 additions and 253 deletions

View File

@@ -49,6 +49,11 @@ function(params) {
// Safety check
assert std.isObject(ne._config.resources),
assert std.isObject(ne._config.mixin._config),
_metadata:: {
name: ne._config.name,
namespace: ne._config.namespace,
labels: ne._config.commonLabels,
},
mixin:: (import 'github.com/prometheus/node_exporter/docs/node-mixin/mixin.libsonnet') +
(import 'github.com/kubernetes-monitoring/kubernetes-mixin/lib/add-runbook-links.libsonnet') {
@@ -58,10 +63,9 @@ function(params) {
prometheusRule: {
apiVersion: 'monitoring.coreos.com/v1',
kind: 'PrometheusRule',
metadata: {
labels: ne._config.commonLabels + ne._config.mixin.ruleLabels,
metadata: ne._metadata {
labels+: ne._config.mixin.ruleLabels,
name: ne._config.name + '-rules',
namespace: ne._config.namespace,
},
spec: {
local r = if std.objectHasAll(ne.mixin, 'prometheusRules') then ne.mixin.prometheusRules.groups else [],
@@ -73,10 +77,7 @@ function(params) {
clusterRoleBinding: {
apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'ClusterRoleBinding',
metadata: {
name: ne._config.name,
labels: ne._config.commonLabels,
},
metadata: ne._metadata,
roleRef: {
apiGroup: 'rbac.authorization.k8s.io',
kind: 'ClusterRole',
@@ -92,10 +93,7 @@ function(params) {
clusterRole: {
apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'ClusterRole',
metadata: {
name: ne._config.name,
labels: ne._config.commonLabels,
},
metadata: ne._metadata,
rules: [
{
apiGroups: ['authentication.k8s.io'],
@@ -113,21 +111,13 @@ function(params) {
serviceAccount: {
apiVersion: 'v1',
kind: 'ServiceAccount',
metadata: {
name: ne._config.name,
namespace: ne._config.namespace,
labels: ne._config.commonLabels,
},
metadata: ne._metadata,
},
service: {
apiVersion: 'v1',
kind: 'Service',
metadata: {
name: ne._config.name,
namespace: ne._config.namespace,
labels: ne._config.commonLabels,
},
metadata: ne._metadata,
spec: {
ports: [
{ name: 'https', targetPort: 'https', port: ne._config.port },
@@ -140,11 +130,7 @@ function(params) {
serviceMonitor: {
apiVersion: 'monitoring.coreos.com/v1',
kind: 'ServiceMonitor',
metadata: {
name: ne._config.name,
namespace: ne._config.namespace,
labels: ne._config.commonLabels,
},
metadata: ne._metadata,
spec: {
jobLabel: 'app.kubernetes.io/name',
selector: {
@@ -221,11 +207,7 @@ function(params) {
{
apiVersion: 'apps/v1',
kind: 'DaemonSet',
metadata: {
name: ne._config.name,
namespace: ne._config.namespace,
labels: ne._config.commonLabels,
},
metadata: ne._metadata,
spec: {
selector: { matchLabels: ne._config.selectorLabels },
updateStrategy: {
@@ -260,6 +242,4 @@ function(params) {
},
},
},
}