Skip to content

Commit e586737

Browse files
authored
remove criticalhostsentry
1 parent 0bcc1dd commit e586737

File tree

138 files changed

+134
-502
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

138 files changed

+134
-502
lines changed

aks-node-controller/parser/helper.go

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -803,41 +803,6 @@ func getLocalDnsMemoryLimitInMb(aksnodeconfig *aksnodeconfigv1.Configuration) st
803803
return defaultLocalDnsMemoryLimitInMb
804804
}
805805

806-
// getCriticalHostsEntriesContent returns the critical hosts entries formatted as a hosts file content.
807-
// Returns empty string if no entries are provided by AKS-RP.
808-
// AKS-RP provides these entries at provisioning time, and CSE writes them to /etc/localdns/hosts.
809-
func getCriticalHostsEntriesContent(aksnodeconfig *aksnodeconfigv1.Configuration) string {
810-
if aksnodeconfig == nil || aksnodeconfig.GetLocalDnsProfile() == nil {
811-
return ""
812-
}
813-
entries := aksnodeconfig.GetLocalDnsProfile().GetCriticalHostsEntries()
814-
if len(entries) == 0 {
815-
return ""
816-
}
817-
818-
var content strings.Builder
819-
content.WriteString("# AKS critical FQDN addresses provided by AKS-RP\n")
820-
content.WriteString("# This file is written by CSE during node provisioning\n\n")
821-
822-
// Sort FQDNs for deterministic output
823-
fqdns := make([]string, 0, len(entries))
824-
for fqdn := range entries {
825-
fqdns = append(fqdns, fqdn)
826-
}
827-
sort.Strings(fqdns)
828-
829-
for _, fqdn := range fqdns {
830-
entry := entries[fqdn]
831-
content.WriteString(fmt.Sprintf("# %s\n", fqdn))
832-
for _, ip := range entry.GetIpAddresses() {
833-
content.WriteString(fmt.Sprintf("%s %s\n", ip, fqdn))
834-
}
835-
content.WriteString("\n")
836-
}
837-
838-
return base64.StdEncoding.EncodeToString([]byte(content.String()))
839-
}
840-
841806
// ---------------------- End of localdns related helper code ----------------------//
842807

843808
// ---------------------- Start of cse timeout helper code ----------------------//

aks-node-controller/parser/helper_test.go

