diff --git a/plan/plan.go b/plan/plan.go index 9fafd7329..6fc93b5dd 100644 --- a/plan/plan.go +++ b/plan/plan.go @@ -131,10 +131,10 @@ func (t planTable) getDeletes() (deleteList []*endpoint.Endpoint) { func (p *Plan) Calculate() *Plan { t := newPlanTable() - for _, current := range p.Current { + for _, current := range filterRecordsForPlan(p.Current) { t.addCurrent(current) } - for _, desired := range p.Desired { + for _, desired := range filterRecordsForPlan(p.Desired) { t.addCandidate(desired) } @@ -175,3 +175,18 @@ func shouldUpdateTTL(desired, current *endpoint.Endpoint) bool { } return desired.RecordTTL != current.RecordTTL } + +func filterRecordsForPlan(records []*endpoint.Endpoint) []*endpoint.Endpoint { + filtered := []*endpoint.Endpoint{} + + for _, record := range records { + switch record.RecordType { + case endpoint.RecordTypeA, endpoint.RecordTypeCNAME: + filtered = append(filtered, record) + default: + continue + } + } + + return filtered +}