Prerequisites
Several tools and services have to be installed/provisioned and configured. Your Azure subscription should have the following services provisioned:
- An instance of Azure Container Registry (ACR)
- An instance of Azure Kubernetes Service (AKS)
- The ACR instance should be attached to the AKS instance (see 3 ways to attach ACR to AKS for further details on how to achieve that)
On your local development system (Linux or Windows), you should have installed and configured the following:
- Azure CLI installed
- Helm v3 installed
- The Kubernetes CLI kubectl with a proper context configuration pointing to the previously mentioned AKS instance
Connect your development system to your Azure subscription using:
az login
If you are using a Tenant subscription, use the command below. Then follow the command output.
az login --tenant <tenant id>
Create resource group
Create a new resource group, or use an existing one if you have it already.
az group create --name MyResourceGroup --location eastus
Before creating the AKS cluster, please subscribe to Navigator from the Azure Marketplace.
Subscription for Navigator from Azure Marketplace
- Go to the Azure Marketplace and find the Navigator product page: https://azuremarketplace.microsoft.com/en-us/marketplace/apps/nasteltechnologiesinc1596218152202.nastel_navigator?tab=Overview
- Click Get it Now. Choose from the list of Software plans available by subscription. Click Continue.
- On the Subscribe page, select the Azure Subscription type, the Azure Container Registry (if you have one already, select Use existing), and the Azure Resource Group (if you have one already, select it). Then select the Tag version from list (do not use latest).
- Once you fill all the required details and accept the terms and conditions, click Subscribe. The Navigator container image will be registered to the Azure Container Registry.
- Open the container registry resource that you have created while subscribing to Navigator. Go to Repositories. You can see the registered container image with the version selected above. Copy and save it for later use.
Once you have subscribed and are ready to install on the AKS cluster, continue the process below.
Create an AKS cluster
az aks create --resource-group MyResourceGroup --name MYAKS --location eastus
Connect to your AKS cluster
To connect a Kubernetes cluster locally, use the Kubernetes command-line client, kubectl. kubectl is already installed if you use Azure Cloud Shell.
- Install kubectl locally using the az aks install-cli command:
az aks install-cli
- Configure kubectl to connect to your Kubernetes cluster using the az aks get-credentials command. The following command example gets credentials for the AKS cluster named MyAKS in the MyResourceGroup:
az aks get-credentials –resource-group MyResourceGroup –name MyAKS
Generate secret key on Azure to pull container images from ACR
kubectl create secret docker-registry navpullsecret \
--namespace default \
--docker-server=nastelnavigator.azurecr.io \
--docker-username=92e406fc-9ea8-42b6-959f-77adc3c6a481 \
--docker-password=X4c8Q~6C_-5j4QasBsL8KlukONyd4WuM8vMR7dwS
Pull and Install Navigator Helm chart from ACR
To enable OCI support in the Helm 3 client, set an environment variable with the following command:
export HELM_EXPERIMENTAL_OCI=1
Before pulling or pushing Helm charts to ACR, your local installation of Helm has to establish an authenticated connection to ACR. In contrast to other Command-Line Interfaces, Helm is not able to re-use the existing authentication token from Azure CLI. Therefore you have to Authenticate helm.
USER_NAME="00000000-0000-0000-0000-000000000000"
PASSWORD=$(az acr login --name mynastelacr --expose-token --output tsv --query accessToken)
Replace “mynastelacr” with your Container Registry.
helm registry login mynastelacr.azurecr.io \
--username $USER_NAME \
--password $PASSWORD
Replace “mynastelacr.azurecr.io” with your Container Registry.
Once authentication is successful, then pull the Navigator container image using the Helm pull command.
helm pull oci://mynastelacr.azurecr.io/nasteltechnologiesinc1596218152202/helm/navigatorexp --version 10.5
Replace “mynastelacr.azurecr.io/nasteltechnologiesinc1596218152202/helm/navigatorexp” with the Container Registry image you pulled from Azure Marketplace and tag the selected version (10.5 is the new version).
Untar/Unzip Helm Chart Once Pulled
Since we pulled the Helm chart as an OCI artifact, we have to extract it for further usage. To untar the zip file, use the command below:
# Export helm chart
tar -zxvf navigatorexp-10.4.2.tgz
Run your Helm chart
Install your application using your Helm chart using the helm install command.
For version 10.4
# Install helm chart
helm install navigator navigatorexp
For version 10.5
# Install helm chart
./commands.sh <public ip of your cluster>
Check the public IP for the cluster created:
- Go to the Azure portal and select the Resource groups service.
- Look for the Resource group that starts with "MC_" and click the resource to open it.
- Check the Public IP address of the resource and open it.
- Copy the Public IP and save it for further usage.
# Verify release using Helm CLI
helm list
It takes a few minutes for the pods to be ready and for the service to return a public IP address.
Check POD deployment status
Kubectl get pods
Monitor service progress using the kubectl get services command.
# Check services for external IP
Kubectl get services
Navigate to the application load balancer in a browser using the <EXTERNAL-IP> to see the sample application.
Use the following:
Username: Admin
Password: admin
Example: http://20.62.158.17:8080/navigator/ (Replace 20.62.158.17:8080/navigator/ with EXTERNAL-IP).