in src/library/Client/ManagementClients/KubeConfigManagementClient.cs [160:226]
private void _LogKubernetesCloudProvider(string fqdn)
{
object cloud = null;
try
{
var ip = IPAddress.Parse(fqdn);
if (IPAddress.IsLoopback(ip))
{
cloud = "Local IP";
}
else
{
cloud = "Remote IP";
}
}
catch (Exception)
{
// It's not an IP, move on, nothing to do here
}
if (cloud == null)
{
try
{
var fqdnDomainParts = fqdn.Split(".");
var fqdnDomain = string.Join(".", fqdnDomainParts[fqdnDomainParts.Length - 2], fqdnDomainParts[fqdnDomainParts.Length - 1]);
switch (fqdnDomain)
{
case "azmk8s.io":
cloud = "AzurePublic";
break;
case "azk8s.cn":
cloud = "AzureChina";
break;
case "azure.us":
cloud = "AzureUSGovernment";
break;
case "amazonaws.com":
cloud = "Amazon";
break;
case "ibm.com":
cloud = "IBM";
break;
case "docker.internal":
cloud = "DockerInternal";
break;
default:
cloud = new PII(fqdnDomain);
break;
}
}
catch (Exception ex)
{
_log.Warning("Failed to parse fqdn domain from {0} with: {1}", new PII(fqdn), ex.Message);
_log.ExceptionAsWarning(ex);
}
}
if (cloud != null)
{
_log.Event("CloudProvider", new Dictionary<string, object> { { "ClusterFQDNDomain", cloud } });
}
}