Microsoft Azure Static IP & DNS Configuration for SonarQube
3 min readJan 3, 2023
Azure-Static IP-DNS-Helm-Kubernetes
Using Static IP for SonarQube
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-nginxhelm 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.
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-nginxhelm 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.
You can check this article: SonarQube-PostgreSQL Installation on Azure Kubernetes Service with Azure Disk&File