Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion api/v1alpha1/datasource_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ type DatasourceStatus struct {
// When the datasource was last successfully synced.
LastSynced metav1.Time `json:"lastSynced,omitempty"`
// The number of objects currently stored for this datasource.
NumberOfObjects int64 `json:"numberOfObjects,omitempty"`
NumberOfObjects *int64 `json:"numberOfObjects,omitempty"`
Comment thread
coderabbitai[bot] marked this conversation as resolved.
// Planned time for the next sync.
NextSyncTime metav1.Time `json:"nextSyncTime,omitempty"`

Expand Down
5 changes: 5 additions & 0 deletions api/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion helm/bundles/cortex-cinder/templates/alerts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ spec:
time the service will have a less recent view of the datacenter.

- alert: CortexCinderSyncObjectsDroppedToZero
expr: cortex_sync_objects{service="cortex-cinder-metrics"} == 0
expr: cortex_sync_objects{service="cortex-cinder-metrics"} == 0 and (cortex_sync_objects{service="cortex-cinder-metrics"} offset 1h > 0)
for: 60m
labels:
context: syncobjects
Expand Down
2 changes: 1 addition & 1 deletion helm/bundles/cortex-manila/templates/alerts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ spec:
time the service will have a less recent view of the datacenter.

- alert: CortexManilaSyncObjectsDroppedToZero
expr: cortex_sync_objects{service="cortex-manila-metrics"} == 0
expr: cortex_sync_objects{service="cortex-manila-metrics"} == 0 and (cortex_sync_objects{service="cortex-manila-metrics"} offset 1h > 0)
for: 60m
labels:
context: syncobjects
Expand Down
2 changes: 1 addition & 1 deletion helm/bundles/cortex-nova/templates/alerts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ spec:
time the service will have a less recent view of the datacenter.

- alert: CortexNovaSyncObjectsDroppedToZero
expr: cortex_sync_objects{service="cortex-nova-metrics", datasource!="openstack_migrations"} == 0
expr: cortex_sync_objects{service="cortex-nova-metrics", datasource!="openstack_migrations"} == 0 and (cortex_sync_objects{service="cortex-nova-metrics", datasource!="openstack_migrations"} offset 1h > 0)
for: 60m
labels:
context: syncobjects
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ func (r *OpenStackDatasourceReconciler) Reconcile(ctx context.Context, req ctrl.
log.Info("skipping datasource, not an openstack datasource", "name", datasource.Name)
return ctrl.Result{}, nil
}
if datasource.Status.NextSyncTime.After(time.Now()) && datasource.Status.NumberOfObjects != 0 {
if datasource.Status.NextSyncTime.After(time.Now()) && datasource.Status.NumberOfObjects != nil {
if _, seen := r.reconciledOnce.Load(req.NamespacedName); seen {
log.Info("skipping datasource sync, not yet time", "name", datasource.Name)
return ctrl.Result{RequeueAfter: time.Until(datasource.Status.NextSyncTime.Time)}, nil
Expand Down Expand Up @@ -262,7 +262,7 @@ func (r *OpenStackDatasourceReconciler) Reconcile(ctx context.Context, req ctrl.
datasource.Status.LastSynced = metav1.NewTime(time.Now())
nextTime := time.Now().Add(datasource.Spec.OpenStack.SyncInterval.Duration)
datasource.Status.NextSyncTime = metav1.NewTime(nextTime)
datasource.Status.NumberOfObjects = nResults
datasource.Status.NumberOfObjects = &nResults
patch := client.MergeFrom(old)
if err := r.Status().Patch(ctx, datasource, patch); err != nil {
log.Error(err, "failed to patch datasource status", "name", datasource.Name)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -495,11 +495,11 @@ func TestUpdatePredicateIgnoresStatusConditionChanges(t *testing.T) {
name: "status NumberOfObjects changes - should trigger reconcile",
oldObj: &v1alpha1.Datasource{
ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "default"},
Status: v1alpha1.DatasourceStatus{NumberOfObjects: 10},
Status: v1alpha1.DatasourceStatus{NumberOfObjects: new(int64(10))},
},
newObj: &v1alpha1.Datasource{
ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "default"},
Status: v1alpha1.DatasourceStatus{NumberOfObjects: 20},
Status: v1alpha1.DatasourceStatus{NumberOfObjects: new(int64(20))},
},
expected: true,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ func (r *PrometheusDatasourceReconciler) Reconcile(ctx context.Context, req ctrl
log.Info("skipping datasource, not a prometheus datasource", "name", datasource.Name)
return ctrl.Result{}, nil
}
if datasource.Status.NextSyncTime.After(time.Now()) && datasource.Status.NumberOfObjects != 0 {
if datasource.Status.NextSyncTime.After(time.Now()) && datasource.Status.NumberOfObjects != nil {
if _, seen := r.reconciledOnce.Load(req.NamespacedName); seen {
log.Info("skipping datasource sync, not yet time", "name", datasource.Name)
return ctrl.Result{RequeueAfter: time.Until(datasource.Status.NextSyncTime.Time)}, nil
Expand Down Expand Up @@ -201,7 +201,7 @@ func (r *PrometheusDatasourceReconciler) Reconcile(ctx context.Context, req ctrl
})
datasource.Status.LastSynced = metav1.NewTime(time.Now())
datasource.Status.NextSyncTime = metav1.NewTime(nextSync)
datasource.Status.NumberOfObjects = nResults
datasource.Status.NumberOfObjects = &nResults
patch := client.MergeFrom(old)
if err := r.Status().Patch(ctx, datasource, patch); err != nil {
log.Error(err, "failed to patch datasource status", "name", datasource.Name)
Expand Down
10 changes: 5 additions & 5 deletions internal/knowledge/kpis/controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ func TestController_Reconcile(t *testing.T) {
},
},
Status: v1alpha1.DatasourceStatus{
NumberOfObjects: 1,
NumberOfObjects: new(int64(1)),
Conditions: []metav1.Condition{
{
Type: v1alpha1.DatasourceConditionReady,
Expand Down Expand Up @@ -393,7 +393,7 @@ func TestController_Reconcile(t *testing.T) {
},
},
Status: v1alpha1.DatasourceStatus{
NumberOfObjects: 0,
NumberOfObjects: new(int64(0)),
Conditions: []metav1.Condition{
{
Type: v1alpha1.DatasourceConditionReady,
Expand Down Expand Up @@ -622,7 +622,7 @@ func TestController_handleKPIChange(t *testing.T) {
DatabaseSecretRef: corev1.SecretReference{Name: "db-secret", Namespace: "default"},
},
Status: v1alpha1.DatasourceStatus{
NumberOfObjects: 1,
NumberOfObjects: new(int64(1)),
Conditions: []metav1.Condition{
{
Type: v1alpha1.DatasourceConditionReady,
Expand All @@ -638,7 +638,7 @@ func TestController_handleKPIChange(t *testing.T) {
DatabaseSecretRef: corev1.SecretReference{Name: "db-secret", Namespace: "default"},
},
Status: v1alpha1.DatasourceStatus{
NumberOfObjects: 0,
NumberOfObjects: new(int64(0)),
Conditions: []metav1.Condition{
{
Type: v1alpha1.DatasourceConditionReady,
Expand Down Expand Up @@ -703,7 +703,7 @@ func TestController_handleKPIChange(t *testing.T) {
DatabaseSecretRef: corev1.SecretReference{Name: "db-secret", Namespace: "default"},
},
Status: v1alpha1.DatasourceStatus{
NumberOfObjects: 1,
NumberOfObjects: new(int64(1)),
Conditions: []metav1.Condition{
{
Type: v1alpha1.DatasourceConditionReady,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func TestDatasourceStateKPI_Collect(t *testing.T) {
ObjectMeta: v1.ObjectMeta{Name: "ds1"},
Spec: v1alpha1.DatasourceSpec{SchedulingDomain: "test-operator"},
Status: v1alpha1.DatasourceStatus{
NumberOfObjects: 10,
NumberOfObjects: new(int64(10)),
Conditions: []v1.Condition{},
},
},
Expand Down Expand Up @@ -87,7 +87,7 @@ func TestDatasourceStateKPI_Collect(t *testing.T) {
ObjectMeta: v1.ObjectMeta{Name: "ds-ready"},
Spec: v1alpha1.DatasourceSpec{SchedulingDomain: "test-operator"},
Status: v1alpha1.DatasourceStatus{
NumberOfObjects: 10,
NumberOfObjects: new(int64(10)),
Conditions: []v1.Condition{},
},
},
Expand Down Expand Up @@ -127,15 +127,15 @@ func TestDatasourceStateKPI_Collect(t *testing.T) {
ObjectMeta: v1.ObjectMeta{Name: "ds-correct-operator"},
Spec: v1alpha1.DatasourceSpec{SchedulingDomain: "test-operator"},
Status: v1alpha1.DatasourceStatus{
NumberOfObjects: 10,
NumberOfObjects: new(int64(10)),
Conditions: []v1.Condition{},
},
},
{
ObjectMeta: v1.ObjectMeta{Name: "ds-wrong-operator"},
Spec: v1alpha1.DatasourceSpec{SchedulingDomain: "other-operator"},
Status: v1alpha1.DatasourceStatus{
NumberOfObjects: 10,
NumberOfObjects: new(int64(10)),
Conditions: []v1.Condition{},
},
},
Expand All @@ -151,7 +151,7 @@ func TestDatasourceStateKPI_Collect(t *testing.T) {
ObjectMeta: v1.ObjectMeta{Name: "ds-unknown"},
Spec: v1alpha1.DatasourceSpec{SchedulingDomain: "test-operator"},
Status: v1alpha1.DatasourceStatus{
NumberOfObjects: 0,
NumberOfObjects: new(int64(0)),
Conditions: []v1.Condition{},
},
},
Expand Down