From 04946bbef00e8c32efdfbe7857fe738b25fb5baf Mon Sep 17 00:00:00 2001 From: clyang82 Date: Tue, 16 Mar 2021 14:46:04 +0800 Subject: [PATCH 1/3] enforce ReadWriteOnce Signed-off-by: clyang82 --- jsonnet/kube-thanos/kube-thanos-compact.libsonnet | 1 + jsonnet/kube-thanos/kube-thanos-receive.libsonnet | 1 + jsonnet/kube-thanos/kube-thanos-rule.libsonnet | 2 ++ jsonnet/kube-thanos/kube-thanos-store.libsonnet | 1 + 4 files changed, 5 insertions(+) diff --git a/jsonnet/kube-thanos/kube-thanos-compact.libsonnet b/jsonnet/kube-thanos/kube-thanos-compact.libsonnet index 4d68f8e..f0b3f59 100644 --- a/jsonnet/kube-thanos/kube-thanos-compact.libsonnet +++ b/jsonnet/kube-thanos/kube-thanos-compact.libsonnet @@ -47,6 +47,7 @@ function(params) { assert std.isNumber(tc.config.replicas) && (tc.config.replicas == 0 || tc.config.replicas == 1) : 'thanos compact replicas can only be 0 or 1', assert std.isObject(tc.config.resources), assert std.isObject(tc.config.volumeClaimTemplate), + assert std.assertEqual(tc.config.volumeClaimTemplate.spec.accessModes, ["ReadWriteOnce"]) : 'thanos compact PVC accessMode can only be ReadWriteOnce', assert std.isBoolean(tc.config.serviceMonitor), assert std.isArray(tc.config.deduplicationReplicaLabels), diff --git a/jsonnet/kube-thanos/kube-thanos-receive.libsonnet b/jsonnet/kube-thanos/kube-thanos-receive.libsonnet index 817db50..7372c1e 100644 --- a/jsonnet/kube-thanos/kube-thanos-receive.libsonnet +++ b/jsonnet/kube-thanos/kube-thanos-receive.libsonnet @@ -11,6 +11,7 @@ function(params) { assert std.isObject(tr.config.resources), assert std.isBoolean(tr.config.serviceMonitor), assert std.isObject(tr.config.volumeClaimTemplate), + assert std.assertEqual(tr.config.volumeClaimTemplate.spec.accessModes, ["ReadWriteOnce"]): 'thanos receive PVC accessMode can only be ReadWriteOnce', service: { apiVersion: 'v1', diff --git a/jsonnet/kube-thanos/kube-thanos-rule.libsonnet b/jsonnet/kube-thanos/kube-thanos-rule.libsonnet index 69e3bf2..899504a 100644 --- a/jsonnet/kube-thanos/kube-thanos-rule.libsonnet +++ b/jsonnet/kube-thanos/kube-thanos-rule.libsonnet @@ -51,6 +51,8 @@ function(params) { assert std.isObject(tr.config.resources), assert std.isBoolean(tr.config.serviceMonitor), assert std.isObject(tr.config.volumeClaimTemplate), + assert std.assertEqual(tr.config.volumeClaimTemplate.spec.accessModes, ["ReadWriteOnce"]): 'thanos rule PVC accessMode can only be ReadWriteOnce', + service: { apiVersion: 'v1', diff --git a/jsonnet/kube-thanos/kube-thanos-store.libsonnet b/jsonnet/kube-thanos/kube-thanos-store.libsonnet index 44c79c7..a2f962a 100644 --- a/jsonnet/kube-thanos/kube-thanos-store.libsonnet +++ b/jsonnet/kube-thanos/kube-thanos-store.libsonnet @@ -25,6 +25,7 @@ function(params) { assert std.isObject(ts.config.resources), assert std.isBoolean(ts.config.serviceMonitor), assert std.isObject(ts.config.volumeClaimTemplate), + assert std.assertEqual(ts.config.volumeClaimTemplate.spec.accessModes, ["ReadWriteOnce"]): 'thanos store PVC accessMode can only be ReadWriteOnce', service: { apiVersion: 'v1', From 5c02159c30dd98f09852655c6869f13c8be054b8 Mon Sep 17 00:00:00 2001 From: clyang82 Date: Tue, 16 Mar 2021 14:51:19 +0800 Subject: [PATCH 2/3] fix lint Signed-off-by: clyang82 --- jsonnet/kube-thanos/kube-thanos-compact.libsonnet | 2 +- jsonnet/kube-thanos/kube-thanos-receive.libsonnet | 2 +- jsonnet/kube-thanos/kube-thanos-rule.libsonnet | 2 +- jsonnet/kube-thanos/kube-thanos-store.libsonnet | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/jsonnet/kube-thanos/kube-thanos-compact.libsonnet b/jsonnet/kube-thanos/kube-thanos-compact.libsonnet index f0b3f59..c1f99f0 100644 --- a/jsonnet/kube-thanos/kube-thanos-compact.libsonnet +++ b/jsonnet/kube-thanos/kube-thanos-compact.libsonnet @@ -47,7 +47,7 @@ function(params) { assert std.isNumber(tc.config.replicas) && (tc.config.replicas == 0 || tc.config.replicas == 1) : 'thanos compact replicas can only be 0 or 1', assert std.isObject(tc.config.resources), assert std.isObject(tc.config.volumeClaimTemplate), - assert std.assertEqual(tc.config.volumeClaimTemplate.spec.accessModes, ["ReadWriteOnce"]) : 'thanos compact PVC accessMode can only be ReadWriteOnce', + assert std.assertEqual(tc.config.volumeClaimTemplate.spec.accessModes, ['ReadWriteOnce']) : 'thanos compact PVC accessMode can only be ReadWriteOnce', assert std.isBoolean(tc.config.serviceMonitor), assert std.isArray(tc.config.deduplicationReplicaLabels), diff --git a/jsonnet/kube-thanos/kube-thanos-receive.libsonnet b/jsonnet/kube-thanos/kube-thanos-receive.libsonnet index 7372c1e..55be30c 100644 --- a/jsonnet/kube-thanos/kube-thanos-receive.libsonnet +++ b/jsonnet/kube-thanos/kube-thanos-receive.libsonnet @@ -11,7 +11,7 @@ function(params) { assert std.isObject(tr.config.resources), assert std.isBoolean(tr.config.serviceMonitor), assert std.isObject(tr.config.volumeClaimTemplate), - assert std.assertEqual(tr.config.volumeClaimTemplate.spec.accessModes, ["ReadWriteOnce"]): 'thanos receive PVC accessMode can only be ReadWriteOnce', + assert std.assertEqual(tr.config.volumeClaimTemplate.spec.accessModes, ['ReadWriteOnce']) : 'thanos receive PVC accessMode can only be ReadWriteOnce', service: { apiVersion: 'v1', diff --git a/jsonnet/kube-thanos/kube-thanos-rule.libsonnet b/jsonnet/kube-thanos/kube-thanos-rule.libsonnet index 899504a..dfdcfc9 100644 --- a/jsonnet/kube-thanos/kube-thanos-rule.libsonnet +++ b/jsonnet/kube-thanos/kube-thanos-rule.libsonnet @@ -51,7 +51,7 @@ function(params) { assert std.isObject(tr.config.resources), assert std.isBoolean(tr.config.serviceMonitor), assert std.isObject(tr.config.volumeClaimTemplate), - assert std.assertEqual(tr.config.volumeClaimTemplate.spec.accessModes, ["ReadWriteOnce"]): 'thanos rule PVC accessMode can only be ReadWriteOnce', + assert std.assertEqual(tr.config.volumeClaimTemplate.spec.accessModes, ['ReadWriteOnce']) : 'thanos rule PVC accessMode can only be ReadWriteOnce', service: { diff --git a/jsonnet/kube-thanos/kube-thanos-store.libsonnet b/jsonnet/kube-thanos/kube-thanos-store.libsonnet index a2f962a..8d3b2e7 100644 --- a/jsonnet/kube-thanos/kube-thanos-store.libsonnet +++ b/jsonnet/kube-thanos/kube-thanos-store.libsonnet @@ -25,7 +25,7 @@ function(params) { assert std.isObject(ts.config.resources), assert std.isBoolean(ts.config.serviceMonitor), assert std.isObject(ts.config.volumeClaimTemplate), - assert std.assertEqual(ts.config.volumeClaimTemplate.spec.accessModes, ["ReadWriteOnce"]): 'thanos store PVC accessMode can only be ReadWriteOnce', + assert std.assertEqual(ts.config.volumeClaimTemplate.spec.accessModes, ['ReadWriteOnce']) : 'thanos store PVC accessMode can only be ReadWriteOnce', service: { apiVersion: 'v1', From aa753041fcad1e66f8ee9f580630ed08bf7ceed4 Mon Sep 17 00:00:00 2001 From: clyang82 Date: Wed, 17 Mar 2021 14:30:39 +0800 Subject: [PATCH 3/3] handle volumeClaimTemplate does not exist Signed-off-by: clyang82 --- jsonnet/kube-thanos/kube-thanos-compact.libsonnet | 2 +- jsonnet/kube-thanos/kube-thanos-receive.libsonnet | 2 +- jsonnet/kube-thanos/kube-thanos-rule.libsonnet | 2 +- jsonnet/kube-thanos/kube-thanos-store.libsonnet | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/jsonnet/kube-thanos/kube-thanos-compact.libsonnet b/jsonnet/kube-thanos/kube-thanos-compact.libsonnet index c1f99f0..9412161 100644 --- a/jsonnet/kube-thanos/kube-thanos-compact.libsonnet +++ b/jsonnet/kube-thanos/kube-thanos-compact.libsonnet @@ -47,7 +47,7 @@ function(params) { assert std.isNumber(tc.config.replicas) && (tc.config.replicas == 0 || tc.config.replicas == 1) : 'thanos compact replicas can only be 0 or 1', assert std.isObject(tc.config.resources), assert std.isObject(tc.config.volumeClaimTemplate), - assert std.assertEqual(tc.config.volumeClaimTemplate.spec.accessModes, ['ReadWriteOnce']) : 'thanos compact PVC accessMode can only be ReadWriteOnce', + assert !std.objectHas(tc.config.volumeClaimTemplate, 'spec') || std.assertEqual(tc.config.volumeClaimTemplate.spec.accessModes, ['ReadWriteOnce']) : 'thanos compact PVC accessMode can only be ReadWriteOnce', assert std.isBoolean(tc.config.serviceMonitor), assert std.isArray(tc.config.deduplicationReplicaLabels), diff --git a/jsonnet/kube-thanos/kube-thanos-receive.libsonnet b/jsonnet/kube-thanos/kube-thanos-receive.libsonnet index 55be30c..8a76224 100644 --- a/jsonnet/kube-thanos/kube-thanos-receive.libsonnet +++ b/jsonnet/kube-thanos/kube-thanos-receive.libsonnet @@ -11,7 +11,7 @@ function(params) { assert std.isObject(tr.config.resources), assert std.isBoolean(tr.config.serviceMonitor), assert std.isObject(tr.config.volumeClaimTemplate), - assert std.assertEqual(tr.config.volumeClaimTemplate.spec.accessModes, ['ReadWriteOnce']) : 'thanos receive PVC accessMode can only be ReadWriteOnce', + assert !std.objectHas(tr.config.volumeClaimTemplate, 'spec') || std.assertEqual(tr.config.volumeClaimTemplate.spec.accessModes, ['ReadWriteOnce']) : 'thanos receive PVC accessMode can only be ReadWriteOnce', service: { apiVersion: 'v1', diff --git a/jsonnet/kube-thanos/kube-thanos-rule.libsonnet b/jsonnet/kube-thanos/kube-thanos-rule.libsonnet index dfdcfc9..2801e51 100644 --- a/jsonnet/kube-thanos/kube-thanos-rule.libsonnet +++ b/jsonnet/kube-thanos/kube-thanos-rule.libsonnet @@ -51,7 +51,7 @@ function(params) { assert std.isObject(tr.config.resources), assert std.isBoolean(tr.config.serviceMonitor), assert std.isObject(tr.config.volumeClaimTemplate), - assert std.assertEqual(tr.config.volumeClaimTemplate.spec.accessModes, ['ReadWriteOnce']) : 'thanos rule PVC accessMode can only be ReadWriteOnce', + assert !std.objectHas(tr.config.volumeClaimTemplate, 'spec') || std.assertEqual(tr.config.volumeClaimTemplate.spec.accessModes, ['ReadWriteOnce']) : 'thanos rule PVC accessMode can only be ReadWriteOnce', service: { diff --git a/jsonnet/kube-thanos/kube-thanos-store.libsonnet b/jsonnet/kube-thanos/kube-thanos-store.libsonnet index 8d3b2e7..7dd54c8 100644 --- a/jsonnet/kube-thanos/kube-thanos-store.libsonnet +++ b/jsonnet/kube-thanos/kube-thanos-store.libsonnet @@ -25,7 +25,7 @@ function(params) { assert std.isObject(ts.config.resources), assert std.isBoolean(ts.config.serviceMonitor), assert std.isObject(ts.config.volumeClaimTemplate), - assert std.assertEqual(ts.config.volumeClaimTemplate.spec.accessModes, ['ReadWriteOnce']) : 'thanos store PVC accessMode can only be ReadWriteOnce', + assert !std.objectHas(ts.config.volumeClaimTemplate, 'spec') || std.assertEqual(ts.config.volumeClaimTemplate.spec.accessModes, ['ReadWriteOnce']) : 'thanos store PVC accessMode can only be ReadWriteOnce', service: { apiVersion: 'v1',