diff --git a/apps/kustomization.yaml b/apps/kustomization.yaml index aae8de9..1f220b9 100644 --- a/apps/kustomization.yaml +++ b/apps/kustomization.yaml @@ -8,4 +8,5 @@ resources: - monitoring - homepage - kimai + - lubelogger - wikijs \ No newline at end of file diff --git a/apps/lubelogger/certificate.yaml b/apps/lubelogger/certificate.yaml new file mode 100644 index 0000000..d788a3a --- /dev/null +++ b/apps/lubelogger/certificate.yaml @@ -0,0 +1,13 @@ +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: wildcard-numbergoup-coza + namespace: lubelogger +spec: + secretName: wildcard-numbergoup-coza-tls + issuerRef: + name: letsencrypt-dns + kind: ClusterIssuer + commonName: "*.numbergoup.co.za" + dnsNames: + - "*.numbergoup.co.za" diff --git a/apps/lubelogger/db/kustomization.yaml b/apps/lubelogger/db/kustomization.yaml new file mode 100644 index 0000000..825fa49 --- /dev/null +++ b/apps/lubelogger/db/kustomization.yaml @@ -0,0 +1,28 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- lubelogger-db-secrets.yaml +- ../../../infrastructure/modules/postgres-app + +namespace: pg-databases + +patches: +- target: + kind: Job + name: postgres-init + patch: | + - op: replace + path: /metadata/name + value: postgres-init-lubelogger + + - op: replace + path: /spec/template/spec/containers/0/env/3/valueFrom/secretKeyRef/name + value: lubelogger-db-secrets + + - op: replace + path: /spec/template/spec/containers/0/env/4/valueFrom/secretKeyRef/name + value: lubelogger-db-secrets + + - op: replace + path: /spec/template/spec/containers/0/env/5/valueFrom/secretKeyRef/name + value: lubelogger-db-secrets diff --git a/apps/lubelogger/db/lubelogger-db-secrets.yaml b/apps/lubelogger/db/lubelogger-db-secrets.yaml new file mode 100644 index 0000000..28ed97f --- /dev/null +++ b/apps/lubelogger/db/lubelogger-db-secrets.yaml @@ -0,0 +1,32 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: lubelogger-db-secrets + namespace: pg-databases +spec: + refreshInterval: 1h + secretStoreRef: + name: bitwarden + kind: ClusterSecretStore + + target: + name: lubelogger-db-secrets + creationPolicy: Owner + template: + engineVersion: v2 + mergePolicy: Merge + data: + database: '{{ index . "lubelogger-db-name" }}' + username: '{{ index . "lubelogger-db-username" }}' + password: '{{ index . "lubelogger-db-password" }}' + + data: + - secretKey: lubelogger-db-name + remoteRef: + key: lubelogger-db-name + - secretKey: lubelogger-db-username + remoteRef: + key: lubelogger-db-username + - secretKey: lubelogger-db-password + remoteRef: + key: lubelogger-db-password diff --git a/apps/lubelogger/helmrelease.yaml b/apps/lubelogger/helmrelease.yaml new file mode 100644 index 0000000..6e4dbb5 --- /dev/null +++ b/apps/lubelogger/helmrelease.yaml @@ -0,0 +1,20 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: lubelogger + namespace: lubelogger +spec: + interval: 30m + + chart: + spec: + chart: lubelogger + sourceRef: + kind: HelmRepository + name: anza-labs + namespace: flux-system + + valuesFrom: + - kind: ConfigMap + name: lubelogger-values + valuesKey: values.yaml diff --git a/apps/lubelogger/kustomization.yaml b/apps/lubelogger/kustomization.yaml new file mode 100644 index 0000000..550c9d8 --- /dev/null +++ b/apps/lubelogger/kustomization.yaml @@ -0,0 +1,16 @@ +resources: +- namespace.yaml +- helmrelease.yaml +- certificate.yaml +- lubelogger-db-connection.yaml +- db + +namespace: lubelogger + +configMapGenerator: +- name: lubelogger-values + files: + - values.yaml + +generatorOptions: + disableNameSuffixHash: true diff --git a/apps/lubelogger/lubelogger-db-connection.yaml b/apps/lubelogger/lubelogger-db-connection.yaml new file mode 100644 index 0000000..79d158b --- /dev/null +++ b/apps/lubelogger/lubelogger-db-connection.yaml @@ -0,0 +1,31 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: lubelogger-db-connection + namespace: lubelogger +spec: + refreshInterval: 1h + secretStoreRef: + name: bitwarden + kind: ClusterSecretStore + + target: + name: lubelogger-postgres-connection + creationPolicy: Owner + template: + engineVersion: v2 + mergePolicy: Merge + data: + POSTGRES_CONNECTION: >- + Host=pg-cluster-rw.pg-databases.svc.cluster.local;Port=5432;Database={{ index . "lubelogger-db-name" }};Username={{ index . "lubelogger-db-username" }};Password={{ index . "lubelogger-db-password" }} + + data: + - secretKey: lubelogger-db-name + remoteRef: + key: lubelogger-db-name + - secretKey: lubelogger-db-username + remoteRef: + key: lubelogger-db-username + - secretKey: lubelogger-db-password + remoteRef: + key: lubelogger-db-password diff --git a/apps/lubelogger/namespace.yaml b/apps/lubelogger/namespace.yaml new file mode 100644 index 0000000..617af9e --- /dev/null +++ b/apps/lubelogger/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: lubelogger diff --git a/apps/lubelogger/values.yaml b/apps/lubelogger/values.yaml new file mode 100644 index 0000000..48f4a77 --- /dev/null +++ b/apps/lubelogger/values.yaml @@ -0,0 +1,26 @@ +ingress: + enabled: true + className: traefik + hosts: + - host: lubelogger.numbergoup.co.za + paths: + - path: / + pathType: Prefix + tls: + - secretName: wildcard-numbergoup-coza-tls + hosts: + - lubelogger.numbergoup.co.za + +postgres: + connect: true + create: false + name: lubelogger-postgres-connection + keyRef: POSTGRES_CONNECTION + +secret: + create: false + +readinessProbe: + httpGet: + path: / + port: http diff --git a/infrastructure/sources/anza-labs.yaml b/infrastructure/sources/anza-labs.yaml new file mode 100644 index 0000000..2ed6c55 --- /dev/null +++ b/infrastructure/sources/anza-labs.yaml @@ -0,0 +1,8 @@ +apiVersion: source.toolkit.fluxcd.io/v1 +kind: HelmRepository +metadata: + name: anza-labs + namespace: flux-system +spec: + interval: 12h + url: https://anza-labs.github.io/charts diff --git a/infrastructure/sources/kustomization.yaml b/infrastructure/sources/kustomization.yaml index c5ef3e5..a578433 100644 --- a/infrastructure/sources/kustomization.yaml +++ b/infrastructure/sources/kustomization.yaml @@ -4,6 +4,7 @@ resources: - robjuz.yaml - haproxytech.yaml - wikijs.yaml +- anza-labs.yaml - bitwarden.yaml - eso.yaml - jetstack.yaml