From ca17ee0ca3ed66dca8514d032f5aee1ecf2606f9 Mon Sep 17 00:00:00 2001 From: Alex Lay Date: Fri, 25 Sep 2026 16:02:32 +0100 Subject: [PATCH] isisbusapps/proposal-allocations#775: Migrate allocations config to gitops --- .../dev/ra/proposal-allocations-v2/app.yaml | 31 +++++++++++++ .../prod/ra/proposal-allocations-v2/app.yaml | 30 +++++++++++++ .../base/deployment.yaml | 44 +++++++++++++++++++ .../base/http-route.yaml | 19 ++++++++ .../base/kustomization.yaml | 24 ++++++++++ .../proposal-allocations-v2/base/service.yaml | 10 +++++ .../overlays/dev/deployment.yaml | 21 +++++++++ .../overlays/dev/kustomization.yaml | 11 +++++ .../overlays/dev/service.yaml | 10 +++++ .../overlays/prod/deployment.yaml | 19 ++++++++ .../overlays/prod/kustomization.yaml | 10 +++++ 11 files changed, 229 insertions(+) create mode 100644 argocd/dev/ra/proposal-allocations-v2/app.yaml create mode 100644 argocd/prod/ra/proposal-allocations-v2/app.yaml create mode 100644 components/ra/proposal-allocations-v2/base/deployment.yaml create mode 100644 components/ra/proposal-allocations-v2/base/http-route.yaml create mode 100644 components/ra/proposal-allocations-v2/base/kustomization.yaml create mode 100644 components/ra/proposal-allocations-v2/base/service.yaml create mode 100644 components/ra/proposal-allocations-v2/overlays/dev/deployment.yaml create mode 100644 components/ra/proposal-allocations-v2/overlays/dev/kustomization.yaml create mode 100644 components/ra/proposal-allocations-v2/overlays/dev/service.yaml create mode 100644 components/ra/proposal-allocations-v2/overlays/prod/deployment.yaml create mode 100644 components/ra/proposal-allocations-v2/overlays/prod/kustomization.yaml diff --git a/argocd/dev/ra/proposal-allocations-v2/app.yaml b/argocd/dev/ra/proposal-allocations-v2/app.yaml new file mode 100644 index 000000000..0c2b1f91f --- /dev/null +++ b/argocd/dev/ra/proposal-allocations-v2/app.yaml @@ -0,0 +1,31 @@ +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet +metadata: + name: proposal-allocations-v2 + namespace: argocd +spec: + goTemplate: true + goTemplateOptions: ["missingkey=error"] + generators: + - clusters: + selector: + matchLabels: + appEnvironment: dev + ignoreApplicationDifferences: + - jsonPointers: + - /spec/syncPolicy + template: + metadata: + name: '{{.name}}-proposal-allocations-v2' + spec: + project: r-a-project + source: + path: components/ra/proposal-allocations-v2/overlays/dev + repoURL: 'https://github.com/isisbusapps/gitops' + targetRevision: main + destination: + namespace: apps + name: '{{.name}}' + syncPolicy: + automated: + selfHeal: true #https://argo-cd.readthedocs.io/en/stable/user-guide/auto_sync/#automatic-self-healing diff --git a/argocd/prod/ra/proposal-allocations-v2/app.yaml b/argocd/prod/ra/proposal-allocations-v2/app.yaml new file mode 100644 index 000000000..0ccfc6181 --- /dev/null +++ b/argocd/prod/ra/proposal-allocations-v2/app.yaml @@ -0,0 +1,30 @@ +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet +metadata: + name: proposal-allocations-v2 + namespace: argocd +spec: + goTemplate: true + goTemplateOptions: ["missingkey=error"] + generators: + - clusters: + selector: + matchLabels: + appEnvironment: prod + ignoreApplicationDifferences: + - jsonPointers: + - /spec/syncPolicy + template: + metadata: + name: '{{.name}}-proposal-allocations-v2' + spec: + project: r-a-project + source: + path: components/ra/proposal-allocations-v2/overlays/prod + repoURL: 'https://github.com/isisbusapps/gitops' + targetRevision: main + destination: + namespace: apps + name: '{{.name}}' + syncPolicy: + automated: {} diff --git a/components/ra/proposal-allocations-v2/base/deployment.yaml b/components/ra/proposal-allocations-v2/base/deployment.yaml new file mode 100644 index 000000000..6fa17c0d0 --- /dev/null +++ b/components/ra/proposal-allocations-v2/base/deployment.yaml @@ -0,0 +1,44 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: proposal-allocations-v2 +spec: + replicas: 1 + template: + metadata: + annotations: + co.elastic.logs/processors.1.add_fields.target: "" + co.elastic.logs/processors.1.add_fields.fields.application.name: "proposal-allocations" + co.elastic.logs/processors.1.add_fields.fields.application.domain: "proposal-allocations" + co.elastic.logs/processors.1.add_fields.fields.application.tier: "service" + co.elastic.logs/processors.1.add_fields.fields.application.language: "java" + # Extract log_level, class, and log_message as separate fields for elastic + co.elastic.logs/processors.2.dissect.tokenizer: "%{?date} %{?time} %{log_level} [%{?Session_and_user_data}] [%{class}] %{log_message}" + co.elastic.logs/processors.2.dissect.target_prefix: "" + # Extract web method call time stats to separate fields + co.elastic.logs/processors.3.dissect.tokenizer: "Web method %{web_method.name} completed in %{web_method.seconds_taken|double} seconds" + co.elastic.logs/processors.3.dissect.target_prefix: "" + co.elastic.logs/processors.3.dissect.field: "log_message" + co.elastic.logs/processors.3.dissect.when.regexp.log_message: "Web method .* completed in .* seconds" + + co.elastic.logs/multiline.pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}" + co.elastic.logs/multiline.negate: "true" + co.elastic.logs/multiline.match: "after" + spec: + containers: + - name: proposal-allocations + imagePullPolicy: Always + ports: + - containerPort: 5050 + volumeMounts: + - name: spring-config + mountPath: "/FBS/Apps/spring/proposal-allocations" + readOnly: true + readinessProbe: + httpGet: + path: /proposal-allocations/v2/actuator/health/readiness + port: 5050 + initialDelaySeconds: 10 + periodSeconds: 5 + imagePullSecrets: + - name: registry-creds diff --git a/components/ra/proposal-allocations-v2/base/http-route.yaml b/components/ra/proposal-allocations-v2/base/http-route.yaml new file mode 100644 index 000000000..d01b2f085 --- /dev/null +++ b/components/ra/proposal-allocations-v2/base/http-route.yaml @@ -0,0 +1,19 @@ +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: proposal-allocations +spec: + parentRefs: + - name: envoy-gateway + namespace: envoy-gateway-system + hostnames: + - "*.developers.facilities.rl.ac.uk" + - "*.facilities.rl.ac.uk" + rules: + - matches: + - path: + type: PathPrefix + value: /proposal-allocations/v2 + backendRefs: + - name: proposal-allocations-v2 + port: 5050 diff --git a/components/ra/proposal-allocations-v2/base/kustomization.yaml b/components/ra/proposal-allocations-v2/base/kustomization.yaml new file mode 100644 index 000000000..e28d1bb1d --- /dev/null +++ b/components/ra/proposal-allocations-v2/base/kustomization.yaml @@ -0,0 +1,24 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +commonLabels: + app: proposal-allocations-v2 + +labels: + - pairs: + bypass-alloy-scraper: + includeSelectors: false + includeTemplates: true + +labels: + - pairs: + bypass-alloy-scraper: + includeSelectors: false + includeTemplates: true + +namespace: apps + +resources: + - deployment.yaml + - service.yaml + - http-route.yaml diff --git a/components/ra/proposal-allocations-v2/base/service.yaml b/components/ra/proposal-allocations-v2/base/service.yaml new file mode 100644 index 000000000..765d48b51 --- /dev/null +++ b/components/ra/proposal-allocations-v2/base/service.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Service +metadata: + name: proposal-allocations-v2 +spec: + ports: + - name: https + protocol: TCP + port: 5050 + targetPort: 5050 diff --git a/components/ra/proposal-allocations-v2/overlays/dev/deployment.yaml b/components/ra/proposal-allocations-v2/overlays/dev/deployment.yaml new file mode 100644 index 000000000..cbabbda89 --- /dev/null +++ b/components/ra/proposal-allocations-v2/overlays/dev/deployment.yaml @@ -0,0 +1,21 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: proposal-allocations-v2 +spec: + template: + spec: + containers: + - name: proposal-allocations + image: ghcr.io/isisbusapps/proposal-allocations@sha256:5e4011da9add76769045657479425e90aded9007907fa7608dea24c566d8cad7 + ports: + - containerPort: 7005 + env: + - name: APP_ENV + value: dev + - name: JAVA_TOOL_OPTIONS + value: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7005 -Dlog4j2.formatMsgNoLookups=true + volumes: + - name: spring-config + secret: + secretName: proposal-allocations-profiles diff --git a/components/ra/proposal-allocations-v2/overlays/dev/kustomization.yaml b/components/ra/proposal-allocations-v2/overlays/dev/kustomization.yaml new file mode 100644 index 000000000..c0e741348 --- /dev/null +++ b/components/ra/proposal-allocations-v2/overlays/dev/kustomization.yaml @@ -0,0 +1,11 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - ../../base + +namespace: apps + +patches: + - path: deployment.yaml + - path: service.yaml diff --git a/components/ra/proposal-allocations-v2/overlays/dev/service.yaml b/components/ra/proposal-allocations-v2/overlays/dev/service.yaml new file mode 100644 index 000000000..27d3d1de9 --- /dev/null +++ b/components/ra/proposal-allocations-v2/overlays/dev/service.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Service +metadata: + name: proposal-allocations-v2 +spec: + ports: + - name: debug + protocol: TCP + port: 7005 + targetPort: 7005 diff --git a/components/ra/proposal-allocations-v2/overlays/prod/deployment.yaml b/components/ra/proposal-allocations-v2/overlays/prod/deployment.yaml new file mode 100644 index 000000000..17dacd2eb --- /dev/null +++ b/components/ra/proposal-allocations-v2/overlays/prod/deployment.yaml @@ -0,0 +1,19 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: proposal-allocations-v2 +spec: + template: + spec: + containers: + - name: proposal-allocations + image: ghcr.io/isisbusapps/proposal-allocations:2.1.1 + env: + - name: APP_ENV + value: prod + - name: JAVA_TOOL_OPTIONS + value: -Dlog4j2.formatMsgNoLookups=true + volumes: + - name: spring-config + secret: + secretName: proposal-allocations-profiles diff --git a/components/ra/proposal-allocations-v2/overlays/prod/kustomization.yaml b/components/ra/proposal-allocations-v2/overlays/prod/kustomization.yaml new file mode 100644 index 000000000..433e34ab8 --- /dev/null +++ b/components/ra/proposal-allocations-v2/overlays/prod/kustomization.yaml @@ -0,0 +1,10 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - ../../base + +namespace: apps + +patches: + - path: deployment.yaml