Skip to content

Commit

Permalink
dnsrecord condition only propagate owned records status
Browse files Browse the repository at this point in the history
  • Loading branch information
philbrookes committed May 1, 2024
1 parent bb66568 commit e3a358b
Show file tree
Hide file tree
Showing 7 changed files with 22 additions and 12 deletions.
2 changes: 1 addition & 1 deletion api/v1alpha1/dnspolicy_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ type DNSPolicyStatus struct {
HealthCheck *HealthCheckStatus `json:"healthCheck,omitempty"`

// +optional
ProbeConditions map[string][]metav1.Condition `json:"probeConditions,omitempty"`
RecordConditions map[string][]metav1.Condition `json:"recordConditions,omitempty"`
}

func (s *DNSPolicyStatus) GetConditions() []metav1.Condition {
Expand Down
4 changes: 2 additions & 2 deletions api/v1alpha1/zz_generated.deepcopy.go

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

Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ metadata:
capabilities: Basic Install
categories: Integration & Delivery
containerImage: quay.io/kuadrant/kuadrant-operator:latest
createdAt: "2024-04-25T14:21:46Z"
createdAt: "2024-05-01T08:22:16Z"
operators.operatorframework.io/builder: operator-sdk-v1.32.0
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
repository: https://github.com/Kuadrant/kuadrant-operator
Expand Down
2 changes: 1 addition & 1 deletion bundle/manifests/kuadrant.io_dnspolicies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,7 @@ spec:
recorded in the status condition
format: int64
type: integer
probeConditions:
recordConditions:
additionalProperties:
items:
description: "Condition contains details for one aspect of the
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/kuadrant.io_dnspolicies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,7 @@ spec:
recorded in the status condition
format: int64
type: integer
probeConditions:
recordConditions:
additionalProperties:
items:
description: "Condition contains details for one aspect of the
Expand Down
18 changes: 14 additions & 4 deletions controllers/dnspolicy_status.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@ func (r *DNSPolicyReconciler) calculateStatus(ctx context.Context, dnsPolicy *v1
}

recordsList := &kuadrantdnsv1alpha1.DNSRecordList{}
controlledRecords := &kuadrantdnsv1alpha1.DNSRecordList{}

var enforcedCondition *metav1.Condition
if err := r.Client().List(ctx, recordsList); err != nil {
enforcedCondition = kuadrant.EnforcedCondition(dnsPolicy, kuadrant.NewErrUnknown(dnsPolicy.Kind(), err), false)
Expand All @@ -90,7 +92,15 @@ func (r *DNSPolicyReconciler) calculateStatus(ctx context.Context, dnsPolicy *v1

meta.SetStatusCondition(&newStatus.Conditions, *enforcedCondition)

propagateRecordConditions(recordsList, newStatus)
for _, record := range recordsList.Items {
for _, reference := range record.GetOwnerReferences() {
if reference.Controller != nil && *reference.Controller && reference.Name == dnsPolicy.Name && reference.UID == dnsPolicy.UID {
controlledRecords.Items = append(controlledRecords.Items, record)
}
}
}

propagateRecordConditions(controlledRecords, newStatus)

return newStatus
}
Expand Down Expand Up @@ -124,7 +134,7 @@ func (r *DNSPolicyReconciler) enforcedCondition(recordsList *kuadrantdnsv1alpha1

func propagateRecordConditions(records *kuadrantdnsv1alpha1.DNSRecordList, policyStatus *v1alpha1.DNSPolicyStatus) {
//reset conditions
policyStatus.ProbeConditions = map[string][]metav1.Condition{}
policyStatus.RecordConditions = map[string][]metav1.Condition{}

for _, record := range records.Items {
var allConditions []metav1.Condition
Expand All @@ -151,8 +161,8 @@ func propagateRecordConditions(records *kuadrantdnsv1alpha1.DNSRecordList, polic
continue
}

policyStatus.ProbeConditions[*record.Spec.RootHost] = append(
policyStatus.ProbeConditions[*record.Spec.RootHost],
policyStatus.RecordConditions[*record.Spec.RootHost] = append(
policyStatus.RecordConditions[*record.Spec.RootHost],
condition)
}
}
Expand Down
4 changes: 2 additions & 2 deletions controllers/dnspolicy_status_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ func TestPropagateRecordConditions(t *testing.T) {
},
PolicyStatus: &v1alpha1.DNSPolicyStatus{},
Validate: func(t *testing.T, policyStatus *v1alpha1.DNSPolicyStatus) {
if conditions, ok := policyStatus.ProbeConditions[rootHost]; ok {
if conditions, ok := policyStatus.RecordConditions[rootHost]; ok {
t.Fatalf("expected no probe conditions for root host, found %v", len(conditions))
}
},
Expand Down Expand Up @@ -127,7 +127,7 @@ func TestPropagateRecordConditions(t *testing.T) {
},
PolicyStatus: &v1alpha1.DNSPolicyStatus{},
Validate: func(t *testing.T, policyStatus *v1alpha1.DNSPolicyStatus) {
if conditions, ok := policyStatus.ProbeConditions[rootHost]; !ok {
if conditions, ok := policyStatus.RecordConditions[rootHost]; !ok {
t.Fatalf("expected probe conditions for root host, found none")
} else {
if len(conditions) != 2 {
Expand Down

0 comments on commit e3a358b

Please sign in to comment.