DNSRecordSet
DNSRecordSet is a set of records that belong to a DNSZone.
| API version | kudurru.io/v1alpha1 |
| Kind | DNSRecordSet |
| Scope | Namespaced |
| Resource | dnsrecordsets.kudurru.io |
| Short names | rrset |
| Subresources | status |
Columns of kubectl get dnsrecordsets:
| Column | Type | Value |
|---|---|---|
| ZONE | string | .spec.zoneRef.name |
| NAMES | integer | .status.names |
| READY | string | .status.conditions[?(@.type=="Ready")].status |
| AGE | date | .metadata.creationTimestamp |
Spec
DNSRecordSetSpec defines records added to a zone. App teams own these: the clay copies of authority delegated from a DNSZone.
| Field | Type | Description |
|---|---|---|
spec.endpoints | []object | Required. Items: at most 1000 |
spec.endpoints[].dnsName | string | Required. Length: at least 1 |
spec.endpoints[].kudurru | object | EndpointExt is the kudurru extension block on an Endpoint (decision D28). |
spec.endpoints[].kudurru.comment | string | |
spec.endpoints[].kudurru.disabled | boolean | Disabled records are kept but never served. |
spec.endpoints[].kudurru.expiresAt | string | ExpiresAt removes the record from service after this time. Format: date-time |
spec.endpoints[].kudurru.view | string | View is "public" (published to sinks, never served) or a ClientGroup name (served only to that group). v0.2. |
spec.endpoints[].labels | map[string]string | |
spec.endpoints[].providerSpecific | []object | |
spec.endpoints[].providerSpecific[].name | string | Required. |
spec.endpoints[].providerSpecific[].value | string | Required. |
spec.endpoints[].recordTTL | integer | Format: int64 |
spec.endpoints[].recordType | string | Required. Pattern: ^([A-Z0-9]+|TYPE[0-9]+)$ |
spec.endpoints[].setIdentifier | string | |
spec.endpoints[].targets | []string | Required. Items: at least 1 |
spec.zoneRef | object | Required. ObjectRef points at another kudurru object. Namespace is omitted for cluster-scoped kinds and for same-namespace references. Validation: zoneRef is immutable ( self == oldSelf) |
spec.zoneRef.name | string | Required. Length: at least 1 |
spec.zoneRef.namespace | string |
Status
DNSRecordSetStatus is the observed state of a record set.
| Field | Type | Description |
|---|---|---|
status.conditions | []Condition | List type: map, keyed by type |
status.names | integer | |
status.observedGeneration | integer | Format: int64 |
status.publications | []object | |
status.publications[].integration | string | Required. |
status.publications[].message | string | |
status.publications[].state | string | Required. One of: Accepted, Programmed, Failed |
Example
config/samples/kudurru.io_v1alpha1_dnsrecordset.yaml:
apiVersion: kudurru.io/v1alpha1
kind: DNSRecordSet
metadata:
name: nas
namespace: apps
labels:
kudurru.io/publish: cloudflare
spec:
zoneRef:
name: home-example-com
endpoints:
- dnsName: nas.home.example.com
recordType: A
targets: ["10.0.0.20"]
recordTTL: 300
kudurru:
comment: Synology
- dnsName: nas.home.example.com
recordType: HTTPS
targets: ["1 . alpn=h2,h3"]
# v0.2: published to Cloudflare, never served internally.
# - dnsName: nas.home.example.com
# recordType: CNAME
# targets: [tunnel-7f3a.cfargotunnel.com]
# providerSpecific: [{ name: cloudflare/proxied, value: "true" }]
# kudurru: { view: public }