Lines changed: 0 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -1811,103 +1811,3 @@ func Test_getLocalDnsMemoryLimitInMb(t *testing.T) {
18111811
})
18121812
}
18131813
}
1814-
1815-
func Test_getCriticalHostsEntriesContent(t *testing.T) {
1816-
type args struct {
1817-
aksnodeconfig *aksnodeconfigv1.Configuration
1818-
}
1819-
tests := []struct {
1820-
name string
1821-
args args
1822-
want string
1823-
}{
1824-
{
1825-
name: "nil config",
1826-
args: args{aksnodeconfig: nil},
1827-
want: "",
1828-
},
1829-
{
1830-
name: "nil LocalDnsProfile",
1831-
args: args{aksnodeconfig: &aksnodeconfigv1.Configuration{}},
1832-
want: "",
1833-
},
1834-
{
1835-
name: "empty CriticalHostsEntries",
1836-
args: args{aksnodeconfig: &aksnodeconfigv1.Configuration{
1837-
LocalDnsProfile: &aksnodeconfigv1.LocalDnsProfile{
1838-
EnableLocalDns: true,
1839-
CriticalHostsEntries: map[string]*aksnodeconfigv1.CriticalHostsEntry{},
1840-
},
1841-
}},
1842-
want: "",
1843-
},
1844-
{
1845-
name: "single FQDN with single IP",
1846-
args: args{aksnodeconfig: &aksnodeconfigv1.Configuration{
1847-
LocalDnsProfile: &aksnodeconfigv1.LocalDnsProfile{
1848-
EnableLocalDns: true,
1849-
CriticalHostsEntries: map[string]*aksnodeconfigv1.CriticalHostsEntry{
1850-
"mcr.microsoft.com": {IpAddresses: []string{"20.61.99.68"}},
1851-
},
1852-
},
1853-
}},
1854-
want: func() string {
1855-
content := "# AKS critical FQDN addresses provided by AKS-RP\n" +
1856-
"# This file is written by CSE during node provisioning\n\n" +
1857-
"# mcr.microsoft.com\n" +
1858-
"20.61.99.68 mcr.microsoft.com\n\n"
1859-
return base64.StdEncoding.EncodeToString([]byte(content))
1860-
}(),
1861-
},
1862-
{
1863-
name: "single FQDN with multiple IPs",
1864-
args: args{aksnodeconfig: &aksnodeconfigv1.Configuration{
1865-
LocalDnsProfile: &aksnodeconfigv1.LocalDnsProfile{
1866-
EnableLocalDns: true,
1867-
CriticalHostsEntries: map[string]*aksnodeconfigv1.CriticalHostsEntry{
1868-
"mcr.microsoft.com": {IpAddresses: []string{"20.61.99.68", "2603:1061:1002::2"}},
1869-
},
1870-
},
1871-
}},
1872-
want: func() string {
1873-
content := "# AKS critical FQDN addresses provided by AKS-RP\n" +
1874-
"# This file is written by CSE during node provisioning\n\n" +
1875-
"# mcr.microsoft.com\n" +
1876-
"20.61.99.68 mcr.microsoft.com\n" +
1877-
"2603:1061:1002::2 mcr.microsoft.com\n\n"
1878-
return base64.StdEncoding.EncodeToString([]byte(content))
1879-
}(),
1880-
},
1881-
{
1882-
name: "multiple FQDNs sorted alphabetically",
1883-
args: args{aksnodeconfig: &aksnodeconfigv1.Configuration{
1884-
LocalDnsProfile: &aksnodeconfigv1.LocalDnsProfile{
1885-
EnableLocalDns: true,
1886-
CriticalHostsEntries: map[string]*aksnodeconfigv1.CriticalHostsEntry{
1887-
"mcr.microsoft.com": {IpAddresses: []string{"20.61.99.68"}},
1888-
"login.microsoftonline.com": {IpAddresses: []string{"20.190.160.1"}},
1889-
"acs-mirror.azureedge.net": {IpAddresses: []string{"152.199.19.161"}},
1890-
},
1891-
},
1892-
}},
1893-
want: func() string {
1894-
content := "# AKS critical FQDN addresses provided by AKS-RP\n" +
1895-
"# This file is written by CSE during node provisioning\n\n" +
1896-
"# acs-mirror.azureedge.net\n" +
1897-
"152.199.19.161 acs-mirror.azureedge.net\n\n" +
1898-
"# login.microsoftonline.com\n" +
1899-
"20.190.160.1 login.microsoftonline.com\n\n" +
1900-
"# mcr.microsoft.com\n" +
1901-
"20.61.99.68 mcr.microsoft.com\n\n"
1902-
return base64.StdEncoding.EncodeToString([]byte(content))
1903-
}(),
1904-
},
1905-
}
1906-
for _, tt := range tests {
1907-
t.Run(tt.name, func(t *testing.T) {
1908-
if got := getCriticalHostsEntriesContent(tt.args.aksnodeconfig); got != tt.want {
1909-
t.Errorf("getCriticalHostsEntriesContent() = %v, want %v", got, tt.want)
1910-
}
1911-
})
1912-
}
1913-
}

