generated from kubernetes/kubernetes-template-project
-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathsource-vip.ps1
30 lines (25 loc) · 1.04 KB
/
source-vip.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$ErrorActionPreference = "Stop";
#TODO: support other CNI's
ipmo -Force .\hns.psm1
$NetworkName = "Calico"
Write-Host "Waiting for HNS network $NetworkName to be created..."
while (-Not (Get-HnsNetwork | ? Name -EQ $NetworkName)) {
Write-Debug "Still waiting for HNS network..."
Start-Sleep 1
}
Write-Host "HNS network $NetworkName found."
$network = (Get-HnsNetwork | ? Name -EQ $NetworkName)
if ($network.Type -EQ "Overlay") {
# This is a VXLAN network, kube-proxy needs to know the source IP to use for SNAT operations.
Write-Host "Detected VXLAN network, waiting for Calico host endpoint to be created..."
while (-Not (Get-HnsEndpoint | ? Name -EQ "Calico_ep")) {
Start-Sleep 1
}
Write-Host "Host endpoint found."
$sourceVip = (Get-HnsEndpoint | ? Name -EQ "Calico_ep").IpAddress
$argList += "--source-vip=$sourceVip"
Write-Host "Found sourceip: $sourceVip"
[Environment]::SetEnvironmentVariable('SOURCE_VIP', $sourceVip, 'Machine')
}else {
Write-Host "Not a VXLAN network, skipping sourceip"
}