functions/InitKubernetes.ps1

<#
.SYNOPSIS
InitKubernetes
 
.DESCRIPTION
InitKubernetes
 
.INPUTS
InitKubernetes - The name of InitKubernetes
 
.OUTPUTS
None
 
.EXAMPLE
InitKubernetes
 
.EXAMPLE
InitKubernetes
 
 
#>

function InitKubernetes() {
    [CmdletBinding()]
    param
    (
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string]
        $subscriptionName
        ,
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string]
        $resourceGroup
    )

    Write-Verbose 'InitKubernetes: Starting'

    LoginToAzure

    SetCurrentAzureSubscription -subscriptionName $subscriptionName

    [string] $clusterName = $(GetClusterName -resourceGroup $resourceGroup).ClusterName

    GetClusterCredentials -resourceGroup $resourceGroup -clusterName $clusterName

    # SetStorageAccountNameIntoSecret -resourceGroup $resourceGroup -customerid $customerid

    # kubectl get "deployments,pods,services,ingress,secrets" --namespace="default" -o wide
    # kubectl get "deployments,pods,services,ingress,secrets" --namespace=kube-system -o wide

    InitHelm

    $keyVaultName = $(Get-KeyVaultName -resourceGroup $resourceGroup).Name
    AssertStringIsNotNullOrEmpty $keyVaultName

    $customerid = $(GetKeyVaultSecretValue -keyVaultName $keyVaultName -keyVaultSecretName $KeyVaultSecrets.internalLoadbalancerSubnet)
    $ExternalIp = $(GetKeyVaultSecretValue -keyVaultName $keyVaultName -keyVaultSecretName $KeyVaultSecrets.externalLoadbalancerIP)
    $ExternalSubnet = $(GetKeyVaultSecretValue -keyVaultName $keyVaultName -keyVaultSecretName $KeyVaultSecrets.externalLoadbalancerSubnet)
    $InternalIP = $(GetKeyVaultSecretValue -keyVaultName $keyVaultName -keyVaultSecretName $KeyVaultSecrets.internalLoadbalancerIP)
    $InternalSubnet = $(GetKeyVaultSecretValue -keyVaultName $keyVaultName -keyVaultSecretName $KeyVaultSecrets.internalLoadbalancerSubnet)

    if ([string]::IsNullOrWhiteSpace($ExternalIP)) {
        $resourceGroupOfAks = $(az aks show --resource-group $resourceGroup --name "$clusterName" --query nodeResourceGroup -o tsv)
        Write-Verbose "ExternalIP not found in secrets so looking for public IP in resource group: $resourceGroupOfAks "

        $ExternalIP = $(az network public-ip list --resource-group "$resourceGroupOfAks" --query [0].ipAddress --output tsv)
    }

    AssertStringIsNotNullOrEmpty $ExternalIP

    SetupLoadBalancer `
        -ExternalIP $ExternalIP `
        -ExternalSubnet $ExternalSubnet `
        -InternalIP $InternalIP `
        -InternalSubnet $InternalSubnet `
        -customerid $customerid

    Write-Verbose 'InitKubernetes: Done'
}

Export-ModuleMember -Function 'InitKubernetes'