aks-node-controller/parser/parser.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,6 @@ func getCSEEnv(config *aksnodeconfigv1.Configuration) map[string]string {
174174
"LOCALDNS_CPU_LIMIT": getLocalDnsCpuLimitInPercentage(config),
175175
"LOCALDNS_MEMORY_LIMIT": getLocalDnsMemoryLimitInMb(config),
176176
"LOCALDNS_GENERATED_COREFILE": getLocalDnsCorefileBase64(config),
177-
"LOCALDNS_CRITICAL_HOSTS_ENTRIES": getCriticalHostsEntriesContent(config),
178177
"DISABLE_PUBKEY_AUTH": fmt.Sprintf("%v", config.GetDisablePubkeyAuth()),
179178
"SERVICE_ACCOUNT_IMAGE_PULL_ENABLED": fmt.Sprintf("%v", config.GetServiceAccountImagePullProfile().GetEnabled()),
180179
"SERVICE_ACCOUNT_IMAGE_PULL_DEFAULT_CLIENT_ID": config.GetServiceAccountImagePullProfile().GetDefaultClientId(),

aks-node-controller/parser/parser_test.go

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -348,48 +348,6 @@ func TestBuildCSECmd_SetsServicePrincipalFileContent(t *testing.T) {
348348
assert.Equal(t, secret, vars["SERVICE_PRINCIPAL_FILE_CONTENT"])
349349
}
350350

351-
func TestBuildCSECmd_SetsLocalDNSCriticalHostsEntries(t *testing.T) {
352-
t.Run("empty when no LocalDnsProfile", func(t *testing.T) {
353-
cmd, err := BuildCSECmd(context.TODO(), &aksnodeconfigv1.Configuration{})
354-
require.NoError(t, err)
355-
vars := environToMap(cmd.Env)
356-
assert.Equal(t, "", vars["LOCALDNS_CRITICAL_HOSTS_ENTRIES"])
357-
})
358-
359-
t.Run("empty when CriticalHostsEntries is nil", func(t *testing.T) {
360-
cmd, err := BuildCSECmd(context.TODO(), &aksnodeconfigv1.Configuration{
361-
LocalDnsProfile: &aksnodeconfigv1.LocalDnsProfile{
362-
EnableLocalDns: true,
363-
},
364-
})
365-
require.NoError(t, err)
366-
vars := environToMap(cmd.Env)
367-
assert.Equal(t, "", vars["LOCALDNS_CRITICAL_HOSTS_ENTRIES"])
368-
})
369-
370-
t.Run("populated when CriticalHostsEntries has entries", func(t *testing.T) {
371-
cmd, err := BuildCSECmd(context.TODO(), &aksnodeconfigv1.Configuration{
372-
LocalDnsProfile: &aksnodeconfigv1.LocalDnsProfile{
373-
EnableLocalDns: true,
374-
CriticalHostsEntries: map[string]*aksnodeconfigv1.CriticalHostsEntry{
375-
"mcr.microsoft.com": {IpAddresses: []string{"20.61.99.68"}},
376-
},
377-
},
378-
})
379-
require.NoError(t, err)
380-
vars := environToMap(cmd.Env)
381-
382-
encoded := vars["LOCALDNS_CRITICAL_HOSTS_ENTRIES"]
383-
assert.NotEmpty(t, encoded)
384-
385-
decoded, err := base64.StdEncoding.DecodeString(encoded)
386-
require.NoError(t, err)
387-
content := string(decoded)
388-
assert.Contains(t, content, "20.61.99.68 mcr.microsoft.com")
389-
assert.Contains(t, content, "# mcr.microsoft.com")
390-
})
391-
}
392-
393351
func TestAKSNodeConfigCompatibilityFromJsonToCSECommand(t *testing.T) {
394352
tests := []struct {
395353
name string

aks-node-controller/proto/aksnodeconfig/v1/localdns_config.proto

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,8 @@ message LocalDnsProfile {
2020
// KubeDns overrides apply to DNS traffic from pods with dnsPolicy:ClusterFirst (referred to as KubeDns traffic).
2121
map<string, LocalDnsOverrides> kube_dns_overrides = 5;
2222

23-
// CriticalHostsEntries contains FQDN to IP address mappings for critical Azure infrastructure.
24-
// AKS-RP provides these entries at provisioning time, and CSE writes them to /etc/localdns/hosts.
25-
// Key is the FQDN (e.g., "mcr.microsoft.com"), value contains the IP addresses.
26-
map<string, CriticalHostsEntry> critical_hosts_entries = 6;
27-
}
28-
29-
// Represents IP addresses for a critical FQDN.
30-
message CriticalHostsEntry {
31-
// IP addresses (both IPv4 and IPv6) for the FQDN.
32-
repeated string ip_addresses = 1;
23+
// Field 6 was critical_hosts_entries, removed.
24+
reserved 6;
3325
}
3426

3527
// Represents DNS override settings for both VnetDNS and KubeDNS traffic.

parts/linux/cloud-init/artifacts/cse_cmd.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,6 @@ SHOULD_ENABLE_LOCALDNS="{{ShouldEnableLocalDNS}}"
186186
LOCALDNS_CPU_LIMIT="{{GetLocalDNSCPULimitInPercentage}}"
187187
LOCALDNS_MEMORY_LIMIT="{{GetLocalDNSMemoryLimitInMB}}"
188188
LOCALDNS_GENERATED_COREFILE="{{GetGeneratedLocalDNSCoreFile}}"
189-
LOCALDNS_CRITICAL_HOSTS_ENTRIES="{{GetCriticalHostsEntriesBase64}}"
190189
PRE_PROVISION_ONLY="{{GetPreProvisionOnly}}"
191190
CSE_TIMEOUT="{{GetCSETimeout}}"
192191
/usr/bin/nohup /bin/bash -c "/bin/bash /opt/azure/containers/provision_start.sh"

parts/linux/cloud-init/artifacts/cse_config.sh

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1199,20 +1199,10 @@ enableLocalDNS() {
11991199
enableAKSHostsSetup() {
12001200
local hosts_file="/etc/localdns/hosts"
12011201

1202-
# Check if AKS-RP provided critical hosts entries
1203-
# AKS-RP provides IP addresses for critical FQDNs at provisioning time
1204-
if [ -n "${LOCALDNS_CRITICAL_HOSTS_ENTRIES}" ]; then
1205-
echo "AKS-RP provided critical hosts entries, writing to ${hosts_file}..."
1206-
mkdir -p "$(dirname "${hosts_file}")"
1207-
echo "${LOCALDNS_CRITICAL_HOSTS_ENTRIES}" | base64 -d > "${hosts_file}"
1208-
chmod 644 "${hosts_file}"
1209-
echo "Critical hosts entries written from AKS-RP."
1210-
else
1211-
# Run the script once immediately to resolve live DNS before kubelet starts
1212-
echo "Running initial aks-hosts-setup to resolve DNS..."
1213-
mkdir -p "$(dirname "${hosts_file}")"
1214-
/opt/azure/containers/aks-hosts-setup.sh || echo "Warning: Initial hosts setup failed"
1215-
fi
1202+
# Run the script once immediately to resolve live DNS before kubelet starts
1203+
echo "Running initial aks-hosts-setup to resolve DNS..."
1204+
mkdir -p "$(dirname "${hosts_file}")"
1205+
/opt/azure/containers/aks-hosts-setup.sh || echo "Warning: Initial hosts setup failed"
12161206

12171207
# Enable the timer for periodic refresh (every 15 minutes)
12181208
# This will update the hosts file with fresh IPs from live DNS

pkg/agent/baker.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1221,13 +1221,6 @@ func getContainerServiceFuncMap(config *datamodel.NodeBootstrappingConfiguration
12211221
"GetLocalDNSMemoryLimitInMB": func() string {
12221222
return profile.GetLocalDNSMemoryLimitInMB()
12231223
},
1224-
"GetCriticalHostsEntriesBase64": func() string {
1225-
content := profile.GetCriticalHostsEntriesContent()
1226-
if content == "" {
1227-
return ""
1228-
}
1229-
return base64.StdEncoding.EncodeToString([]byte(content))
1230-
},
12311224
"GetPreProvisionOnly": func() bool { return config.PreProvisionOnly },
12321225
"GetCSETimeout": func() string { return datamodel.GetCSETimeout(config.CSETimeout) },
12331226
"BlockIptables": func() bool {

pkg/agent/datamodel/types.go

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -2435,11 +2435,6 @@ type LocalDNSProfile struct {
24352435
MemoryLimitInMB *int32 `json:"memoryLimitInMB,omitempty"`
24362436
VnetDNSOverrides map[string]*LocalDNSOverrides `json:"vnetDNSOverrides,omitempty"`
24372437
KubeDNSOverrides map[string]*LocalDNSOverrides `json:"kubeDNSOverrides,omitempty"`
2438-
// CriticalHostsEntries contains FQDN to IP address mappings for critical Azure infrastructure.
2439-
// AKS-RP provides these entries at provisioning time, and CSE writes them to /etc/localdns/hosts.
2440-
// Format: map[fqdn][]ipAddresses (supports both IPv4 and IPv6)
2441-
// Example: {"mcr.microsoft.com": ["20.61.99.68", "2603:1061:1002::2"]}
2442-
CriticalHostsEntries map[string][]string `json:"criticalHostsEntries,omitempty"`
24432438
}
24442439

24452440
type LocalDNSCoreFileData struct {
@@ -2527,35 +2522,4 @@ func (a *AgentPoolProfile) GetLocalDNSCoreFileData() LocalDNSCoreFileData {
25272522
return LocalDNSCoreFileData{}
25282523
}
25292524

2530-
// GetCriticalHostsEntriesContent returns the critical hosts entries formatted as a hosts file content.
2531-
// Returns empty string if no entries are configured by AKS-RP.
2532-
// Format: "IP FQDN\n" for each entry (multiple IPs per FQDN supported).
2533-
func (a *AgentPoolProfile) GetCriticalHostsEntriesContent() string {
2534-
if a.LocalDNSProfile == nil || len(a.LocalDNSProfile.CriticalHostsEntries) == 0 {
2535-
return ""
2536-
}
2537-
2538-
var content strings.Builder
2539-
content.WriteString("# AKS critical FQDN addresses provided by AKS-RP\n")
2540-
content.WriteString("# This file is written by CSE during node provisioning\n\n")
2541-
2542-
// Sort FQDNs for deterministic output
2543-
fqdns := make([]string, 0, len(a.LocalDNSProfile.CriticalHostsEntries))
2544-
for fqdn := range a.LocalDNSProfile.CriticalHostsEntries {
2545-
fqdns = append(fqdns, fqdn)
2546-
}
2547-
sort.Strings(fqdns)
2548-
2549-
for _, fqdn := range fqdns {
2550-
ips := a.LocalDNSProfile.CriticalHostsEntries[fqdn]
2551-
content.WriteString(fmt.Sprintf("# %s\n", fqdn))
2552-
for _, ip := range ips {
2553-
content.WriteString(fmt.Sprintf("%s %s\n", ip, fqdn))
2554-
}
2555-
content.WriteString("\n")
2556-
}
2557-
2558-
return content.String()
2559-
}
2560-
25612525
// ----------------------- End of changes related to localdns ------------------------------------------.

0 commit comments

Comments
 (0)