Skip to content

Commit 87d2895

Browse files
vyzigoldopenshift-cherrypick-robot
authored andcommitted
Add NodeSelector for MetricStorage
1 parent e150794 commit 87d2895

10 files changed

Lines changed: 53 additions & 0 deletions

api/bases/telemetry.openstack.org_metricstorages.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1742,6 +1742,12 @@ spec:
17421742
default: true
17431743
description: AlertingEnabled allows to enable or disable alertmanager
17441744
type: boolean
1745+
nodeSelector:
1746+
additionalProperties:
1747+
type: string
1748+
description: NodeSelector to target subset of worker nodes running
1749+
this service
1750+
type: object
17451751
scrapeInterval:
17461752
default: 30s
17471753
description: ScrapeInterval sets the interval between scrapes

api/bases/telemetry.openstack.org_telemetries.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3134,6 +3134,12 @@ spec:
31343134
default: true
31353135
description: AlertingEnabled allows to enable or disable alertmanager
31363136
type: boolean
3137+
nodeSelector:
3138+
additionalProperties:
3139+
type: string
3140+
description: NodeSelector to target subset of worker nodes
3141+
running this service
3142+
type: object
31373143
scrapeInterval:
31383144
default: 30s
31393145
description: ScrapeInterval sets the interval between scrapes

api/v1beta1/metricstorage_types.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ type MonitoringStack struct {
7676
// +kubebuilder:validation:Optional
7777
// +kubebuilder:default={strategy: persistent, retention: "24h", persistent: {pvcStorageRequest: "20G"}}
7878
Storage `json:"storage"`
79+
80+
// +kubebuilder:validation:Optional
81+
// NodeSelector to target subset of worker nodes running this service
82+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
7983
}
8084

8185
// MetricStorageSpec defines the desired state of MetricStorage

api/v1beta1/zz_generated.deepcopy.go

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/telemetry.openstack.org_metricstorages.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1742,6 +1742,12 @@ spec:
17421742
default: true
17431743
description: AlertingEnabled allows to enable or disable alertmanager
17441744
type: boolean
1745+
nodeSelector:
1746+
additionalProperties:
1747+
type: string
1748+
description: NodeSelector to target subset of worker nodes running
1749+
this service
1750+
type: object
17451751
scrapeInterval:
17461752
default: 30s
17471753
description: ScrapeInterval sets the interval between scrapes

config/crd/bases/telemetry.openstack.org_telemetries.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3134,6 +3134,12 @@ spec:
31343134
default: true
31353135
description: AlertingEnabled allows to enable or disable alertmanager
31363136
type: boolean
3137+
nodeSelector:
3138+
additionalProperties:
3139+
type: string
3140+
description: NodeSelector to target subset of worker nodes
3141+
running this service
3142+
type: object
31373143
scrapeInterval:
31383144
default: 30s
31393145
description: ScrapeInterval sets the interval between scrapes

internal/controller/telemetry_controller.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,10 @@ func (r TelemetryReconciler) reconcileMetricStorage(ctx context.Context, instanc
435435
return ctrl.Result{}, nil
436436
}
437437

438+
if instance.Spec.MetricStorage.MonitoringStack != nil && instance.Spec.MetricStorage.MonitoringStack.NodeSelector == nil {
439+
instance.Spec.MetricStorage.MonitoringStack.NodeSelector = instance.Spec.NodeSelector
440+
}
441+
438442
helper.GetLogger().Info("Reconciling MetricStorage", metricStorageNamespaceLabel, instance.Namespace, metricStorageNameLabel, telemetryv1.DefaultServiceName)
439443
op, err := controllerutil.CreateOrPatch(ctx, helper.GetClient(), metricStorageInstance, func() error {
440444
instance.Spec.MetricStorage.MetricStorageSpec.DeepCopyInto(&metricStorageInstance.Spec)

internal/metricstorage/monitoring_stack.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ func MonitoringStack(
6262
},
6363
},
6464
}
65+
66+
if instance.Spec.MonitoringStack.NodeSelector != nil {
67+
monitoringStack.Spec.NodeSelector = *instance.Spec.MonitoringStack.NodeSelector
68+
}
6569
return monitoringStack, nil
6670
}
6771

test/kuttl/tests/default/01-assert.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,10 @@ apiVersion: telemetry.openstack.org/v1beta1
183183
kind: MetricStorage
184184
metadata:
185185
name: metric-storage
186+
spec:
187+
monitoringStack:
188+
nodeSelector:
189+
kubernetes.io/os: linux
186190
status:
187191
conditions:
188192
- type: Ready

test/kuttl/tests/default/01-deploy.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ kind: Telemetry
33
metadata:
44
name: telemetry-kuttl
55
spec:
6+
nodeSelector:
7+
kubernetes.io/os: linux
68
metricStorage:
79
enabled: true
810
monitoringStack:

0 commit comments

Comments
 (0)