From 3d04881480c4f1fb293c394431bc8dde7fb13205 Mon Sep 17 00:00:00 2001 From: Anthony Treuillier Date: Mon, 28 Oct 2024 16:13:17 +0100 Subject: [PATCH] feat(rrset)!: Accept wildcard and SRV records (#35) Signed-off-by: Anthony TREUILLIER --- api/v1alpha1/rrset_types.go | 10 +- api/v1alpha1/zz_generated.deepcopy.go | 15 + cmd/main.go | 2 +- .../crd/bases/dns.cav.enablers.ob_rrsets.yaml | 19 + config/samples/dns_v1alpha1_rrset.yaml | 267 ++++++--- config/samples/dns_v1alpha1_zone.yaml | 19 +- docs/assets/logo.webp | Bin 211140 -> 0 bytes docs/guides/rrsets.md | 9 +- docs/guides/warnings.md | 48 ++ docs/guides/zones.md | 3 - docs/snippets/rrset-cname.yaml | 13 + docs/snippets/rrset-mx.yaml | 14 + docs/snippets/rrset-ptr.yaml | 13 + docs/snippets/rrset-srv.yaml | 13 + docs/snippets/rrset-txt.yaml | 13 + docs/snippets/rrset.yaml | 16 - internal/controller/pdns_helper.go | 10 +- internal/controller/rrset_controller.go | 86 ++- internal/controller/rrset_controller_test.go | 540 ++++++++++++++++++ mkdocs.yml | 1 + 20 files changed, 999 insertions(+), 112 deletions(-) delete mode 100644 docs/assets/logo.webp create mode 100644 docs/guides/warnings.md create mode 100644 docs/snippets/rrset-cname.yaml create mode 100644 docs/snippets/rrset-mx.yaml create mode 100644 docs/snippets/rrset-ptr.yaml create mode 100644 docs/snippets/rrset-srv.yaml create mode 100644 docs/snippets/rrset-txt.yaml delete mode 100644 docs/snippets/rrset.yaml diff --git a/api/v1alpha1/rrset_types.go b/api/v1alpha1/rrset_types.go index 954e5cc..f8bc7e4 100644 --- a/api/v1alpha1/rrset_types.go +++ b/api/v1alpha1/rrset_types.go @@ -18,6 +18,9 @@ import ( type RRsetSpec struct { // Type of the record (e.g. "A", "PTR", "MX"). Type string `json:"type"` + // Name of the record + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" + Name string `json:"name"` // DNS TTL of the records, in seconds. TTL uint32 `json:"ttl"` // All records in this Resource Record Set. @@ -36,15 +39,20 @@ type ZoneRef struct { // RRsetStatus defines the observed state of RRset type RRsetStatus struct { - LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"` + LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"` + DnsEntryName *string `json:"dnsEntryName,omitempty"` + SyncStatus *string `json:"syncStatus,omitempty"` + SyncErrorDescription *string `json:"syncErrorDescription,omitempty"` } // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:printcolumn:name="Zone",type="string",JSONPath=".spec.zoneRef.name" +// +kubebuilder:printcolumn:name="Name",type="string",JSONPath=".status.dnsEntryName" // +kubebuilder:printcolumn:name="Type",type="string",JSONPath=".spec.type" // +kubebuilder:printcolumn:name="TTL",type="integer",JSONPath=".spec.ttl" +// +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.syncStatus" // +kubebuilder:printcolumn:name="Records",type="string",JSONPath=".spec.records" // RRset is the Schema for the rrsets API type RRset struct { diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go index 40c939c..e084b31 100644 --- a/api/v1alpha1/zz_generated.deepcopy.go +++ b/api/v1alpha1/zz_generated.deepcopy.go @@ -110,6 +110,21 @@ func (in *RRsetStatus) DeepCopyInto(out *RRsetStatus) { in, out := &in.LastUpdateTime, &out.LastUpdateTime *out = (*in).DeepCopy() } + if in.DnsEntryName != nil { + in, out := &in.DnsEntryName, &out.DnsEntryName + *out = new(string) + **out = **in + } + if in.SyncStatus != nil { + in, out := &in.SyncStatus, &out.SyncStatus + *out = new(string) + **out = **in + } + if in.SyncErrorDescription != nil { + in, out := &in.SyncErrorDescription, &out.SyncErrorDescription + *out = new(string) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RRsetStatus. diff --git a/cmd/main.go b/cmd/main.go index 4ffce5d..f1593fb 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -82,7 +82,7 @@ func main() { flag.StringVar(&apiKey, "pdns-api-key", apiKey, "The API key to authenticate with the PowerDNS API") flag.StringVar(&apiVhost, "pdns-api-vhost", apiVhost, "The vhost of the PowerDNS API") opts := zap.Options{ - Development: true, + Development: false, } opts.BindFlags(flag.CommandLine) flag.Parse() diff --git a/config/crd/bases/dns.cav.enablers.ob_rrsets.yaml b/config/crd/bases/dns.cav.enablers.ob_rrsets.yaml index 9b9ae2d..7283216 100644 --- a/config/crd/bases/dns.cav.enablers.ob_rrsets.yaml +++ b/config/crd/bases/dns.cav.enablers.ob_rrsets.yaml @@ -18,12 +18,18 @@ spec: - jsonPath: .spec.zoneRef.name name: Zone type: string + - jsonPath: .status.dnsEntryName + name: Name + type: string - jsonPath: .spec.type name: Type type: string - jsonPath: .spec.ttl name: TTL type: integer + - jsonPath: .status.syncStatus + name: Status + type: string - jsonPath: .spec.records name: Records type: string @@ -55,6 +61,12 @@ spec: comment: description: Comment on RRSet. type: string + name: + description: Name of the record + type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf records: description: All records in this Resource Record Set. items: @@ -77,6 +89,7 @@ spec: - name type: object required: + - name - records - ttl - type @@ -85,9 +98,15 @@ spec: status: description: RRsetStatus defines the observed state of RRset properties: + dnsEntryName: + type: string lastUpdateTime: format: date-time type: string + syncErrorDescription: + type: string + syncStatus: + type: string type: object type: object served: true diff --git a/config/samples/dns_v1alpha1_rrset.yaml b/config/samples/dns_v1alpha1_rrset.yaml index 3084cff..54175a8 100644 --- a/config/samples/dns_v1alpha1_rrset.yaml +++ b/config/samples/dns_v1alpha1_rrset.yaml @@ -1,12 +1,14 @@ +--- +# Record of type 'A' in 'helloworld.com' zone +# test.helloworld.com. IN A 1.1.1.1 +# test.helloworld.com. IN A 2.2.2.2 apiVersion: dns.cav.enablers.ob/v1alpha1 kind: RRset metadata: - labels: - app.kubernetes.io/name: powerdns-operator - app.kubernetes.io/managed-by: kustomize name: test.helloworld.com spec: comment: nothing to tell + name: test type: A ttl: 300 records: @@ -16,81 +18,212 @@ spec: name: helloworld.com --- +# FQDN Record of type 'A' in 'helloworld.com' zone +# test1.helloworld.com. IN A 3.3.3.3 apiVersion: dns.cav.enablers.ob/v1alpha1 kind: RRset metadata: - labels: - app.kubernetes.io/name: powerdns-operator - app.kubernetes.io/managed-by: kustomize name: test1.helloworld.com spec: + comment: nothing to tell + name: test1.helloworld.com. type: A ttl: 300 records: - - 1.1.1.1 + - 3.3.3.3 + zoneRef: + name: helloworld.com + +--- +# Record of type 'A' in 'helloworld.com' zone +# test2.helloworld.com.helloworld.com. IN A 3.3.3.3 +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: test2.helloworld.com +spec: + type: A + name: test2.helloworld.com + ttl: 300 + records: + - 4.4.4.4 + zoneRef: + name: helloworld.com + +--- +# Record of type 'AAAA' in 'helloworld.com' zone +# test3.helloworld.com. IN AAAA 2001:0dc8:86a4:0000:0000:7a2f:2360:2341 +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: test3-ipv6.helloworld.com +spec: + type: AAAA + name: test3 + ttl: 300 + records: + - 2001:0dc8:86a4:0000:0000:7a2f:2360:2341 + zoneRef: + name: helloworld.com + +--- +# Record of type 'CNAME' in 'helloworld.com' zone +# test4.helloworld.com. IN CNAME test1.helloworld.com. +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: test4.helloworld.com +spec: + type: CNAME + name: test4 + ttl: 300 + records: + - test1.helloworld.com. zoneRef: name: helloworld.com -# --- -# apiVersion: dns.cav.enablers.ob/v1alpha1 -# kind: RRset -# metadata: -# labels: -# app.kubernetes.io/name: powerdns-operator -# app.kubernetes.io/managed-by: kustomize -# name: test2.helloworld.com -# spec: -# type: A -# ttl: 300 -# records: -# - 1.1.1.1 -# zoneRef: -# name: helloworld.com +--- +# Record of type 'A' (with wildcard) in 'helloworld.com' zone +# *.test5.helloworld.com. IN A 5.5.5.5 +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: test5.helloworld.com +spec: + type: A + name: "*.test5" + ttl: 300 + records: + - 5.5.5.5 + zoneRef: + name: helloworld.com -# --- -# apiVersion: dns.cav.enablers.ob/v1alpha1 -# kind: RRset -# metadata: -# labels: -# app.kubernetes.io/name: powerdns-operator -# app.kubernetes.io/managed-by: kustomize -# name: test3.helloworld.com -# spec: -# type: A -# ttl: 300 -# records: -# - 1.1.1.1 -# zoneRef: -# name: helloworld.com +--- +# Record of type 'PTR' in 'helloworld.com' zone +# 1.1.168.192.in-addr.arpa. IN PTR mailserver.helloworld.com. +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: 1.1.168.192.in-addr.arpa.helloworld.com +spec: + type: PTR + name: "1" + ttl: 300 + records: + - mailserver.helloworld.com. + zoneRef: + name: 1.168.192.in-addr.arpa -# --- -# apiVersion: dns.cav.enablers.ob/v1alpha1 -# kind: RRset -# metadata: -# labels: -# app.kubernetes.io/name: powerdns-operator -# app.kubernetes.io/managed-by: kustomize -# name: test4.helloworld.com -# spec: -# type: A -# ttl: 300 -# records: -# - 1.1.1.1 -# zoneRef: -# name: helloworld.com +--- +# Records of type 'MX' in 'helloworld.com' zone +# helloworld.com. IN MX 10 mailserver1.helloworld.com. +# helloworld.com. IN MX 20 mailserver2.helloworld.com. +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: mx.helloworld.com +spec: + type: MX + name: "helloworld.com." + ttl: 300 + records: + - "10 mailserver1.helloworld.com." + - "20 mailserver2.helloworld.com." + zoneRef: + name: helloworld.com -# --- -# apiVersion: dns.cav.enablers.ob/v1alpha1 -# kind: RRset -# metadata: -# labels: -# app.kubernetes.io/name: powerdns-operator -# app.kubernetes.io/managed-by: kustomize -# name: test5.helloworld.com -# spec: -# type: A -# ttl: 300 -# records: -# - 1.1.1.1 -# zoneRef: -# name: helloworld.com +--- +# Record of type 'SRV' in 'helloworld.com' zone +# _database._tcp.myapp.helloworld.com. IN SRV 1 50 25565 test2.helloworld.com. +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: database.srv.helloworld.com +spec: + type: SRV + name: "_database._tcp.myapp" + ttl: 300 + records: + - 1 50 25565 test2.helloworld.com. + zoneRef: + name: helloworld.com + +--- +# Record (duplicate) of type 'A' in 'helloworld.com' zone +# test1.helloworld.com. IN A 6.6.6.6 +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: test1failed.helloworld.com +spec: + type: A + name: "test1" + ttl: 300 + records: + - "6.6.6.6" + zoneRef: + name: helloworld.com + +--- +# Record of type 'TXT' in 'helloworld.com' zone +# helloworld.com. IN TXT "Welcome to the helloworld.com domain" +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: txt.helloworld.com +spec: + type: TXT + name: "helloworld.com." + ttl: 300 + records: + - "\"Welcome to the helloworld.com domain\"" + zoneRef: + name: helloworld.com + +--- +# Record (additional) of type 'A' in 'helloworld.com' zone +# test3.helloworld.com. IN A 192.168.1.7 +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: test3-ipv4.helloworld.com +spec: + type: A + name: test3 + ttl: 300 + records: + - 192.168.1.7 + zoneRef: + name: helloworld.com + +--- +# Record (errored) of undefined type 'AA' in 'helloworld.com' zone +# test6.helloworld.com. IN A 192.168.1.7 +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: test6.helloworld.com +spec: + type: AA + name: test6 + ttl: 300 + records: + - 192.168.1.7 + zoneRef: + name: helloworld.com + +--- +# Record of type 'A' in 'helloworld.com' zone +# test6.helloworld.com. IN A 192.168.1.7 +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: test6-ok.helloworld.com +spec: + type: A + name: test6 + ttl: 300 + records: + - 192.168.1.7 + zoneRef: + name: helloworld.com diff --git a/config/samples/dns_v1alpha1_zone.yaml b/config/samples/dns_v1alpha1_zone.yaml index f7395f9..4745800 100644 --- a/config/samples/dns_v1alpha1_zone.yaml +++ b/config/samples/dns_v1alpha1_zone.yaml @@ -1,12 +1,23 @@ +--- +# Direct zone apiVersion: dns.cav.enablers.ob/v1alpha1 kind: Zone metadata: - labels: - app.kubernetes.io/name: powerdns-operator - app.kubernetes.io/managed-by: kustomize name: helloworld.com spec: nameservers: - ns1.helloworld.com - ns2.helloworld.com - kind: Native \ No newline at end of file + kind: Native + +--- +# Reverse Zone +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: Zone +metadata: + name: 1.168.192.in-addr.arpa +spec: + nameservers: + - ns1.helloworld.com + - ns2.helloworld.com + kind: Native diff --git a/docs/assets/logo.webp b/docs/assets/logo.webp deleted file mode 100644 index 2451331e06940ea9cbcc8f39af3389d9775d3bac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211140 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�**Mvw$$GgtT-~kK3e(EK0NoLE5QN=vTn6 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 D?gO~Y diff --git a/docs/guides/rrsets.md b/docs/guides/rrsets.md index 57c2743..a380bc1 100644 --- a/docs/guides/rrsets.md +++ b/docs/guides/rrsets.md @@ -7,6 +7,7 @@ The specification of the `RRset` contains the following fields: | Field | Type | Required | Description | | ----- | ---- |:--------:| ----------- | | type | string | Y | Type of the record (e.g. "A", "PTR", "MX") | +| name | string | Y | Name of the record | | ttl | uint32 | Y | DNS TTL of the records, in seconds | records | []string | Y | All records in this Resource Record Set | comment | string | N | Comment on RRSet | @@ -24,17 +25,17 @@ The specification of the `ZoneRef` contains the following fields: apiVersion: dns.cav.enablers.ob/v1alpha1 kind: RRset metadata: - labels: - app.kubernetes.io/name: powerdns-operator - app.kubernetes.io/managed-by: kustomize name: test.helloworld.com spec: comment: nothing to tell type: A + name: test ttl: 300 records: - 1.1.1.1 - 2.2.2.2 zoneRef: name: helloworld.com -``` \ No newline at end of file +``` + +> Note: The name can be canonical or not. \ No newline at end of file diff --git a/docs/guides/warnings.md b/docs/guides/warnings.md new file mode 100644 index 0000000..0a09640 --- /dev/null +++ b/docs/guides/warnings.md @@ -0,0 +1,48 @@ +# Warnings on field format + +## Deal with canonical names + +For some resources such as CNAME, PTR, MX, SRV, the records field MUST be in canonical format (end with a dot "."). See following examples. + +### CNAME + +```yaml +--8<-- "rrset-cname.yaml" +``` + +### PTR + +```yaml +--8<-- "rrset-ptr.yaml" +``` + +### MX + +```yaml +--8<-- "rrset-mx.yaml" +``` + +### SRV + +```yaml +--8<-- "rrset-srv.yaml" +``` + +## TXT Records + +Sometime, you may encounter the following error when applying a RRset custom resource: +```yaml +status: + syncErrorDescription: 'Record helloworld.com./TXT ''Welcome to the helloworld.com + domain'': Parsing record content (try ''pdnsutil check-zone''): Data field in + DNS should start with quote (") at position 0 of ''Welcome to the helloworld.com + domain''' + syncStatus: Failed +``` + +This error is due to a wrong format for the RRset. +TXT records MUST start AND end with an escaped quote (\"). See following example. + +```yaml +--8<-- "rrset-txt.yaml" +``` diff --git a/docs/guides/zones.md b/docs/guides/zones.md index de99b82..f453599 100644 --- a/docs/guides/zones.md +++ b/docs/guides/zones.md @@ -16,9 +16,6 @@ The specification of the `Zone` contains the following fields: apiVersion: dns.cav.enablers.ob/v1alpha1 kind: Zone metadata: - labels: - app.kubernetes.io/name: powerdns-operator - app.kubernetes.io/managed-by: kustomize name: helloworld.com spec: nameservers: diff --git a/docs/snippets/rrset-cname.yaml b/docs/snippets/rrset-cname.yaml new file mode 100644 index 0000000..dd3c771 --- /dev/null +++ b/docs/snippets/rrset-cname.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: test4.helloworld.com +spec: + type: CNAME + name: test4 + ttl: 300 + records: + - test1.helloworld.com. + zoneRef: + name: helloworld.com \ No newline at end of file diff --git a/docs/snippets/rrset-mx.yaml b/docs/snippets/rrset-mx.yaml new file mode 100644 index 0000000..d680033 --- /dev/null +++ b/docs/snippets/rrset-mx.yaml @@ -0,0 +1,14 @@ +--- +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: mx.helloworld.com +spec: + type: MX + name: "helloworld.com." + ttl: 300 + records: + - "10 mailserver1.helloworld.com." + - "20 mailserver2.helloworld.com." + zoneRef: + name: helloworld.com \ No newline at end of file diff --git a/docs/snippets/rrset-ptr.yaml b/docs/snippets/rrset-ptr.yaml new file mode 100644 index 0000000..d9f27be --- /dev/null +++ b/docs/snippets/rrset-ptr.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: 1.1.168.192.in-addr.arpa.helloworld.com +spec: + type: PTR + name: "1" + ttl: 300 + records: + - mailserver.helloworld.com. + zoneRef: + name: 1.168.192.in-addr.arpa \ No newline at end of file diff --git a/docs/snippets/rrset-srv.yaml b/docs/snippets/rrset-srv.yaml new file mode 100644 index 0000000..91c14df --- /dev/null +++ b/docs/snippets/rrset-srv.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: database.srv.helloworld.com +spec: + type: SRV + name: "_database._tcp.myapp" + ttl: 300 + records: + - 1 50 25565 test2.helloworld.com. + zoneRef: + name: helloworld.com \ No newline at end of file diff --git a/docs/snippets/rrset-txt.yaml b/docs/snippets/rrset-txt.yaml new file mode 100644 index 0000000..a6b1787 --- /dev/null +++ b/docs/snippets/rrset-txt.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: dns.cav.enablers.ob/v1alpha1 +kind: RRset +metadata: + name: txt.helloworld.com +spec: + type: TXT + name: "helloworld.com." + ttl: 300 + records: + - "\"Welcome to the helloworld.com domain\"" + zoneRef: + name: helloworld.com \ No newline at end of file diff --git a/docs/snippets/rrset.yaml b/docs/snippets/rrset.yaml deleted file mode 100644 index 083d6ec..0000000 --- a/docs/snippets/rrset.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: dns.cav.enablers.ob/v1alpha1 -kind: RRset -metadata: - labels: - app.kubernetes.io/name: powerdns-operator - app.kubernetes.io/managed-by: kustomize - name: test.helloworld.com -spec: - comment: nothing to tell - type: A - ttl: 300 - records: - - 1.1.1.1 - - 2.2.2.2 - zoneRef: - name: helloworld.com \ No newline at end of file diff --git a/internal/controller/pdns_helper.go b/internal/controller/pdns_helper.go index 98db711..fde91de 100644 --- a/internal/controller/pdns_helper.go +++ b/internal/controller/pdns_helper.go @@ -66,9 +66,17 @@ func rrsetIsIdenticalToExternalRRset(rrset *dnsv1alpha1.RRset, externalRecord po for _, r := range externalRecord.Records { externalRecordsSlice = append(externalRecordsSlice, *r.Content) } - return makeCanonical(rrset.ObjectMeta.Name) == *externalRecord.Name && rrset.Spec.Type == string(*externalRecord.Type) && rrset.Spec.TTL == *(externalRecord.TTL) && commentsIdentical && reflect.DeepEqual(rrset.Spec.Records, externalRecordsSlice) + name := getRRsetName(rrset) + return name == *externalRecord.Name && rrset.Spec.Type == string(*externalRecord.Type) && rrset.Spec.TTL == *(externalRecord.TTL) && commentsIdentical && reflect.DeepEqual(rrset.Spec.Records, externalRecordsSlice) } func makeCanonical(in string) string { return fmt.Sprintf("%s.", strings.TrimSuffix(in, ".")) } + +func getRRsetName(rrset *dnsv1alpha1.RRset) string { + if !strings.HasSuffix(rrset.Spec.Name, ".") { + return makeCanonical(rrset.Spec.Name + "." + rrset.Spec.ZoneRef.Name) + } + return makeCanonical(rrset.Spec.Name) +} diff --git a/internal/controller/rrset_controller.go b/internal/controller/rrset_controller.go index 961d7c9..893ba62 100644 --- a/internal/controller/rrset_controller.go +++ b/internal/controller/rrset_controller.go @@ -16,6 +16,7 @@ import ( "github.com/joeig/go-powerdns/v3" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/utils/ptr" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" @@ -27,6 +28,11 @@ import ( dnsv1alpha1 "github.com/orange-opensource/powerdns-operator/api/v1alpha1" ) +const ( + FAILED_STATUS = "Failed" + SUCCEEDED_STATUS = "Succeeded" +) + // RRsetReconciler reconciles a RRset object type RRsetReconciler struct { client.Client @@ -47,6 +53,11 @@ func (r *RRsetReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl if err != nil { return ctrl.Result{}, client.IgnoreNotFound(err) } + isInFailedStatus := (rrset.Status.SyncStatus != nil && *rrset.Status.SyncStatus == FAILED_STATUS) + + // initialize syncStatus + var syncStatus *string + var syncErrorDescription *string // Retrieve lastUpdateTime if defined, otherwise Now() lastUpdateTime := &metav1.Time{Time: time.Now().UTC()} @@ -94,13 +105,14 @@ func (r *RRsetReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl // The object is being deleted if controllerutil.ContainsFinalizer(rrset, FINALIZER_NAME) { // our finalizer is present, so lets handle any external dependency - if err := r.deleteExternalResources(ctx, zone, rrset); err != nil { - // if fail to delete the external resource, return with error - // so that it can be retried - log.Error(err, "Failed to delete external resources") - return ctrl.Result{}, err + if !isInFailedStatus { + if err := r.deleteExternalResources(ctx, zone, rrset); err != nil { + // if fail to delete the external resource, return with error + // so that it can be retried + log.Error(err, "Failed to delete external resources") + return ctrl.Result{}, err + } } - // remove our finalizer from the list and update it. controllerutil.RemoveFinalizer(rrset, FINALIZER_NAME) if err := r.Update(ctx, rrset); err != nil { @@ -115,11 +127,39 @@ func (r *RRsetReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl return ctrl.Result{}, nil } + // We cannot exit previously (at the early moments of reconcile), because we have to allow deletion process + if isInFailedStatus { + return ctrl.Result{}, nil + } + + // If a RRset already exists with the same DNS name: + // * Stop reconciliation + // * Append a Failed Status on RRset + var existingRRsets dnsv1alpha1.RRsetList + if err := r.List(ctx, &existingRRsets, client.MatchingFields{"DNS.Entry.Name": getRRsetName(rrset) + "/" + rrset.Spec.Type}); err != nil { + log.Error(err, "unable to find RRsets related to the DNS Name") + return ctrl.Result{}, err + } + if len(existingRRsets.Items) > 1 { + original := rrset.DeepCopy() + rrset.Status.LastUpdateTime = lastUpdateTime + name := getRRsetName(rrset) + rrset.Status.DnsEntryName = &name + rrset.Status.SyncStatus = ptr.To(FAILED_STATUS) + rrset.Status.SyncErrorDescription = ptr.To("Already existing RRset with the same FQDN") + if err := r.Status().Patch(ctx, rrset, client.MergeFrom(original)); err != nil { + log.Error(err, "unable to patch RRSet status") + return ctrl.Result{}, err + } + return ctrl.Result{}, nil + } + // Create or Update changed, err := r.createOrUpdateExternalResources(ctx, zone, rrset) if err != nil { log.Error(err, "Failed to create or update external resources") - return ctrl.Result{}, err + syncStatus = ptr.To(FAILED_STATUS) + syncErrorDescription = ptr.To(err.Error()) } if changed { lastUpdateTime = &metav1.Time{Time: time.Now().UTC()} @@ -141,7 +181,15 @@ func (r *RRsetReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl // In that case, the Serial in Zone Status is false // This update permits triggering a new event after RRSet update applied original := rrset.DeepCopy() + if syncStatus == nil { + syncStatus = ptr.To(SUCCEEDED_STATUS) + } rrset.Status.LastUpdateTime = lastUpdateTime + rrset.Status.DnsEntryName = ptr.To(getRRsetName(rrset)) + rrset.Status.SyncStatus = syncStatus + if syncErrorDescription != nil { + rrset.Status.SyncErrorDescription = syncErrorDescription + } if err := r.Status().Patch(ctx, rrset, client.MergeFrom(original)); err != nil { log.Error(err, "unable to patch RRSet status") return ctrl.Result{}, err @@ -152,6 +200,17 @@ func (r *RRsetReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl // SetupWithManager sets up the controller with the Manager. func (r *RRsetReconciler) SetupWithManager(mgr ctrl.Manager) error { + // We use indexer to ensure that only one RRset exists for DNS entry + if err := mgr.GetFieldIndexer().IndexField(context.Background(), &dnsv1alpha1.RRset{}, "DNS.Entry.Name", func(rawObj client.Object) []string { + // grab the RRset object, extract its name... + var RRsetName string + if rawObj.(*dnsv1alpha1.RRset).Status.SyncStatus == nil || *rawObj.(*dnsv1alpha1.RRset).Status.SyncStatus == SUCCEEDED_STATUS { + RRsetName = getRRsetName(rawObj.(*dnsv1alpha1.RRset)) + "/" + rawObj.(*dnsv1alpha1.RRset).Spec.Type + } + return []string{RRsetName} + }); err != nil { + return err + } return ctrl.NewControllerManagedBy(mgr). For(&dnsv1alpha1.RRset{}). Complete(r) @@ -161,7 +220,7 @@ func (r *RRsetReconciler) deleteExternalResources(ctx context.Context, zone *dns log := log.FromContext(ctx) // Delete - err := r.PDNSClient.Records.Delete(ctx, zone.ObjectMeta.Name, rrset.ObjectMeta.Name, powerdns.RRType(rrset.Spec.Type)) + err := r.PDNSClient.Records.Delete(ctx, zone.ObjectMeta.Name, getRRsetName(rrset), powerdns.RRType(rrset.Spec.Type)) if err != nil { log.Error(err, "Failed to delete record") return err @@ -172,13 +231,11 @@ func (r *RRsetReconciler) deleteExternalResources(ctx context.Context, zone *dns // createOrUpdateExternalResources create or update the input resource if necessary, and return True if changed func (r *RRsetReconciler) createOrUpdateExternalResources(ctx context.Context, zone *dnsv1alpha1.Zone, rrset *dnsv1alpha1.RRset) (bool, error) { - log := log.FromContext(ctx) - + name := getRRsetName(rrset) rrType := powerdns.RRType(rrset.Spec.Type) // Looking for a record with same Name and Type - records, err := r.PDNSClient.Records.Get(ctx, zone.ObjectMeta.Name, rrset.ObjectMeta.Name, &rrType) + records, err := r.PDNSClient.Records.Get(ctx, zone.ObjectMeta.Name, name, &rrType) if err != nil && !errors.IsNotFound(err) { - log.Error(err, "Failed to get external rrsets for the type") return false, err } // An issue exist on GET API Calls, comments for another RRSet are included although we filter @@ -186,7 +243,7 @@ func (r *RRsetReconciler) createOrUpdateExternalResources(ctx context.Context, z // See https://github.com/PowerDNS/pdns/pull/14045 var filteredRecord powerdns.RRset for _, fr := range records { - if *fr.Name == makeCanonical(rrset.ObjectMeta.Name) { + if *fr.Name == makeCanonical(name) { filteredRecord = fr break } @@ -201,9 +258,8 @@ func (r *RRsetReconciler) createOrUpdateExternalResources(ctx context.Context, z if rrset.Spec.Comment != nil { comments = powerdns.WithComments(powerdns.Comment{Content: rrset.Spec.Comment, Account: &operatorAccount}) } - err = r.PDNSClient.Records.Change(ctx, zone.ObjectMeta.Name, rrset.ObjectMeta.Name, rrType, rrset.Spec.TTL, rrset.Spec.Records, comments) + err = r.PDNSClient.Records.Change(ctx, zone.ObjectMeta.Name, name, rrType, rrset.Spec.TTL, rrset.Spec.Records, comments) if err != nil { - log.Error(err, "Failed to create record") return false, err } diff --git a/internal/controller/rrset_controller_test.go b/internal/controller/rrset_controller_test.go index 31015bb..5e62e54 100644 --- a/internal/controller/rrset_controller_test.go +++ b/internal/controller/rrset_controller_test.go @@ -38,6 +38,7 @@ var _ = Describe("RRset Controller", func() { // RRset resourceName = "test.example2.org" resourceNamespace = "default" + resourceDNSName = "test" resourceTTL = uint32(300) resourceType = "A" resourceComment = "Just a comment" @@ -111,6 +112,7 @@ var _ = Describe("RRset Controller", func() { Name: zoneRef, }, Type: resourceType, + Name: resourceDNSName, TTL: resourceTTL, Records: resourceRecords, Comment: &comment, @@ -336,6 +338,7 @@ var _ = Describe("RRset Controller", func() { // Specific test variables recreationResourceName := "test2.example2.org" recreationResourceNamespace := "default" + recreationResourceDNSName := "test2" recreationResourceTTL := uint32(253) recreationResourceType := "A" recreationResourceComment := "it is an useless comment" @@ -367,6 +370,7 @@ var _ = Describe("RRset Controller", func() { resource.Spec = dnsv1alpha1.RRsetSpec{ Type: recreationResourceType, TTL: recreationResourceTTL, + Name: recreationResourceDNSName, Records: []string{recreationRecord}, Comment: &recreationResourceComment, ZoneRef: dnsv1alpha1.ZoneRef{ @@ -437,6 +441,7 @@ var _ = Describe("RRset Controller", func() { } _, err := controllerutil.CreateOrUpdate(ctx, k8sClient, resource, func() error { resource.Spec.TTL = modifiedResourceTTL + resource.Spec.Name = resourceDNSName resource.Spec.Comment = &modifiedResourceComment resource.Spec.Records = modifiedResourceRecords return nil @@ -469,6 +474,7 @@ var _ = Describe("RRset Controller", func() { By("Creating a RRset") fakeResourceName := "fake.example2.org" fakeResourceNamespace := "default" + fakeResourceDNSName := "fake" fakeResourceTTL := uint32(123) fakeResourceType := "A" fakeResourceComment := "it is a fake comment" @@ -485,6 +491,7 @@ var _ = Describe("RRset Controller", func() { _, err := controllerutil.CreateOrUpdate(ctx, k8sClient, fakeResource, func() error { fakeResource.Spec = dnsv1alpha1.RRsetSpec{ Type: fakeResourceType, + Name: fakeResourceDNSName, TTL: fakeResourceTTL, Records: fakeRecords, Comment: &fakeResourceComment, @@ -520,4 +527,537 @@ var _ = Describe("RRset Controller", func() { }, timeout, interval).Should(BeTrue()) }) }) + + Context("When creating RRset", func() { + It("should successfully reconcile the resource", Label("rrset-creation", "AAAA-Type"), func() { + ctx := context.Background() + // Specific test variables + additionalResourceName := "aaaa" + additionalResourceType := "AAAA" + additionalResourceRecords := []string{"2001:0dc8:86a4:0000:0000:7a2f:2360:2341"} + additionalResourceComment := "This is a AAAA Record" + + By("Creating the RRset resource") + additionalResource := &dnsv1alpha1.RRset{ + ObjectMeta: metav1.ObjectMeta{ + Name: additionalResourceName, + Namespace: resourceNamespace, + }, + } + additionalResource.SetResourceVersion("") + _, err := controllerutil.CreateOrUpdate(ctx, k8sClient, additionalResource, func() error { + additionalResource.Spec = dnsv1alpha1.RRsetSpec{ + ZoneRef: dnsv1alpha1.ZoneRef{ + Name: zoneRef, + }, + Type: additionalResourceType, + Name: additionalResourceName, + TTL: resourceTTL, + Records: additionalResourceRecords, + Comment: &additionalResourceComment, + } + return nil + }) + additionalRRsetLookupKey := types.NamespacedName{ + Name: additionalResourceName, + Namespace: resourceNamespace, + } + + Expect(err).NotTo(HaveOccurred()) + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, additionalResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + // Confirm that resource is created in the backend + DnsFqdn := getRRsetName(additionalResource) + Eventually(func() bool { + _, ok := readFromRecordsMap(makeCanonical(DnsFqdn)) + return ok + }, timeout, interval).Should(BeTrue()) + + By("Getting the created resource") + createdResource := &dnsv1alpha1.RRset{} + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, createdResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + + Expect(getMockedRecordsForType(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceRecords)) + Expect(getMockedTTL(DnsFqdn, additionalResourceType)).To(Equal(resourceTTL)) + Expect(getMockedComment(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceComment)) + Expect(createdResource.GetOwnerReferences()).NotTo(BeEmpty(), "RRset should have setOwnerReference") + Expect(createdResource.GetOwnerReferences()[0].Name).To(Equal(zoneRef), "RRset should have setOwnerReference to Zone") + Expect(createdResource.GetFinalizers()).To(ContainElement(FINALIZER_NAME), "RRset should contain the finalizer") + + }) + }) + + Context("When creating RRset", func() { + It("should successfully reconcile the resource", Label("rrset-creation", "CNAME-Type"), func() { + ctx := context.Background() + // Specific test variables + additionalResourceName := "cname" + additionalResourceType := "CNAME" + additionalResourceRecords := []string{resourceName} + additionalResourceComment := "This is a CNAME Record" + + By("Creating the RRset resource") + additionalResource := &dnsv1alpha1.RRset{ + ObjectMeta: metav1.ObjectMeta{ + Name: additionalResourceName, + Namespace: resourceNamespace, + }, + } + additionalResource.SetResourceVersion("") + _, err := controllerutil.CreateOrUpdate(ctx, k8sClient, additionalResource, func() error { + additionalResource.Spec = dnsv1alpha1.RRsetSpec{ + ZoneRef: dnsv1alpha1.ZoneRef{ + Name: zoneRef, + }, + Type: additionalResourceType, + Name: additionalResourceName, + TTL: resourceTTL, + Records: additionalResourceRecords, + Comment: &additionalResourceComment, + } + return nil + }) + additionalRRsetLookupKey := types.NamespacedName{ + Name: additionalResourceName, + Namespace: resourceNamespace, + } + + Expect(err).NotTo(HaveOccurred()) + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, additionalResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + // Confirm that resource is created in the backend + DnsFqdn := getRRsetName(additionalResource) + Eventually(func() bool { + _, ok := readFromRecordsMap(makeCanonical(DnsFqdn)) + return ok + }, timeout, interval).Should(BeTrue()) + + By("Getting the created resource") + createdResource := &dnsv1alpha1.RRset{} + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, createdResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + + Expect(getMockedRecordsForType(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceRecords)) + Expect(getMockedTTL(DnsFqdn, additionalResourceType)).To(Equal(resourceTTL)) + Expect(getMockedComment(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceComment)) + Expect(createdResource.GetOwnerReferences()).NotTo(BeEmpty(), "RRset should have setOwnerReference") + Expect(createdResource.GetOwnerReferences()[0].Name).To(Equal(zoneRef), "RRset should have setOwnerReference to Zone") + Expect(createdResource.GetFinalizers()).To(ContainElement(FINALIZER_NAME), "RRset should contain the finalizer") + }) + }) + + Context("When creating RRset", func() { + It("should successfully reconcile the resource", Label("rrset-creation", "Wildcard-Type"), func() { + ctx := context.Background() + // Specific test variables + additionalResourceName := "wildcard" + additionalResourceType := "*.a" + additionalResourceRecords := []string{"192.168.1.123"} + additionalResourceComment := "This is a A Wildcard Record" + + By("Creating the RRset resource") + additionalResource := &dnsv1alpha1.RRset{ + ObjectMeta: metav1.ObjectMeta{ + Name: additionalResourceName, + Namespace: resourceNamespace, + }, + } + additionalResource.SetResourceVersion("") + _, err := controllerutil.CreateOrUpdate(ctx, k8sClient, additionalResource, func() error { + additionalResource.Spec = dnsv1alpha1.RRsetSpec{ + ZoneRef: dnsv1alpha1.ZoneRef{ + Name: zoneRef, + }, + Type: additionalResourceType, + Name: additionalResourceName, + TTL: resourceTTL, + Records: additionalResourceRecords, + Comment: &additionalResourceComment, + } + return nil + }) + additionalRRsetLookupKey := types.NamespacedName{ + Name: additionalResourceName, + Namespace: resourceNamespace, + } + + Expect(err).NotTo(HaveOccurred()) + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, additionalResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + // Confirm that resource is created in the backend + DnsFqdn := getRRsetName(additionalResource) + Eventually(func() bool { + _, ok := readFromRecordsMap(makeCanonical(DnsFqdn)) + return ok + }, timeout, interval).Should(BeTrue()) + + By("Getting the created resource") + createdResource := &dnsv1alpha1.RRset{} + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, createdResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + + Expect(getMockedRecordsForType(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceRecords)) + Expect(getMockedTTL(DnsFqdn, additionalResourceType)).To(Equal(resourceTTL)) + Expect(getMockedComment(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceComment)) + Expect(createdResource.GetOwnerReferences()).NotTo(BeEmpty(), "RRset should have setOwnerReference") + Expect(createdResource.GetOwnerReferences()[0].Name).To(Equal(zoneRef), "RRset should have setOwnerReference to Zone") + Expect(createdResource.GetFinalizers()).To(ContainElement(FINALIZER_NAME), "RRset should contain the finalizer") + }) + }) + Context("When creating RRset", func() { + It("should successfully reconcile the resource", Label("rrset-creation", "MX-Type"), func() { + ctx := context.Background() + // Specific test variables + additionalResourceName := "mx" + additionalResourceType := makeCanonical(zoneRef) + additionalResourceRecords := []string{"10 mail1.example2.org.", "20 mail2.example2.org."} + additionalResourceComment := "This is a MX Record" + + By("Creating the RRset resource") + additionalResource := &dnsv1alpha1.RRset{ + ObjectMeta: metav1.ObjectMeta{ + Name: additionalResourceName, + Namespace: resourceNamespace, + }, + } + additionalResource.SetResourceVersion("") + _, err := controllerutil.CreateOrUpdate(ctx, k8sClient, additionalResource, func() error { + additionalResource.Spec = dnsv1alpha1.RRsetSpec{ + ZoneRef: dnsv1alpha1.ZoneRef{ + Name: zoneRef, + }, + Type: additionalResourceType, + Name: additionalResourceName, + TTL: resourceTTL, + Records: additionalResourceRecords, + Comment: &additionalResourceComment, + } + return nil + }) + additionalRRsetLookupKey := types.NamespacedName{ + Name: additionalResourceName, + Namespace: resourceNamespace, + } + + Expect(err).NotTo(HaveOccurred()) + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, additionalResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + // Confirm that resource is created in the backend + DnsFqdn := getRRsetName(additionalResource) + Eventually(func() bool { + _, ok := readFromRecordsMap(makeCanonical(DnsFqdn)) + return ok + }, timeout, interval).Should(BeTrue()) + + By("Getting the created resource") + createdResource := &dnsv1alpha1.RRset{} + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, createdResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + + Expect(getMockedRecordsForType(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceRecords)) + Expect(getMockedTTL(DnsFqdn, additionalResourceType)).To(Equal(resourceTTL)) + Expect(getMockedComment(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceComment)) + Expect(createdResource.GetOwnerReferences()).NotTo(BeEmpty(), "RRset should have setOwnerReference") + Expect(createdResource.GetOwnerReferences()[0].Name).To(Equal(zoneRef), "RRset should have setOwnerReference to Zone") + Expect(createdResource.GetFinalizers()).To(ContainElement(FINALIZER_NAME), "RRset should contain the finalizer") + }) + }) + + Context("When creating RRset", func() { + It("should successfully reconcile the resource", Label("rrset-creation", "NS-Type"), func() { + ctx := context.Background() + // Specific test variables + additionalResourceName := "ns" + additionalResourceType := makeCanonical(zoneRef) + additionalResourceRecords := []string{"ns1.example2.org", "ns2.example2.org"} + additionalResourceComment := "This is a NS Record" + + By("Creating the RRset resource") + additionalResource := &dnsv1alpha1.RRset{ + ObjectMeta: metav1.ObjectMeta{ + Name: additionalResourceName, + Namespace: resourceNamespace, + }, + } + additionalResource.SetResourceVersion("") + _, err := controllerutil.CreateOrUpdate(ctx, k8sClient, additionalResource, func() error { + additionalResource.Spec = dnsv1alpha1.RRsetSpec{ + ZoneRef: dnsv1alpha1.ZoneRef{ + Name: zoneRef, + }, + Type: additionalResourceType, + Name: additionalResourceName, + TTL: resourceTTL, + Records: additionalResourceRecords, + Comment: &additionalResourceComment, + } + return nil + }) + additionalRRsetLookupKey := types.NamespacedName{ + Name: additionalResourceName, + Namespace: resourceNamespace, + } + + Expect(err).NotTo(HaveOccurred()) + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, additionalResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + // Confirm that resource is created in the backend + DnsFqdn := getRRsetName(additionalResource) + Eventually(func() bool { + _, ok := readFromRecordsMap(makeCanonical(DnsFqdn)) + return ok + }, timeout, interval).Should(BeTrue()) + + By("Getting the created resource") + createdResource := &dnsv1alpha1.RRset{} + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, createdResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + + Expect(getMockedRecordsForType(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceRecords)) + Expect(getMockedTTL(DnsFqdn, additionalResourceType)).To(Equal(resourceTTL)) + Expect(getMockedComment(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceComment)) + Expect(createdResource.GetOwnerReferences()).NotTo(BeEmpty(), "RRset should have setOwnerReference") + Expect(createdResource.GetOwnerReferences()[0].Name).To(Equal(zoneRef), "RRset should have setOwnerReference to Zone") + Expect(createdResource.GetFinalizers()).To(ContainElement(FINALIZER_NAME), "RRset should contain the finalizer") + }) + }) + + Context("When creating RRset", func() { + It("should successfully reconcile the resource", Label("rrset-creation", "TXT-Type"), func() { + ctx := context.Background() + // Specific test variables + additionalResourceName := "txt" + additionalResourceType := makeCanonical(zoneRef) + additionalResourceRecords := []string{"This a TXT Record"} + additionalResourceComment := "This is a TXT Record" + + By("Creating the RRset resource") + additionalResource := &dnsv1alpha1.RRset{ + ObjectMeta: metav1.ObjectMeta{ + Name: additionalResourceName, + Namespace: resourceNamespace, + }, + } + additionalResource.SetResourceVersion("") + _, err := controllerutil.CreateOrUpdate(ctx, k8sClient, additionalResource, func() error { + additionalResource.Spec = dnsv1alpha1.RRsetSpec{ + ZoneRef: dnsv1alpha1.ZoneRef{ + Name: zoneRef, + }, + Type: additionalResourceType, + Name: additionalResourceName, + TTL: resourceTTL, + Records: additionalResourceRecords, + Comment: &additionalResourceComment, + } + return nil + }) + additionalRRsetLookupKey := types.NamespacedName{ + Name: additionalResourceName, + Namespace: resourceNamespace, + } + + Expect(err).NotTo(HaveOccurred()) + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, additionalResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + // Confirm that resource is created in the backend + DnsFqdn := getRRsetName(additionalResource) + Eventually(func() bool { + _, ok := readFromRecordsMap(makeCanonical(DnsFqdn)) + return ok + }, timeout, interval).Should(BeTrue()) + + By("Getting the created resource") + createdResource := &dnsv1alpha1.RRset{} + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, createdResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + + Expect(getMockedRecordsForType(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceRecords)) + Expect(getMockedTTL(DnsFqdn, additionalResourceType)).To(Equal(resourceTTL)) + Expect(getMockedComment(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceComment)) + Expect(createdResource.GetOwnerReferences()).NotTo(BeEmpty(), "RRset should have setOwnerReference") + Expect(createdResource.GetOwnerReferences()[0].Name).To(Equal(zoneRef), "RRset should have setOwnerReference to Zone") + Expect(createdResource.GetFinalizers()).To(ContainElement(FINALIZER_NAME), "RRset should contain the finalizer") + }) + }) + + Context("When creating RRset", func() { + It("should successfully reconcile the resource", Label("rrset-creation", "SRV-Type"), func() { + ctx := context.Background() + // Specific test variables + additionalResourceName := "srv" + additionalResourceType := "_srv._protcol.myapp" + additionalResourceRecords := []string{"1 50 25565 front.example2.org."} + additionalResourceComment := "This is a SRV Record" + + By("Creating the RRset resource") + additionalResource := &dnsv1alpha1.RRset{ + ObjectMeta: metav1.ObjectMeta{ + Name: additionalResourceName, + Namespace: resourceNamespace, + }, + } + additionalResource.SetResourceVersion("") + _, err := controllerutil.CreateOrUpdate(ctx, k8sClient, additionalResource, func() error { + additionalResource.Spec = dnsv1alpha1.RRsetSpec{ + ZoneRef: dnsv1alpha1.ZoneRef{ + Name: zoneRef, + }, + Type: additionalResourceType, + Name: additionalResourceName, + TTL: resourceTTL, + Records: additionalResourceRecords, + Comment: &additionalResourceComment, + } + return nil + }) + additionalRRsetLookupKey := types.NamespacedName{ + Name: additionalResourceName, + Namespace: resourceNamespace, + } + + Expect(err).NotTo(HaveOccurred()) + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, additionalResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + // Confirm that resource is created in the backend + DnsFqdn := getRRsetName(additionalResource) + Eventually(func() bool { + _, ok := readFromRecordsMap(makeCanonical(DnsFqdn)) + return ok + }, timeout, interval).Should(BeTrue()) + + By("Getting the created resource") + createdResource := &dnsv1alpha1.RRset{} + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, createdResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + + Expect(getMockedRecordsForType(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceRecords)) + Expect(getMockedTTL(DnsFqdn, additionalResourceType)).To(Equal(resourceTTL)) + Expect(getMockedComment(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceComment)) + Expect(createdResource.GetOwnerReferences()).NotTo(BeEmpty(), "RRset should have setOwnerReference") + Expect(createdResource.GetOwnerReferences()[0].Name).To(Equal(zoneRef), "RRset should have setOwnerReference to Zone") + Expect(createdResource.GetFinalizers()).To(ContainElement(FINALIZER_NAME), "RRset should contain the finalizer") + }) + }) + + Context("When creating RRset", func() { + It("should successfully reconcile the resource", Label("rrset-creation", "PTR-Type"), func() { + ctx := context.Background() + // Specific test variables + reverseZoneName := "123.168.192.in-addr.arpa" + additionalResourceName := "ptr" + additionalResourceType := "1" + additionalResourceRecords := []string{"mail1.example2.org"} + additionalResourceComment := "This is a PTR Record" + + By("Creating the Reverse Zone resource") + reverseZone := &dnsv1alpha1.Zone{ + ObjectMeta: metav1.ObjectMeta{ + Name: reverseZoneName, + }, + } + reverseZone.SetResourceVersion("") + _, err := controllerutil.CreateOrUpdate(ctx, k8sClient, reverseZone, func() error { + reverseZone.Spec = dnsv1alpha1.ZoneSpec{ + Kind: zoneKind, + Nameservers: []string{zoneNS1, zoneNS2}, + } + return nil + }) + Expect(err).NotTo(HaveOccurred()) + additionalReverseZoneLookupKey := types.NamespacedName{ + Name: reverseZoneName, + } + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalReverseZoneLookupKey, reverseZone) + return err == nil + }, timeout, interval).Should(BeTrue()) + // Confirm that resource is created in the backend + Eventually(func() bool { + _, found := readFromZonesMap(makeCanonical(reverseZone.Name)) + return found + }, timeout, interval).Should(BeTrue()) + + By("Creating the RRset resource") + additionalResource := &dnsv1alpha1.RRset{ + ObjectMeta: metav1.ObjectMeta{ + Name: additionalResourceName, + Namespace: resourceNamespace, + }, + } + additionalResource.SetResourceVersion("") + _, err = controllerutil.CreateOrUpdate(ctx, k8sClient, additionalResource, func() error { + additionalResource.Spec = dnsv1alpha1.RRsetSpec{ + ZoneRef: dnsv1alpha1.ZoneRef{ + Name: reverseZoneName, + }, + Type: additionalResourceType, + Name: additionalResourceName, + TTL: resourceTTL, + Records: additionalResourceRecords, + Comment: &additionalResourceComment, + } + return nil + }) + additionalRRsetLookupKey := types.NamespacedName{ + Name: additionalResourceName, + Namespace: resourceNamespace, + } + + Expect(err).NotTo(HaveOccurred()) + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, additionalResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + // Confirm that resource is created in the backend + DnsFqdn := getRRsetName(additionalResource) + Eventually(func() bool { + _, ok := readFromRecordsMap(makeCanonical(DnsFqdn)) + return ok + }, timeout, interval).Should(BeTrue()) + + By("Getting the created resource") + createdResource := &dnsv1alpha1.RRset{} + Eventually(func() bool { + err := k8sClient.Get(ctx, additionalRRsetLookupKey, createdResource) + return err == nil + }, timeout, interval).Should(BeTrue()) + + Expect(getMockedRecordsForType(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceRecords)) + Expect(getMockedTTL(DnsFqdn, additionalResourceType)).To(Equal(resourceTTL)) + Expect(getMockedComment(DnsFqdn, additionalResourceType)).To(Equal(additionalResourceComment)) + Expect(createdResource.GetOwnerReferences()).NotTo(BeEmpty(), "RRset should have setOwnerReference") + Expect(createdResource.GetOwnerReferences()[0].Name).To(Equal(reverseZoneName), "RRset should have setOwnerReference to Zone") + Expect(createdResource.GetFinalizers()).To(ContainElement(FINALIZER_NAME), "RRset should contain the finalizer") + }) + }) }) diff --git a/mkdocs.yml b/mkdocs.yml index e9f913c..be9a50c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -57,3 +57,4 @@ nav: - Guides: - Zones: guides/zones.md - RRsets: guides/rrsets.md + - Warnings: guides/warnings.md