From 8eec4309979c910d181317bd497c3200e5fbf213 Mon Sep 17 00:00:00 2001 From: Ashwin Kumar Date: Wed, 11 Mar 2026 02:35:05 +0100 Subject: [PATCH] feat(gitops): add frontend apps and argocd applications --- .../base/configmap.yaml | 9 ++++ .../base/deployment.yaml | 52 +++++++++++++++++++ .../nxtgauge-admin-frontend/base/ingress.yaml | 18 +++++++ .../base/kustomization.yaml | 9 ++++ .../base/namespace.yaml | 4 ++ apps/nxtgauge-admin-frontend/base/secret.yaml | 14 +++++ .../nxtgauge-admin-frontend/base/service.yaml | 16 ++++++ .../overlays/prod/kustomization.yaml | 9 ++++ .../overlays/prod/replicas-patch.yaml | 7 +++ .../base/configmap.yaml | 9 ++++ .../base/deployment.yaml | 52 +++++++++++++++++++ .../base/ingress.yaml | 18 +++++++ .../base/kustomization.yaml | 9 ++++ .../base/namespace.yaml | 4 ++ .../nxtgauge-frontendwebsite/base/secret.yaml | 7 +++ .../base/service.yaml | 16 ++++++ .../overlays/prod/kustomization.yaml | 9 ++++ .../overlays/prod/replicas-patch.yaml | 7 +++ .../nxtgauge-admin-frontend-application.yaml | 20 +++++++ .../nxtgauge-frontendwebsite-application.yaml | 20 +++++++ 20 files changed, 309 insertions(+) create mode 100644 apps/nxtgauge-admin-frontend/base/configmap.yaml create mode 100644 apps/nxtgauge-admin-frontend/base/deployment.yaml create mode 100644 apps/nxtgauge-admin-frontend/base/ingress.yaml create mode 100644 apps/nxtgauge-admin-frontend/base/kustomization.yaml create mode 100644 apps/nxtgauge-admin-frontend/base/namespace.yaml create mode 100644 apps/nxtgauge-admin-frontend/base/secret.yaml create mode 100644 apps/nxtgauge-admin-frontend/base/service.yaml create mode 100644 apps/nxtgauge-admin-frontend/overlays/prod/kustomization.yaml create mode 100644 apps/nxtgauge-admin-frontend/overlays/prod/replicas-patch.yaml create mode 100644 apps/nxtgauge-frontendwebsite/base/configmap.yaml create mode 100644 apps/nxtgauge-frontendwebsite/base/deployment.yaml create mode 100644 apps/nxtgauge-frontendwebsite/base/ingress.yaml create mode 100644 apps/nxtgauge-frontendwebsite/base/kustomization.yaml create mode 100644 apps/nxtgauge-frontendwebsite/base/namespace.yaml create mode 100644 apps/nxtgauge-frontendwebsite/base/secret.yaml create mode 100644 apps/nxtgauge-frontendwebsite/base/service.yaml create mode 100644 apps/nxtgauge-frontendwebsite/overlays/prod/kustomization.yaml create mode 100644 apps/nxtgauge-frontendwebsite/overlays/prod/replicas-patch.yaml create mode 100644 argocd/nxtgauge-admin-frontend-application.yaml create mode 100644 argocd/nxtgauge-frontendwebsite-application.yaml diff --git a/apps/nxtgauge-admin-frontend/base/configmap.yaml b/apps/nxtgauge-admin-frontend/base/configmap.yaml new file mode 100644 index 0000000..627943b --- /dev/null +++ b/apps/nxtgauge-admin-frontend/base/configmap.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: nxtgauge-admin-frontend-config + namespace: nxtgauge +data: + NODE_ENV: "production" + PORT: "3000" + NEXT_PUBLIC_API_URL: "https://api.nxtgauge.com/api" diff --git a/apps/nxtgauge-admin-frontend/base/deployment.yaml b/apps/nxtgauge-admin-frontend/base/deployment.yaml new file mode 100644 index 0000000..63cfdfe --- /dev/null +++ b/apps/nxtgauge-admin-frontend/base/deployment.yaml @@ -0,0 +1,52 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nxtgauge-admin-frontend + namespace: nxtgauge + labels: + app: nxtgauge-admin-frontend +spec: + replicas: 1 + selector: + matchLabels: + app: nxtgauge-admin-frontend + template: + metadata: + labels: + app: nxtgauge-admin-frontend + spec: + containers: + - name: admin-frontend + image: ghcr.io/traceworks2023/nxtgauge-nov-2025-frontend + imagePullPolicy: Always + ports: + - containerPort: 3000 + name: http + envFrom: + - configMapRef: + name: nxtgauge-admin-frontend-config + - secretRef: + name: nxtgauge-admin-frontend-secrets + readinessProbe: + httpGet: + path: / + port: 3000 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 3 + failureThreshold: 3 + livenessProbe: + httpGet: + path: / + port: 3000 + initialDelaySeconds: 20 + periodSeconds: 20 + timeoutSeconds: 3 + failureThreshold: 3 + resources: + requests: + cpu: 100m + memory: 128Mi + limits: + cpu: 500m + memory: 512Mi diff --git a/apps/nxtgauge-admin-frontend/base/ingress.yaml b/apps/nxtgauge-admin-frontend/base/ingress.yaml new file mode 100644 index 0000000..e57f98c --- /dev/null +++ b/apps/nxtgauge-admin-frontend/base/ingress.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: nxtgauge-admin-frontend + namespace: nxtgauge +spec: + ingressClassName: traefik + rules: + - host: admin.nxtgauge.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: nxtgauge-admin-frontend + port: + number: 80 diff --git a/apps/nxtgauge-admin-frontend/base/kustomization.yaml b/apps/nxtgauge-admin-frontend/base/kustomization.yaml new file mode 100644 index 0000000..dffdde5 --- /dev/null +++ b/apps/nxtgauge-admin-frontend/base/kustomization.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - namespace.yaml + - configmap.yaml + - secret.yaml + - deployment.yaml + - service.yaml + - ingress.yaml diff --git a/apps/nxtgauge-admin-frontend/base/namespace.yaml b/apps/nxtgauge-admin-frontend/base/namespace.yaml new file mode 100644 index 0000000..358f183 --- /dev/null +++ b/apps/nxtgauge-admin-frontend/base/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: nxtgauge diff --git a/apps/nxtgauge-admin-frontend/base/secret.yaml b/apps/nxtgauge-admin-frontend/base/secret.yaml new file mode 100644 index 0000000..819625e --- /dev/null +++ b/apps/nxtgauge-admin-frontend/base/secret.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Secret +metadata: + name: nxtgauge-admin-frontend-secrets + namespace: nxtgauge +type: Opaque +stringData: + MAIL_FROM: "REPLACE_ME" + MAIL_SMTP_HOST: "REPLACE_ME" + MAIL_SMTP_PORT: "587" + MAIL_SMTP_SECURE: "false" + MAIL_SMTP_STARTTLS: "true" + MAIL_SMTP_USER: "REPLACE_ME" + MAIL_SMTP_PASS: "REPLACE_ME" diff --git a/apps/nxtgauge-admin-frontend/base/service.yaml b/apps/nxtgauge-admin-frontend/base/service.yaml new file mode 100644 index 0000000..007da41 --- /dev/null +++ b/apps/nxtgauge-admin-frontend/base/service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: nxtgauge-admin-frontend + namespace: nxtgauge + labels: + app: nxtgauge-admin-frontend +spec: + type: ClusterIP + selector: + app: nxtgauge-admin-frontend + ports: + - name: http + port: 80 + targetPort: 3000 + protocol: TCP diff --git a/apps/nxtgauge-admin-frontend/overlays/prod/kustomization.yaml b/apps/nxtgauge-admin-frontend/overlays/prod/kustomization.yaml new file mode 100644 index 0000000..eda6f20 --- /dev/null +++ b/apps/nxtgauge-admin-frontend/overlays/prod/kustomization.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ../../base +patchesStrategicMerge: + - replicas-patch.yaml +images: + - name: ghcr.io/traceworks2023/nxtgauge-nov-2025-frontend + newTag: testingcodex-latest diff --git a/apps/nxtgauge-admin-frontend/overlays/prod/replicas-patch.yaml b/apps/nxtgauge-admin-frontend/overlays/prod/replicas-patch.yaml new file mode 100644 index 0000000..77fe5b4 --- /dev/null +++ b/apps/nxtgauge-admin-frontend/overlays/prod/replicas-patch.yaml @@ -0,0 +1,7 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nxtgauge-admin-frontend + namespace: nxtgauge +spec: + replicas: 1 diff --git a/apps/nxtgauge-frontendwebsite/base/configmap.yaml b/apps/nxtgauge-frontendwebsite/base/configmap.yaml new file mode 100644 index 0000000..afc8163 --- /dev/null +++ b/apps/nxtgauge-frontendwebsite/base/configmap.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: nxtgauge-frontendwebsite-config + namespace: nxtgauge +data: + NODE_ENV: "production" + PORT: "3000" + NEXT_PUBLIC_API_URL: "https://api.nxtgauge.com/api" diff --git a/apps/nxtgauge-frontendwebsite/base/deployment.yaml b/apps/nxtgauge-frontendwebsite/base/deployment.yaml new file mode 100644 index 0000000..8be878e --- /dev/null +++ b/apps/nxtgauge-frontendwebsite/base/deployment.yaml @@ -0,0 +1,52 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nxtgauge-frontendwebsite + namespace: nxtgauge + labels: + app: nxtgauge-frontendwebsite +spec: + replicas: 1 + selector: + matchLabels: + app: nxtgauge-frontendwebsite + template: + metadata: + labels: + app: nxtgauge-frontendwebsite + spec: + containers: + - name: frontendwebsite + image: ghcr.io/traceworks2023/nxtgauge-frontendwebsite + imagePullPolicy: Always + ports: + - containerPort: 3000 + name: http + envFrom: + - configMapRef: + name: nxtgauge-frontendwebsite-config + - secretRef: + name: nxtgauge-frontendwebsite-secrets + readinessProbe: + httpGet: + path: / + port: 3000 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 3 + failureThreshold: 3 + livenessProbe: + httpGet: + path: / + port: 3000 + initialDelaySeconds: 20 + periodSeconds: 20 + timeoutSeconds: 3 + failureThreshold: 3 + resources: + requests: + cpu: 100m + memory: 128Mi + limits: + cpu: 500m + memory: 512Mi diff --git a/apps/nxtgauge-frontendwebsite/base/ingress.yaml b/apps/nxtgauge-frontendwebsite/base/ingress.yaml new file mode 100644 index 0000000..4ba3218 --- /dev/null +++ b/apps/nxtgauge-frontendwebsite/base/ingress.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: nxtgauge-frontendwebsite + namespace: nxtgauge +spec: + ingressClassName: traefik + rules: + - host: test121.nxtgauge.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: nxtgauge-frontendwebsite + port: + number: 80 diff --git a/apps/nxtgauge-frontendwebsite/base/kustomization.yaml b/apps/nxtgauge-frontendwebsite/base/kustomization.yaml new file mode 100644 index 0000000..dffdde5 --- /dev/null +++ b/apps/nxtgauge-frontendwebsite/base/kustomization.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - namespace.yaml + - configmap.yaml + - secret.yaml + - deployment.yaml + - service.yaml + - ingress.yaml diff --git a/apps/nxtgauge-frontendwebsite/base/namespace.yaml b/apps/nxtgauge-frontendwebsite/base/namespace.yaml new file mode 100644 index 0000000..358f183 --- /dev/null +++ b/apps/nxtgauge-frontendwebsite/base/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: nxtgauge diff --git a/apps/nxtgauge-frontendwebsite/base/secret.yaml b/apps/nxtgauge-frontendwebsite/base/secret.yaml new file mode 100644 index 0000000..ceee7ac --- /dev/null +++ b/apps/nxtgauge-frontendwebsite/base/secret.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: Secret +metadata: + name: nxtgauge-frontendwebsite-secrets + namespace: nxtgauge +type: Opaque +stringData: {} diff --git a/apps/nxtgauge-frontendwebsite/base/service.yaml b/apps/nxtgauge-frontendwebsite/base/service.yaml new file mode 100644 index 0000000..ab5280c --- /dev/null +++ b/apps/nxtgauge-frontendwebsite/base/service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: nxtgauge-frontendwebsite + namespace: nxtgauge + labels: + app: nxtgauge-frontendwebsite +spec: + type: ClusterIP + selector: + app: nxtgauge-frontendwebsite + ports: + - name: http + port: 80 + targetPort: 3000 + protocol: TCP diff --git a/apps/nxtgauge-frontendwebsite/overlays/prod/kustomization.yaml b/apps/nxtgauge-frontendwebsite/overlays/prod/kustomization.yaml new file mode 100644 index 0000000..d499842 --- /dev/null +++ b/apps/nxtgauge-frontendwebsite/overlays/prod/kustomization.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ../../base +patchesStrategicMerge: + - replicas-patch.yaml +images: + - name: ghcr.io/traceworks2023/nxtgauge-frontendwebsite + newTag: testingcodex-latest diff --git a/apps/nxtgauge-frontendwebsite/overlays/prod/replicas-patch.yaml b/apps/nxtgauge-frontendwebsite/overlays/prod/replicas-patch.yaml new file mode 100644 index 0000000..d54692b --- /dev/null +++ b/apps/nxtgauge-frontendwebsite/overlays/prod/replicas-patch.yaml @@ -0,0 +1,7 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nxtgauge-frontendwebsite + namespace: nxtgauge +spec: + replicas: 1 diff --git a/argocd/nxtgauge-admin-frontend-application.yaml b/argocd/nxtgauge-admin-frontend-application.yaml new file mode 100644 index 0000000..89d0ba3 --- /dev/null +++ b/argocd/nxtgauge-admin-frontend-application.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: nxtgauge-admin-frontend + namespace: argocd +spec: + project: default + source: + repoURL: https://github.com/Traceworks2023/nxtgauge-gitops.git + targetRevision: main + path: apps/nxtgauge-admin-frontend/overlays/prod + destination: + server: https://kubernetes.default.svc + namespace: nxtgauge + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/argocd/nxtgauge-frontendwebsite-application.yaml b/argocd/nxtgauge-frontendwebsite-application.yaml new file mode 100644 index 0000000..ae6a5c0 --- /dev/null +++ b/argocd/nxtgauge-frontendwebsite-application.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: nxtgauge-frontendwebsite + namespace: argocd +spec: + project: default + source: + repoURL: https://github.com/Traceworks2023/nxtgauge-gitops.git + targetRevision: main + path: apps/nxtgauge-frontendwebsite/overlays/prod + destination: + server: https://kubernetes.default.svc + namespace: nxtgauge + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true