Microsoft Azure Static IP & DNS Configuration for SonarQube

Çiğdem Kadakoğlu
3 min readJan 3, 2023

--

Azure-Static IP-DNS-Helm-Kubernetes

Using Static IP for SonarQube

kadakoglucigdem
az aks show --resource-group <AKS_RG_NAME> --name <AKS_NAME> --query nodeResourceGroup -o tsv
az network public-ip create --resource-group <nodeResourceGroup> --name myAKSPublicIPForIngress --sku Standard --allocation-method static --query publicIp.ipAddress -o tsvkubectl create namespace ingress-nginx
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
helm repo update
helm show values ingress-nginx/ingress-nginx
helm install ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--set controller.replicaCount=2 \
--set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set controller.service.externalTrafficPolicy=Local \
--set controller.service.loadBalancerIP="<STATIC_IP>"
kubectl get service -l app.kubernetes.io/name=ingress-nginx --namespace ingress-nginxkubectl get pods -n ingress-nginx
kubectl get all -n ingress-nginx
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: sonarqube-ingress
namespace: sast
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: sonarqube-service
port:
number: 9000
kubectl create -f ingress.yaml

SonarQube can be accessed using a static IP address.

kadakoglucigdem

Using DNS for SonarQube

az network public-ip create --resource-group <nodeResourceGroup> --name myAKSPublicIPForIngress --sku Standard --dns-name  <DNS_NAME> --location westeurope --allocation-method static --query publicIp.ipAddress -o tsv
kubectl create namespace ingress-nginx
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
helm repo update
helm show values ingress-nginx/ingress-nginx
helm install ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--set controller.replicaCount=2 \
--set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set controller.service.externalTrafficPolicy=Local \
--set controller.service.loadBalancerIP="<STATIC_IP>"
kubectl get service -l app.kubernetes.io/name=ingress-nginx --namespace ingress-nginxkubectl get pods -n ingress-nginxkubectl get all -n ingress-nginx
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: sonarqube-ingress
namespace: sast
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
ingressClassName: nginx
rules:
- host: <DNS_NAME>.westeurope.cloudapp.azure.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: sonarqube-service
port:
number: 9000
kubectl create -f ingress.yaml

We can now create ingress using the DNS we created.

kadakoglucigdem
kadakoglucigdem

--

--

Çiğdem Kadakoğlu

Docker Captain🐳🇹🇷👩‍✈️ | Microsoft MVP | Instructor | Senior Cloud&DevOps Engineer | CK{A|AD}-AZ{104|204|305|400|800|801|900}-DP900-AI{900|102}-PL900🐧🐳🌼☕