diff --git a/kubernetes/apps/kustomization.yaml b/kubernetes/apps/kustomization.yaml index bde56f5..6f9fe0c 100644 --- a/kubernetes/apps/kustomization.yaml +++ b/kubernetes/apps/kustomization.yaml @@ -13,5 +13,6 @@ resources: - ./qbittorrent/qbittorrent.yaml - ./redis/redis.yaml - ./snippet-box/snippet-box.yaml + - ./sonarqube/sonarqube.yaml - ./uptime-kuma/uptime-kuma.yaml - ./weave-gitops/weave-gitops.yaml \ No newline at end of file diff --git a/kubernetes/apps/sonarqube/app/ingress.yaml b/kubernetes/apps/sonarqube/app/ingress.yaml new file mode 100644 index 0000000..f7404ba --- /dev/null +++ b/kubernetes/apps/sonarqube/app/ingress.yaml @@ -0,0 +1,21 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: sonarqube-ingress + namespace: sonarqube + annotations: + nginx.ingress.kubernetes.io/ssl-redirect: "false" + nginx.ingress.kubernetes.io/use-regex: "true" +spec: + ingressClassName: nginx + rules: + - host: "sonarqube.cluster.edward.sydney" + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: sonarqube + port: + number: 80 \ No newline at end of file diff --git a/kubernetes/apps/sonarqube/app/release.yaml b/kubernetes/apps/sonarqube/app/release.yaml new file mode 100644 index 0000000..b2f5a4c --- /dev/null +++ b/kubernetes/apps/sonarqube/app/release.yaml @@ -0,0 +1,37 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: sonarqube + namespace: sonarqube +spec: + releaseName: sonarqube + chart: + spec: + chart: sonarqube + sourceRef: + kind: HelmRepository + name: bitnami + namespace: flux-system + interval: 1h + install: + remediation: + retries: 3 + values: + smtpHost: ${smtp_host} + smtpPort: ${smtp_port} + smtpUser: ${smtp_user} + smtpPassword: ${smtp_password} + smtpProtocol: ${smtp_protocol} + persistence: + enabled: true + storageClass: "local-path" + size: "32Gi" + existingClaim: "" + postgresql: + enabled: false + externalDatabase: + host: ${db_host} + user: ${db_user} + password: ${db_password} + database: ${db_name} + port: ${db_port} diff --git a/kubernetes/apps/sonarqube/sonarqube.yaml b/kubernetes/apps/sonarqube/sonarqube.yaml new file mode 100644 index 0000000..7f8ee63 --- /dev/null +++ b/kubernetes/apps/sonarqube/sonarqube.yaml @@ -0,0 +1,46 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: sonarqube-secrets + namespace: sonarqube +spec: + interval: 10m + timeout: 1m30s + retryInterval: 30s + targetNamespace: redis + path: ./sonarqube + prune: true + sourceRef: + kind: GitRepository + namespace: flux-system + name: home-cluster-ops-secrets + dependsOn: + - name: repositories + namespace: flux-system + decryption: + provider: sops + secretRef: + name: sonarqube-sops-age +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: sonarqube + namespace: sonarqube +spec: + interval: 10m + timeout: 1m30s + retryInterval: 30s + path: ./kubernetes/apps/sonarqube/app + prune: true + sourceRef: + kind: GitRepository + namespace: flux-system + name: flux-system + dependsOn: + - name: sonarqube-secrets + namespace: redis + postBuild: + substituteFrom: + - kind: Secret + name: sonarqube-secrets \ No newline at end of file diff --git a/kubernetes/infrastructure/namespaces/namespaces/sonarqube.yaml b/kubernetes/infrastructure/namespaces/namespaces/sonarqube.yaml new file mode 100644 index 0000000..f18e1e9 --- /dev/null +++ b/kubernetes/infrastructure/namespaces/namespaces/sonarqube.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: sonarqube