Skip to content

Commit 93437d7

Browse files
spillerc-hpedenniswalker
authored andcommitted
CASMINST-2683 - PowerDNS documentation updates
1 parent e17de87 commit 93437d7

File tree

6 files changed

+370
-40
lines changed

6 files changed

+370
-40
lines changed

img/operations/dns.svg

+1
Loading

install/prepare_configuration_payload.md

+4
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ For more description of these settings and the default values, see [Default IP A
6161
| --application-node-config-yaml application_node_config.yaml | Name of `application_node_config.yaml` |
6262
| --cabinets-yaml cabinets.yaml | Name of `cabinets.yaml` |
6363
| --bgp-peers aggregation | Override the default BGP peers, using aggregation switches instead of spines |
64+
| --primary-server-name primary | Desired name for the primary DNS server |
65+
| --secondary-servers "" | Comma seperated list of FQDN/IP for all DNS servers to be notified on DNS zone update |
66+
| --notify-zones "" | A comma separated list of DNS zones to transfer |
6467

6568
* This is a long list of options. It can be helpful to create a Bash script file to call the `csi` command with all of these options, and then edit that file to adjust the values for the particular system being installed.
6669
* The `bootstrap-ncn-bmc-user` and `bootstrap-ncn-bmc-pass` must match what is used for the BMC account and its password for the management nodes.
@@ -75,6 +78,7 @@ For more description of these settings and the default values, see [Default IP A
7578
* Set `ntp-pool` to a reachable NTP server.
7679
* The `application_node_config.yaml` file is required. It is used to describe the mapping between prefixes in `hmn_connections.csv` and HSM subroles. This file also defines aliases application nodes. For details, see [Create Application Node YAML](create_application_node_config_yaml.md).
7780
* For systems that use non-sequential cabinet id numbers, use `cabinets-yaml` to include the `cabinets.yaml` file. This file can include information about the starting ID for each cabinet type and number of cabinets which have separate command line options, but is a way to specify explicitly the id of every cabinet in the system. See [Create Cabinets YAML](create_cabinets_yaml.md).
81+
* The PowerDNS zone transfer arguments `primary-server-name`, `secondary-servers`, and `notify-zones` are optional unless zone transfer is being configured. For more information see the [PowerDNS Configuration Guide](../operations/network/dns/PowerDNS_Configuration.md#zone-transfer)
7882

7983
<a name="configuration_payload_files"></a>
8084
### Configuration Payload Files

install/prepare_site_init.md

+75-22
Original file line numberDiff line numberDiff line change
@@ -404,39 +404,92 @@ with system-specific customizations.
404404
ldapSearchBase: dc=dcldap,dc=dit
405405
```
406406
407-
1. If you need to resolve outside hostnames, you will need to configure
408-
forwarding in the cray-dns-unbound service. For example, if you are using a
409-
hostname and not an IP address for the upstream LDAP server in step 4 above, you
410-
will need to be able to resolve that hostname.
407+
1. Configure the Unbound DNS resolver.
411408
412-
Default configuration:
409+
If a valid DNS server was defined using the CSI `--site-dns` option then no further action is required and the default configuration will suffice.
413410
414-
```
415-
cray-dns-unbound:
411+
Default configuration:
412+
413+
```
414+
cray-dns-unbound:
416415
domain_name: '{{ network.dns.external }}'
417416
forwardZones:
418417
- name: "."
419418
forwardIps:
420419
- "{{ network.netstaticips.system_to_site_lookups }}"
421-
```
422-
Remove the `forwardZones` configuration for the `cray-dns-unbound` service:
420+
```
421+
422+
If there is no requirement to resolve external hostnames or no upstream DNS server
423+
then remove the DNS forwarding configuration from the `cray-dns-unbound` service.
423424
424-
```bash
425-
linux# yq delete -i /mnt/pitdata/prep/site-init/customizations.yaml spec.kubernetes.services.cray-dns-unbound.forwardZones
426-
```
425+
426+
1. Remove the `forwardZones` configuration for the `cray-dns-unbound` service:
427427
428-
Review the `cray-dns-unbound` values.
428+
```bash
429+
linux# yq delete -i /mnt/pitdata/prep/site-init/customizations.yaml spec.kubernetes.services.cray-dns-unbound.forwardZones
430+
```
429431
430-
```bash
431-
linux# yq read /mnt/pitdata/prep/site-init/customizations.yaml spec.kubernetes.services.cray-dns-unbound
432-
```
432+
1. Review the `cray-dns-unbound` values.
433+
434+
```bash
435+
linux# yq read /mnt/pitdata/prep/site-init/customizations.yaml spec.kubernetes.services.cray-dns-unbound
436+
```
437+
438+
Expected output is:
439+
440+
```
441+
domain_name: '{{ network.dns.external }}'
442+
```
443+
> **`IMPORTANT`** **Do not** remove the `domain_name` entry, it is required for Unbound to forward requests to PowerDNS correctly.
444+
445+
1. Configure PowerDNS zone transfer and DNSSEC (optional)
446+
447+
* If zone transfer is to be configured review `customizations.yaml` and ensure the `primary_server`, `secondary_servers`, and `notify_zones` values are set correctly.
448+
449+
* If DNSSEC is to be used then add the desired keys into the `dnssec` SealedSecret.
450+
451+
Please see the [PowerDNS Configuration Guide](../operations/network/dns/PowerDNS_Configuration.md) for more information.
452+
453+
1. Review `customizations.yaml` in the `site-init` directory and replace remaining `~FIXME~` values with
454+
appropriate settings.
455+
456+
1. Create backup copy of `customizations.yaml`:
457+
458+
```bash
459+
linux# cp -v /mnt/pitdata/prep/site-init/customizations.yaml /mnt/pitdata/prep/site-init/customizations.yaml-prefixme
460+
```
461+
462+
1. Edit `customizations.yaml`
463+
For the following `~FIXME~` values, use the example provided and just remove the `~FIXME~ e.g.`
464+
465+
```
466+
sma-rsyslog-aggregator:
467+
cray-service:
468+
service:
469+
loadBalancerIP: ~FIXME~ e.g. 10.92.100.72
470+
rsyslogAggregatorHmn:
471+
service:
472+
loadBalancerIP: ~FIXME~ e.g. 10.94.100.2
473+
474+
sma-rsyslog-aggregator-udp:
475+
cray-service:
476+
service:
477+
loadBalancerIP: ~FIXME~ e.g. 10.92.100.75
478+
rsyslogAggregatorUdpHmn:
479+
service:
480+
loadBalancerIP: ~FIXME~ e.g. 10.94.100.3
481+
```
482+
483+
1. Review your changes:
484+
```bash
485+
linux# diff /mnt/pitdata/prep/site-init/customizations.yaml /mnt/pitdata/prep/site-init/customizations.yaml-prefixme
486+
```
487+
488+
1. Verify that no `FIXME` strings remain in the file:
489+
```bash
490+
linux# grep FIXME /mnt/pitdata/prep/site-init/customizations.yaml
491+
```
433492
434-
Expected output is:
435-
436-
```
437-
domain_name: '{{ network.dns.external }}'
438-
```
439-
Do not remove the `domain_name` entry.
440493
441494
<a name="generate-sealed-secrets"></a>
442495
### 4. Generate Sealed Secrets

introduction/differences.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,28 @@ The most noteworthy changes since the previous release are described here.
2929
* Rome-Based HPE DL 385(v1) Gen10
3030
* Node consoles are now managed by cray-console-node which is based on conman.
3131
* HSM now has a v2 REST API
32+
* PowerDNS authoriative DNS server
33+
* Introduces the cray-dns-powerdns, cray-dns-powerdns-postgres, and cray-powerdns-manager pods
34+
* Supports zone transfer to external DNS servers via AXFR query and DNSSEC
35+
* Please refer to the [DNS overview](../operations/network/dns/DNS.md) and [PowerDNS Configuration Guide](../operations/network/dns/PowerDNS_Configuration.md) for further information.
3236

3337
<a name="deprecating_features"></a>
3438
### Deprecating Features
3539

3640
* HSM v1 REST API has been deprecated as of CSM version 0.9.3. The v1 HSM APIs will be removed in the CSM version 1.3 release.
3741
* Many CAPMC v1 REST API and CLI features are being deprecated as part of CSM version 1.0; Full removal of the deprecated CAPMC features will happen in CSM version 1.3. Further development of CAPMC service or CLI has stopped. CAPMC has entered end-of-life but will still be generally available. CAPMC is going to be replaced with the Power Control Service (PCS) in a future release. The current API/CLI portfolio for CAPMC are being pruned to better align with the future direction of PCS. More information about PCS and the CAPMC transition will be released as part of subsequent CSM releases.
3842
* For more information on what features have been deprecated please view the CAPMC swagger doc or read the [CAPMC deprecation notice](../introduction/CAPMC_deprecation.md)
39-
4043
* The Boot Orchestration Service (BOS) API is changing in the upcoming CSM-1.2.0 release:
4144
* The `--template-body` option for the Cray CLI `bos` command will be deprecated.
4245
* Performing a GET on the session status for a boot set (i.e. `/v1/session/{session_id}/status/{boot_set_name}`) currently returns a status code of 201, but instead it should return a status code of 200. This will be corrected to return 200.
46+
* PowerDNS will replace Unbound as the authoritative DNS source in CSM version 1.2.
47+
* The cray-dns-unbound-manager CronJob will be deprecated when all DNS records are migrated to PowerDNS.
4348

4449
<a name="deprecated_features"></a>
4550
### Deprecated Features
4651

4752
* cray-conman pod. This has been replaced by cray-console-node.
53+
* The cray-externaldns-coredns, cray-externaldns-etcd, and cray-externaldns-wait-for-etcd pods have been removed. PowerDNS is now the provider of the external DNS service.
4854

4955
<a name="other_changes"></a>
5056
### Other Changes

operations/network/dns/DNS.md

+51-17
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,63 @@
1-
## Domain Name Service (DNS)
1+
# Domain Name Service (DNS) Overview
22

3-
The central DNS infrastructure provides the structural networking hierarchy and datastore for the system. All DNS requests are managed by resolvers, not by the central DNS infrastructure. Resolvers provide the following within DNS:
3+
## DNS Architecture
44

5-
- Security by scoping requests from clients.
5+
This diagram shows how the various components of the DNS infrastructure interact.
66

7-
For example, disallowing cross-network DNS lookups.
7+
![DNS Architecture](../../../img/operations/dns.svg)
88

9-
- Load reduction on the central DNS infrastructure:
10-
- Caching requests and handling scoping requests.
11-
- Providing request recursion where necessary.
9+
## DNS Components
1210

13-
The Data Helper Tools are used to update records, and takes in changes from the following sources:
11+
The DNS infrastructure is comprised of a number of components.
1412

15-
- Hardware State Manager \(HSM\): Uses the System Layout Service \(SLS\) and the State Manager Daemon \(SMD\) to create a system-of-record for all machine hardware resources. The tooling creates and updates DNS records upon system install or during hardware changes.
16-
- Kubernetes: DNS records are created and updated dynamically.
13+
### Unbound (cray-dns-unbound)
1714

18-
The following figure shows a high-level overview of the various components used in the DNS infrastructure.
15+
Unbound is a caching DNS resolver which is also used as the primary DNS server.
1916

20-
![DNS Architecture](../../../img/operations/DNS_architecture.PNG)
17+
The DNS records served by Unbound include system component xnames, node hostnames, and service names and these records are read from the cray-dns-unbound ConfigMap which is populated by cray-dns-unbound-manager.
2118

22-
### Table of Contents
19+
The DNS server functionality will be migrated to PowerDNS in a future release leaving Unbound acting purely as a caching DNS resolver.
2320

24-
* [Manage the DNS Unbound Resolver](Manage_the_DNS_Unbound_Resolver.md)
25-
* [Enable ncsd on UANs](Enable_ncsd_on_UANs.md)
26-
* [Troubleshoot Common DNS Issues](Troubleshoot_Common_DNS_Issues.md)
27-
* [Troubleshoot DNS Configuration Issues](Troubleshoot_DNS_Configuration_Issues.md)
21+
Unbound also forwards queries to PowerDNS or the site DNS server if the query cannot be answered by local data.
2822

23+
### Unbound Manager (cray-dns-unbound-manager)
2924

25+
The cray-dns-unbound-manager cron job runs every three minutes and queries the System Layout Service, the Hardware State Manager, and the Kea DHCP server for new or changed hardware components and creates DNS records for these components in the cray-dns-unbound ConfigMap.
26+
27+
This job also initiates a rolling restart of Unbound if the cray-dns-unbound ConfigMap was modified.
28+
29+
### Kubernetes DNS (coredns)
30+
31+
Kubernetes creates DNS records for services and pods. A CoreDNS server running in the kube-system namespace is used for this purpose.
32+
33+
The CoreDNS service is also configured to forward DNS requests to Unbound in order to allow pods to resolve system hardware components and other services. This configuration is performed by the cray-dns-unbound-coredns job which is invoked whenever the cray-dns-unbound Helm chart is deployed or upgraded.
34+
35+
See the [Kubernetes documentation](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/) for more information.
36+
37+
### ExternalDNS (cray-externaldns-external-dns)
38+
39+
ExternalDNS creates DNS records for services that are intended to be accessible via the Customer Access Network (CAN). For example grafana.wasp.dev.cray.com.
40+
41+
Kubernetes Services annotated with `external-dns.alpha.kubernetes.io/hostname` have DNS records created.
42+
43+
Starting with CSM version 1.1 these DNS records are created in the PowerDNS server. Earlier versions of CSM used a dedicated CoreDNS server for ExternalDNS.
44+
45+
> Only DNS A records are created as ExternalDNS currently does not support the creation of the PTR records required for reverse lookup.
46+
47+
### PowerDNS (cray-dns-powerdns)
48+
49+
PowerDNS is an authoritative DNS server which over the next few CSM releases will replace Unbound sa the primary DNS server within a CSM system.
50+
51+
PowerDNS is able to respond to queries for services accessible via the CAN. records are externally accessible via the LoadBalancer IP address specified for the CSI `--can-external-dns` option.
52+
53+
As with earlier CSM releases it is possible to delegate to PowerDNS to resolve CAN services and it is also possible to configure zone transfer to sync the DNS records from PowerDNS to Site DNS.
54+
55+
### PowerDNS Manager (cray-powerdns-manager)
56+
57+
The PowerDNS Manager serves a similar purpose to the Unbound Manager. It runs in the background and periodically queries the System Layout Service, the Hardware State Manager, and the Kea DHCP server for new or changed hardware components and creates DNS records for these components in PowerDNS.
58+
59+
The PowerDNS Manager also configures the PowerDNS server for zone transfer and DNSSEC if required.
60+
61+
### Site DNS
62+
63+
This term is used to refer the external DNS server specified the CSI `--site-dns` option.

0 commit comments

Comments
 (0)