- Add comprehensive database migrations (001-024) for schema evolution - Enhance API schema with expanded type definitions and resolvers - Add new middleware: audit logging, rate limiting, MFA enforcement, security, tenant auth - Implement new services: AI optimization, billing, blockchain, compliance, marketplace - Add adapter layer for cloud integrations (Cloudflare, Kubernetes, Proxmox, storage) - Update Crossplane provider with enhanced VM management capabilities - Add comprehensive test suite for API endpoints and services - Update frontend components with improved GraphQL subscriptions and real-time updates - Enhance security configurations and headers (CSP, CORS, etc.) - Update documentation and configuration files - Add new CI/CD workflows and validation scripts - Implement design system improvements and UI enhancements
6.1 KiB
DNS Configuration for Proxmox Instances
Overview
This document describes DNS configuration for Proxmox instances using the sankofa.nexus domain.
DNS Records Required
Instance 1 (ML110-01)
| Type | Name | Value | TTL | Purpose |
|---|---|---|---|---|
| A | ml110-01.sankofa.nexus | 192.168.11.10 | 300 | Primary FQDN |
| CNAME | ml110-01-api.sankofa.nexus | ml110-01.sankofa.nexus | 300 | API endpoint |
| CNAME | ml110-01-metrics.sankofa.nexus | ml110-01.sankofa.nexus | 300 | Metrics endpoint |
Instance 2 (R630-01)
| Type | Name | Value | TTL | Purpose |
|---|---|---|---|---|
| A | r630-01.sankofa.nexus | 192.168.11.11 | 300 | Primary FQDN |
| CNAME | r630-01-api.sankofa.nexus | r630-01.sankofa.nexus | 300 | API endpoint |
| CNAME | r630-01-metrics.sankofa.nexus | r630-01.sankofa.nexus | 300 | Metrics endpoint |
Configuration Methods
Method 1: Cloudflare API (Automated)
Use the provided script to create DNS records via Cloudflare API:
# Set environment variables
export CLOUDFLARE_ZONE_ID="your-zone-id"
export CLOUDFLARE_API_TOKEN="your-api-token"
export DOMAIN="sankofa.nexus"
# Run the script
./scripts/setup-dns-records.sh
Prerequisites:
- Cloudflare account with
sankofa.nexuszone - API token with DNS edit permissions
curlandjqinstalled
Method 2: Cloudflare Terraform
Use Terraform to manage DNS records as infrastructure:
cd cloudflare/terraform
# Initialize Terraform
terraform init
# Review plan
terraform plan
# Apply DNS records
terraform apply
Files:
cloudflare/terraform/dns.tf- DNS record definitions
Method 3: Cloudflare Dashboard (Manual)
- Log into Cloudflare dashboard
- Select
sankofa.nexuszone - Go to DNS → Records
- Add records manually:
For Instance 1:
- Type: A, Name:
ml110-01, Content:192.168.11.10, TTL: Auto, Proxy: Off - Type: CNAME, Name:
ml110-01-api, Target:ml110-01.sankofa.nexus, TTL: Auto, Proxy: Off - Type: CNAME, Name:
ml110-01-metrics, Target:ml110-01.sankofa.nexus, TTL: Auto, Proxy: Off
For Instance 2:
- Type: A, Name:
r630-01, Content:192.168.11.11, TTL: Auto, Proxy: Off - Type: CNAME, Name:
r630-01-api, Target:r630-01.sankofa.nexus, TTL: Auto, Proxy: Off - Type: CNAME, Name:
r630-01-metrics, Target:r630-01.sankofa.nexus, TTL: Auto, Proxy: Off
Method 4: Local /etc/hosts (Testing)
For local testing before DNS is configured:
# Add entries to /etc/hosts
sudo cat scripts/hosts-entries.txt >> /etc/hosts
# Or manually edit /etc/hosts
sudo nano /etc/hosts
Note: This only works on the local machine. For production, use proper DNS.
Verification
Test DNS Resolution
# Test A records
dig ml110-01.sankofa.nexus +short
# Expected: 192.168.11.10
dig r630-01.sankofa.nexus +short
# Expected: 192.168.11.11
# Test CNAME records
dig ml110-01-api.sankofa.nexus +short
# Expected: ml110-01.sankofa.nexus
dig r630-01-metrics.sankofa.nexus +short
# Expected: r630-01.sankofa.nexus
# Test with nslookup
nslookup ml110-01.sankofa.nexus
nslookup r630-01.sankofa.nexus
Test HTTPS Connectivity
# Test Instance 1
curl -k https://ml110-01.sankofa.nexus:8006/api2/json/version
# Test Instance 2
curl -k https://r630-01.sankofa.nexus:8006/api2/json/version
Test from Kubernetes Pod
# Test DNS resolution from within cluster
kubectl run -it --rm debug --image=busybox --restart=Never -- nslookup ml110-01.sankofa.nexus
kubectl run -it --rm debug --image=busybox --restart=Never -- nslookup r630-01.sankofa.nexus
DNS Record Details
A Records
A records provide direct IP address mapping:
- Purpose: Primary hostname resolution
- TTL: 300 seconds (5 minutes) - allows quick updates
- Proxy: Disabled (direct connection, not proxied through Cloudflare)
CNAME Records
CNAME records create aliases:
- Purpose: Provide alternative endpoints (API, metrics)
- TTL: 300 seconds (5 minutes)
- Proxy: Disabled (direct connection)
Cloudflare Tunnel Integration
When using Cloudflare Tunnels, DNS records should point to tunnel endpoints:
# For tunnel-based access (if using Cloudflare proxy)
# A records would point to tunnel CNAME:
# ml110-01.sankofa.nexus → <tunnel-id>.cfargotunnel.com
Current Configuration: Direct IP access (no proxy) for internal network access.
Troubleshooting
DNS Not Resolving
-
Check DNS propagation:
dig @8.8.8.8 ml110-01.sankofa.nexus dig @1.1.1.1 ml110-01.sankofa.nexus -
Check local DNS cache:
# Linux sudo systemd-resolve --flush-caches # macOS sudo dscacheutil -flushcache # Windows ipconfig /flushdns -
Verify records exist:
# Using Cloudflare API curl -X GET \ -H "Authorization: Bearer ${CLOUDFLARE_API_TOKEN}" \ "https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records?name=ml110-01.sankofa.nexus"
Wrong IP Address
-
Update A record:
# Use setup-dns-records.sh script # Or update via Cloudflare dashboard # Or use Terraform to update -
Wait for TTL expiration (300 seconds)
CNAME Resolution Issues
-
Verify target exists:
dig ml110-01.sankofa.nexus # Should resolve first dig ml110-01-api.sankofa.nexus # Then test CNAME -
Check for CNAME chains (should be avoided)
Security Considerations
-
Internal Network Only: These IPs (192.168.11.x) are private, so DNS should only be accessible from internal networks or via VPN.
-
No Public Exposure: Do not expose these records publicly if they point to private IPs.
-
Access Control: Use Cloudflare Access policies if exposing via tunnels.
Related Documentation
Scripts
scripts/setup-dns-records.sh- Automated DNS record creationscripts/hosts-entries.txt- Local /etc/hosts entriescloudflare/terraform/dns.tf- Terraform DNS configuration