apiVersion: v1 kind: PersistentVolume metadata: name: sonar-pv spec: storageClassName: "" capacity: storage: 2Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain mountOptions: - hard - nfsvers=4.1 nfs: server: 192.168.2.111 path: /mnt/nfs_share/dev/sonar readOnly: false --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: sonar-pvc namespace: sonarqube spec: storageClassName: "" volumeName: sonar-pv accessModes: - ReadWriteMany volumeMode: Filesystem resources: requests: storage: 2Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: sonarqube namespace: sonarqube labels: app: sonarqube spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: sonarqube template: metadata: labels: app: sonarqube spec: containers: - name: sonarqube image: sonarqube:community imagePullPolicy: IfNotPresent ports: - name: sonarqube containerPort: 9000 env: - name: SONAR_JDBC_URL value: jdbc:postgresql://postgres14.postgres.svc.cluster.local:5432/sonar - name: SONAR_JDBC_USERNAME value: sonar - name: SONAR_JDBC_PASSWORD value: sonar volumeMounts: - name: sonarqube-persistent mountPath: /opt/sonarqube/extensions subPath: sonarqube-extensions - name: sonarqube-data mountPath: /opt/sonarqube/data - name: sonarqube-temp mountPath: /opt/sonarqube/temp - name: sonarqube-logs mountPath: /opt/sonarqube/logs volumes: - name: sonarqube-persistent persistentVolumeClaim: claimName: sonar-pvc - name: sonarqube-data emptyDir: {} - name: sonarqube-temp emptyDir: {} - name: sonarqube-logs emptyDir: {} --- apiVersion: v1 kind: Service metadata: name: sonarqube namespace: sonarqube labels: name: sonarqube spec: type: ClusterIP selector: app: sonarqube ports: - port: 9000 targetPort: 9000 name: sonarqube --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: sonarqube-http namespace: sonarqube spec: entryPoints: - web routes: - match: Host(`sonarqube-dev.allarddcs.nl`) kind: Rule services: - name: sonarqube port: 9000 --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: sonarqube-tls namespace: sonarqube spec: entryPoints: - websecure routes: - match: Host(`sonarqube-dev.allarddcs.nl`) kind: Rule services: - name: sonarqube port: 9000 tls: certResolver: letsencrypt