From 1f908fc500302fdfa952b6d634c861a5e60b15f6 Mon Sep 17 00:00:00 2001 From: auricom <27022259+auricom@users.noreply.github.com> Date: Wed, 25 Oct 2023 02:23:42 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=80=20ngnode-landing-page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kubernetes/apps/kustomization.yaml | 1 + kubernetes/apps/ngnode/kustomization.yaml | 10 ++++ .../apps/ngnode/landing-page/app/gatus.yaml | 22 +++++++ .../ngnode/landing-page/app/helmrelease.yaml | 59 +++++++++++++++++++ .../landing-page/app/kustomization.yaml | 10 ++++ kubernetes/apps/ngnode/landing-page/ks.yaml | 23 ++++++++ kubernetes/apps/ngnode/namespace.yaml | 7 +++ 7 files changed, 132 insertions(+) create mode 100644 kubernetes/apps/ngnode/kustomization.yaml create mode 100644 kubernetes/apps/ngnode/landing-page/app/gatus.yaml create mode 100644 kubernetes/apps/ngnode/landing-page/app/helmrelease.yaml create mode 100644 kubernetes/apps/ngnode/landing-page/app/kustomization.yaml create mode 100644 kubernetes/apps/ngnode/landing-page/ks.yaml create mode 100644 kubernetes/apps/ngnode/namespace.yaml diff --git a/kubernetes/apps/kustomization.yaml b/kubernetes/apps/kustomization.yaml index 0764e6126..0a140f796 100644 --- a/kubernetes/apps/kustomization.yaml +++ b/kubernetes/apps/kustomization.yaml @@ -10,6 +10,7 @@ resources: - ./kube-system - ./kyverno - ./monitoring + - ./ngnode - ./networking - ./rook-ceph - ./volsync diff --git a/kubernetes/apps/ngnode/kustomization.yaml b/kubernetes/apps/ngnode/kustomization.yaml new file mode 100644 index 000000000..170bb3125 --- /dev/null +++ b/kubernetes/apps/ngnode/kustomization.yaml @@ -0,0 +1,10 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/kustomization.json +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + # Pre Flux-Kustomizations + - ./namespace.yaml + # Flux-Kustomizations + - ./landing-page/ks.yaml + diff --git a/kubernetes/apps/ngnode/landing-page/app/gatus.yaml b/kubernetes/apps/ngnode/landing-page/app/gatus.yaml new file mode 100644 index 000000000..e1e69fac6 --- /dev/null +++ b/kubernetes/apps/ngnode/landing-page/app/gatus.yaml @@ -0,0 +1,22 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: ngnode-landing-page-gatus-ep + namespace: ngnode + labels: + gatus.io/enabled: "true" +data: + config.yaml: | + endpoints: + - name: ngnode-landing-page + group: external + url: https://ngnode-landing-page.${SECRET_CLUSTER_DOMAIN} + interval: 1m + client: + dns-resolver: tcp://1.1.1.1:53 + insecure: true + conditions: + - "[STATUS] == 200" + alerts: + - type: pushover diff --git a/kubernetes/apps/ngnode/landing-page/app/helmrelease.yaml b/kubernetes/apps/ngnode/landing-page/app/helmrelease.yaml new file mode 100644 index 000000000..45e98ea8f --- /dev/null +++ b/kubernetes/apps/ngnode/landing-page/app/helmrelease.yaml @@ -0,0 +1,59 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2beta1.json +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: &app ngnode-landing-page + namespace: ngnode +spec: + interval: 30m + chart: + spec: + chart: app-template + version: 1.5.1 + sourceRef: + kind: HelmRepository + name: bjw-s + namespace: flux-system + maxHistory: 2 + install: + createNamespace: true + remediation: + retries: 3 + upgrade: + cleanupOnFail: true + remediation: + retries: 3 + uninstall: + keepHistory: false + values: + controller: + replicas: 1 + image: + repository: ghcr.io/ngnodehq/landing-page + tag: v0.1.0 + service: + main: + ports: + http: + port: 3000 + ingress: + main: + enabled: true + ingressClassName: nginx + annotations: + external-dns.home.arpa/enabled: "true" + hosts: + - host: &host "{{ .Release.Name }}.${SECRET_CLUSTER_DOMAIN}" + paths: + - path: / + pathType: Prefix + tls: + - hosts: + - *host + resources: + requests: + cpu: 5m + memory: 10Mi + limits: + memory: 400Mi diff --git a/kubernetes/apps/ngnode/landing-page/app/kustomization.yaml b/kubernetes/apps/ngnode/landing-page/app/kustomization.yaml new file mode 100644 index 000000000..9d051af9c --- /dev/null +++ b/kubernetes/apps/ngnode/landing-page/app/kustomization.yaml @@ -0,0 +1,10 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/kustomization.json +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: ngnode +resources: + - ./gatus.yaml + - ./helmrelease.yaml +generatorOptions: + disableNameSuffixHash: true diff --git a/kubernetes/apps/ngnode/landing-page/ks.yaml b/kubernetes/apps/ngnode/landing-page/ks.yaml new file mode 100644 index 000000000..82e17407a --- /dev/null +++ b/kubernetes/apps/ngnode/landing-page/ks.yaml @@ -0,0 +1,23 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: cluster-apps-ngnode-landing-page + namespace: flux-system + labels: + substitution.flux.home.arpa/enabled: "true" +spec: + path: ./kubernetes/apps/ngnode/landing-page/app + prune: true + sourceRef: + kind: GitRepository + name: home-ops-kubernetes + healthChecks: + - apiVersion: helm.toolkit.fluxcd.io/v2beta1 + kind: HelmRelease + name: ngnode-landing-page + namespace: ngnode + interval: 30m + retryInterval: 1m + timeout: 3m diff --git a/kubernetes/apps/ngnode/namespace.yaml b/kubernetes/apps/ngnode/namespace.yaml new file mode 100644 index 000000000..88c994dbd --- /dev/null +++ b/kubernetes/apps/ngnode/namespace.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: ngnode + labels: + kustomize.toolkit.fluxcd.io/prune: disabled