My AT&T Uverse router doesn't allow me to change the DNS server setting. So, I want to disable DHCP on the router and configure the Pihole as the DHCP server.
My question is: what about the Pihole's IP? It was originally obtained from the router's DHCP server. When I make the Pihole the DHCP server, will it handle it's own IP? Do I need to add it to the Pihole's Static DHCP leases?
Not sure if this question has already been asked, but I sure couldn't find it.
No.
That file (as well as other files in HOSTS format) defines an IP address to hostname association in order to facilitate name resolution.
IP addresses for a device are instead tied to its network interfaces (commonly via a MAC address or some other unique ID for an interface).
They can be requested via a DHCP server, calculated on-device (as is common for link-local and IPv6 addresses), or defined statically on-device.
Pi-hole's installation script currently does the latter if you opted for a static IP address. It does so by adding configuration details to /etc/dhcpcd.conf. dhcpcd5 is the default DHCP client for Raspberry Pi OS. Depending on your actual choice and OS, you may consider to use other configuration tools to achieve the same (netplan, NetworkManager).
You have several options:
a) stick with the static IP set on-device in dhcpcd.conf, provided you opted for that during installation
b) define a static on-device IP address with your favourite network configuration tool, as available and appropriate for the host OS of your Pi-hole
c) define a static IP address as DHCP lease reservation via Pi-hole's UI
d) have Pi-hole handle this autonomously - note that while Pi-hole handles this well by trying to always assign the same IP for the same client interface ID or MAC, that's still a best effort approach
For option d), you have no control over the IP that's actually assigned.
For options c) and d), there is still a chance that your host machine would pick up a DHCP lease during a reboot if another DHCP server would be active somewhere on your network (which may unexpectedly happen if you add that at some time later on).
Also, depending on the order of services being started, you may end up with only a link-local address.
Thought I would give a status update. I tried letting it use it's own DHCP server to insure it didn't wind up with just a link-local address, and it did work (even got the same IP). So DHCP apparently does start before Networking needs it to obtain an IP. Of course this test is specific to my arm architecture box running Debian 9. No assumptions should be made on other flavors.